소스 검색

[cli] add some semver nonsense

closes #5719
Simon Krajewski 7 년 전
부모
커밋
41b8e1061e
4개의 변경된 파일20개의 추가작업 그리고 3개의 파일을 삭제
  1. 1 1
      Makefile.version_extra
  2. 10 1
      src/compiler/server.ml
  3. 8 1
      src/context/display/displayJson.ml
  4. 1 0
      src/core/globals.ml

+ 1 - 1
Makefile.version_extra

@@ -5,7 +5,7 @@
 all: ;
 all: ;
 
 
 ifneq ($(ADD_REVISION),0)
 ifneq ($(ADD_REVISION),0)
-	$(info let version_extra = Some "(git build $(BRANCH) @ $(COMMIT_SHA))")
+	$(info let version_extra = Some ("git build $(BRANCH)","$(COMMIT_SHA)"))
 else
 else
 	$(info let version_extra = None)
 	$(info let version_extra = None)
 endif
 endif

+ 10 - 1
src/compiler/server.ml

@@ -28,7 +28,16 @@ type context = {
 }
 }
 
 
 let s_version =
 let s_version =
-	Printf.sprintf "%d.%d.%d%s" version_major version_minor version_revision (match Version.version_extra with None -> "" | Some v -> " " ^ v)
+	let pre,build = match Version.version_extra with
+		| None -> "",""
+		| Some(_,build) ->
+			let pre = match version_pre with
+				| None -> ""
+				| Some pre -> "-" ^ pre
+			in
+			pre,"+" ^ build
+	in
+	Printf.sprintf "%d.%d.%d%s%s" version_major version_minor version_revision pre build
 
 
 let default_flush ctx = match ctx.com.json_out with
 let default_flush ctx = match ctx.com.json_out with
 	| None ->
 	| None ->

+ 8 - 1
src/context/display/displayJson.ml

@@ -158,7 +158,14 @@ let parse_input com input report_times pre_compilation did_something =
 			| "initialize" ->
 			| "initialize" ->
 				supports_resolve := get_opt_param (fun () -> get_bool_param "supportsResolve") false;
 				supports_resolve := get_opt_param (fun () -> get_bool_param "supportsResolve") false;
 				f_result (JObject [
 				f_result (JObject [
-					"capabilities",get_capabilities()
+					"capabilities",get_capabilities();
+					"version",jobject [
+						"major",jint version_major;
+						"minor",jint version_minor;
+						"patch",jint version_revision;
+						"pre",(match version_pre with None -> jnull | Some pre -> jstring pre);
+						"build",(match Version.version_extra with None -> jnull | Some(_,build) -> jstring build);
+					]
 				])
 				])
 			| "display/completionItem/resolve" ->
 			| "display/completionItem/resolve" ->
 				let i = get_int_param "index" in
 				let i = get_int_param "index" in

+ 1 - 0
src/core/globals.ml

@@ -27,6 +27,7 @@ let version = 4000
 let version_major = version / 1000
 let version_major = version / 1000
 let version_minor = (version mod 1000) / 100
 let version_minor = (version mod 1000) / 100
 let version_revision = (version mod 100)
 let version_revision = (version mod 100)
+let version_pre = Some "preview.3"
 
 
 let macro_platform = ref Neko
 let macro_platform = ref Neko