A file glob pattern to match file paths against. This can either be a glob pattern string
(like **/*.{ts,js}
or *.{ts,js}
) or a relative pattern.
Glob patterns can have the following syntax:
*
to match one or more characters in a path segment?
to match on one character in a path segment**
to match any number of path segments, including none{}
to group conditions (e.g. **/*.{ts,js}
matches all TypeScript and JavaScript files)[]
to declare a range of characters to match in a path segment (e.g., example.[0-9]
to match on example.0
, example.1
, …)[!...]
to negate a range of characters to match in a path segment (e.g., example.[!0-9]
to match on example.a
, example.b
, but not example.0
)Note: a backslash (\
) is not valid within a glob pattern. If you have an existing file
path to match against, consider to use the relative pattern support
that takes care of converting any backslash into slash. Otherwise, make sure to convert
any backslash to slash when creating the glob pattern.
A language selector is the combination of one or many language identifiers and language filters.
Note that a document selector that is just a language identifier selects all documents, even those that are not saved on disk. Only use such selectors when a feature works without further context, e.g. without the need to resolve related 'files'.
A provider result represents the values a provider, like the HoverProvider
,
may return. For once this is the actual result type T
, like Hover
, or a thenable that resolves
to that type T
. In addition, null
and undefined
can be returned - either directly or from a
thenable.
The snippets below are all valid implementations of the HoverProvider
:
let a: HoverProvider = {
provideHover(doc, pos, token): ProviderResult<Hover> {
return new Hover('Hello World');
}
}
let b: HoverProvider = {
provideHover(doc, pos, token): ProviderResult<Hover> {
return new Promise(resolve => {
resolve(new Hover('Hello World'));
});
}
}
let c: HoverProvider = {
provideHover(doc, pos, token): ProviderResult<Hover> {
return; // undefined
}
}
Information about where a symbol is defined.
Provides additional metadata over normal Location definitions, including the range of the defining symbol
The definition of a symbol represented as one or many locations. For most programming languages there is only one location at which a symbol is defined.
The declaration of a symbol representation as one or many locations or location links.
MarkedString can be used to render human-readable text. It is either a markdown string or a code-block that provides a language and a code snippet. Note that markdown strings will be sanitized - that means html will be escaped.
Inline value information can be provided by different means:
A tuple of two characters, like a pair of opening and closing brackets.
The configuration scope which can be a a 'resource' or a languageId or both or a 'TextDocument' or a 'WorkspaceFolder'
Visual Studio Code 的版本。