From 96850a05e5d4d814f10034297cd67905903cc71b Mon Sep 17 00:00:00 2001 From: Zam <24277775+zam157@users.noreply.github.com> Date: Sun, 1 Jan 2023 02:52:51 +0800 Subject: [PATCH 1/3] fix(vscode): resolve the right completion label --- packages/vscode/src/autocomplete.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/vscode/src/autocomplete.ts b/packages/vscode/src/autocomplete.ts index 3ef4cdd152..2cf336dd51 100644 --- a/packages/vscode/src/autocomplete.ts +++ b/packages/vscode/src/autocomplete.ts @@ -102,7 +102,7 @@ export async function registerAutoComplete( const itemKind = colorValue?.color ? CompletionItemKind.Color : CompletionItemKind.EnumMember const resolved = result.resolveReplacement(value) - const item = new UnoCompletionItem(label, itemKind, ctx!.uno) + const item = new UnoCompletionItem(value, itemKind, ctx!.uno) item.insertText = resolved.replacement item.range = new Range(doc.positionAt(resolved.start), doc.positionAt(resolved.end)) From be463b6748dfcf6558a8ebcfc0e91e7f876a2dff Mon Sep 17 00:00:00 2001 From: Frozen FIsh <76603360+sudongyuer@users.noreply.github.com> Date: Mon, 2 Jan 2023 14:48:47 +0800 Subject: [PATCH 2/3] chore: update --- packages/vscode/src/autocomplete.ts | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/packages/vscode/src/autocomplete.ts b/packages/vscode/src/autocomplete.ts index 340921e35e..2cf336dd51 100644 --- a/packages/vscode/src/autocomplete.ts +++ b/packages/vscode/src/autocomplete.ts @@ -3,7 +3,7 @@ import { createAutocomplete } from '@unocss/autocomplete' import type { CompletionItemProvider, ExtensionContext } from 'vscode' import { CompletionItem, CompletionItemKind, CompletionList, MarkdownString, Range, languages } from 'vscode' import type { UnoGenerator, UnocssPluginContext } from '@unocss/core' -import { getCSS, getColorString, getPrettiedCSS, getPrettiedMarkdown, isSubdir } from './utils' +import { body2ColorValue, getPrettiedCSS, getPrettiedMarkdown, isSubdir } from './utils' import { log } from './log' import type { ContextLoader } from './contextLoader' import { isCssId } from './integration' @@ -96,25 +96,23 @@ export async function registerAutoComplete( if (!result.suggestions.length) return - const completionItems: UnoCompletionItem[] = [] - for (const [value, label] of result.suggestions) { - const css = await getCSS(ctx!.uno, value) - const colorString = getColorString(css) - const itemKind = colorString ? CompletionItemKind.Color : CompletionItemKind.EnumMember - const item = new UnoCompletionItem(label, itemKind, ctx!.uno) + const theme = ctx?.uno.config.theme + return new CompletionList(result.suggestions.map(([value, label]) => { + const colorValue = theme ? body2ColorValue(value, theme) : null + const itemKind = colorValue?.color ? CompletionItemKind.Color : CompletionItemKind.EnumMember + const resolved = result.resolveReplacement(value) - + const item = new UnoCompletionItem(value, itemKind, ctx!.uno) item.insertText = resolved.replacement item.range = new Range(doc.positionAt(resolved.start), doc.positionAt(resolved.end)) - if (colorString) { - item.documentation = colorString + if (colorValue?.color) { + item.documentation = colorValue?.color item.sortText = /-\d$/.test(label) ? '1' : '2' // reorder color completions } - completionItems.push(item) - } - return new CompletionList(completionItems, true) + return item + }), true) } catch (e) { log.appendLine(`⚠️ ${String(e)}`) From 3bc9914d7790c0ecae9ee43b93ce47e125841740 Mon Sep 17 00:00:00 2001 From: Frozen FIsh <76603360+sudongyuer@users.noreply.github.com> Date: Mon, 2 Jan 2023 14:59:17 +0800 Subject: [PATCH 3/3] chore: resolve conflict --- packages/vscode/src/autocomplete.ts | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/packages/vscode/src/autocomplete.ts b/packages/vscode/src/autocomplete.ts index 2cf336dd51..03b9177b1f 100644 --- a/packages/vscode/src/autocomplete.ts +++ b/packages/vscode/src/autocomplete.ts @@ -3,7 +3,7 @@ import { createAutocomplete } from '@unocss/autocomplete' import type { CompletionItemProvider, ExtensionContext } from 'vscode' import { CompletionItem, CompletionItemKind, CompletionList, MarkdownString, Range, languages } from 'vscode' import type { UnoGenerator, UnocssPluginContext } from '@unocss/core' -import { body2ColorValue, getPrettiedCSS, getPrettiedMarkdown, isSubdir } from './utils' +import { getCSS, getColorString, getPrettiedCSS, getPrettiedMarkdown, isSubdir } from './utils' import { log } from './log' import type { ContextLoader } from './contextLoader' import { isCssId } from './integration' @@ -96,23 +96,25 @@ export async function registerAutoComplete( if (!result.suggestions.length) return - const theme = ctx?.uno.config.theme - return new CompletionList(result.suggestions.map(([value, label]) => { - const colorValue = theme ? body2ColorValue(value, theme) : null - const itemKind = colorValue?.color ? CompletionItemKind.Color : CompletionItemKind.EnumMember - - const resolved = result.resolveReplacement(value) + const completionItems: UnoCompletionItem[] = [] + for (const [value, label] of result.suggestions) { + const css = await getCSS(ctx!.uno, value) + const colorString = getColorString(css) + const itemKind = colorString ? CompletionItemKind.Color : CompletionItemKind.EnumMember const item = new UnoCompletionItem(value, itemKind, ctx!.uno) + const resolved = result.resolveReplacement(value) + item.insertText = resolved.replacement item.range = new Range(doc.positionAt(resolved.start), doc.positionAt(resolved.end)) - if (colorValue?.color) { - item.documentation = colorValue?.color + if (colorString) { + item.documentation = colorString item.sortText = /-\d$/.test(label) ? '1' : '2' // reorder color completions } + completionItems.push(item) + } - return item - }), true) + return new CompletionList(completionItems, true) } catch (e) { log.appendLine(`⚠️ ${String(e)}`)