@@ -595,3 +595,43 @@ (define-public tree-sitter-rust
(description
"This package provides a Rust grammar for the Tree-sitter library.")
(license license:expat)))
+
+(define-public tree-sitter-typescript
+ (let ((commit "111b07762e86efab9a918b7c721f720c37e76b0a")
+ (revision "1"))
+ (package
+ (name "tree-sitter-typescript")
+ (version (git-version "0.20.0" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/tree-sitter/tree-sitter-typescript")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1364bm3wbqqzvp03cvpx1w89bbqynb1v62i46gy7f6rhib9bf63a"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ (delete-file "binding.gyp")
+ (delete-file-recursively "bindings")
+ (for-each
+ (lambda (lang)
+ (with-directory-excursion lang
+ (delete-file "src/grammar.json")
+ (delete-file "src/node-types.json")
+ (delete-file "src/parser.c")
+ (delete-file-recursively "src/tree_sitter")))
+ '("typescript" "tsx"))
+ #t))))
+ (build-system tree-sitter-build-system)
+ (inputs (list tree-sitter-javascript))
+ (arguments
+ (list
+ #:grammar-directories '("typescript" "tsx")))
+ (home-page "https://github.com/tree-sitter/tree-sitter-typescript")
+ (synopsis "Tree-sitter Typescript grammar")
+ (description
+ "This package provides Typescript and TSX grammars for the Tree-sitter
+library.")
+ (license license:expat))))