11import * as vscode from 'vscode' ;
2- import * as Parser from 'web-tree-sitter' ;
3- import { Node } from 'web-tree-sitter' ;
2+ import { Node , QueryCapture , Tree } from 'web-tree-sitter' ;
43import { getTrees , toRange , toPoint , queryNode , getLastNode , trees , toPosition } from "../TreeSitter" ;
54import { ITextMateThemingRule } from "../extensions" ;
65import { getScopes } from "../themeScopeColors" ;
@@ -69,6 +68,7 @@ export const CompletionItemProvider: vscode.CompletionItemProvider = {
6968 const point = toPoint ( position ) ;
7069
7170 const cursorQuery = `;scm
71+ ; (json) @json_new
7272 (schema (value) @schema)
7373 (schema) @schema_new
7474 (scopeName (value) @scopeName)
@@ -279,7 +279,7 @@ export const CompletionItemProvider: vscode.CompletionItemProvider = {
279279 }
280280 case 'include' :
281281 const rootPatternsQuery = `(json (patterns) @patterns)` ;
282- const rootPatternsText = queryNode ( tree . rootNode , rootPatternsQuery ) . pop ( ) ?. node ?. text ;
282+ const rootPatternsText = queryNode ( rootNode , rootPatternsQuery ) . pop ( ) ?. node ?. text ;
283283
284284 const selfLabel : vscode . CompletionItemLabel = {
285285 label : '$self' ,
@@ -311,7 +311,7 @@ export const CompletionItemProvider: vscode.CompletionItemProvider = {
311311 const cursorScopeName = cursorNode . childForFieldName ( 'scopeName' ) ?. text ;
312312 if ( cursorScopeName ) {
313313 const rootScopeNameQuery = `(json (scopeName (value) @scopeName))` ;
314- const rootScopeName = queryNode ( tree . rootNode , rootScopeNameQuery ) . pop ( ) ?. node ?. text ;
314+ const rootScopeName = queryNode ( rootNode , rootScopeNameQuery ) . pop ( ) ?. node ?. text ;
315315 if ( rootScopeName ) {
316316 const rootScopeNameLabel : vscode . CompletionItemLabel = {
317317 label : rootScopeName ,
@@ -573,7 +573,7 @@ export const CompletionItemProvider: vscode.CompletionItemProvider = {
573573 // default:
574574 // break;
575575 // }
576- // const newPoint: Parser. Point = {
576+ // const newPoint: Point = {
577577 // row: point.row,
578578 // column: point.column - 1
579579 // }
@@ -587,8 +587,38 @@ export const CompletionItemProvider: vscode.CompletionItemProvider = {
587587 // vscode.window.showInformationMessage("6" + JSON.stringify(context.triggerCharacter));
588588 // vscode.window.showInformationMessage("7" + JSON.stringify(queryNode(regexNode, `(_ _ @node)`, point).node.text));
589589 // vscode.window.showInformationMessage("8" + JSON.stringify(queryNode(regexNode, `(_ _ @node)`, newPoint).node.text));
590-
591590 break ;
591+ /* case 'json_new':
592+ completionItems.push(
593+ { label: "Text", range: cursorRange, kind: vscode.CompletionItemKind.Text, },
594+ { label: "Method", range: cursorRange, kind: vscode.CompletionItemKind.Method, },
595+ { label: "Function", range: cursorRange, kind: vscode.CompletionItemKind.Function, },
596+ { label: "Constructor", range: cursorRange, kind: vscode.CompletionItemKind.Constructor, },
597+ { label: "Field", range: cursorRange, kind: vscode.CompletionItemKind.Field, },
598+ { label: "Variable", range: cursorRange, kind: vscode.CompletionItemKind.Variable, },
599+ { label: "Class", range: cursorRange, kind: vscode.CompletionItemKind.Class, },
600+ { label: "Interface", range: cursorRange, kind: vscode.CompletionItemKind.Interface, },
601+ { label: "Module", range: cursorRange, kind: vscode.CompletionItemKind.Module, },
602+ { label: "Property", range: cursorRange, kind: vscode.CompletionItemKind.Property, },
603+ { label: "Unit", range: cursorRange, kind: vscode.CompletionItemKind.Unit, },
604+ { label: "Value", range: cursorRange, kind: vscode.CompletionItemKind.Value, },
605+ { label: "Enum", range: cursorRange, kind: vscode.CompletionItemKind.Enum, },
606+ { label: "Keyword", range: cursorRange, kind: vscode.CompletionItemKind.Keyword, },
607+ { label: "Snippet", range: cursorRange, kind: vscode.CompletionItemKind.Snippet, },
608+ { label: "Color", range: cursorRange, kind: vscode.CompletionItemKind.Color, },
609+ { label: "Reference", range: cursorRange, kind: vscode.CompletionItemKind.Reference, },
610+ { label: "File", range: cursorRange, kind: vscode.CompletionItemKind.File, },
611+ { label: "Folder", range: cursorRange, kind: vscode.CompletionItemKind.Folder, },
612+ { label: "EnumMember", range: cursorRange, kind: vscode.CompletionItemKind.EnumMember, },
613+ { label: "Constant", range: cursorRange, kind: vscode.CompletionItemKind.Constant, },
614+ { label: "Struct", range: cursorRange, kind: vscode.CompletionItemKind.Struct, },
615+ { label: "Event", range: cursorRange, kind: vscode.CompletionItemKind.Event, },
616+ { label: "Operator", range: cursorRange, kind: vscode.CompletionItemKind.Operator, },
617+ { label: "TypeParameter", range: cursorRange, kind: vscode.CompletionItemKind.TypeParameter, },
618+ { label: "User", range: cursorRange, kind: vscode.CompletionItemKind.User, },
619+ { label: "Issue", range: cursorRange, kind: vscode.CompletionItemKind.Issue, },
620+ );
621+ break; */
592622 default :
593623 return ;
594624 }
@@ -642,7 +672,7 @@ export const CompletionItemProvider: vscode.CompletionItemProvider = {
642672} ;
643673
644674
645- function repoCompletionItems ( completionItems : CompletionItem [ ] , tree : Parser . Tree , cursorRange : vscode . Range , scopeName ?: string ) : void {
675+ function repoCompletionItems ( completionItems : CompletionItem [ ] , tree : Tree , cursorRange : vscode . Range , scopeName ?: string ) : void {
646676 const rootNode = tree . rootNode ;
647677
648678 const repoQuery =
@@ -704,7 +734,7 @@ function repoCompletionItems(completionItems: CompletionItem[], tree: Parser.Tre
704734 }
705735}
706736
707- function locateRegex ( trees : trees , nameNode : Node ) : Parser . QueryCapture [ ] {
737+ function locateRegex ( trees : trees , nameNode : Node ) : QueryCapture [ ] {
708738 const parent = nameNode . parent ! ;
709739 if ( nameNode . type == 'name' && parent . childForFieldName ( 'match' ) ) {
710740 return getCaptureGroups ( trees , parent , 'match' ) ;
@@ -727,7 +757,7 @@ function locateRegex(trees: trees, nameNode: Node): Parser.QueryCapture[] {
727757 if ( ! tripleParent . childForFieldName ( 'begin' ) ) {
728758 return [ ] ;
729759 }
730- let beginCaptures : Parser . QueryCapture [ ] = [ ] ;
760+ let beginCaptures : QueryCapture [ ] = [ ] ;
731761 if ( ! getLastNode ( tripleParent , 'beginCaptures' ) ) {
732762 beginCaptures = getCaptureGroups ( trees , tripleParent , 'begin' ) ;
733763 }
@@ -767,7 +797,7 @@ function locateRegex(trees: trees, nameNode: Node): Parser.QueryCapture[] {
767797 return [ ] ;
768798}
769799
770- function getCaptureGroups ( trees : trees , parentNode : Node , type : string ) : Parser . QueryCapture [ ] {
800+ function getCaptureGroups ( trees : trees , parentNode : Node , type : string ) : QueryCapture [ ] {
771801 const node = getLastNode ( parentNode , type ) ;
772802 if ( ! node ) {
773803 return [ ] ;
0 commit comments