The workspace symbol provider interface defines the contract between extensions and the symbol search-feature.
Fields
optionalresolveWorkspaceSymbol:Null<(symbol:T, token:CancellationToken) ‑> ProviderResult<T>>
Given a symbol fill in its {@link SymbolInformation.location location}. This method is called whenever a symbol is selected in the UI. Providers can implement this method and return incomplete symbols from {@linkcode WorkspaceSymbolProvider.provideWorkspaceSymbols provideWorkspaceSymbols} which often helps to improve performance.
Parameters:
symbol | The symbol that is to be resolved. Guaranteed to be an instance of an object returned from an
earlier call to |
---|---|
token | A cancellation token. |
Returns:
The resolved symbol or a thenable that resolves to that. When no result is returned,
the given symbol
is used.
provideWorkspaceSymbols(query:String, token:CancellationToken):ProviderResult<Array<T>>
Project-wide search for a symbol matching the given query string.
The query
-parameter should be interpreted in a relaxed way as the editor will apply its own highlighting
and scoring on the results. A good rule of thumb is to match case-insensitive and to simply check that the
characters of query appear in their order in a candidate symbol. Don't use prefix, substring, or similar
strict matching.
To improve performance implementors can implement resolveWorkspaceSymbol
and then provide symbols with partial
{@link SymbolInformation.location location}-objects, without a range
defined. The editor will then call
resolveWorkspaceSymbol
for selected symbols only, e.g. when opening a workspace symbol.
Parameters:
query | A query string, can be the empty string in which case all symbols should be returned. |
---|---|
token | A cancellation token. |
Returns:
An array of document highlights or a thenable that resolves to such. The lack of a result can be
signaled by returning undefined
, null
, or an empty array.