diff options
Diffstat (limited to 'crn/packages')
-rw-r--r-- | crn/packages/tree-sitter.scm | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/crn/packages/tree-sitter.scm b/crn/packages/tree-sitter.scm new file mode 100644 index 0000000..91f91a9 --- /dev/null +++ b/crn/packages/tree-sitter.scm @@ -0,0 +1,56 @@ +(define-module (crn packages tree-sitter) + #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) + #:use-module (guix gexp) + #:use-module (guix utils) + #:use-module (guix download) + #:use-module (guix git-download) + #:use-module (guix build-system gnu) + #:use-module (gnu packages) + #:use-module (gnu packages icu4c)) + +(define-public tree-sitter + (package + (name "tree-sitter") + (version "0.24.3") ;untagged + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tree-sitter/tree-sitter") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1pn1k2ch14y48718l7s21rz5alqgdw1bis25r9x4rm6zac7kiy6q")) + (modules '((guix build utils))) + (snippet #~(begin + ;; Remove bundled ICU parts + (delete-file-recursively "lib/src/unicode"))))) + (build-system gnu-build-system) + (inputs (list icu4c)) + (arguments + (list #:phases + #~(modify-phases %standard-phases + (delete 'configure)) + #:tests? #f ; there are no tests for the runtime library + #:make-flags + #~(list (string-append "PREFIX=" #$output) + (string-append "CC=" #$(cc-for-target))))) + (home-page "https://tree-sitter.github.io/tree-sitter/") + (synopsis "Incremental parsing system for programming tools") + (description + "Tree-sitter is a parser generator tool and an incremental parsing +library. It can build a concrete syntax tree for a source file and +efficiently update the syntax tree as the source file is edited. + +Tree-sitter aims to be: + +@itemize +@item General enough to parse any programming language +@item Fast enough to parse on every keystroke in a text editor +@item Robust enough to provide useful results even in the presence of syntax errors +@item Dependency-free so that the runtime library (which is written in pure C) +can be embedded in any application +@end itemize + +This package includes the @code{libtree-sitter} runtime library.") + (license license:expat))) |