Skip to content

Commit ebe14dc

Browse files
committed
Minor Cleanup
1 parent 045ddc5 commit ebe14dc

File tree

3 files changed

+43
-14
lines changed

3 files changed

+43
-14
lines changed

README.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,6 @@ Highlights scope names with their own themed colour in realtime:
8181
* Improve TextMate [documentation](https://github.com/RedCMD/TmLanguage-Syntax-Highlighter/blob/main/documentation/index.md)
8282
* Finish CallStack viewer
8383
* Redo TextMate scopeNames [Naming conventions](https://github.com/atom/flight-manual.atom.io/pull/564)
84-
* Refactor: Sort JSON keys
8584
* Move to LanguageServer
8685
* Add unit tests
8786
* Improve TreeSitter Query performance: [Node contains `&fieldName`](https://github.com/tree-sitter/tree-sitter/issues/3956), [Caching or Serializing a `TSQuery`](https://github.com/tree-sitter/tree-sitter/issues/1942)

src/Providers/CompletionItemProvider.ts

Lines changed: 40 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import * 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';
43
import { getTrees, toRange, toPoint, queryNode, getLastNode, trees, toPosition } from "../TreeSitter";
54
import { ITextMateThemingRule } from "../extensions";
65
import { 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 [];

src/extension.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import * as vscode from 'vscode';
2+
import { IRelaxedExtensionManifest } from "./extensions";
23

34
import { initTreeSitter } from "./TreeSitter";
45
import { initOniguruma } from "./Oniguruma";
@@ -23,7 +24,6 @@ import { DocumentHighlightProvider } from "./Providers/DocumentHighlightProvider
2324
import { CompletionItemProvider, triggerCharacters } from "./Providers/CompletionItemProvider";
2425
import { OnTypeFormattingEditProvider, DocumentFormattingEditProvider, DocumentRangeFormattingEditProvider } from "./Providers/DocumentFormattingEditProvider";
2526
import { DocumentSemanticTokensProvider, SemanticTokensLegend } from "./Providers/DocumentSemanticTokensProvider";
26-
import { IRelaxedExtensionManifest } from "./extensions";
2727

2828

2929
export const DocumentSelector: vscode.DocumentSelector = [
@@ -82,7 +82,7 @@ export function sleep(milliseconds: number) {
8282
return new Promise(resolve => setTimeout(resolve, milliseconds));
8383
}
8484

85-
export function stringify(this: any, key: string, value: any) {
85+
export function stringify(this: any, key: string, value: any): any {
8686
if (typeof value === 'function') {
8787
return "<function>";
8888
}
@@ -220,7 +220,7 @@ export async function getPackageJSON(baseUri: vscode.TextDocument | vscode.Uri,
220220
return { packageJSON: packageJSON, packageUri: packageUri };
221221
}
222222
} catch (error) {
223-
console.warn(`TextMate: Failed to parse package.json\n${error}`);
223+
console.warn("TextMate: Failed to parse package.json\n", error);
224224
}
225225

226226
return {};

0 commit comments

Comments
 (0)