Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion analysis/src/Hover.ml
Original file line number Diff line number Diff line change
Expand Up @@ -275,7 +275,12 @@ let newHover ~full:{file; package} ~supportsMarkdownLinks locItem =
| Some file ->
showModule ~docstring:file.structure.docstring ~name:file.moduleName ~file
~package None)
| Typed (_, _, Definition (_, (Field _ | Constructor _))) -> None
| Typed (_, t, Definition (_, (Field _ | Constructor _))) ->
let fromType typ =
hoverWithExpandedTypes ~file ~package ~supportsMarkdownLinks typ
in
let t = Shared.dig t in
Some (fromType t)
| Constant t ->
Some
(Markdown.codeBlock
Expand Down
3 changes: 3 additions & 0 deletions tests/analysis_tests/tests/src/Hover.res
Original file line number Diff line number Diff line change
Expand Up @@ -281,3 +281,6 @@ module Arr = Belt.Array

type aliased = variant
// ^hov

let _ = String.length("meh")
// ^hov
3 changes: 3 additions & 0 deletions tests/analysis_tests/tests/src/expected/Hover.res.txt
Original file line number Diff line number Diff line change
Expand Up @@ -348,3 +348,6 @@ Hover src/Hover.res 278:8
Hover src/Hover.res 281:6
{"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"}}

Hover src/Hover.res 284:10
{"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```"}}

Loading