diff options
author | 2021-08-12 18:39:27 -0500 | |
---|---|---|
committer | 2021-08-12 18:39:27 -0500 | |
commit | 7cd3689a8e97eea9a38df4ecd9224de72fa4e443 (patch) | |
tree | 3574d2a94edff6c2095a7252dfb3dc9604ebc15a /tools/language-server/src/plugins/html/HTMLPlugin.ts | |
parent | aa20be9138f19fc90977fd403c80989b138544d1 (diff) | |
download | astro-7cd3689a8e97eea9a38df4ecd9224de72fa4e443.tar.gz astro-7cd3689a8e97eea9a38df4ecd9224de72fa4e443.tar.zst astro-7cd3689a8e97eea9a38df4ecd9224de72fa4e443.zip |
Provide completion suggestions in component props (#1082)
* Provide completion suggestions in component props
* Limit prop completion to props that the component exports
Diffstat (limited to 'tools/language-server/src/plugins/html/HTMLPlugin.ts')
-rw-r--r-- | tools/language-server/src/plugins/html/HTMLPlugin.ts | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/tools/language-server/src/plugins/html/HTMLPlugin.ts b/tools/language-server/src/plugins/html/HTMLPlugin.ts index d4f75e0d3..90c55b502 100644 --- a/tools/language-server/src/plugins/html/HTMLPlugin.ts +++ b/tools/language-server/src/plugins/html/HTMLPlugin.ts @@ -31,6 +31,13 @@ export class HTMLPlugin implements CompletionsProvider, FoldingRangeProvider { return null; } + const offset = document.offsetAt(position); + const node = html.findNodeAt(offset); + + if(this.isComponentTag(node)) { + return null; + } + const emmetResults: CompletionList = { isIncomplete: true, items: [], @@ -124,4 +131,12 @@ export class HTMLPlugin implements CompletionsProvider, FoldingRangeProvider { private isInsideFrontmatter(document: Document, position: Position) { return isInsideFrontmatter(document.getText(), document.offsetAt(position)); } + + private isComponentTag(node: Node): boolean { + if (!node.tag) { + return false; + } + const firstChar = node.tag[0]; + return /[A-Z]/.test(firstChar); + } } |