@stylelint/language-server 1.0.1 → 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 +56 -2
- package/build/server/services/lsp/validator.service.js.map +1 -1
- package/build/server/services/stylelint-runtime/worker-registry.service.js +9 -1
- package/build/server/services/stylelint-runtime/worker-registry.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/types.d.ts +24 -0
- package/build/server/types.js +18 -0
- package/build/server/types.js.map +1 -1
- package/build/server/utils/fs.js +8 -1
- package/build/server/utils/fs.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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"}
|
|
@@ -41,11 +41,16 @@ import { inject } from '../../../di/index.js';
|
|
|
41
41
|
import { displayError } from '../../utils/index.js';
|
|
42
42
|
import { command, initialize, lspService, notification, textDocumentEvent, } from '../../decorators.js';
|
|
43
43
|
import { lspConnectionToken, textDocumentsToken, UriModuleToken } from '../../tokens.js';
|
|
44
|
-
import { CommandId } from '../../types.js';
|
|
44
|
+
import { CommandId, Status, StatusNotification } from '../../types.js';
|
|
45
45
|
import { DocumentDiagnosticsService } from '../documents/document-diagnostics.service.js';
|
|
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,
|
|
@@ -181,6 +227,7 @@ let ValidatorLspService = (() => {
|
|
|
181
227
|
this.#diagnostics.set(document, result.diagnostics, result);
|
|
182
228
|
this.#publishedUris.add(document.uri);
|
|
183
229
|
this.#logger?.debug('Diagnostics sent', { uri: document.uri });
|
|
230
|
+
this.#sendStatusNotification(document.uri, Status.ok);
|
|
184
231
|
}
|
|
185
232
|
catch (error) {
|
|
186
233
|
displayError(this.#connection, error);
|
|
@@ -188,6 +235,7 @@ let ValidatorLspService = (() => {
|
|
|
188
235
|
uri: document.uri,
|
|
189
236
|
error,
|
|
190
237
|
});
|
|
238
|
+
this.#sendStatusNotification(document.uri, Status.error);
|
|
191
239
|
}
|
|
192
240
|
}
|
|
193
241
|
async #lintDocument(document) {
|
|
@@ -200,9 +248,15 @@ let ValidatorLspService = (() => {
|
|
|
200
248
|
catch (error) {
|
|
201
249
|
displayError(this.#connection, error);
|
|
202
250
|
this.#logger?.error('Error running lint', { uri: document.uri, error });
|
|
251
|
+
this.#sendStatusNotification(document.uri, Status.error);
|
|
203
252
|
return undefined;
|
|
204
253
|
}
|
|
205
254
|
}
|
|
255
|
+
#sendStatusNotification(uri, state) {
|
|
256
|
+
this.#connection.sendNotification(StatusNotification, { uri, state }).catch(() => {
|
|
257
|
+
// Best effort, ignore any errors since it's non-critical.
|
|
258
|
+
});
|
|
259
|
+
}
|
|
206
260
|
get #validateAll() { return _private_validateAll_descriptor.value; }
|
|
207
261
|
async clearAllProblems() {
|
|
208
262
|
for (const uri of this.#publishedUris) {
|
|
@@ -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,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"validator.service.js","sourceRoot":"","sources":["../../../../src/server/services/lsp/validator.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -186,10 +186,16 @@ let WorkerRegistryService = (() => {
|
|
|
186
186
|
state.consecutiveCrashes = 0;
|
|
187
187
|
state.cooldownExpiresAt = undefined;
|
|
188
188
|
state.lastCrashError = undefined;
|
|
189
|
+
state.lastHandledCrashError = undefined;
|
|
189
190
|
state.lastNotificationAt = undefined;
|
|
190
191
|
}
|
|
191
192
|
#handleWorkerCrash(workspaceFolder, workerRoot, state, error) {
|
|
192
|
-
|
|
193
|
+
// When a worker exits with multiple pending requests, the same error
|
|
194
|
+
// object is used to reject every promise. Only count the crash once.
|
|
195
|
+
if (state.lastHandledCrashError !== error) {
|
|
196
|
+
state.consecutiveCrashes += 1;
|
|
197
|
+
state.lastHandledCrashError = error;
|
|
198
|
+
}
|
|
193
199
|
state.lastCrashError = error;
|
|
194
200
|
if (state.consecutiveCrashes < maxConsecutiveCrashes) {
|
|
195
201
|
return error;
|
|
@@ -215,6 +221,7 @@ let WorkerRegistryService = (() => {
|
|
|
215
221
|
if (now >= cooldown) {
|
|
216
222
|
state.cooldownExpiresAt = undefined;
|
|
217
223
|
state.consecutiveCrashes = 0;
|
|
224
|
+
state.lastHandledCrashError = undefined;
|
|
218
225
|
state.lastNotificationAt = undefined;
|
|
219
226
|
return undefined;
|
|
220
227
|
}
|
|
@@ -265,6 +272,7 @@ let WorkerRegistryService = (() => {
|
|
|
265
272
|
}
|
|
266
273
|
state.cooldownExpiresAt = undefined;
|
|
267
274
|
state.consecutiveCrashes = 0;
|
|
275
|
+
state.lastHandledCrashError = undefined;
|
|
268
276
|
state.lastNotificationAt = undefined;
|
|
269
277
|
return true;
|
|
270
278
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-registry.service.js","sourceRoot":"","sources":["../../../../src/server/services/stylelint-runtime/worker-registry.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,OAAO,MAAM,cAAc,CAAC;AAGnC,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EACN,2BAA2B,EAE3B,+BAA+B,GAC/B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAuB,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAChG,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAChC,MAAM,wBAAwB,GAAG,EAAE,GAAG,IAAI,CAAC;AAC3C,MAAM,iCAAiC,GAAG,EAAE,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"worker-registry.service.js","sourceRoot":"","sources":["../../../../src/server/services/stylelint-runtime/worker-registry.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,OAAO,EAAE,qCAAqC,EAAE,MAAM,gCAAgC,CAAC;AAGvF,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;IAQ7E,sBAAsB;4BAJlC,UAAU,EAAE,EACZ,MAAM,CAAC;YACP,MAAM,EAAE,CAAC,iBAAiB,EAAE,cAAc,EAAE,oBAAoB,CAAC;SACjE,CAAC;;;;;;;;;;sCAqBA,YAAY,CAAC,qCAAqC,CAAC,IAAI,CAAC;YACzD,iLAAA,UAAU,6DAET;YAvBF,6KAwFC;;;YAxFY,uDAAsB;;QACzB,aAAa,GADV,mDAAsB,CACG;QAC5B,IAAI,CAAa;QACjB,gBAAgB,CAAyB;QAClD,cAAc,CAAgC;QAE9C,YACC,cAA4B,EAC5B,SAAqB,EACrB,iBAAyC;YAEzC,IAAI,CAAC,aAAa,GAAG,cAAc,CAAC;YACpC,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;YACtB,IAAI,CAAC,gBAAgB,GAAG,iBAAiB,CAAC;QAC3C,CAAC;QAED;;;WAGG;QAEH,UAAU;YACT,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;QACjC,CAAC;QAED;;;;;;WAMG;QACH,KAAK,CAAC,kBAAkB,CACvB,UAAsB,EACtB,QAAsB;YAEtB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAEzD,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;gBAC3B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;gBAC5D,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;gBAE9B,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;YACtD,CAAC;YAED,IAAI,CAAC,MAAM,EAAE,CAAC;gBACb,OAAO,SAAS,CAAC;YAClB,CAAC;YAED,MAAM,sBAAsB,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAE7D,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBAC7B,OAAO,SAAS,CAAC;YAClB,CAAC;YAED,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;YAErE,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACvB,OAAO,SAAS,CAAC;YAClB,CAAC;YAED,KAAK,MAAM,EAAE,GAAG,EAAE,IAAI,gBAAgB,EAAE,CAAC;gBACxC,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;gBAClD,MAAM,uBAAuB,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;gBAErE,IAAI,CAAC,uBAAuB,EAAE,CAAC;oBAC9B,SAAS;gBACV,CAAC;gBAED,IAAI,IAAI,CAAC,aAAa,CAAC,sBAAsB,EAAE,uBAAuB,CAAC,EAAE,CAAC;oBACzE,OAAO,aAAa,CAAC;gBACtB,CAAC;YACF,CAAC;YAED,OAAO,SAAS,CAAC;QAClB,CAAC;QAED,KAAK,CAAC,oBAAoB,CAAC,UAAsB;YAChD,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;gBACvC,OAAO,IAAI,CAAC,cAAc,CAAC;YAC5B,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,mBAAmB,EAAE,CAAC;YAEjE,IAAI,CAAC,cAAc,GAAG,OAAO,IAAI,EAAE,CAAC;YAEpC,OAAO,IAAI,CAAC,cAAc,CAAC;QAC5B,CAAC;;;;SAvFW,sBAAsB"}
|
|
@@ -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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"}
|
package/build/server/types.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { NotificationType } from 'vscode-languageserver-protocol';
|
|
1
2
|
import type stylelint from 'stylelint';
|
|
2
3
|
import type { PackageManager } from './stylelint/index.js';
|
|
3
4
|
/**
|
|
@@ -72,3 +73,26 @@ export interface PnPConfiguration {
|
|
|
72
73
|
registerPath: string;
|
|
73
74
|
loaderPath?: string;
|
|
74
75
|
}
|
|
76
|
+
/**
|
|
77
|
+
* Status of the Stylelint language server for a given document. Refers to the
|
|
78
|
+
* whether the server ran successfully, not lint diagnostic severity.
|
|
79
|
+
*/
|
|
80
|
+
export declare enum Status {
|
|
81
|
+
/** Stylelint ran without errors. */
|
|
82
|
+
ok = 1,
|
|
83
|
+
/** Reserved for future use. */
|
|
84
|
+
warn = 2,
|
|
85
|
+
/** Stylelint failed to run. */
|
|
86
|
+
error = 3
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Parameters sent from server to client to report per-document status.
|
|
90
|
+
*/
|
|
91
|
+
export type StatusParams = {
|
|
92
|
+
uri: string;
|
|
93
|
+
state: Status;
|
|
94
|
+
};
|
|
95
|
+
/**
|
|
96
|
+
* Notification type for per-document Stylelint status changes.
|
|
97
|
+
*/
|
|
98
|
+
export declare const StatusNotification: NotificationType<StatusParams>;
|
package/build/server/types.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { CodeActionKind as VSCodeActionKind } from 'vscode-languageserver-types';
|
|
2
|
+
import { NotificationType } from 'vscode-languageserver-protocol';
|
|
2
3
|
/**
|
|
3
4
|
* Command IDs
|
|
4
5
|
*/
|
|
@@ -15,4 +16,21 @@ export var CommandId;
|
|
|
15
16
|
export const CodeActionKind = {
|
|
16
17
|
StylelintSourceFixAll: `${VSCodeActionKind.SourceFixAll}.stylelint`,
|
|
17
18
|
};
|
|
19
|
+
/**
|
|
20
|
+
* Status of the Stylelint language server for a given document. Refers to the
|
|
21
|
+
* whether the server ran successfully, not lint diagnostic severity.
|
|
22
|
+
*/
|
|
23
|
+
export var Status;
|
|
24
|
+
(function (Status) {
|
|
25
|
+
/** Stylelint ran without errors. */
|
|
26
|
+
Status[Status["ok"] = 1] = "ok";
|
|
27
|
+
/** Reserved for future use. */
|
|
28
|
+
Status[Status["warn"] = 2] = "warn";
|
|
29
|
+
/** Stylelint failed to run. */
|
|
30
|
+
Status[Status["error"] = 3] = "error";
|
|
31
|
+
})(Status || (Status = {}));
|
|
32
|
+
/**
|
|
33
|
+
* Notification type for per-document Stylelint status changes.
|
|
34
|
+
*/
|
|
35
|
+
export const StatusNotification = new NotificationType('stylelint/status');
|
|
18
36
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/server/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,IAAI,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/server/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,IAAI,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAIlE;;GAEG;AACH,MAAM,CAAN,IAAY,SAKX;AALD,WAAY,SAAS;IACpB,oDAAuC,CAAA;IACvC,kDAAqC,CAAA;IACrC,8CAAiC,CAAA;IACjC,4DAA+C,CAAA;AAChD,CAAC,EALW,SAAS,KAAT,SAAS,QAKpB;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC7B,qBAAqB,EAAE,GAAG,gBAAgB,CAAC,YAAY,YAAY;CACnE,CAAC;AAwEF;;;GAGG;AACH,MAAM,CAAN,IAAY,MAOX;AAPD,WAAY,MAAM;IACjB,oCAAoC;IACpC,+BAAM,CAAA;IACN,+BAA+B;IAC/B,mCAAQ,CAAA;IACR,+BAA+B;IAC/B,qCAAS,CAAA;AACV,CAAC,EAPW,MAAM,KAAN,MAAM,QAOjB;AAUD;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,gBAAgB,CAAe,kBAAkB,CAAC,CAAC"}
|
package/build/server/utils/fs.js
CHANGED
|
@@ -6,6 +6,13 @@ export function normalizeFsPath(value, platform = process.platform) {
|
|
|
6
6
|
if (!value) {
|
|
7
7
|
return undefined;
|
|
8
8
|
}
|
|
9
|
-
|
|
9
|
+
if (platform !== 'win32') {
|
|
10
|
+
return value;
|
|
11
|
+
}
|
|
12
|
+
let result = value.replace(/\//gu, '\\');
|
|
13
|
+
if (/^[a-z]:\\/u.test(result)) {
|
|
14
|
+
result = result[0].toUpperCase() + result.slice(1);
|
|
15
|
+
}
|
|
16
|
+
return result;
|
|
10
17
|
}
|
|
11
18
|
//# sourceMappingURL=fs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fs.js","sourceRoot":"","sources":["../../../src/server/utils/fs.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC;;GAEG;AACH,MAAM,UAAU,eAAe,CAC9B,KAAyB,EACzB,WAA4B,OAAO,CAAC,QAAQ;IAE5C,IAAI,CAAC,KAAK,EAAE,CAAC;QACZ,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,
|
|
1
|
+
{"version":3,"file":"fs.js","sourceRoot":"","sources":["../../../src/server/utils/fs.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC;;GAEG;AACH,MAAM,UAAU,eAAe,CAC9B,KAAyB,EACzB,WAA4B,OAAO,CAAC,QAAQ;IAE5C,IAAI,CAAC,KAAK,EAAE,CAAC;QACZ,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC;IACd,CAAC;IAED,IAAI,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAEzC,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/B,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC"}
|
|
@@ -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"}
|