From 3de1b980adc0197f5bb7b3e7e03ee3fb8c488e36 Mon Sep 17 00:00:00 2001 From: Brad Cornes Date: Mon, 15 Jun 2020 19:00:03 +0100 Subject: [PATCH] ensure diagnostics are updated when the user's tailwind config changes --- src/lsp/providers/diagnosticsProvider.ts | 19 +++++++++++++++++++ src/lsp/server.ts | 12 ++++++++---- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/src/lsp/providers/diagnosticsProvider.ts b/src/lsp/providers/diagnosticsProvider.ts index 036b32c..79f462e 100644 --- a/src/lsp/providers/diagnosticsProvider.ts +++ b/src/lsp/providers/diagnosticsProvider.ts @@ -405,3 +405,22 @@ export async function provideDiagnostics( diagnostics, }) } + +export function clearDiagnostics(state: State, document: TextDocument): void { + state.editor.connection.sendDiagnostics({ + uri: document.uri, + diagnostics: [], + }) +} + +export function clearAllDiagnostics(state: State): void { + state.editor.documents.all().forEach((document) => { + clearDiagnostics(state, document) + }) +} + +export function updateAllDiagnostics(state: State): void { + state.editor.documents.all().forEach((document) => { + provideDiagnostics(state, document) + }) +} diff --git a/src/lsp/server.ts b/src/lsp/server.ts index bef666c..8e9addf 100644 --- a/src/lsp/server.ts +++ b/src/lsp/server.ts @@ -26,7 +26,11 @@ import { import { provideHover } from './providers/hoverProvider' import { URI } from 'vscode-uri' import { getDocumentSettings } from './util/getDocumentSettings' -import { provideDiagnostics } from './providers/diagnosticsProvider' +import { + provideDiagnostics, + updateAllDiagnostics, + clearAllDiagnostics, +} from './providers/diagnosticsProvider' import { createEmitter } from '../lib/emitter' let connection = createConnection(ProposedFeatures.all) @@ -102,6 +106,7 @@ connection.onInitialize( state.config, state.plugins, ]) + updateAllDiagnostics(state) } else { state = { enabled: false, @@ -122,6 +127,7 @@ connection.onInitialize( } connection.sendNotification('tailwindcss/configError', [payload]) } + clearAllDiagnostics(state) // TODO // connection.sendNotification('tailwindcss/configUpdated', [null]) } @@ -196,9 +202,7 @@ connection.onDidChangeConfiguration((change) => { ) } - state.editor.documents.all().forEach((doc) => { - provideDiagnostics(state, doc) - }) + updateAllDiagnostics(state) }) connection.onCompletion(