Skip to content

Commit c7af51d

Browse files
committed
Fiixes
1 parent 466266f commit c7af51d

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

src/extension.ts

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ export class ClassCompletionItemProvider implements CompletionItemProvider {
2222

2323
readonly start = new Position(0, 0);
2424
readonly cache = new Map<string, Map<string, CompletionItem>>();
25+
readonly isRemote = /^https?:\/\//i;
2526
readonly canComplete = /class\s*=\s*(["'])(?:(?!\1).)*$/si;
2627
readonly findLinkRel = /rel\s*=\s*(["'])((?:(?!\1).)+)\1/si;
2728
readonly findLinkHref = /href\s*=\s*(["'])((?:(?!\1).)+)\1/si;
@@ -36,7 +37,7 @@ export class ClassCompletionItemProvider implements CompletionItemProvider {
3637
});
3738
}
3839

39-
fetchRemoteStyleSheet(key: string): Thenable<string> {
40+
fetchStyleSheet(key: string): Thenable<string> {
4041
return new Promise(resolve => {
4142
if (key === NONE) {
4243
resolve(NONE);
@@ -45,7 +46,7 @@ export class ClassCompletionItemProvider implements CompletionItemProvider {
4546

4647
if (items) {
4748
resolve(key);
48-
} else {
49+
} else if (this.isRemote.test(key)) {
4950
const items = new Map<string, CompletionItem>();
5051

5152
fetch(key).then(res => {
@@ -60,6 +61,8 @@ export class ClassCompletionItemProvider implements CompletionItemProvider {
6061
resolve(key);
6162
}
6263
}, () => resolve(NONE));
64+
} else {
65+
resolve(NONE);
6366
}
6467
}
6568
});
@@ -79,8 +82,8 @@ export class ClassCompletionItemProvider implements CompletionItemProvider {
7982
if (rel && rel[2] === "stylesheet") {
8083
const href = this.findLinkHref.exec(link[1]);
8184

82-
if (href && href[2].startsWith("http")) {
83-
promises.push(this.fetchRemoteStyleSheet(href[2]).then(k => keys.add(k)));
85+
if (href) {
86+
promises.push(this.fetchStyleSheet(href[2]).then(k => keys.add(k)));
8487
}
8588
}
8689
}
@@ -94,8 +97,8 @@ export class ClassCompletionItemProvider implements CompletionItemProvider {
9497
const keys = new Set<string>();
9598
const promises = [];
9699

97-
for (const sheet of this.remoteStyleSheets) {
98-
promises.push(this.fetchRemoteStyleSheet(sheet).then(k => keys.add(k)));
100+
for (const href of this.remoteStyleSheets) {
101+
promises.push(this.fetchStyleSheet(href).then(k => keys.add(k)));
99102
}
100103

101104
Promise.all(promises).then(() => resolve(keys));

0 commit comments

Comments
 (0)