Skip to content

Commit ea833e4

Browse files
committed
Fixes
1 parent ec63983 commit ea833e4

File tree

4 files changed

+19
-22
lines changed

4 files changed

+19
-22
lines changed

.vscode/launch.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
"--extensionDevelopmentPath=${workspaceFolder}"
1414
],
1515
"outFiles": [
16-
"${workspaceFolder}/out/**/*.js"
16+
"${workspaceFolder}/dist/**/*.js"
1717
],
1818
"preLaunchTask": "${defaultBuildTask}"
1919
},
@@ -28,7 +28,7 @@
2828
"outFiles": [
2929
"${workspaceFolder}/out/test/**/*.js"
3030
],
31-
"preLaunchTask": "${defaultBuildTask}"
31+
"preLaunchTask": "npm: test-compile"
3232
}
3333
]
3434
}

.vscode/tasks.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
"tasks": [
66
{
77
"type": "npm",
8-
"script": "watch",
8+
"script": "webpack",
99
"problemMatcher": "$tsc-watch",
10-
"isBackground": true,
10+
"isBackground": false,
1111
"presentation": {
1212
"reveal": "never"
1313
},

package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@
4545
"vscode:prepublish": "webpack --mode production",
4646
"webpack": "webpack --mode development",
4747
"webpack-dev": "webpack --mode development --watch",
48-
"test-compile": "tsc -p ./",
4948
"compile": "tsc -p ./",
5049
"watch": "tsc -watch -p ./",
5150
"pretest": "npm run compile && npm run lint",

src/extension.ts

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
import fetch from "node-fetch";
2-
32
import { parse, walk } from "css-tree";
4-
53
import {
64
languages,
75
Range,
@@ -24,8 +22,8 @@ class ClassCompletionItemProvider implements CompletionItemProvider {
2422
readonly start = new Position(0, 0);
2523
readonly cache = new Map<string, Map<string, CompletionItem>>();
2624
readonly canComplete = /class\s*=\s*(["'])(?:(?!\1).)*$/si;
27-
readonly findLinkRel = /rel\s*=\s*(["'])((?:(?!\1).)+)\1/si;
28-
readonly findLinkHref = /href\s*=\s*(["'])((?:(?!\1).)+)\1/si;
25+
readonly findLinkRel = /rel\s*=\s*(["'])((?:(?!\1).))+\1/si;
26+
readonly findLinkHref = /href\s*=\s*(["'])((?:(?!\1).))+\1/si;
2927

3028
remoteStyles: string[] = [];
3129

@@ -45,6 +43,14 @@ class ClassCompletionItemProvider implements CompletionItemProvider {
4543
}
4644
}
4745

46+
parseTextToItems(text: string, items: Map<string, CompletionItem>) {
47+
walk(parse(text), (node) => {
48+
if (node.type === "ClassSelector") {
49+
items.set(node.name, new CompletionItem(node.name));
50+
}
51+
});
52+
}
53+
4854
fetchRemoteStyleSheet(key: string): Thenable<string> {
4955
return new Promise(resolve => {
5056

@@ -63,16 +69,10 @@ class ClassCompletionItemProvider implements CompletionItemProvider {
6369
fetch(key).then(res => {
6470
if (res.status < 400) {
6571
res.text().then(text => {
66-
walk(parse(text), (node) => {
67-
if (node.type === "ClassSelector") {
68-
items.set(node.name, new CompletionItem(node.name));
69-
};
70-
});
72+
this.parseTextToItems(text, items);
7173
this.cache.set(key, items);
7274
resolve(key);
73-
}, () => {
74-
resolve(NONE);
75-
});
75+
}, () => resolve(NONE));
7676
} else {
7777
resolve(NONE);
7878
}
@@ -83,6 +83,7 @@ class ClassCompletionItemProvider implements CompletionItemProvider {
8383

8484
findDocumentLinks(text: string): Thenable<Set<string>> {
8585
return new Promise(resolve => {
86+
8687
const findLinks = /<link([^>]+)>/gi;
8788
const keys = new Set<string>();
8889
const promises = [];
@@ -108,6 +109,7 @@ class ClassCompletionItemProvider implements CompletionItemProvider {
108109

109110
findRemoteStyles(): Thenable<Set<string>> {
110111
return new Promise(resolve => {
112+
111113
const keys = new Set<string>();
112114
const promises = [];
113115

@@ -127,11 +129,7 @@ class ClassCompletionItemProvider implements CompletionItemProvider {
127129
let style;
128130

129131
while ((style = findStyles.exec(text)) !== null) {
130-
walk(parse(style[1]), (node) => {
131-
if (node.type === "ClassSelector") {
132-
items.set(node.name, new CompletionItem(node.name));
133-
}
134-
});
132+
this.parseTextToItems(text, items);
135133
}
136134

137135
return items;

0 commit comments

Comments
 (0)