Clear cache and re-validate documents on cacheClear command (#71)
This commit is contained in:
@@ -0,0 +1,3 @@
|
||||
export enum Commands {
|
||||
ClearCache = "cacheClear"
|
||||
}
|
||||
@@ -6,6 +6,7 @@ import {
|
||||
Connection,
|
||||
DocumentLink,
|
||||
DocumentLinkParams,
|
||||
ExecuteCommandParams,
|
||||
Hover,
|
||||
HoverParams,
|
||||
InitializeParams,
|
||||
@@ -21,6 +22,7 @@ import {onCompletion} from "./on-completion";
|
||||
import {TTLCache} from "./utils/cache";
|
||||
import {valueProviders} from "./value-providers";
|
||||
import {getActionInputs} from "./value-providers/action-inputs";
|
||||
import {Commands} from "./commands";
|
||||
|
||||
export function initConnection(connection: Connection) {
|
||||
const documents: TextDocuments<TextDocument> = new TextDocuments(TextDocument);
|
||||
@@ -121,6 +123,13 @@ export function initConnection(connection: Connection) {
|
||||
return hover(documents.get(textDocument.uri)!, position);
|
||||
});
|
||||
|
||||
connection.onRequest("workspace/executeCommand", (params: ExecuteCommandParams) => {
|
||||
if (params.command === Commands.ClearCache) {
|
||||
cache.clear();
|
||||
documents.all().forEach(validateTextDocument);
|
||||
}
|
||||
});
|
||||
|
||||
connection.onDocumentLinks(async ({textDocument}: DocumentLinkParams): Promise<DocumentLink[] | null> => {
|
||||
return documentLinks(documents.get(textDocument.uri)!);
|
||||
});
|
||||
|
||||
@@ -36,4 +36,8 @@ export class TTLCache {
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
clear(): void {
|
||||
this.cache.clear();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user