aboutsummaryrefslogtreecommitdiff
path: root/bindings/node/index.d.ts
diff options
context:
space:
mode:
Diffstat (limited to 'bindings/node/index.d.ts')
-rw-r--r--bindings/node/index.d.ts60
1 files changed, 60 insertions, 0 deletions
diff --git a/bindings/node/index.d.ts b/bindings/node/index.d.ts
new file mode 100644
index 0000000..876252a
--- /dev/null
+++ b/bindings/node/index.d.ts
@@ -0,0 +1,60 @@
+type BaseNode = {
+ type: string;
+ named: boolean;
+};
+
+type ChildNode = {
+ multiple: boolean;
+ required: boolean;
+ types: BaseNode[];
+};
+
+type NodeInfo =
+ | (BaseNode & {
+ subtypes: BaseNode[];
+ })
+ | (BaseNode & {
+ fields: { [name: string]: ChildNode };
+ children: ChildNode[];
+ });
+
+/**
+ * The tree-sitter language object for this grammar.
+ *
+ * @see {@linkcode https://tree-sitter.github.io/node-tree-sitter/interfaces/Parser.Language.html Parser.Language}
+ *
+ * @example
+ * import Parser from "tree-sitter";
+ * import Wmap from "tree-sitter-wmap";
+ *
+ * const parser = new Parser();
+ * parser.setLanguage(Wmap);
+ */
+declare const binding: {
+ /**
+ * The inner language object.
+ * @private
+ */
+ language: unknown;
+
+ /**
+ * The content of the `node-types.json` file for this grammar.
+ *
+ * @see {@linkplain https://tree-sitter.github.io/tree-sitter/using-parsers/6-static-node-types Static Node Types}
+ */
+ nodeTypeInfo: NodeInfo[];
+
+ /** The syntax highlighting query for this grammar. */
+ HIGHLIGHTS_QUERY?: string;
+
+ /** The language injection query for this grammar. */
+ INJECTIONS_QUERY?: string;
+
+ /** The local variable query for this grammar. */
+ LOCALS_QUERY?: string;
+
+ /** The symbol tagging query for this grammar. */
+ TAGS_QUERY?: string;
+};
+
+export default binding;