basic completion

This commit is contained in:
Pine Wu
2018-02-21 07:58:38 -08:00
parent 2fee5d4fc2
commit 9a0b59c55b
3 changed files with 87 additions and 3 deletions

View File

@@ -32,10 +32,21 @@ export function getHTMLMode(htmlLanguageService: HTMLLanguageService): LanguageM
const node = htmlDocument.findNodeBefore(offset);
const scanner = htmlLanguageService.createScanner(document.getText(), node.start);
let token = scanner.scan();
let prevTag, prevAttributeName;
while (token !== TokenType.EOS && scanner.getTokenOffset() <= offset) {
if (token === TokenType.Content && offset <= scanner.getTokenEnd()) {
completionParticipants.forEach(participant => { if (participant.onHtmlContent) { participant.onHtmlContent(); } });
break;
} else if (token === TokenType.AttributeName) {
prevAttributeName = scanner.getTokenText();
} else if (token === TokenType.StartTag) {
prevTag = scanner.getTokenText();
} else if (token === TokenType.AttributeValue && offset <= scanner.getTokenEnd()) {
completionParticipants.forEach(participant => {
if (participant.onHtmlAttributeValue) {
participant.onHtmlAttributeValue(prevTag, prevAttributeName, scanner.getTokenText());
}
});
}
token = scanner.scan();
}