Skip to content

Commit b947ab6

Browse files
committed
Fixes
1 parent 18b3bdf commit b947ab6

File tree

1 file changed

+9
-11
lines changed

1 file changed

+9
-11
lines changed

src/completion.ts

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ export class SelectorCompletionItemProvider implements CompletionItemProvider, D
3535
readonly start = new Position(0, 0);
3636
readonly cache = new Map<string, Map<string, CompletionItem>>();
3737
readonly watchers = new Map<string, Disposable>();
38+
readonly selectors = new Map<string, Selectors>();
3839
readonly collection = languages.createDiagnosticCollection();
3940
readonly isRemote = /^https?:\/\//i;
4041
readonly canComplete = /(id|class|className)\s*=\s*("|')(?:(?!\2).)*$/si;
@@ -46,6 +47,7 @@ export class SelectorCompletionItemProvider implements CompletionItemProvider, D
4647
this.watchers.forEach(v => v.dispose());
4748
this.cache.clear();
4849
this.watchers.clear();
50+
this.selectors.clear();
4951
this.collection.dispose();
5052
}
5153

@@ -210,7 +212,7 @@ export class SelectorCompletionItemProvider implements CompletionItemProvider, D
210212
}
211213
}
212214

213-
async validate(document: TextDocument): Promise<Selectors> {
215+
async validate(document: TextDocument): Promise<void> {
214216
const keys = new Set<string>();
215217
const uri = document.uri;
216218
const text = document.getText();
@@ -263,10 +265,7 @@ export class SelectorCompletionItemProvider implements CompletionItemProvider, D
263265
}
264266

265267
this.collection.set(uri, diagnostics);
266-
267-
return {
268-
ids, classes
269-
};
268+
this.selectors.set(uri.toString(), { ids, classes });
270269
}
271270

272271
provideCompletionItems(
@@ -282,13 +281,12 @@ export class SelectorCompletionItemProvider implements CompletionItemProvider, D
282281
const range = new Range(this.start, position);
283282
const text = document.getText(range);
284283
const canComplete = this.canComplete.exec(text);
284+
const selector = this.selectors.get(document.uri.toString());
285285

286-
if (canComplete) {
287-
this.validate(document).then(selectors => resolve([
288-
...(canComplete[1] === "id"
289-
? selectors.ids
290-
: selectors.classes).values()
291-
]));
286+
if (canComplete && selector) {
287+
resolve([...(canComplete[1] === "id"
288+
? selector.ids
289+
: selector.classes).values()]);
292290
} else {
293291
reject();
294292
}

0 commit comments

Comments
 (0)