Skip to content

thomaspurchas/tree-sitter-pkl

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 98.6%
  • JavaScript 0.9%
  • Scheme 0.2%
  • Rust 0.2%
  • TypeScript 0.1%
  • C++ 0.0%