stackoverflow / tree-sitter-pkl

Tree-sitter parser for Pkl

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

A tree-sitter grammar for Pkl.

# install dependencies
$ npm install

# build parser
$ npm run build

# parse some code
$ ./node_modules/.bin/tree-sitter parse test.pkl

Tests

Tree sitter comes with its own test framework. Files in corpus/ describe one test each. All tests in corpus/ are performed by the command

---
$ tree-sitter test
---

The script src/synctests.ts creates corpus/ test files from tests in pkl’s `LanguageSnippetTests. The script assumes that ../pkl is a checked out pkl repository (and that the tests are under pkl-core/src/test/files/LanguageSnippetFiles/input). A pre-condition of the script is that tree-sitter test currently passes. If broken tests need replacing, the broken tests must first be deleted.

It can be executed by running

---
$ npm run synctests
---

Upgrading tree-sitter

Upgrading tree-sitter involves upgrading the NPM package.

  1. Run npm update tree-sitter to install the newer version of tree-sitter.

  2. Commit to main, and push.

Releasing

  1. Run the build & test to make sure everything is up-to-date and passes (check 0 diff).

  2. Create a Prepare 1.2.3 release (with appropriate version number) commit where

    • Versions are bumped in package.json, Cargo.toml

    • Lockfiles are updated (npm install, cargo check)

    • You have checked the previous release PR for any changes in process not described in this README.adoc; if any

      • Adopt the changes accordingly

      • Update this description to capture the changed process

  3. Merge into main & push

  4. Check that CI release succeeded (release pipeline)

  5. Check the publication is reachable, on NPM

About

Tree-sitter parser for Pkl

License:Apache License 2.0


Languages

Language:C 98.5%Language:JavaScript 0.9%Language:Scheme 0.2%Language:Rust 0.2%Language:TypeScript 0.1%Language:C++ 0.0%Language:Swift 0.0%Language:Python 0.0%