Skip to content

Commit c1db181

Browse files
committed
Released 1.4.1
1 parent 6456af6 commit c1db181

File tree

4 files changed

+16
-23
lines changed

4 files changed

+16
-23
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "vscode-html-css",
33
"displayName": "HTML CSS Support",
44
"description": "CSS Intellisense for HTML",
5-
"version": "1.4.0",
5+
"version": "1.4.1",
66
"publisher": "ecmel",
77
"license": "MIT",
88
"homepage": "https://github.com/ecmel/vscode-html-css",

src/completion.ts

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import {
99
CompletionItemProvider,
1010
CompletionList,
1111
Diagnostic,
12-
DiagnosticCollection,
1312
DiagnosticSeverity,
1413
Disposable,
1514
languages,
@@ -28,22 +27,19 @@ export class ClassCompletionItemProvider implements CompletionItemProvider, Disp
2827
readonly cache = new Map<string, Map<string, CompletionItem>>();
2928
readonly extends = new Map<string, Set<string>>();
3029
readonly watchers = new Map<string, Disposable>();
31-
readonly collection: DiagnosticCollection;
30+
readonly collection = languages.createDiagnosticCollection();
3231
readonly isRemote = /^https?:\/\//i;
3332
readonly canComplete = /(id|class|className)\s*=\s*("|')(?:(?!\2).)*$/si;
3433
readonly findLinkRel = /rel\s*=\s*("|')((?:(?!\1).)+)\1/si;
3534
readonly findLinkHref = /href\s*=\s*("|')((?:(?!\1).)+)\1/si;
3635
readonly findExtended = /(?:{{<|{%\s*extends|@extends\s*\()\s*("|')?([./A-Za-z_0-9\\\-]+)\1\s*(?:\)|%}|}})/i;
3736

38-
constructor(collection: DiagnosticCollection) {
39-
this.collection = collection;
40-
}
41-
4237
dispose() {
4338
this.watchers.forEach(v => v.dispose());
4439
this.cache.clear();
4540
this.extends.clear();
4641
this.watchers.clear();
42+
this.collection.dispose();
4743
}
4844

4945
watchFile(uri: Uri, listener: (e: Uri) => any) {

src/extension.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@ import { ExtensionContext, languages, workspace, commands } from "vscode";
44
export function activate(context: ExtensionContext) {
55
const config = workspace.getConfiguration("css");
66
const enabledLanguages = config.get<string[]>("enabledLanguages", ["html"]);
7-
const collection = languages.createDiagnosticCollection();
8-
const provider = new ClassCompletionItemProvider(collection);
7+
const provider = new ClassCompletionItemProvider();
98

109
workspace.textDocuments.forEach(document => {
1110
if (enabledLanguages.includes(document.languageId)) {
@@ -34,7 +33,6 @@ export function activate(context: ExtensionContext) {
3433
provider
3534
),
3635

37-
collection,
3836
provider
3937
);
4038
}

src/test/suite/completion.test.ts

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,23 @@
11
import * as assert from "assert";
22
import { ClassCompletionItemProvider } from "../../completion";
33
import { MockCancellationToken, MockCompletionContext, MockDocument } from "./mocks";
4-
import { CompletionItem, Position, Uri, languages } from "vscode";
4+
import { CompletionItem, Position, Uri } from "vscode";
55

66
suite("ClassCompletionItemProvider Test Suite", () => {
77

8-
const collection = languages.createDiagnosticCollection();
98
const position = new Position(0, 0);
109
const token = new MockCancellationToken(false);
1110
const context = new MockCompletionContext();
1211

1312
test("RegEx: isRemote", () => {
14-
const provider = new ClassCompletionItemProvider(collection);
13+
const provider = new ClassCompletionItemProvider();
1514

1615
assert.strictEqual(provider.isRemote.test("http://example.com/example.css"), true);
1716
assert.strictEqual(provider.isRemote.test("https://example.com/example.css"), true);
1817
});
1918

2019
test("RegEx: canComplete", () => {
21-
const provider = new ClassCompletionItemProvider(collection);
20+
const provider = new ClassCompletionItemProvider();
2221

2322
assert.strictEqual(provider.canComplete.test(""), false);
2423
assert.strictEqual(provider.canComplete.test("class=\""), true);
@@ -53,47 +52,47 @@ suite("ClassCompletionItemProvider Test Suite", () => {
5352
});
5453

5554
test("RegEx: findLinkRel", () => {
56-
const provider = new ClassCompletionItemProvider(collection);
55+
const provider = new ClassCompletionItemProvider();
5756

5857
assert.strictEqual(provider.findLinkRel.exec(`
5958
<link rel="stylesheet" href="http://example.com/example.css">
6059
"`)?.[2], "stylesheet");
6160
});
6261

6362
test("RegEx: findLinkHref", () => {
64-
const provider = new ClassCompletionItemProvider(collection);
63+
const provider = new ClassCompletionItemProvider();
6564

6665
assert.strictEqual(provider.findLinkHref.exec(`
6766
<link rel="stylesheet" href="http://example.com/example.css">
6867
"`)?.[2], "http://example.com/example.css");
6968
});
7069

7170
test("RegEx: findExtended (Twig)", () => {
72-
const provider = new ClassCompletionItemProvider(collection);
71+
const provider = new ClassCompletionItemProvider();
7372

7473
assert.strictEqual(provider.findExtended.exec(`
7574
{% extends "base" %}
7675
`)?.[2], "base");
7776
});
7877

7978
test("RegEx: findExtended (Mustache)", () => {
80-
const provider = new ClassCompletionItemProvider(collection);
79+
const provider = new ClassCompletionItemProvider();
8180

8281
assert.strictEqual(provider.findExtended.exec(`
8382
{{< base }}
8483
`)?.[2], "base");
8584
});
8685

8786
test("RegEx: findExtended (Blade)", () => {
88-
const provider = new ClassCompletionItemProvider(collection);
87+
const provider = new ClassCompletionItemProvider();
8988

9089
assert.strictEqual(provider.findExtended.exec(`
9190
@extends('base')
9291
`)?.[2], "base");
9392
});
9493

9594
test("Rejects outside class attribute", (done) => {
96-
const provider = new ClassCompletionItemProvider(collection);
95+
const provider = new ClassCompletionItemProvider();
9796
const document = new MockDocument("<a class=\"\"></a>");
9897

9998
const result = provider.provideCompletionItems(
@@ -106,7 +105,7 @@ suite("ClassCompletionItemProvider Test Suite", () => {
106105
});
107106

108107
test("Completes from style tag", async () => {
109-
const provider = new ClassCompletionItemProvider(collection);
108+
const provider = new ClassCompletionItemProvider();
110109
const document = new MockDocument("<style>.test{}</style><a class=\"");
111110

112111
const items = await (provider.provideCompletionItems(
@@ -119,7 +118,7 @@ suite("ClassCompletionItemProvider Test Suite", () => {
119118
});
120119

121120
test("Completes from link tag", async () => {
122-
const provider = new ClassCompletionItemProvider(collection);
121+
const provider = new ClassCompletionItemProvider();
123122
const document = new MockDocument(`
124123
<link
125124
href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css"
@@ -143,7 +142,7 @@ suite("ClassCompletionItemProvider Test Suite", () => {
143142
"https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css"
144143
];
145144
}
146-
}(collection);
145+
}();
147146

148147
const document = new MockDocument("<a class=\"");
149148

0 commit comments

Comments
 (0)