From ad70737bed640b2073a86a0d256e80a987c8ffb5 Mon Sep 17 00:00:00 2001 From: Jason Dent Date: Mon, 4 Mar 2024 18:46:01 +0100 Subject: [PATCH] fix: issue when adding words to config (#3081) --- .../src/config/configTargetsHelper.mts | 2 +- packages/client/src/promptUser.ts | 19 ++++++++++++------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/packages/_server/src/config/configTargetsHelper.mts b/packages/_server/src/config/configTargetsHelper.mts index b2732437d..dc2cb7367 100644 --- a/packages/_server/src/config/configTargetsHelper.mts +++ b/packages/_server/src/config/configTargetsHelper.mts @@ -31,7 +31,7 @@ export async function calculateConfigTargets( const targets: ConfigTarget[] = []; const possibleSources = extractCSpellFileConfigurations(settings).filter((cfg) => !cfg.readonly); const sources = configFilesFound - ? possibleSources.filter((cfg) => cfg.source.fileSource && isFound(cfg.source.filename)) + ? possibleSources.filter((cfg) => isFound(cfg.source.filename)) : await filterExistingCSpellFileConfigurations(possibleSources); const dictionaries = extractTargetDictionaries(settings); diff --git a/packages/client/src/promptUser.ts b/packages/client/src/promptUser.ts index 14a3bb208..93632a215 100644 --- a/packages/client/src/promptUser.ts +++ b/packages/client/src/promptUser.ts @@ -1,5 +1,5 @@ -import type { QuickPickOptions, Uri } from 'vscode'; -import { window } from 'vscode'; +import type { QuickPickOptions } from 'vscode'; +import { Uri, window } from 'vscode'; import { extractMatchingDiagTexts, getCSpellDiags } from './diags'; import { normalizeWords } from './settings/CSpellSettings'; @@ -13,6 +13,7 @@ export function onCommandUseDiagsSelectionOrPrompt( fnAction: (text: string, uri: Uri | undefined) => Promise, ): (text?: string, uri?: Uri | string) => Promise { return async function (text?: string, uri?: Uri | string) { + // console.log('onCommandUseDiagsSelectionOrPrompt %o', { prompt, text, uri }); const selected = await determineTextSelection(prompt, text, uri); if (!selected) return; @@ -22,10 +23,14 @@ export function onCommandUseDiagsSelectionOrPrompt( }; } -async function determineTextSelection(prompt: string, text?: string, uri?: Uri | string): Promise<{ text: string; uri?: Uri } | undefined> { - uri = toUri(uri); - if (text) { - return { text, uri: uri || window.activeTextEditor?.document.uri }; +async function determineTextSelection( + prompt: string, + textOrUri?: string | Uri, + uri?: Uri | string, +): Promise<{ text: string; uri?: Uri } | undefined> { + uri = uri ? toUri(uri) : textOrUri instanceof Uri ? textOrUri : undefined; + if (typeof textOrUri === 'string' && textOrUri) { + return { text: textOrUri, uri: uri || window.activeTextEditor?.document.uri }; } const editor = findEditor(uri); @@ -50,7 +55,7 @@ async function determineTextSelection(prompt: string, text?: string, uri?: Uri | return { text: word, uri: document?.uri }; } - text = selection.contains(range) ? document.getText(selection) : document.getText(range); + const text = selection.contains(range) ? document.getText(selection) : document.getText(range); const words = normalizeWords(text); const picked =