aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher R. Nelson <christopher.nelson@languidnights.com>2024-10-20 09:23:33 -0400
committerChristopher R. Nelson <christopher.nelson@languidnights.com>2024-10-20 09:23:33 -0400
commit225ce544da0f39532af2d7109f5b61086fb995ca (patch)
treebe5066de8c1e5100eddafe979b3849e7fb1aa614
parent20d32bd9d23e7a0a66030c465fec2a4f56e3d998 (diff)
Add tree-sitter version for neovim
-rw-r--r--crn/packages/tree-sitter.scm56
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)))