feat!: update bindings

This commit is contained in:
ObserverOfTime
2025-05-09 10:06:33 +03:00
committed by Michael Hoffmann
parent 41a2e70241
commit 8b209bbb95
23 changed files with 337 additions and 114 deletions

1
.gitignore vendored
View File

@@ -47,7 +47,6 @@ zig-out/
*.zip
# Project misc.
queries
npm-debug.log
log.html
.env

66
CMakeLists.txt generated Normal file
View File

@@ -0,0 +1,66 @@
cmake_minimum_required(VERSION 3.13)
project(tree-sitter-hcl
VERSION "1.1.0"
DESCRIPTION "HCL and terraform grammar for tree-sitter"
HOMEPAGE_URL "https://github.com/tree-sitter-grammars/tree-sitter-hcl"
LANGUAGES C)
option(BUILD_SHARED_LIBS "Build using shared libraries" ON)
option(TREE_SITTER_REUSE_ALLOCATOR "Reuse the library allocator" OFF)
set(TREE_SITTER_ABI_VERSION 15 CACHE STRING "Tree-sitter ABI version")
if(NOT ${TREE_SITTER_ABI_VERSION} MATCHES "^[0-9]+$")
unset(TREE_SITTER_ABI_VERSION CACHE)
message(FATAL_ERROR "TREE_SITTER_ABI_VERSION must be an integer")
endif()
find_program(TREE_SITTER_CLI tree-sitter DOC "Tree-sitter CLI")
add_custom_command(OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/src/parser.c"
DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/src/grammar.json"
COMMAND "${TREE_SITTER_CLI}" generate src/grammar.json
--abi=${TREE_SITTER_ABI_VERSION}
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
COMMENT "Generating parser.c")
add_library(tree-sitter-hcl src/parser.c)
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/src/scanner.c)
target_sources(tree-sitter-hcl PRIVATE src/scanner.c)
endif()
target_include_directories(tree-sitter-hcl
PRIVATE src
INTERFACE $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/bindings/c>
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
target_compile_definitions(tree-sitter-hcl PRIVATE
$<$<BOOL:${TREE_SITTER_REUSE_ALLOCATOR}>:TREE_SITTER_REUSE_ALLOCATOR>
$<$<CONFIG:Debug>:TREE_SITTER_DEBUG>)
set_target_properties(tree-sitter-hcl
PROPERTIES
C_STANDARD 11
POSITION_INDEPENDENT_CODE ON
SOVERSION "${TREE_SITTER_ABI_VERSION}.${PROJECT_VERSION_MAJOR}"
DEFINE_SYMBOL "")
configure_file(bindings/c/tree-sitter-hcl.pc.in
"${CMAKE_CURRENT_BINARY_DIR}/tree-sitter-hcl.pc" @ONLY)
include(GNUInstallDirs)
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/bindings/c/tree_sitter"
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
FILES_MATCHING PATTERN "*.h")
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/tree-sitter-hcl.pc"
DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/pkgconfig")
install(TARGETS tree-sitter-hcl
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}")
file(GLOB QUERIES queries/*.scm)
install(FILES ${QUERIES}
DESTINATION "${CMAKE_INSTALL_DATADIR}/tree-sitter/queries/hcl")
add_custom_target(ts-test "${TREE_SITTER_CLI}" test
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
COMMENT "tree-sitter test")

26
Cargo.lock generated
View File

@@ -13,9 +13,9 @@ dependencies = [
[[package]]
name = "cc"
version = "1.2.14"
version = "1.2.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0c3d1b2e905a3a7b00a6141adb0e4c0bb941d11caf55349d863942a1cc44e3c9"
checksum = "8691782945451c1c383942c4874dbe63814f61cb57ef773cda2972682b7bb3c0"
dependencies = [
"shlex",
]
@@ -28,15 +28,15 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
[[package]]
name = "hashbrown"
version = "0.15.2"
version = "0.15.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289"
checksum = "84b26c544d002229e640969970a2e74021aadf6e2f96372b9c58eff97de08eb3"
[[package]]
name = "indexmap"
version = "2.8.0"
version = "2.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3954d50fe15b02142bf25d3b8bdadb634ec3948f103d04ffe3031bc8fe9d7058"
checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e"
dependencies = [
"equivalent",
"hashbrown",
@@ -56,9 +56,9 @@ checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
[[package]]
name = "proc-macro2"
version = "1.0.94"
version = "1.0.95"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84"
checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778"
dependencies = [
"unicode-ident",
]
@@ -154,9 +154,9 @@ checksum = "2b2231b7c3057d5e4ad0156fb3dc807d900806020c5ffa3ee6ff2c8c76fb8520"
[[package]]
name = "syn"
version = "2.0.100"
version = "2.0.101"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0"
checksum = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf"
dependencies = [
"proc-macro2",
"quote",
@@ -179,7 +179,7 @@ dependencies = [
[[package]]
name = "tree-sitter-hcl"
version = "0.0.1"
version = "1.1.0"
dependencies = [
"cc",
"tree-sitter",
@@ -188,9 +188,9 @@ dependencies = [
[[package]]
name = "tree-sitter-language"
version = "0.1.4"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "38eee4db33814de3d004de9d8d825627ed3320d0989cce0dea30efaf5be4736c"
checksum = "c4013970217383f67b18aef68f6fb2e8d409bc5755227092d32efb0422ba24b8"
[[package]]
name = "unicode-ident"

7
Cargo.toml generated
View File

@@ -1,7 +1,7 @@
[package]
name = "tree-sitter-hcl"
description = "HCL grammar for tree-sitter"
version = "0.0.1"
description = "HCL and terraform grammar for tree-sitter"
version = "1.1.0"
license = "Apache-2.0"
readme = "README.md"
keywords = ["incremental", "parsing", "tree-sitter", "hcl"]
@@ -14,6 +14,7 @@ build = "bindings/rust/build.rs"
include = [
"bindings/rust/*",
"grammar.js",
"make_grammar.js",
"queries/*",
"src/*",
"tree-sitter.json",
@@ -30,4 +31,4 @@ tree-sitter-language = "0.1"
cc = "1.2"
[dev-dependencies]
tree-sitter = "0.25"
tree-sitter = "0.25.3"

100
Makefile generated Normal file
View File

@@ -0,0 +1,100 @@
ifeq ($(OS),Windows_NT)
$(error Windows is not supported)
endif
LANGUAGE_NAME := tree-sitter-hcl
HOMEPAGE_URL := https://github.com/tree-sitter-grammars/tree-sitter-hcl
VERSION := 1.1.0
# repository
SRC_DIR := src
TS ?= tree-sitter
# install directory layout
PREFIX ?= /usr/local
DATADIR ?= $(PREFIX)/share
INCLUDEDIR ?= $(PREFIX)/include
LIBDIR ?= $(PREFIX)/lib
PCLIBDIR ?= $(LIBDIR)/pkgconfig
# source/object files
PARSER := $(SRC_DIR)/parser.c
EXTRAS := $(filter-out $(PARSER),$(wildcard $(SRC_DIR)/*.c))
OBJS := $(patsubst %.c,%.o,$(PARSER) $(EXTRAS))
# flags
ARFLAGS ?= rcs
override CFLAGS += -I$(SRC_DIR) -std=c11 -fPIC
# ABI versioning
SONAME_MAJOR = $(shell sed -n 's/\#define LANGUAGE_VERSION //p' $(PARSER))
SONAME_MINOR = $(word 1,$(subst ., ,$(VERSION)))
# OS-specific bits
ifeq ($(shell uname),Darwin)
SOEXT = dylib
SOEXTVER_MAJOR = $(SONAME_MAJOR).$(SOEXT)
SOEXTVER = $(SONAME_MAJOR).$(SONAME_MINOR).$(SOEXT)
LINKSHARED = -dynamiclib -Wl,-install_name,$(LIBDIR)/lib$(LANGUAGE_NAME).$(SOEXTVER),-rpath,@executable_path/../Frameworks
else
SOEXT = so
SOEXTVER_MAJOR = $(SOEXT).$(SONAME_MAJOR)
SOEXTVER = $(SOEXT).$(SONAME_MAJOR).$(SONAME_MINOR)
LINKSHARED = -shared -Wl,-soname,lib$(LANGUAGE_NAME).$(SOEXTVER)
endif
ifneq ($(filter $(shell uname),FreeBSD NetBSD DragonFly),)
PCLIBDIR := $(PREFIX)/libdata/pkgconfig
endif
all: lib$(LANGUAGE_NAME).a lib$(LANGUAGE_NAME).$(SOEXT) $(LANGUAGE_NAME).pc
lib$(LANGUAGE_NAME).a: $(OBJS)
$(AR) $(ARFLAGS) $@ $^
lib$(LANGUAGE_NAME).$(SOEXT): $(OBJS)
$(CC) $(LDFLAGS) $(LINKSHARED) $^ $(LDLIBS) -o $@
ifneq ($(STRIP),)
$(STRIP) $@
endif
$(LANGUAGE_NAME).pc: bindings/c/$(LANGUAGE_NAME).pc.in
sed -e 's|@PROJECT_VERSION@|$(VERSION)|' \
-e 's|@CMAKE_INSTALL_LIBDIR@|$(LIBDIR:$(PREFIX)/%=%)|' \
-e 's|@CMAKE_INSTALL_INCLUDEDIR@|$(INCLUDEDIR:$(PREFIX)/%=%)|' \
-e 's|@PROJECT_DESCRIPTION@|$(DESCRIPTION)|' \
-e 's|@PROJECT_HOMEPAGE_URL@|$(HOMEPAGE_URL)|' \
-e 's|@CMAKE_INSTALL_PREFIX@|$(PREFIX)|' $< > $@
$(PARSER): $(SRC_DIR)/grammar.json
$(TS) generate $^
install: all
install -d '$(DESTDIR)$(INCLUDEDIR)'/tree_sitter '$(DESTDIR)$(PCLIBDIR)' '$(DESTDIR)$(LIBDIR)'
install -m644 bindings/c/tree_sitter/$(LANGUAGE_NAME).h '$(DESTDIR)$(INCLUDEDIR)'/tree_sitter/$(LANGUAGE_NAME).h
install -m644 $(LANGUAGE_NAME).pc '$(DESTDIR)$(PCLIBDIR)'/$(LANGUAGE_NAME).pc
install -m644 lib$(LANGUAGE_NAME).a '$(DESTDIR)$(LIBDIR)'/lib$(LANGUAGE_NAME).a
install -m755 lib$(LANGUAGE_NAME).$(SOEXT) '$(DESTDIR)$(LIBDIR)'/lib$(LANGUAGE_NAME).$(SOEXTVER)
ln -sf lib$(LANGUAGE_NAME).$(SOEXTVER) '$(DESTDIR)$(LIBDIR)'/lib$(LANGUAGE_NAME).$(SOEXTVER_MAJOR)
ln -sf lib$(LANGUAGE_NAME).$(SOEXTVER_MAJOR) '$(DESTDIR)$(LIBDIR)'/lib$(LANGUAGE_NAME).$(SOEXT)
ifneq ($(wildcard queries/*.scm),)
install -d '$(DESTDIR)$(DATADIR)'/tree-sitter/queries/hcl
install -m644 queries/*.scm '$(DESTDIR)$(DATADIR)'/tree-sitter/queries/hcl
endif
uninstall:
$(RM) '$(DESTDIR)$(LIBDIR)'/lib$(LANGUAGE_NAME).a \
'$(DESTDIR)$(LIBDIR)'/lib$(LANGUAGE_NAME).$(SOEXTVER) \
'$(DESTDIR)$(LIBDIR)'/lib$(LANGUAGE_NAME).$(SOEXTVER_MAJOR) \
'$(DESTDIR)$(LIBDIR)'/lib$(LANGUAGE_NAME).$(SOEXT) \
'$(DESTDIR)$(INCLUDEDIR)'/tree_sitter/$(LANGUAGE_NAME).h \
'$(DESTDIR)$(PCLIBDIR)'/$(LANGUAGE_NAME).pc
$(RM) -r '$(DESTDIR)$(DATADIR)'/tree-sitter/queries/hcl
clean:
$(RM) $(OBJS) $(LANGUAGE_NAME).pc lib$(LANGUAGE_NAME).a lib$(LANGUAGE_NAME).$(SOEXT)
test:
$(TS) test
.PHONY: all install uninstall clean test

25
Package.resolved generated Normal file
View File

@@ -0,0 +1,25 @@
{
"object": {
"pins": [
{
"package": "SwiftTreeSitter",
"repositoryURL": "https://github.com/tree-sitter/swift-tree-sitter",
"state": {
"branch": null,
"revision": "36aa61d1b531f744f35229f010efba9c6d6cbbdd",
"version": "0.9.0"
}
},
{
"package": "TreeSitter",
"repositoryURL": "https://github.com/tree-sitter/tree-sitter",
"state": {
"branch": null,
"revision": "d97db6d63507eb62c536bcb2c4ac7d70c8ec665e",
"version": "0.23.2"
}
}
]
},
"version": 1
}

52
Package.swift generated
View File

@@ -4,36 +4,32 @@ import PackageDescription
let package = Package(
name: "TreeSitterHCL",
platforms: [.macOS(.v10_13), .iOS(.v11)],
products: [
.library(name: "TreeSitterHCL", targets: ["TreeSitterHCL"]),
],
dependencies: [],
dependencies: [
.package(name: "SwiftTreeSitter", url: "https://github.com/tree-sitter/swift-tree-sitter", from: "0.9.0"),
],
targets: [
.target(name: "TreeSitterHCL",
path: ".",
exclude: [
"binding.gyp",
"bindings",
"Cargo.toml",
"CHANGELOG.md",
"docs",
"example",
"grammar.js",
"LICENSE",
"package.json",
"README.md",
"shell.nix",
"src/grammar.json",
"src/node-types.json",
"test",
],
sources: [
"src/parser.c",
"src/scanner.c",
],
publicHeadersPath: "bindings/swift",
cSettings: [.headerSearchPath("src")],
linkerSettings: [.linkedLibrary("c++")])
]
.target(
name: "TreeSitterHCL",
dependencies: [],
path: ".",
sources: [
"src/parser.c",
"src/scanner.c"
],
publicHeadersPath: "bindings/swift",
cSettings: [.headerSearchPath("src")]
),
.testTarget(
name: "TreeSitterHCLTests",
dependencies: [
"SwiftTreeSitter",
"TreeSitterHCL",
],
path: "bindings/swift/TreeSitterHCLTests"
)
],
cLanguageStandard: .c11
)

10
bindings/c/tree-sitter-hcl.pc.in generated Normal file
View File

@@ -0,0 +1,10 @@
prefix=@CMAKE_INSTALL_PREFIX@
libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@
includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@
Name: tree-sitter-hcl
Description: @PROJECT_DESCRIPTION@
URL: @PROJECT_HOMEPAGE_URL@
Version: @PROJECT_VERSION@
Libs: -L${libdir} -ltree-sitter-hcl
Cflags: -I${includedir}

View File

@@ -16,4 +16,4 @@ Napi::Object Init(Napi::Env env, Napi::Object exports) {
return exports;
}
NODE_API_MODULE(tree_sitter_PARSER_NAME_binding, Init)
NODE_API_MODULE(tree_sitter_hcl_binding, Init)

View File

@@ -1,9 +1,9 @@
/// <reference types="node" />
const assert = require("node:assert");
const { test } = require("node:test");
const Parser = require("tree-sitter");
test("can load grammar", () => {
const parser = new (require("tree-sitter"))();
const parser = new Parser();
assert.doesNotThrow(() => parser.setLanguage(require(".")));
});

View File

@@ -1,6 +1,10 @@
const root = require("path").join(__dirname, "..", "..");
module.exports = require("node-gyp-build")(root);
module.exports =
typeof process.versions.bun === "string"
// Support `bun build --compile` by being statically analyzable enough to find the .node file at build-time
? require(`../../prebuilds/${process.platform}-${process.arch}/tree-sitter-hcl.node`)
: require("node-gyp-build")(root);
try {
module.exports.nodeTypeInfo = require("../../src/node-types.json");

View File

@@ -7,11 +7,6 @@ fn main() {
#[cfg(target_env = "msvc")]
c_config.flag("-utf-8");
c_config
.flag_if_supported("-Wno-unused-parameter")
.flag_if_supported("-Wno-unused-but-set-variable")
.flag_if_supported("-Wno-trigraphs");
let parser_path = src_dir.join("parser.c");
c_config.file(&parser_path);
println!("cargo:rerun-if-changed={}", parser_path.to_str().unwrap());

30
bindings/rust/lib.rs generated
View File

@@ -1,21 +1,24 @@
//! This crate provides hcl language support for the [tree-sitter][] parsing library.
//! This crate provides HCL language support for the [tree-sitter] parsing library.
//!
//! Typically, you will use the [LANGUAGE][] constant to add this language to a
//! tree-sitter [Parser][], and then use the parser to parse some code:
//! Typically, you will use the [`LANGUAGE`] constant to add this language to a
//! tree-sitter [`Parser`], and then use the parser to parse some code:
//!
//! ```
//! let code = r#"
//! example "test" {
//! foo = "bar"
//! }
//! "#;
//! let mut parser = tree_sitter::Parser::new();
//! let language = tree_sitter_PARSER_NAME::LANGUAGE;
//! let language = tree_sitter_hcl::LANGUAGE;
//! parser
//! .set_language(&language.into())
//! .expect("Error loading TITLE_PARSER_NAME parser");
//! .expect("Error loading HCL parser");
//! let tree = parser.parse(code, None).unwrap();
//! assert!(!tree.root_node().has_error());
//! ```
//!
//! [Parser]: https://docs.rs/tree-sitter/*/tree_sitter/struct.Parser.html
//! [`Parser`]: https://docs.rs/tree-sitter/0.25.3/tree_sitter/struct.Parser.html
//! [tree-sitter]: https://tree-sitter.github.io/
use tree_sitter_language::LanguageFn;
@@ -24,23 +27,14 @@ extern "C" {
fn tree_sitter_hcl() -> *const ();
}
/// The tree-sitter [`LanguageFn`][LanguageFn] for this grammar.
///
/// [LanguageFn]: https://docs.rs/tree-sitter-language/*/tree_sitter_language/struct.LanguageFn.html
/// The tree-sitter [`LanguageFn`] for this grammar.
pub const LANGUAGE: LanguageFn = unsafe { LanguageFn::from_raw(tree_sitter_hcl) };
/// The content of the [`node-types.json`][] file for this grammar.
/// The content of the [`node-types.json`] file for this grammar.
///
/// [`node-types.json`]: https://tree-sitter.github.io/tree-sitter/using-parsers/6-static-node-types
pub const NODE_TYPES: &str = include_str!("../../src/node-types.json");
// NOTE: uncomment these to include any queries that this grammar contains:
// pub const HIGHLIGHTS_QUERY: &str = include_str!("../../queries/highlights.scm");
// pub const INJECTIONS_QUERY: &str = include_str!("../../queries/injections.scm");
// pub const LOCALS_QUERY: &str = include_str!("../../queries/locals.scm");
// pub const TAGS_QUERY: &str = include_str!("../../queries/tags.scm");
#[cfg(test)]
mod tests {
#[test]
@@ -48,6 +42,6 @@ mod tests {
let mut parser = tree_sitter::Parser::new();
parser
.set_language(&super::LANGUAGE.into())
.expect("Error loading hcl parser");
.expect("Error loading HCL parser");
}
}

16
bindings/swift/TreeSitterHCL/hcl.h generated Normal file
View File

@@ -0,0 +1,16 @@
#ifndef TREE_SITTER_HCL_H_
#define TREE_SITTER_HCL_H_
typedef struct TSLanguage TSLanguage;
#ifdef __cplusplus
extern "C" {
#endif
const TSLanguage *tree_sitter_hcl(void);
#ifdef __cplusplus
}
#endif
#endif // TREE_SITTER_HCL_H_

View File

@@ -1,12 +1,12 @@
import XCTest
import SwiftTreeSitter
import TreeSitterHcl
import TreeSitterHCL
final class TreeSitterHclTests: XCTestCase {
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")
"Error loading HCL grammar")
}
}

View File

@@ -1,3 +1,9 @@
{
"main": "../bindings/node"
"main": "../../bindings/node",
"private": true,
"scripts": {
"generate": "tree-sitter generate",
"prestart": "tree-sitter build --wasm",
"start": "tree-sitter playground"
}
}

View File

@@ -1,3 +1,7 @@
/// <reference types="tree-sitter-cli/dsl" />
// @ts-check
/** @param {string} dialect */
module.exports = function make_grammar(dialect) {
const PREC = {
unary: 7,
@@ -52,8 +56,8 @@ module.exports = function make_grammar(dialect) {
identifier: ($) =>
token(
seq(
choice(/\p{ID_Start}/, "_"),
repeat(choice(/\p{ID_Continue}/, "-", "::")),
choice(/\p{ID_Start}/u, "_"),
repeat(choice(/\p{ID_Continue}/u, "-", "::")),
),
),

31
package-lock.json generated
View File

@@ -1,24 +1,24 @@
{
"name": "@tree-sitter-grammars/tree-sitter-hcl",
"version": "0.2.0-snapshot",
"version": "1.1.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@tree-sitter-grammars/tree-sitter-hcl",
"version": "0.2.0-snapshot",
"version": "1.1.0",
"hasInstallScript": true,
"license": "Apache-2.0",
"dependencies": {
"node-addon-api": "^8.2.1",
"node-gyp-build": "^4.8.2"
"node-addon-api": "^8.3.1",
"node-gyp-build": "^4.8.4"
},
"devDependencies": {
"prebuildify": "^6.0.1",
"tree-sitter-cli": "^0.25"
"tree-sitter-cli": "^0.25.3"
},
"peerDependencies": {
"tree-sitter": "^0.21.1"
"tree-sitter": "^0.22.4"
},
"peerDependenciesMeta": {
"tree-sitter": {
@@ -154,9 +154,9 @@
"license": "MIT"
},
"node_modules/node-abi": {
"version": "3.74.0",
"resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.74.0.tgz",
"integrity": "sha512-c5XK0MjkGBrQPGYG24GBADZud0NCbznxNx0ZkS+ebUTrmV1qTDxPxSL8zEAPURXSbLRWVexxmP4986BziahL5w==",
"version": "3.75.0",
"resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.75.0.tgz",
"integrity": "sha512-OhYaY5sDsIka7H7AtijtI9jwGYLyl29eQn/W623DiN/MIv5sUqc4g7BIDThX+gb7di9f6xK02nkp8sdfFWZLTg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -337,6 +337,19 @@
"node": ">=6"
}
},
"node_modules/tree-sitter": {
"version": "0.22.4",
"resolved": "https://registry.npmjs.org/tree-sitter/-/tree-sitter-0.22.4.tgz",
"integrity": "sha512-usbHZP9/oxNsUY65MQUsduGRqDHQOou1cagUSwjhoSYAmSahjQDAVsh9s+SlZkn8X8+O1FULRGwHu7AFP3kjzg==",
"hasInstallScript": true,
"license": "MIT",
"optional": true,
"peer": true,
"dependencies": {
"node-addon-api": "^8.3.0",
"node-gyp-build": "^4.8.4"
}
},
"node_modules/tree-sitter-cli": {
"version": "0.25.3",
"resolved": "https://registry.npmjs.org/tree-sitter-cli/-/tree-sitter-cli-0.25.3.tgz",

24
package.json generated
View File

@@ -1,10 +1,9 @@
{
"name": "@tree-sitter-grammars/tree-sitter-hcl",
"version": "0.2.0-snapshot",
"version": "1.1.0",
"description": "HCL and terraform grammar for tree-sitter",
"repository": "github:tree-sitter-grammars/tree-sitter-hcl",
"repository": "https://github.com/tree-sitter-grammars/tree-sitter-hcl",
"license": "Apache-2.0",
"author": "",
"main": "bindings/node",
"types": "bindings/node",
"keywords": [
@@ -15,11 +14,8 @@
"terraform"
],
"files": [
"dialects/**/grammar.js",
"dialects/**/queries/*",
"dialects/**/src/**",
"dialects/**/*.wasm",
"grammar.js",
"make_grammar.js",
"tree-sitter.json",
"binding.gyp",
"prebuilds/**",
@@ -29,15 +25,15 @@
"*.wasm"
],
"dependencies": {
"node-addon-api": "^8.2.1",
"node-gyp-build": "^4.8.2"
"node-addon-api": "^8.3.1",
"node-gyp-build": "^4.8.4"
},
"devDependencies": {
"prebuildify": "^6.0.1",
"tree-sitter-cli": "^0.25"
"tree-sitter-cli": "^0.25.3"
},
"peerDependencies": {
"tree-sitter": "^0.21.1"
"tree-sitter": "^0.22.4"
},
"peerDependenciesMeta": {
"tree-sitter": {
@@ -45,12 +41,10 @@
}
},
"scripts": {
"build": "tree-sitter generate",
"install": "node-gyp-build",
"prestart": "tree-sitter build --wasm",
"start": "tree-sitter playground",
"test": "tree-sitter test",
"generate": "npm run generate-hcl && npm run generate-terraform",
"generate-hcl": "tree-sitter generate",
"generate-terraform": "cd dialects/terraform && tree-sitter generate"
"test": "node --test bindings/node/*_test.js"
}
}

View File

@@ -2,7 +2,7 @@
"grammars": [
{
"name": "hcl",
"camelcase": "Hcl",
"camelcase": "HCL",
"scope": "source.hcl",
"path": ".",
"file-types": [
@@ -13,7 +13,7 @@
"name": "terraform",
"camelcase": "Terraform",
"scope": "source.terraform",
"path": "./dialects/terraform/",
"path": "dialects/terraform",
"file-types": [
"tf",
"tfvars"
@@ -21,15 +21,15 @@
}
],
"metadata": {
"version": "0.2.0-snapshot",
"version": "1.1.0",
"license": "Apache-2.0",
"description": "HCL grammar for tree-sitter",
"description": "HCL and terraform grammar for tree-sitter",
"links": {
"repository": "https://github.com/tree-sitter/tree-sitter-hcl"
"repository": "https://github.com/tree-sitter-grammars/tree-sitter-hcl"
}
},
"bindings": {
"c": false,
"c": true,
"go": false,
"node": true,
"python": false,