Message ID | 20221125012142.22579-8-pierre.langlois@gmx.com |
---|---|
State | New |
Headers | show |
Series | gnu: Add tree-sitter for emacs. | expand |
On Fri Nov 25, 2022 at 1:21 AM GMT, Pierre Langlois wrote: > * gnu/packages/tree-sitter.scm (tree-sitter-c): New variable. > --- a/gnu/packages/tree-sitter.scm > +++ b/gnu/packages/tree-sitter.scm > @@ -156,3 +157,35 @@ (define-public tree-sitter-cli > This package includes the @command{tree-sitter} command-line tool.") > (license license:expat))) > + > +(define tree-sitter-delete-generated-files > + '(begin > + (delete-file "binding.gyp") > + (delete-file-recursively "bindings") > + (delete-file "src/grammar.json") > + (delete-file "src/node-types.json") > + (delete-file "src/parser.c") > + (delete-file-recursively "src/tree_sitter") > + #t)) No need to outline this; just do (snippet #~(begin (for-each delete-file (list "binding.gyp" "src/grammar.json" "src/node-types.json" "src/parser.c")) (for-each delete-file-recursively (list "bindings" "src/tree_sitter")))) Shouldn't some of this deletion (namely, that of pregenerated files) be handled by tree-sitter, though? > + (build-system tree-sitter-build-system) ...I think you may have forgotten to send the patches for the tree-sitter-build-system? -- (
On Fri Nov 25, 2022 at 1:21 AM GMT, Pierre Langlois wrote: > +(define tree-sitter-delete-generated-files > + '(begin > + (delete-file "binding.gyp") > + (delete-file-recursively "bindings") > + (delete-file "src/grammar.json") > + (delete-file "src/node-types.json") > + (delete-file "src/parser.c") > + (delete-file-recursively "src/tree_sitter") > + #t)) Aah, I just realised that the other grammars use this... My point about incorporating it into tree-sitter-build-system still stands, though. -- (
diff --git a/gnu/packages/tree-sitter.scm b/gnu/packages/tree-sitter.scm index 30bf17b79b..4f75b0251a 100644 --- a/gnu/packages/tree-sitter.scm +++ b/gnu/packages/tree-sitter.scm @@ -22,6 +22,7 @@ (define-module (gnu packages tree-sitter) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix build-system cargo) #:use-module (guix build-system gnu) + #:use-module (guix build-system tree-sitter) #:use-module (guix git-download) #:use-module (guix packages) #:use-module (guix utils) @@ -156,3 +157,35 @@ (define-public tree-sitter-cli This package includes the @command{tree-sitter} command-line tool.") (license license:expat))) + +(define tree-sitter-delete-generated-files + '(begin + (delete-file "binding.gyp") + (delete-file-recursively "bindings") + (delete-file "src/grammar.json") + (delete-file "src/node-types.json") + (delete-file "src/parser.c") + (delete-file-recursively "src/tree_sitter") + #t)) + +(define-public tree-sitter-c + (package + (name "tree-sitter-c") + (version "0.20.2") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tree-sitter/tree-sitter-c") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1w03r4l773ki4iq2xxsc2pqxf3pjsbybq3xq4glmnsihgylibn8v")) + (modules '((guix build utils))) + (snippet tree-sitter-delete-generated-files))) + (build-system tree-sitter-build-system) + (home-page "https://github.com/tree-sitter/tree-sitter-c") + (synopsis "Tree-sitter C grammar") + (description + "This package provides a C grammar for the Tree-sitter library.") + (license license:expat)))