You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 4-6.RSVP
Socket
Book a DemoInstallSign in
Socket

tree-sitter-pact

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

tree-sitter-pact

Pact grammar for tree-sitter

0.0.10
pipPyPI
Maintainers
1

tree-sitter-pact

tree-sitter grammar for pact smart contract language

Neovim setup (WIP)

I will create a PR to add this to the official nvim-treesitter repo once it's ready, for now you can use it by following these steps:

Clone the repo

git clone https://github.com/kadena-community/tree-sitter-pact.git

Add those to your init.lua

vim.filetype.add({
  extension = {
    pact = "pact",
    repl = "pact",
  },
})
local parser_config = require("nvim-treesitter.parsers").get_parser_configs()
parser_config.pact = {
  install_info = {
    url = "~/path/to/c/tree-sitter-pact",
    files = { "src/parser.c" },
  },
  filetype = "pact",
}

Then run :TSInstall pact in neovim.

also you need to link the queries folder to your nvim config folder

mkdir -p ~/.config/nvim/after/queries/pact
ln ./queries/highlights.scm ~/.config/nvim/after/queries/pact/highlights.scm
ln ./queries/locals.scm ~/.config/nvim/after/queries/pact/locals.scm
ln ./queries/textobjects.scm ~/.config/nvim/after/queries/pact/textobjects.scm
ln ./queries/folds.scm ~/.config/nvim/after/queries/pact/folds.scm
ln ./queries/indents.scm ~/.config/nvim/after/queries/pact/indents.scm

Testing

To run the tests for the core grammar, you need to have tree-sitter-cli installed. You can install it with npm:

npm install -g tree-sitter-cli

Then, run the following command from the root of the repository:

npx tree-sitter generate && npx tree-sitter build && npx tree-sitter test

Language Bindings

To run the tests for the language bindings, you will need to have the respective toolchains installed (e.g., Python, Go, Swift, Rust).

  • Rust:

    cargo test
    
  • Swift:

    swift test
    
  • Go:

    cd bindings/go
    go get -t
    go test -v
    
  • Python: First, create and activate a virtual environment:

    python -m venv .venv
    source .venv/bin/activate
    

    Then, install the package in editable mode with its core dependencies:

    pip install -e ".[core]"
    

    Finally, run the tests:

    python -m unittest discover -v -s bindings/python/tests
    
  • Nodejs

    node bindings/node/binding_test.js
    // or
    npm run test
    

Keywords

incremental

FAQs

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts