diff --git a/package.json b/package.json index 6dbca26..e565306 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "url": "https://github.com/ecmel/vscode-html-css.git" }, "engines": { - "vscode": "^1.53.0" + "vscode": "^1.58.0" }, "categories": [ "Programming Languages", @@ -81,7 +81,6 @@ "deploy": "vsce publish" }, "devDependencies": { - "@types/css-tree": "^1.0.5", "@types/glob": "^7.1.3", "@types/mocha": "^8.0.4", "@types/node": "^12.11.7", diff --git a/src/completion.ts b/src/completion.ts index 8fe2dca..08a31a0 100644 --- a/src/completion.ts +++ b/src/completion.ts @@ -5,6 +5,7 @@ import { CancellationToken, CompletionContext, CompletionItem, + CompletionItemLabel, CompletionItemKind, CompletionItemProvider, CompletionList, @@ -72,7 +73,7 @@ export class SelectorCompletionItemProvider implements CompletionItemProvider, D : join(dirname(uri.fsPath), name); } - parseTextToItems(text: string, items: CompletionItem[]) { + parseTextToItems(path: string, text: string, items: CompletionItem[]) { walk(parse(text), node => { let kind: CompletionItemKind; @@ -88,7 +89,7 @@ export class SelectorCompletionItemProvider implements CompletionItemProvider, D return; } - items.push(new CompletionItem(node.name, kind)); + items.push(new CompletionItem({ label: node.name, description: path }, kind)); }); } @@ -101,7 +102,7 @@ export class SelectorCompletionItemProvider implements CompletionItemProvider, D try { const content = await workspace.fs.readFile(Uri.file(path)); - this.parseTextToItems(content.toString(), items); + this.parseTextToItems(basename(path), content.toString(), items); } catch (error) { } @@ -121,7 +122,7 @@ export class SelectorCompletionItemProvider implements CompletionItemProvider, D if (res.ok) { const text = await res.text(); - this.parseTextToItems(text, items); + this.parseTextToItems(basename(path), text, items); } } catch (error) { } @@ -150,7 +151,7 @@ export class SelectorCompletionItemProvider implements CompletionItemProvider, D let style; while ((style = findStyles.exec(text)) !== null) { - this.parseTextToItems(style[1], items); + this.parseTextToItems(basename(uri.fsPath), style[1], items); } this.cache.set(key, items); @@ -227,7 +228,7 @@ export class SelectorCompletionItemProvider implements CompletionItemProvider, D const classes = new Map(); keys.forEach(key => this.cache.get(key)?.forEach(e => - (e.kind === CompletionItemKind.Value ? ids : classes).set(e.label, e))); + (e.kind === CompletionItemKind.Value ? ids : classes).set((e.label).label, e))); return { ids, classes }; } diff --git a/src/test/suite/mocks.ts b/src/test/suite/mocks.ts index e127382..2ec5ed4 100644 --- a/src/test/suite/mocks.ts +++ b/src/test/suite/mocks.ts @@ -22,7 +22,7 @@ export class MockCancellationToken implements CancellationToken { export class MockCompletionContext implements CompletionContext { triggerKind = CompletionTriggerKind.Invoke; - triggerCharacter?: string | undefined; + triggerCharacter: string | undefined; } export class MockDocument implements TextDocument {