apple / 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
  1. Merge into main & push
  2. Check that CI release succeeded (release pipeline)
  3. Check the publication is reachable, on NPM

Resources

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%