From d2dbd9cb78543a51c6f85904667c393a9f45c9c6 Mon Sep 17 00:00:00 2001 From: maunzCache Date: Sun, 16 Feb 2025 17:21:39 +0100 Subject: [PATCH] chore: provide missing defaults via --- .editorconfig | 46 +++++++++++++++++++ .gitattributes | 37 +++++++++++++++ bindings/node/binding_test.js | 9 ++++ bindings/node/index.d.ts | 28 +++++++++++ .../{TreeSitterHCL => TreeSitterHcl}/hcl.h | 2 +- .../TreeSitterHclTests.swift | 12 +++++ 6 files changed, 133 insertions(+), 1 deletion(-) create mode 100644 .editorconfig create mode 100644 .gitattributes create mode 100644 bindings/node/binding_test.js create mode 100644 bindings/node/index.d.ts rename bindings/swift/{TreeSitterHCL => TreeSitterHcl}/hcl.h (82%) create mode 100644 bindings/swift/TreeSitterHclTests/TreeSitterHclTests.swift diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..65330c4 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,46 @@ +root = true + +[*] +charset = utf-8 + +[*.{json,toml,yml,gyp}] +indent_style = space +indent_size = 2 + +[*.js] +indent_style = space +indent_size = 2 + +[*.scm] +indent_style = space +indent_size = 2 + +[*.{c,cc,h}] +indent_style = space +indent_size = 4 + +[*.rs] +indent_style = space +indent_size = 4 + +[*.{py,pyi}] +indent_style = space +indent_size = 4 + +[*.swift] +indent_style = space +indent_size = 4 + +[*.go] +indent_style = tab +indent_size = 8 + +[Makefile] +indent_style = tab +indent_size = 8 + +[parser.c] +indent_size = 2 + +[{alloc,array,parser}.h] +indent_size = 2 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..7e2cae0 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,37 @@ +* text=auto eol=lf + +# Generated source files +src/*.json linguist-generated +src/parser.c linguist-generated +src/tree_sitter/* linguist-generated + +# C bindings +bindings/c/* linguist-generated +CMakeLists.txt linguist-generated +Makefile linguist-generated + +# Rust bindings +bindings/rust/* linguist-generated +Cargo.toml linguist-generated +Cargo.lock linguist-generated + +# Node.js bindings +bindings/node/* linguist-generated +binding.gyp linguist-generated +package.json linguist-generated +package-lock.json linguist-generated + +# Python bindings +bindings/python/** linguist-generated +setup.py linguist-generated +pyproject.toml linguist-generated + +# Go bindings +bindings/go/* linguist-generated +go.mod linguist-generated +go.sum linguist-generated + +# Swift bindings +bindings/swift/** linguist-generated +Package.swift linguist-generated +Package.resolved linguist-generated diff --git a/bindings/node/binding_test.js b/bindings/node/binding_test.js new file mode 100644 index 0000000..55becac --- /dev/null +++ b/bindings/node/binding_test.js @@ -0,0 +1,9 @@ +const assert = require("node:assert"); +const { test } = require("node:test"); + +const Parser = require("tree-sitter"); + +test("can load grammar", () => { + const parser = new Parser(); + assert.doesNotThrow(() => parser.setLanguage(require("."))); +}); diff --git a/bindings/node/index.d.ts b/bindings/node/index.d.ts new file mode 100644 index 0000000..efe259e --- /dev/null +++ b/bindings/node/index.d.ts @@ -0,0 +1,28 @@ +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[]; + }); + +type Language = { + name: string; + language: unknown; + nodeTypeInfo: NodeInfo[]; +}; + +declare const language: Language; +export = language; diff --git a/bindings/swift/TreeSitterHCL/hcl.h b/bindings/swift/TreeSitterHcl/hcl.h similarity index 82% rename from bindings/swift/TreeSitterHCL/hcl.h rename to bindings/swift/TreeSitterHcl/hcl.h index 38eb75b..d0220ca 100644 --- a/bindings/swift/TreeSitterHCL/hcl.h +++ b/bindings/swift/TreeSitterHcl/hcl.h @@ -7,7 +7,7 @@ typedef struct TSLanguage TSLanguage; extern "C" { #endif -extern TSLanguage *tree_sitter_hcl(); +const TSLanguage *tree_sitter_hcl(void); #ifdef __cplusplus } diff --git a/bindings/swift/TreeSitterHclTests/TreeSitterHclTests.swift b/bindings/swift/TreeSitterHclTests/TreeSitterHclTests.swift new file mode 100644 index 0000000..1503481 --- /dev/null +++ b/bindings/swift/TreeSitterHclTests/TreeSitterHclTests.swift @@ -0,0 +1,12 @@ +import XCTest +import SwiftTreeSitter +import TreeSitterHcl + +final class TreeSitterHclTests: XCTestCase { + func testCanLoadGrammar() throws { + let parser = Parser() + let language = Language(language: tree_sitter_hcl()) + XCTAssertNoThrow(try parser.setLanguage(language), + "Error loading Hcl grammar") + } +}