@stylelint/language-server 1.1.0 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/di/module.d.ts +4 -0
- package/build/di/module.js +1 -1
- package/build/di/module.js.map +1 -1
- package/build/server/decorators.d.ts +26 -9
- package/build/server/decorators.js +28 -4
- package/build/server/decorators.js.map +1 -1
- package/build/server/services/lsp/code-actions/code-action.service.d.ts +1 -1
- package/build/server/services/lsp/code-actions/code-action.service.js +7 -4
- package/build/server/services/lsp/code-actions/code-action.service.js.map +1 -1
- package/build/server/services/lsp/completion.service.d.ts +1 -1
- package/build/server/services/lsp/completion.service.js +3 -2
- package/build/server/services/lsp/completion.service.js.map +1 -1
- package/build/server/services/lsp/validator.service.js +47 -1
- package/build/server/services/lsp/validator.service.js.map +1 -1
- package/build/server/services/workspace/workspace-folder.service.d.ts +5 -0
- package/build/server/services/workspace/workspace-folder.service.js +34 -11
- package/build/server/services/workspace/workspace-folder.service.js.map +1 -1
- package/build/server/services/workspace/workspace-options.service.js +20 -0
- package/build/server/services/workspace/workspace-options.service.js.map +1 -1
- package/build/server/utils/lsp/index.d.ts +1 -0
- package/build/server/utils/lsp/index.js +1 -0
- package/build/server/utils/lsp/index.js.map +1 -1
- package/build/server/utils/lsp/throw-if-cancelled.d.ts +6 -0
- package/build/server/utils/lsp/throw-if-cancelled.js +11 -0
- package/build/server/utils/lsp/throw-if-cancelled.js.map +1 -0
- package/package.json +1 -1
package/build/di/module.d.ts
CHANGED
|
@@ -20,6 +20,10 @@ export interface ProviderDefinition<T = unknown> {
|
|
|
20
20
|
export interface ModuleMetadata {
|
|
21
21
|
providers: Map<InjectionToken<unknown>, ProviderDefinition>;
|
|
22
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* Describes an injection token for error messages.
|
|
25
|
+
*/
|
|
26
|
+
export declare function describeToken(token: InjectionToken<unknown>): string;
|
|
23
27
|
/**
|
|
24
28
|
* Creates metadata for a dependency injection module.
|
|
25
29
|
*
|
package/build/di/module.js
CHANGED
|
@@ -2,7 +2,7 @@ import { getInjectMetadata } from './inject.js';
|
|
|
2
2
|
/**
|
|
3
3
|
* Describes an injection token for error messages.
|
|
4
4
|
*/
|
|
5
|
-
function describeToken(token) {
|
|
5
|
+
export function describeToken(token) {
|
|
6
6
|
if (typeof token === 'function') {
|
|
7
7
|
return token.name || '<anonymous class>';
|
|
8
8
|
}
|
package/build/di/module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/di/module.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,iBAAiB,EAAyB,MAAM,aAAa,CAAC;AA+BtF;;GAEG;AACH,
|
|
1
|
+
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/di/module.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import type { HandlerResult, TextDocumentChangeEvent } from 'vscode-languageserver';
|
|
1
|
+
import type { HandlerResult, ResultProgressReporter, TextDocumentChangeEvent, WorkDoneProgressReporter } from 'vscode-languageserver';
|
|
2
2
|
import type LSP from 'vscode-languageserver-protocol';
|
|
3
3
|
import type { TextDocument } from 'vscode-languageserver-textdocument';
|
|
4
|
-
import { Constructable } from '../di/index.js';
|
|
4
|
+
import { Constructable, type FactoryRegistration, type InjectionToken, type Scope } from '../di/index.js';
|
|
5
5
|
import { ClassDecoratorFunction, CompatibleMethodDecorator, MethodDecoratorFunction } from '../di/types.js';
|
|
6
|
+
import type { PublicOnlyIfObject } from '../shared/types.js';
|
|
6
7
|
import { CommandId } from './types.js';
|
|
7
8
|
import { MaybeAsync } from './utils/index.js';
|
|
8
9
|
declare const lspServiceMetadataKey = "__languageServerServiceMetadata__";
|
|
@@ -47,9 +48,9 @@ export type ConnectionHandlerMetadata = {
|
|
|
47
48
|
handler: ConnectionHandlerMap[K];
|
|
48
49
|
};
|
|
49
50
|
}[ConnectionHandlerKind];
|
|
50
|
-
type CompletionRequestHandler = (params: LSP.CompletionParams) => Promise<LSP.CompletionItem[] | LSP.CompletionList | undefined | null>;
|
|
51
|
-
type CodeActionRequestHandler = (params: LSP.CodeActionParams) => Promise<(LSP.Command | LSP.CodeAction)[] | undefined | null>;
|
|
52
|
-
type DocumentFormattingRequestHandler = (params: LSP.DocumentFormattingParams) => Promise<LSP.TextEdit[] | undefined | null>;
|
|
51
|
+
type CompletionRequestHandler = (params: LSP.CompletionParams, token: LSP.CancellationToken, workDone: WorkDoneProgressReporter, resultProgress?: ResultProgressReporter<LSP.CompletionItem[]>) => Promise<LSP.CompletionItem[] | LSP.CompletionList | undefined | null>;
|
|
52
|
+
type CodeActionRequestHandler = (params: LSP.CodeActionParams, token: LSP.CancellationToken, workDone: WorkDoneProgressReporter, resultProgress?: ResultProgressReporter<(LSP.Command | LSP.CodeAction)[]>) => Promise<(LSP.Command | LSP.CodeAction)[] | undefined | null>;
|
|
53
|
+
type DocumentFormattingRequestHandler = (params: LSP.DocumentFormattingParams, token: LSP.CancellationToken, workDone: WorkDoneProgressReporter, resultProgress?: ResultProgressReporter<never>) => Promise<LSP.TextEdit[] | undefined | null>;
|
|
53
54
|
type AsyncNotificationHandler0 = MaybeAsync<() => void>;
|
|
54
55
|
type AsyncNotificationHandler<P> = MaybeAsync<(params: P) => void>;
|
|
55
56
|
type AsyncGenericNotificationHandler = MaybeAsync<LSP.GenericNotificationHandler>;
|
|
@@ -105,17 +106,33 @@ export declare function notification(): CompatibleMethodDecorator<AsyncStarNotif
|
|
|
105
106
|
/**
|
|
106
107
|
* Marks a method as a handler for a specific completion request.
|
|
107
108
|
*/
|
|
108
|
-
export declare function completionRequest():
|
|
109
|
+
export declare function completionRequest(): CompatibleMethodDecorator<CompletionRequestHandler>;
|
|
109
110
|
/**
|
|
110
111
|
* Marks a method as a handler for a specific code action request.
|
|
111
112
|
*/
|
|
112
|
-
export declare function codeActionRequest():
|
|
113
|
+
export declare function codeActionRequest(): CompatibleMethodDecorator<CodeActionRequestHandler>;
|
|
113
114
|
/**
|
|
114
115
|
* Marks a method as a handler for a specific document formatting request.
|
|
115
116
|
*/
|
|
116
|
-
export declare function documentFormattingRequest():
|
|
117
|
+
export declare function documentFormattingRequest(): CompatibleMethodDecorator<DocumentFormattingRequestHandler>;
|
|
117
118
|
/**
|
|
118
119
|
* Marks a method as a shutdown handler.
|
|
119
120
|
*/
|
|
120
|
-
export declare function shutdown():
|
|
121
|
+
export declare function shutdown(): CompatibleMethodDecorator<ShutdownHandler>;
|
|
122
|
+
/**
|
|
123
|
+
* Create a stub with `cls.prototype` in its chain, so `instance.constructor`
|
|
124
|
+
* points to `cls`. This satisfies `@lspService()` init hooks that check the
|
|
125
|
+
* constructor for metadata flags. Plain objects from {@link provideTestValue}
|
|
126
|
+
* fail that check.
|
|
127
|
+
*
|
|
128
|
+
* Only copies own enumerable properties from `overrides` via `Object.assign`.
|
|
129
|
+
* Prototype methods on a fake class will not be copied. Use
|
|
130
|
+
* {@link provideTestValue} for non-`@lspService()` stubs.
|
|
131
|
+
*/
|
|
132
|
+
export declare function createLspServiceStub<T extends object>(cls: abstract new (...args: any[]) => T, overrides: Partial<T>): T;
|
|
133
|
+
/**
|
|
134
|
+
* Factory registration wrapper around {@link createLspServiceStub}. Use only
|
|
135
|
+
* for `@lspService()` tokens. Use {@link provideTestValue} otherwise.
|
|
136
|
+
*/
|
|
137
|
+
export declare function provideLspServiceStub<T extends object>(token: InjectionToken<T> & (abstract new (...args: any[]) => T), factory: () => Partial<PublicOnlyIfObject<T>>, scope?: Scope): FactoryRegistration<T>;
|
|
121
138
|
export {};
|
|
@@ -7,9 +7,10 @@
|
|
|
7
7
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
8
8
|
/* eslint-disable func-names */
|
|
9
9
|
/* eslint-disable @typescript-eslint/unbound-method */
|
|
10
|
-
import { registerInitializationHook, runtimeService, } from '../di/index.js';
|
|
10
|
+
import { describeToken, provideTestValue, registerInitializationHook, runtimeService, } from '../di/index.js';
|
|
11
11
|
import { NotificationService } from './services/infrastructure/notification.service.js';
|
|
12
12
|
import { lspConnectionToken } from './tokens.js';
|
|
13
|
+
import { isObject } from './utils/index.js';
|
|
13
14
|
const lspServiceMetadataKey = '__languageServerServiceMetadata__';
|
|
14
15
|
const lspServiceConstructorMetadataKey = '__isLanguageServerService__';
|
|
15
16
|
/**
|
|
@@ -94,11 +95,11 @@ function registerNotificationHandlers(metadata, resolve) {
|
|
|
94
95
|
function registerConnectionHandler(connection, descriptor) {
|
|
95
96
|
switch (descriptor.kind) {
|
|
96
97
|
case 'completion':
|
|
97
|
-
return connection.onCompletion((params,
|
|
98
|
+
return connection.onCompletion((params, token, workDone, resultProgress) => descriptor.handler(params, token, workDone, resultProgress));
|
|
98
99
|
case 'codeAction':
|
|
99
|
-
return connection.onCodeAction((params,
|
|
100
|
+
return connection.onCodeAction((params, token, workDone, resultProgress) => descriptor.handler(params, token, workDone, resultProgress));
|
|
100
101
|
case 'documentFormatting':
|
|
101
|
-
return connection.onDocumentFormatting((params,
|
|
102
|
+
return connection.onDocumentFormatting((params, token, workDone, resultProgress) => descriptor.handler(params, token, workDone, resultProgress));
|
|
102
103
|
default: {
|
|
103
104
|
const neverDescriptor = descriptor;
|
|
104
105
|
throw new Error(`Unsupported connection handler kind: ${String(neverDescriptor)}`);
|
|
@@ -269,4 +270,27 @@ export function shutdown() {
|
|
|
269
270
|
});
|
|
270
271
|
};
|
|
271
272
|
}
|
|
273
|
+
/**
|
|
274
|
+
* Create a stub with `cls.prototype` in its chain, so `instance.constructor`
|
|
275
|
+
* points to `cls`. This satisfies `@lspService()` init hooks that check the
|
|
276
|
+
* constructor for metadata flags. Plain objects from {@link provideTestValue}
|
|
277
|
+
* fail that check.
|
|
278
|
+
*
|
|
279
|
+
* Only copies own enumerable properties from `overrides` via `Object.assign`.
|
|
280
|
+
* Prototype methods on a fake class will not be copied. Use
|
|
281
|
+
* {@link provideTestValue} for non-`@lspService()` stubs.
|
|
282
|
+
*/
|
|
283
|
+
export function createLspServiceStub(cls, overrides) {
|
|
284
|
+
if (!isObject(cls.prototype)) {
|
|
285
|
+
throw new Error(`Cannot create class stub for non-constructable token ${describeToken(cls)}`);
|
|
286
|
+
}
|
|
287
|
+
return Object.assign(Object.create(cls.prototype), overrides);
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* Factory registration wrapper around {@link createLspServiceStub}. Use only
|
|
291
|
+
* for `@lspService()` tokens. Use {@link provideTestValue} otherwise.
|
|
292
|
+
*/
|
|
293
|
+
export function provideLspServiceStub(token, factory, scope) {
|
|
294
|
+
return provideTestValue(token, () => createLspServiceStub(token, factory()), scope);
|
|
295
|
+
}
|
|
272
296
|
//# sourceMappingURL=decorators.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/server/decorators.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,4EAA4E;AAC5E,0EAA0E;AAC1E,2EAA2E;AAC3E,kDAAkD;AAClD,+DAA+D;AAC/D,uDAAuD;AACvD,+BAA+B;AAC/B,sDAAsD;
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/server/decorators.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,5 +14,5 @@ export declare class CodeActionService {
|
|
|
14
14
|
openRuleDocumentation(params: {
|
|
15
15
|
uri: string;
|
|
16
16
|
} | undefined): Promise<object>;
|
|
17
|
-
handleCodeAction(params: LSP.CodeActionParams): Promise<(LSP.Command | LSP.CodeAction)[] | undefined | null>;
|
|
17
|
+
handleCodeAction(params: LSP.CodeActionParams, token: LSP.CancellationToken): Promise<(LSP.Command | LSP.CodeAction)[] | undefined | null>;
|
|
18
18
|
}
|
|
@@ -34,7 +34,7 @@ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn,
|
|
|
34
34
|
};
|
|
35
35
|
import * as LSP from 'vscode-languageserver-protocol';
|
|
36
36
|
import { inject } from '../../../../di/index.js';
|
|
37
|
-
import { getEditInfo, RuleCodeActionsCollection } from '../../../utils/index.js';
|
|
37
|
+
import { getEditInfo, RuleCodeActionsCollection, throwIfCancelled } from '../../../utils/index.js';
|
|
38
38
|
import { codeActionRequest, command, initialize, lspService } from '../../../decorators.js';
|
|
39
39
|
import { isDisableReportRule } from '../../../stylelint/index.js';
|
|
40
40
|
import { lspConnectionToken, textDocumentsToken } from '../../../tokens.js';
|
|
@@ -127,10 +127,11 @@ let CodeActionService = (() => {
|
|
|
127
127
|
}
|
|
128
128
|
return {};
|
|
129
129
|
}
|
|
130
|
-
async handleCodeAction(params) {
|
|
130
|
+
async handleCodeAction(params, token) {
|
|
131
131
|
const { textDocument, context } = params;
|
|
132
132
|
const { uri } = textDocument;
|
|
133
133
|
this.#logger?.debug('Received onCodeAction', { uri, context });
|
|
134
|
+
throwIfCancelled(token);
|
|
134
135
|
const document = this.#documents.get(uri);
|
|
135
136
|
if (!document) {
|
|
136
137
|
this.#logger?.debug('Unknown document, ignoring', { uri });
|
|
@@ -143,7 +144,8 @@ let CodeActionService = (() => {
|
|
|
143
144
|
});
|
|
144
145
|
return [];
|
|
145
146
|
}
|
|
146
|
-
|
|
147
|
+
throwIfCancelled(token);
|
|
148
|
+
const actions = await this.#getCodeActions(document, context, token);
|
|
147
149
|
this.#logger?.debug('Returning code actions', { uri, count: actions.length });
|
|
148
150
|
return actions;
|
|
149
151
|
}
|
|
@@ -151,11 +153,12 @@ let CodeActionService = (() => {
|
|
|
151
153
|
const options = await this.#options.getOptions(document.uri);
|
|
152
154
|
return options.validate.includes(document.languageId);
|
|
153
155
|
}
|
|
154
|
-
async #getCodeActions(document, context) {
|
|
156
|
+
async #getCodeActions(document, context, token) {
|
|
155
157
|
const only = context.only && new Set(context.only);
|
|
156
158
|
const fixAllActions = [];
|
|
157
159
|
if (only?.has(LSP.CodeActionKind.SourceFixAll) ||
|
|
158
160
|
only?.has(StylelintCodeActionKind.StylelintSourceFixAll)) {
|
|
161
|
+
throwIfCancelled(token);
|
|
159
162
|
this.#logger?.debug('Creating "source-fix-all" code action');
|
|
160
163
|
const action = await this.#getAutoFixAllAction(document);
|
|
161
164
|
if (action) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-action.service.js","sourceRoot":"","sources":["../../../../../src/server/services/lsp/code-actions/code-action.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,OAAO,KAAK,GAAG,MAAM,gCAAgC,CAAC;AAItD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"code-action.service.js","sourceRoot":"","sources":["../../../../../src/server/services/lsp/code-actions/code-action.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,5 +8,5 @@ export declare class CompletionService {
|
|
|
8
8
|
#private;
|
|
9
9
|
constructor(documents: TextDocuments<TextDocument>, options: WorkspaceOptionsService, diagnostics: DocumentDiagnosticsService, loggingService: LoggingService);
|
|
10
10
|
onInitialize(): Partial<LSP.InitializeResult>;
|
|
11
|
-
handleCompletion(params: LSP.CompletionParams): Promise<LSP.CompletionItem[] | LSP.CompletionList | undefined | null>;
|
|
11
|
+
handleCompletion(params: LSP.CompletionParams, token: LSP.CancellationToken): Promise<LSP.CompletionItem[] | LSP.CompletionList | undefined | null>;
|
|
12
12
|
}
|
|
@@ -34,7 +34,7 @@ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn,
|
|
|
34
34
|
};
|
|
35
35
|
import * as LSP from 'vscode-languageserver-protocol';
|
|
36
36
|
import { inject } from '../../../di/index.js';
|
|
37
|
-
import { getDisableType, createDisableCompletionItem } from '../../utils/index.js';
|
|
37
|
+
import { getDisableType, createDisableCompletionItem, throwIfCancelled, } from '../../utils/index.js';
|
|
38
38
|
import { completionRequest, initialize, lspService } from '../../decorators.js';
|
|
39
39
|
import { DisableMetadataLookupTable, DisableReportRuleNames } from '../../stylelint/index.js';
|
|
40
40
|
import { textDocumentsToken } from '../../tokens.js';
|
|
@@ -91,7 +91,7 @@ let CompletionService = (() => {
|
|
|
91
91
|
return (options.validate.includes(document.languageId) &&
|
|
92
92
|
options.snippet.includes(document.languageId));
|
|
93
93
|
}
|
|
94
|
-
async handleCompletion(params) {
|
|
94
|
+
async handleCompletion(params, token) {
|
|
95
95
|
const { textDocument, position } = params;
|
|
96
96
|
const { uri } = textDocument;
|
|
97
97
|
this.#logger?.debug('Received onCompletion', { uri, position });
|
|
@@ -110,6 +110,7 @@ let CompletionService = (() => {
|
|
|
110
110
|
}
|
|
111
111
|
return [];
|
|
112
112
|
}
|
|
113
|
+
throwIfCancelled(token);
|
|
113
114
|
const diagnostics = this.#diagnostics.getDiagnostics(uri);
|
|
114
115
|
if (!diagnostics || diagnostics.length === 0) {
|
|
115
116
|
const items = [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completion.service.js","sourceRoot":"","sources":["../../../../src/server/services/lsp/completion.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,GAAG,MAAM,gCAAgC,CAAC;AAKtD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,
|
|
1
|
+
{"version":3,"file":"completion.service.js","sourceRoot":"","sources":["../../../../src/server/services/lsp/completion.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -46,6 +46,11 @@ import { DocumentDiagnosticsService } from '../documents/document-diagnostics.se
|
|
|
46
46
|
import { loggingServiceToken } from '../infrastructure/logging.service.js';
|
|
47
47
|
import { StylelintRunnerService } from '../stylelint-runtime/stylelint-runner.service.js';
|
|
48
48
|
import { WorkspaceOptionsService } from '../workspace/workspace-options.service.js';
|
|
49
|
+
/**
|
|
50
|
+
* Default delay, in milliseconds, before a document change triggers validation.
|
|
51
|
+
* This prevents redundant lint cycles during rapid typing.
|
|
52
|
+
*/
|
|
53
|
+
const validationDebounceDelay = 300;
|
|
49
54
|
let ValidatorLspService = (() => {
|
|
50
55
|
let _classDecorators = [lspService(), inject({
|
|
51
56
|
inject: [
|
|
@@ -106,6 +111,8 @@ let ValidatorLspService = (() => {
|
|
|
106
111
|
#logger;
|
|
107
112
|
#uri;
|
|
108
113
|
#publishedUris = new Set();
|
|
114
|
+
#debounceTimers = new Map();
|
|
115
|
+
#pendingValidations = new Map();
|
|
109
116
|
constructor(documents, options, diagnostics, runner, connection, loggingService, uriModule) {
|
|
110
117
|
this.#documents = documents;
|
|
111
118
|
this.#options = options;
|
|
@@ -131,7 +138,7 @@ let ValidatorLspService = (() => {
|
|
|
131
138
|
async handleDocumentChanged({ document }) {
|
|
132
139
|
const options = await this.#options.getOptions(document.uri);
|
|
133
140
|
if (options.run === 'onType') {
|
|
134
|
-
await this.#
|
|
141
|
+
await this.#validateDebounced(document);
|
|
135
142
|
}
|
|
136
143
|
}
|
|
137
144
|
async handleDocumentSaved({ document }) {
|
|
@@ -141,13 +148,41 @@ let ValidatorLspService = (() => {
|
|
|
141
148
|
}
|
|
142
149
|
}
|
|
143
150
|
async handleDocumentClosed({ document }) {
|
|
151
|
+
this.#cancelPendingValidation(document.uri);
|
|
144
152
|
await this.#clearDiagnostics(document);
|
|
145
153
|
}
|
|
146
154
|
async #shouldValidate(document) {
|
|
147
155
|
const options = await this.#options.getOptions(document.uri);
|
|
148
156
|
return options.validate.includes(document.languageId);
|
|
149
157
|
}
|
|
158
|
+
/**
|
|
159
|
+
* Schedules a debounced validation for the document. If a previous
|
|
160
|
+
* debounce timer exists for the same URI it is cancelled first, so only
|
|
161
|
+
* the latest edit triggers a lint.
|
|
162
|
+
*/
|
|
163
|
+
#validateDebounced(document) {
|
|
164
|
+
return new Promise((resolve) => {
|
|
165
|
+
this.#cancelPendingValidation(document.uri);
|
|
166
|
+
const timer = setTimeout(() => {
|
|
167
|
+
this.#debounceTimers.delete(document.uri);
|
|
168
|
+
const validation = this.#validate(document).finally(() => {
|
|
169
|
+
this.#pendingValidations.delete(document.uri);
|
|
170
|
+
});
|
|
171
|
+
this.#pendingValidations.set(document.uri, validation);
|
|
172
|
+
validation.then(resolve, resolve);
|
|
173
|
+
}, validationDebounceDelay);
|
|
174
|
+
this.#debounceTimers.set(document.uri, timer);
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
#cancelPendingValidation(uri) {
|
|
178
|
+
const timer = this.#debounceTimers.get(uri);
|
|
179
|
+
if (timer) {
|
|
180
|
+
clearTimeout(timer);
|
|
181
|
+
this.#debounceTimers.delete(uri);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
150
184
|
async #validate(document) {
|
|
185
|
+
const versionBefore = document.version;
|
|
151
186
|
if (!(await this.#shouldValidate(document))) {
|
|
152
187
|
if (this.#diagnostics.getDiagnostics(document.uri).length > 0) {
|
|
153
188
|
this.#logger?.debug('Document should not be validated, clearing diagnostics', {
|
|
@@ -169,6 +204,17 @@ let ValidatorLspService = (() => {
|
|
|
169
204
|
this.#logger?.debug('No lint result, ignoring', { uri: document.uri });
|
|
170
205
|
return;
|
|
171
206
|
}
|
|
207
|
+
// If the document was edited while the lint was running, discard the
|
|
208
|
+
// stale result. A new validation will be triggered by the edit.
|
|
209
|
+
const currentDocument = this.#documents.get(document.uri);
|
|
210
|
+
if (currentDocument && currentDocument.version !== versionBefore) {
|
|
211
|
+
this.#logger?.debug('Discarding stale lint result', {
|
|
212
|
+
uri: document.uri,
|
|
213
|
+
lintedVersion: versionBefore,
|
|
214
|
+
currentVersion: currentDocument.version,
|
|
215
|
+
});
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
172
218
|
this.#logger?.debug('Sending diagnostics', {
|
|
173
219
|
uri: document.uri,
|
|
174
220
|
diagnostics: result.diagnostics,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.service.js","sourceRoot":"","sources":["../../../../src/server/services/lsp/validator.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,OAAY,EACX,kCAAkC,EAClC,iCAAiC,GACjC,MAAM,gCAAgC,CAAC;AAIxC,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EACN,OAAO,EACP,UAAU,EACV,UAAU,EACV,YAAY,EACZ,iBAAiB,GACjB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACzF,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,0BAA0B,EAAE,MAAM,8CAA8C,CAAC;AAC1F,OAAO,EAAuB,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAChG,OAAO,EAAE,sBAAsB,EAAE,MAAM,kDAAkD,CAAC;AAC1F,OAAO,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;
|
|
1
|
+
{"version":3,"file":"validator.service.js","sourceRoot":"","sources":["../../../../src/server/services/lsp/validator.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,OAAY,EACX,kCAAkC,EAClC,iCAAiC,GACjC,MAAM,gCAAgC,CAAC;AAIxC,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EACN,OAAO,EACP,UAAU,EACV,UAAU,EACV,YAAY,EACZ,iBAAiB,GACjB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACzF,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,0BAA0B,EAAE,MAAM,8CAA8C,CAAC;AAC1F,OAAO,EAAuB,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAChG,OAAO,EAAE,sBAAsB,EAAE,MAAM,kDAAkD,CAAC;AAC1F,OAAO,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AAEpF;;;GAGG;AACH,MAAM,uBAAuB,GAAG,GAAG,CAAC;IAcvB,mBAAmB;4BAZ/B,UAAU,EAAE,EACZ,MAAM,CAAC;YACP,MAAM,EAAE;gBACP,kBAAkB;gBAClB,uBAAuB;gBACvB,0BAA0B;gBAC1B,sBAAsB;gBACtB,kBAAkB;gBAClB,mBAAmB;gBACnB,cAAc;aACd;SACD,CAAC;;;;;;;;;;;;;;;;;;wCA+BA,UAAU,EAAE;gDAaZ,iBAAiB,CAAC,WAAW,CAAC;iDAK9B,iBAAiB,CAAC,oBAAoB,CAAC;+CASvC,iBAAiB,CAAC,WAAW,CAAC;gDAS9B,iBAAiB,CAAC,YAAY,CAAC;+CAsI/B,YAAY,CAAC,iCAAiC,CAAC,IAAI,CAAC,EACpD,YAAY,CAAC,kCAAkC,CAAC,IAAI,CAAC;4CAKrD,OAAO,CAAC,SAAS,CAAC,gBAAgB,CAAC;qCAWnC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC;YA1L7B,uLAAA,YAAY,6DAUX;YAGD,+MAAM,oBAAoB,6DAEzB;YAGD,kNAAM,qBAAqB,6DAM1B;YAGD,4MAAM,mBAAmB,6DAMxB;YAGD,+MAAM,oBAAoB,6DAGzB;YAoID,uDAAA,yBAAA,KAAK;oBACJ,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAC7F,CAAC,iBAAA,iIAFK,YAAY,yBAAZ,YAAY,6DAEjB;YAGD,mMAAM,gBAAgB,6DAQrB;YAGD,8KAAM,SAAS,6DAgBd;YA1OF,6KAiSC;;;YAjSY,uDAAmB;;QAC/B,UAAU,GADE,mDAAmB,CACS;QACxC,QAAQ,CAA0B;QAClC,YAAY,CAA6B;QACzC,OAAO,CAAyB;QAChC,WAAW,CAAa;QACxB,OAAO,CAAkB;QACzB,IAAI,CAAa;QACjB,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;QACnC,eAAe,GAAG,IAAI,GAAG,EAAyC,CAAC;QACnE,mBAAmB,GAAG,IAAI,GAAG,EAAyB,CAAC;QAEvD,YACC,SAAsC,EACtC,OAAgC,EAChC,WAAuC,EACvC,MAA8B,EAC9B,UAAsB,EACtB,cAA8B,EAC9B,SAAqB;YAErB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;YAC5B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;YACxB,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;YAChC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;YACtB,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;YAC9B,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC;YAChE,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;QACvB,CAAC;QAGD,YAAY;YACX,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;YAEzB,OAAO;gBACN,YAAY,EAAE;oBACb,sBAAsB,EAAE;wBACvB,QAAQ,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,gBAAgB,CAAC;qBAC3D;iBACD;aACD,CAAC;QACH,CAAC;QAGD,KAAK,CAAC,oBAAoB,CAAC,EAAE,QAAQ,EAAyC;YAC7E,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC;QAGD,KAAK,CAAC,qBAAqB,CAAC,EAAE,QAAQ,EAAyC;YAC9E,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAE7D,IAAI,OAAO,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAC9B,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YACzC,CAAC;QACF,CAAC;QAGD,KAAK,CAAC,mBAAmB,CAAC,EAAE,QAAQ,EAAyC;YAC5E,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAE7D,IAAI,OAAO,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAC9B,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAChC,CAAC;QACF,CAAC;QAGD,KAAK,CAAC,oBAAoB,CAAC,EAAE,QAAQ,EAAyC;YAC7E,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC5C,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QACxC,CAAC;QAED,KAAK,CAAC,eAAe,CAAC,QAAsB;YAC3C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAE7D,OAAO,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACvD,CAAC;QAED;;;;WAIG;QACH,kBAAkB,CAAC,QAAsB;YACxC,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBACpC,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAE5C,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;oBAC7B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;oBAE1C,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;wBACxD,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;oBAC/C,CAAC,CAAC,CAAC;oBAEH,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;oBACvD,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBACnC,CAAC,EAAE,uBAAuB,CAAC,CAAC;gBAE5B,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC/C,CAAC,CAAC,CAAC;QACJ,CAAC;QAED,wBAAwB,CAAC,GAAW;YACnC,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAE5C,IAAI,KAAK,EAAE,CAAC;gBACX,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAClC,CAAC;QACF,CAAC;QAED,KAAK,CAAC,SAAS,CAAC,QAAsB;YACrC,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC;YAEvC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;gBAC7C,IAAI,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC/D,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,wDAAwD,EAAE;wBAC7E,GAAG,EAAE,QAAQ,CAAC,GAAG;wBACjB,QAAQ,EAAE,QAAQ,CAAC,UAAU;qBAC7B,CAAC,CAAC;oBACH,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;gBACxC,CAAC;qBAAM,CAAC;oBACP,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,4CAA4C,EAAE;wBACjE,GAAG,EAAE,QAAQ,CAAC,GAAG;wBACjB,QAAQ,EAAE,QAAQ,CAAC,UAAU;qBAC7B,CAAC,CAAC;gBACJ,CAAC;gBAED,OAAO;YACR,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAElD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACb,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,0BAA0B,EAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;gBAEvE,OAAO;YACR,CAAC;YAED,qEAAqE;YACrE,gEAAgE;YAChE,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAE1D,IAAI,eAAe,IAAI,eAAe,CAAC,OAAO,KAAK,aAAa,EAAE,CAAC;gBAClE,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,8BAA8B,EAAE;oBACnD,GAAG,EAAE,QAAQ,CAAC,GAAG;oBACjB,aAAa,EAAE,aAAa;oBAC5B,cAAc,EAAE,eAAe,CAAC,OAAO;iBACvC,CAAC,CAAC;gBAEH,OAAO;YACR,CAAC;YAED,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,qBAAqB,EAAE;gBAC1C,GAAG,EAAE,QAAQ,CAAC,GAAG;gBACjB,WAAW,EAAE,MAAM,CAAC,WAAW;aAC/B,CAAC,CAAC;YAEH,IAAI,CAAC;gBACJ,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC;oBACtC,GAAG,EAAE,QAAQ,CAAC,GAAG;oBACjB,WAAW,EAAE,MAAM,CAAC,WAAW;iBAC/B,CAAC,CAAC;gBACH,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;gBAC5D,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBACtC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,kBAAkB,EAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC/D,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YACvD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;gBACtC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,4BAA4B,EAAE;oBACjD,GAAG,EAAE,QAAQ,CAAC,GAAG;oBACjB,KAAK;iBACL,CAAC,CAAC;gBACH,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YAC1D,CAAC;QACF,CAAC;QAED,KAAK,CAAC,aAAa,CAAC,QAAsB;YACzC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,kBAAkB,EAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;YAE/D,IAAI,CAAC;gBACJ,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAC7D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;gBAEvE,OAAO,OAAO,CAAC;YAChB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;gBACtC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,oBAAoB,EAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;gBACxE,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAEzD,OAAO,SAAS,CAAC;YAClB,CAAC;QACF,CAAC;QAED,uBAAuB,CAAC,GAAW,EAAE,KAAa;YACjD,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;gBAChF,0DAA0D;YAC3D,CAAC,CAAC,CAAC;QACJ,CAAC;QAID,IAAM,YAAY,oDAEjB;QAGD,KAAK,CAAC,gBAAgB;YACrB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBACvC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC7B,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;YAClE,CAAC;YAED,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;YAC5B,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,yBAAyB,CAAC,CAAC;QAC/C,CAAC;QAGD,KAAK,CAAC,SAAS,CAAC,kBAA2B;YAC1C,IAAI,kBAAkB,EAAE,CAAC;gBACxB,MAAM,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;gBAE3C,OAAO;YACR,CAAC;YAED,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,mBAAmB,EAAE,CAAC;YAEhF,IAAI,CAAC,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxD,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,4BAA4B,CAAC,CAAC;gBAEjD,OAAO;YACR,CAAC;YAED,MAAM,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACnF,CAAC;QAED,KAAK,CAAC,WAAW,CAAC,kBAA0B;YAC3C,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;YAEvD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACb,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,8BAA8B,EAAE,EAAE,kBAAkB,EAAE,CAAC,CAAC;gBAE3E,OAAO;YACR,CAAC;YAED,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,0BAA0B,EAAE,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,CAAC;YAE/E,IAAI,CAAC;gBACJ,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;gBAE5E,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,MAAM,EAAE;oBAC3E,GAAG,gBAAgB;oBACnB,MAAM,EAAE,gBAAgB,CAAC,MAAM,IAAI,SAAS;oBAC5C,aAAa,EAAE,gBAAgB,CAAC,SAAS,CAAC,IAAI;iBAC9C,CAAC,CAAC;gBAEH,KAAK,MAAM,CAAC,QAAQ,EAAE,eAAe,CAAC,IAAI,oBAAoB,EAAE,CAAC;oBAChE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;oBAEpD,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC;wBACtC,GAAG,EAAE,OAAO;wBACZ,WAAW,EAAE,eAAe,CAAC,WAAW;qBACxC,CAAC,CAAC;oBAEH,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBAEjC,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBAElD,IAAI,YAAY,EAAE,CAAC;wBAClB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,eAAe,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;oBACnF,CAAC;gBACF,CAAC;gBAED,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,mCAAmC,EAAE;oBACvD,kBAAkB;oBAClB,SAAS,EAAE,oBAAoB,CAAC,IAAI;iBACpC,CAAC,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;gBACtC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,gCAAgC,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC,CAAC;YACtF,CAAC;QACF,CAAC;QAED,KAAK,CAAC,iBAAiB,CAAC,QAAsB;YAC7C,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,mCAAmC,EAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;YAChF,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YACtC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YACzC,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;QAChF,CAAC;;;;SAhSW,mBAAmB"}
|
|
@@ -6,6 +6,11 @@ type PathIsInside = (path: string, potentialParent: string) => boolean;
|
|
|
6
6
|
export declare class WorkspaceFolderService {
|
|
7
7
|
#private;
|
|
8
8
|
constructor(pathIsInsideFn: PathIsInside, uriModule: typeof URI, normalizeFsPathFn: typeof normalizeFsPath);
|
|
9
|
+
/**
|
|
10
|
+
* Clears the cached workspace folders when the set of workspace folders
|
|
11
|
+
* changes.
|
|
12
|
+
*/
|
|
13
|
+
clearCache(): void;
|
|
9
14
|
/**
|
|
10
15
|
* Gets the workspace folder for a given document. If the document is an
|
|
11
16
|
* untitled file, then the first open workspace folder is returned.
|
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
|
|
2
|
+
var useValue = arguments.length > 2;
|
|
3
|
+
for (var i = 0; i < initializers.length; i++) {
|
|
4
|
+
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
|
5
|
+
}
|
|
6
|
+
return useValue ? value : void 0;
|
|
7
|
+
};
|
|
1
8
|
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
2
9
|
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
|
|
3
10
|
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
@@ -25,39 +32,46 @@ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn,
|
|
|
25
32
|
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
26
33
|
done = true;
|
|
27
34
|
};
|
|
28
|
-
|
|
29
|
-
var useValue = arguments.length > 2;
|
|
30
|
-
for (var i = 0; i < initializers.length; i++) {
|
|
31
|
-
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
|
32
|
-
}
|
|
33
|
-
return useValue ? value : void 0;
|
|
34
|
-
};
|
|
35
|
+
import { DidChangeWorkspaceFoldersNotification } from 'vscode-languageserver-protocol';
|
|
35
36
|
import { inject } from '../../../di/index.js';
|
|
37
|
+
import { lspService, notification } from '../../decorators.js';
|
|
36
38
|
import { NormalizeFsPathToken, PathIsInsideToken, UriModuleToken } from '../../tokens.js';
|
|
37
39
|
let WorkspaceFolderService = (() => {
|
|
38
|
-
let _classDecorators = [inject({
|
|
40
|
+
let _classDecorators = [lspService(), inject({
|
|
39
41
|
inject: [PathIsInsideToken, UriModuleToken, NormalizeFsPathToken],
|
|
40
42
|
})];
|
|
41
43
|
let _classDescriptor;
|
|
42
44
|
let _classExtraInitializers = [];
|
|
43
45
|
let _classThis;
|
|
46
|
+
let _instanceExtraInitializers = [];
|
|
47
|
+
let _clearCache_decorators;
|
|
44
48
|
var WorkspaceFolderService = class {
|
|
45
49
|
static { _classThis = this; }
|
|
46
50
|
static {
|
|
47
51
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
52
|
+
_clearCache_decorators = [notification(DidChangeWorkspaceFoldersNotification.type)];
|
|
53
|
+
__esDecorate(this, null, _clearCache_decorators, { kind: "method", name: "clearCache", static: false, private: false, access: { has: obj => "clearCache" in obj, get: obj => obj.clearCache }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
48
54
|
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
49
55
|
WorkspaceFolderService = _classThis = _classDescriptor.value;
|
|
50
56
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
51
57
|
__runInitializers(_classThis, _classExtraInitializers);
|
|
52
58
|
}
|
|
53
|
-
#pathIsInside;
|
|
59
|
+
#pathIsInside = __runInitializers(this, _instanceExtraInitializers);
|
|
54
60
|
#uri;
|
|
55
61
|
#normalizeFsPath;
|
|
62
|
+
#cachedFolders;
|
|
56
63
|
constructor(pathIsInsideFn, uriModule, normalizeFsPathFn) {
|
|
57
64
|
this.#pathIsInside = pathIsInsideFn;
|
|
58
65
|
this.#uri = uriModule;
|
|
59
66
|
this.#normalizeFsPath = normalizeFsPathFn;
|
|
60
67
|
}
|
|
68
|
+
/**
|
|
69
|
+
* Clears the cached workspace folders when the set of workspace folders
|
|
70
|
+
* changes.
|
|
71
|
+
*/
|
|
72
|
+
clearCache() {
|
|
73
|
+
this.#cachedFolders = undefined;
|
|
74
|
+
}
|
|
61
75
|
/**
|
|
62
76
|
* Gets the workspace folder for a given document. If the document is an
|
|
63
77
|
* untitled file, then the first open workspace folder is returned.
|
|
@@ -68,7 +82,8 @@ let WorkspaceFolderService = (() => {
|
|
|
68
82
|
async getWorkspaceFolder(connection, document) {
|
|
69
83
|
const { scheme, fsPath } = this.#uri.parse(document.uri);
|
|
70
84
|
if (scheme === 'untitled') {
|
|
71
|
-
const
|
|
85
|
+
const folders = await this.#getWorkspaceFolders(connection);
|
|
86
|
+
const uri = folders?.[0]?.uri;
|
|
72
87
|
return uri ? this.#uri.parse(uri).fsPath : undefined;
|
|
73
88
|
}
|
|
74
89
|
if (!fsPath) {
|
|
@@ -78,7 +93,7 @@ let WorkspaceFolderService = (() => {
|
|
|
78
93
|
if (!normalizedDocumentPath) {
|
|
79
94
|
return undefined;
|
|
80
95
|
}
|
|
81
|
-
const workspaceFolders = await
|
|
96
|
+
const workspaceFolders = await this.#getWorkspaceFolders(connection);
|
|
82
97
|
if (!workspaceFolders) {
|
|
83
98
|
return undefined;
|
|
84
99
|
}
|
|
@@ -94,6 +109,14 @@ let WorkspaceFolderService = (() => {
|
|
|
94
109
|
}
|
|
95
110
|
return undefined;
|
|
96
111
|
}
|
|
112
|
+
async #getWorkspaceFolders(connection) {
|
|
113
|
+
if (this.#cachedFolders !== undefined) {
|
|
114
|
+
return this.#cachedFolders;
|
|
115
|
+
}
|
|
116
|
+
const folders = await connection.workspace.getWorkspaceFolders();
|
|
117
|
+
this.#cachedFolders = folders ?? [];
|
|
118
|
+
return this.#cachedFolders;
|
|
119
|
+
}
|
|
97
120
|
};
|
|
98
121
|
return WorkspaceFolderService = _classThis;
|
|
99
122
|
})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-folder.service.js","sourceRoot":"","sources":["../../../../src/server/services/workspace/workspace-folder.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"workspace-folder.service.js","sourceRoot":"","sources":["../../../../src/server/services/workspace/workspace-folder.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -49,6 +49,11 @@ function extractStylelintSettings(settings) {
|
|
|
49
49
|
}
|
|
50
50
|
return settings;
|
|
51
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* How long, in milliseconds, a resolved scoped option is kept in cache before
|
|
54
|
+
* the next call triggers a fresh `workspace/configuration` RPC.
|
|
55
|
+
*/
|
|
56
|
+
const optionsCacheTtl = 2000;
|
|
52
57
|
let WorkspaceOptionsService = (() => {
|
|
53
58
|
let _classDecorators = [inject({
|
|
54
59
|
inject: [lspConnectionToken, loggingServiceToken],
|
|
@@ -70,6 +75,7 @@ let WorkspaceOptionsService = (() => {
|
|
|
70
75
|
#supportsScopedConfiguration = false;
|
|
71
76
|
#globalOptions = mergeOptionsWithDefaults({}, defaultLanguageServerOptions);
|
|
72
77
|
#inFlightRequests = new Map();
|
|
78
|
+
#cachedOptions = new Map();
|
|
73
79
|
constructor(connection, loggingService) {
|
|
74
80
|
this.#connection = connection;
|
|
75
81
|
this.#logger = loggingService.createLogger(WorkspaceOptionsService);
|
|
@@ -90,19 +96,33 @@ let WorkspaceOptionsService = (() => {
|
|
|
90
96
|
}
|
|
91
97
|
clearCache() {
|
|
92
98
|
this.#inFlightRequests.clear();
|
|
99
|
+
this.#cachedOptions.clear();
|
|
93
100
|
}
|
|
94
101
|
delete(resource) {
|
|
95
102
|
this.#inFlightRequests.delete(resource);
|
|
103
|
+
this.#cachedOptions.delete(resource);
|
|
96
104
|
}
|
|
97
105
|
async getOptions(resource) {
|
|
98
106
|
if (!this.#supportsScopedConfiguration) {
|
|
99
107
|
return this.#globalOptions;
|
|
100
108
|
}
|
|
109
|
+
// Return from TTL cache if still fresh.
|
|
110
|
+
const cached = this.#cachedOptions.get(resource);
|
|
111
|
+
if (cached && Date.now() < cached.expiresAt) {
|
|
112
|
+
return cached.options;
|
|
113
|
+
}
|
|
114
|
+
// Deduplicate concurrent in-flight requests for the same resource.
|
|
101
115
|
let request = this.#inFlightRequests.get(resource);
|
|
102
116
|
if (!request) {
|
|
103
117
|
request = this.#requestScopedOptions(resource);
|
|
104
118
|
this.#inFlightRequests.set(resource, request);
|
|
105
119
|
request
|
|
120
|
+
.then((options) => {
|
|
121
|
+
this.#cachedOptions.set(resource, {
|
|
122
|
+
options,
|
|
123
|
+
expiresAt: Date.now() + optionsCacheTtl,
|
|
124
|
+
});
|
|
125
|
+
})
|
|
106
126
|
.catch(() => undefined)
|
|
107
127
|
.finally(() => {
|
|
108
128
|
this.#inFlightRequests.delete(resource);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-options.service.js","sourceRoot":"","sources":["../../../../src/server/services/workspace/workspace-options.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,OAAO,EAAuB,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAEhG;;GAEG;AACH,SAAS,wBAAwB,CAAC,QAAiB;IAClD,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC/C,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,IAAI,WAAW,IAAI,QAAQ,EAAE,CAAC;QAC7B,OAAQ,QAAoC,CAAC,SAAS,CAAC;IACxD,CAAC;IAED,OAAO,QAAQ,CAAC;AACjB,CAAC;
|
|
1
|
+
{"version":3,"file":"workspace-options.service.js","sourceRoot":"","sources":["../../../../src/server/services/workspace/workspace-options.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/server/utils/lsp/index.ts"],"names":[],"mappings":"AAAA,cAAc,qCAAqC,CAAC;AACpD,cAAc,oBAAoB,CAAC;AACnC,cAAc,mCAAmC,CAAC;AAClD,cAAc,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/server/utils/lsp/index.ts"],"names":[],"mappings":"AAAA,cAAc,qCAAqC,CAAC;AACpD,cAAc,oBAAoB,CAAC;AACnC,cAAc,mCAAmC,CAAC;AAClD,cAAc,yBAAyB,CAAC;AACxC,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { LSPErrorCodes, ResponseError, } from 'vscode-languageserver-protocol';
|
|
2
|
+
/**
|
|
3
|
+
* Throws a {@link ResponseError} with {@link LSPErrorCodes.RequestCancelled} if
|
|
4
|
+
* the token is cancelled.
|
|
5
|
+
*/
|
|
6
|
+
export function throwIfCancelled(token) {
|
|
7
|
+
if (token.isCancellationRequested) {
|
|
8
|
+
throw new ResponseError(LSPErrorCodes.RequestCancelled, 'Request cancelled');
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=throw-if-cancelled.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"throw-if-cancelled.js","sourceRoot":"","sources":["../../../../src/server/utils/lsp/throw-if-cancelled.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,aAAa,EACb,aAAa,GAEb,MAAM,gCAAgC,CAAC;AAExC;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAwB;IACxD,IAAI,KAAK,CAAC,uBAAuB,EAAE,CAAC;QACnC,MAAM,IAAI,aAAa,CAAC,aAAa,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,CAAC;IAC9E,CAAC;AACF,CAAC"}
|