A module for the tree-sitter incremental parsing system. The tree-sitter has both runtime and per-language dependencies. They all have to be build separately. For a purpose of this project per-language dependencies are part of the resulting tree_sitter.xcframework
.
The tree_sitter.xcframework
binary comes with:
- tree-sitter runtime
- tree-sitter-swift
- tree-sitter-go
- tree-sitter-gomod
- tree-sitter-ruby
- tree-sitter-json
- tree-sitter-php
- tree-sitter-markdown
- tree-sitter-java
- tree-sitter-python
- tree-sitter-html
- tree-sitter-css
This is a work-in-progress. But, if the parser you'd like to use doesn't have a Makefile, let me know and I'll help get it set up.
dependencies: [
.package(url: "https://github.com/krzyzanowskim/tree-sitter-xcframework", from: "0.208.4")
]
Accessing the parsers directly:
import TreeSitter
let parser = tree_sitter_swift()
let parser = tree_sitter_ruby()
Via the included "TreeSitterResource" abstraction:
import TreeSitterResource
let swift = TreeSitterLanguage.swift
let url = swift.highlightQueryURL
let parserPtr = swift.parser
I'd love to hear from you! Get in touch via twitter @krzyzanowskim, an issue, or a pull request.