Skip to content

Commit 26c2d3c

Browse files
committed
Fix hover for Stdlib module
1 parent c40669a commit 26c2d3c

File tree

3 files changed

+12
-1
lines changed

3 files changed

+12
-1
lines changed

analysis/src/Hover.ml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -275,7 +275,12 @@ let newHover ~full:{file; package} ~supportsMarkdownLinks locItem =
275275
| Some file ->
276276
showModule ~docstring:file.structure.docstring ~name:file.moduleName ~file
277277
~package None)
278-
| Typed (_, _, Definition (_, (Field _ | Constructor _))) -> None
278+
| Typed (_, t, Definition (_, (Field _ | Constructor _))) -> (
279+
let fromType typ =
280+
hoverWithExpandedTypes ~file ~package ~supportsMarkdownLinks typ
281+
in
282+
let t = Shared.dig t in
283+
Some (fromType t))
279284
| Constant t ->
280285
Some
281286
(Markdown.codeBlock

tests/analysis_tests/tests/src/Hover.res

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -281,3 +281,6 @@ module Arr = Belt.Array
281281

282282
type aliased = variant
283283
// ^hov
284+
285+
let _ = String.length("meh")
286+
// ^hov

tests/analysis_tests/tests/src/expected/Hover.res.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -348,3 +348,6 @@ Hover src/Hover.res 278:8
348348
Hover src/Hover.res 281:6
349349
{"contents": {"kind": "markdown", "value": "```rescript\ntype aliased = variant\n```\n\n---\n\n```\n \n```\n```rescript\ntype variant = CoolVariant | OtherCoolVariant\n```\nGo to: [Type definition](command:rescript-vscode.go_to_location?%5B%22Hover.res%22%2C251%2C0%5D)\n"}}
350350

351+
Hover src/Hover.res 284:10
352+
{"contents": {"kind": "markdown", "value": "\n\nFunctions for interacting with JavaScript strings.\nSee: [`String`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String).\n\n---\n\n```\n \n```\n```rescript\nmodule Stdlib_String: {\n type t = string\n let make: 'a => string\n let fromCharCode: int => string\n let fromCharCodeMany: array<int> => string\n let fromCodePoint: int => string\n let fromCodePointMany: array<int> => string\n let equal: (string, string) => bool\n let compare: (string, string) => Ordering.t\n let length: string => int\n let get: (string, int) => option<string>\n let getUnsafe: (string, int) => string\n let charAt: (string, int) => string\n let charCodeAt: (string, int) => option<int>\n let charCodeAtUnsafe: (string, int) => int\n let codePointAt: (string, int) => option<int>\n let concat: (string, string) => string\n let concatMany: (string, array<string>) => string\n let endsWith: (string, string) => bool\n let endsWithFrom: (string, string, int) => bool\n let includes: (string, string) => bool\n let includesFrom: (string, string, int) => bool\n let indexOf: (string, string) => int\n let indexOfOpt: (string, string) => option<int>\n let indexOfFrom: (string, string, int) => int\n let lastIndexOf: (string, string) => int\n let lastIndexOfOpt: (string, string) => option<int>\n let lastIndexOfFrom: (string, string, int) => int\n let match: (string, RegExp.t) => option<\\\"RegExp.Result\".t>\n let normalize: string => string\n type normalizeForm = [#NFC | #NFD | #NFKC | #NFKD]\n let normalizeByForm: (string, normalizeForm) => string\n let repeat: (string, int) => string\n let replace: (string, string, string) => string\n let replaceRegExp: (string, RegExp.t, string) => string\n let replaceAll: (string, string, string) => string\n let replaceAllRegExp: (string, RegExp.t, string) => string\n let unsafeReplaceRegExpBy0: (\n string,\n RegExp.t,\n (~match: string, ~offset: int, ~input: string) => string,\n) => string\n let unsafeReplaceRegExpBy1: (\n string,\n RegExp.t,\n (\n ~match: string,\n ~group1: string,\n ~offset: int,\n ~input: string,\n ) => string,\n) => string\n let unsafeReplaceRegExpBy2: (\n string,\n RegExp.t,\n (\n ~match: string,\n ~group1: string,\n ~group2: string,\n ~offset: int,\n ~input: string,\n ) => string,\n) => string\n let unsafeReplaceRegExpBy3: (\n string,\n RegExp.t,\n (\n ~match: string,\n ~group1: string,\n ~group2: string,\n ~group3: string,\n ~offset: int,\n ~input: string,\n ) => string,\n) => string\n let replaceRegExpBy0Unsafe: (\n string,\n RegExp.t,\n (~match: string, ~offset: int, ~input: string) => string,\n) => string\n let replaceRegExpBy1Unsafe: (\n string,\n RegExp.t,\n (\n ~match: string,\n ~group1: string,\n ~offset: int,\n ~input: string,\n ) => string,\n) => string\n let replaceRegExpBy2Unsafe: (\n string,\n RegExp.t,\n (\n ~match: string,\n ~group1: string,\n ~group2: string,\n ~offset: int,\n ~input: string,\n ) => string,\n) => string\n let replaceRegExpBy3Unsafe: (\n string,\n RegExp.t,\n (\n ~match: string,\n ~group1: string,\n ~group2: string,\n ~group3: string,\n ~offset: int,\n ~input: string,\n ) => string,\n) => string\n let search: (string, RegExp.t) => int\n let searchOpt: (string, RegExp.t) => option<int>\n let isEmpty: string => bool\n let capitalize: string => string\n let slice: (string, ~start: int, ~end: int=?) => string\n let sliceToEnd: (string, ~start: int) => string\n let split: (string, string) => array<string>\n let splitAtMost: (string, string, ~limit: int) => array<string>\n let splitByRegExp: (string, RegExp.t) => array<option<string>>\n let splitByRegExpAtMost: (string, RegExp.t, ~limit: int) => array<option<string>>\n let startsWith: (string, string) => bool\n let startsWithFrom: (string, string, int) => bool\n let substring: (string, ~start: int, ~end: int=?) => string\n let substringToEnd: (string, ~start: int) => string\n let toLowerCase: string => string\n let toLocaleLowerCase: string => string\n let toUpperCase: string => string\n let toLocaleUpperCase: string => string\n let trim: string => string\n let trimStart: string => string\n let trimEnd: string => string\n let padStart: (string, int, string) => string\n let padEnd: (string, int, string) => string\n let localeCompare: (string, string) => float\n let ignore: string => unit\n let getSymbolUnsafe: (string, Symbol.t) => 'a\n}\n```"}}
353+

0 commit comments

Comments
 (0)