Ver código fonte

get documentation if we display a module type (see #5709)

Simon Krajewski 9 anos atrás
pai
commit
1c19ab7fdb
2 arquivos alterados com 16 adições e 1 exclusões
  1. 15 1
      src/display/displayOutput.ml
  2. 1 0
      src/main.ml

+ 15 - 1
src/display/displayOutput.ml

@@ -780,4 +780,18 @@ let process_global_display_mode com tctx = match com.display.dms_kind with
 				) symbols l
 				) symbols l
 		in
 		in
 		raise (ModuleSymbols(ModuleSymbolsPrinter.print_module_symbols com symbols filter))
 		raise (ModuleSymbols(ModuleSymbolsPrinter.print_module_symbols com symbols filter))
-	| _ -> ()
+	| _ -> ()
+
+let find_doc t =
+	let doc = match follow t with
+		| TAnon an ->
+			begin match !(an.a_status) with
+				| Statics c -> c.cl_doc
+				| EnumStatics en -> en.e_doc
+				| AbstractStatics a -> a.a_doc
+				| _ -> None
+			end
+		| _ ->
+			None
+	in
+	doc

+ 1 - 0
src/main.ml

@@ -897,6 +897,7 @@ with
 		in
 		in
 		raise (DisplayOutput.Completion (DisplayOutput.print_fields fields))
 		raise (DisplayOutput.Completion (DisplayOutput.print_fields fields))
 	| Display.DisplayType (t,p,doc) ->
 	| Display.DisplayType (t,p,doc) ->
+		let doc = match doc with Some _ -> doc | None -> DisplayOutput.find_doc t in
 		raise (DisplayOutput.Completion (DisplayOutput.print_type t p doc))
 		raise (DisplayOutput.Completion (DisplayOutput.print_type t p doc))
 	| Display.DisplaySignatures(tl,display_arg) ->
 	| Display.DisplaySignatures(tl,display_arg) ->
 		if ctx.com.display.dms_kind = DMSignature then
 		if ctx.com.display.dms_kind = DMSignature then