Skip to content

Commit e237953

Browse files
authored
Add capability to signal relative pattern support in document filters. (#1571)
1 parent 0671381 commit e237953

2 files changed

Lines changed: 30 additions & 4 deletions

File tree

client/src/common/client.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2045,6 +2045,9 @@ export abstract class BaseLanguageClient implements FeatureClient<Middleware, La
20452045
diagnostics.codeDescriptionSupport = true;
20462046
diagnostics.dataSupport = true;
20472047

2048+
const textDocumentFilter = ensure(ensure(result, 'textDocument')!, 'filters')!;
2049+
textDocumentFilter.relativePatternSupport = true;
2050+
20482051
const windowCapabilities = ensure(result, 'window')!;
20492052
const showMessage = ensure(windowCapabilities, 'showMessage')!;
20502053
showMessage.messageActionItem = { additionalPropertiesSupport: true };

protocol/src/common/protocol.ts

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,9 @@ export type TextDocumentFilterLanguage = {
153153
/**
154154
* A glob pattern, like **​/*.{ts,js}. See TextDocumentFilter for examples.
155155
*
156-
* @since 3.18.0 - support for relative patterns.
156+
* @since 3.18.0 - support for relative patterns. Whether clients support
157+
* relative patterns depends on the client capability
158+
* `textDocuments.filters.relativePatternSupport`.
157159
*/
158160
pattern?: GlobPattern;
159161
};
@@ -177,7 +179,9 @@ export type TextDocumentFilterScheme = {
177179
/**
178180
* A glob pattern, like **​/*.{ts,js}. See TextDocumentFilter for examples.
179181
*
180-
* @since 3.18.0 - support for relative patterns.
182+
* @since 3.18.0 - support for relative patterns. Whether clients support
183+
* relative patterns depends on the client capability
184+
* `textDocuments.filters.relativePatternSupport`.
181185
*/
182186
pattern?: GlobPattern;
183187
};
@@ -201,7 +205,9 @@ export type TextDocumentFilterPattern = {
201205
/**
202206
* A glob pattern, like **​/*.{ts,js}. See TextDocumentFilter for examples.
203207
*
204-
* @since 3.18.0 - support for relative patterns.
208+
* @since 3.18.0 - support for relative patterns. Whether clients support
209+
* relative patterns depends on the client capability
210+
* `textDocuments.filters.relativePatternSupport`.
205211
*/
206212
pattern: GlobPattern;
207213
};
@@ -370,7 +376,7 @@ export namespace NotebookCellTextDocumentFilter {
370376
* A document filter describes a top level text document or
371377
* a notebook cell document.
372378
*
373-
* @since 3.17.0 - proposed support for NotebookCellTextDocumentFilter.
379+
* @since 3.17.0 - support for NotebookCellTextDocumentFilter.
374380
*/
375381
export type DocumentFilter = TextDocumentFilter | NotebookCellTextDocumentFilter;
376382

@@ -682,6 +688,13 @@ export interface TextDocumentClientCapabilities {
682688
*/
683689
synchronization?: TextDocumentSyncClientCapabilities;
684690

691+
/**
692+
* Defines which filters the client supports.
693+
*
694+
* @since 3.18.0
695+
*/
696+
filters?: TextDocumentFilterClientCapabilities;
697+
685698
/**
686699
* Capabilities specific to the `textDocument/completion` request.
687700
*/
@@ -1835,6 +1848,16 @@ export namespace TelemetryEventNotification {
18351848
export const type = new ProtocolNotificationType<LSPAny, void>(method);
18361849
}
18371850

1851+
export interface TextDocumentFilterClientCapabilities {
1852+
1853+
/**
1854+
* The client supports Relative Patterns.
1855+
*
1856+
* @since 3.18.0
1857+
*/
1858+
relativePatternSupport?: boolean;
1859+
}
1860+
18381861
//---- Text document notifications ----
18391862

18401863
export interface TextDocumentSyncClientCapabilities {

0 commit comments

Comments
 (0)