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
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.
Integration
Swift Package Manager
dependencies: [
.package(url: "https://github.com/krzyzanowskim/tree-sitter-xcframework", from: "0.206.0")
]
Usage
Accessing the parsers directly:
import tree_sitter
let parser = tree_sitter_swift()
Via the included "LanguageResources" abstraction:
import tree_sitter_language_resources
let swift = LanguageResource.swift
let url = swift.highlightQueryURL
let parserPtr = swift.parser
Suggestions or Feedback
I'd love to hear from you! Get in touch via twitter @krzyzanowskim, an issue, or a pull request.