summary refs log tree commit diff
diff options
context:
space:
mode:
authorRicardo Wurmus <rekado@elephly.net>2024-02-25 10:02:19 +0100
committerRicardo Wurmus <rekado@elephly.net>2024-02-25 10:02:19 +0100
commit1306beaf3f6c8ddded2a956f5863bc65aad78882 (patch)
treed86f07be31d23e23bf07f375d5223e34374f41e9
parente79a2b77e37e73cf40ab007064ce8ad36bbee78d (diff)
downloadguix-1306beaf3f6c8ddded2a956f5863bc65aad78882.tar.gz
gnu: Add emacs-combobulate.
* gnu/packages/emacs-xyz.scm (emacs-combobulate): New variable.

Change-Id: I0a46340861c920a3cbbd628733c18e5a302c065d
-rw-r--r--gnu/packages/emacs-xyz.scm34
1 files changed, 34 insertions, 0 deletions
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 8038c5d2c0..6414c98fa9 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -9224,6 +9224,40 @@ tupfiles, such as rule definitions, user-defined variables, macros, flags, bin
 variables, and so on.  The mode also allows you to execute Tup commands.")
     (license license:gpl3+)))
 
+(define-public emacs-combobulate
+  (let ((commit "c7e4670a3047c0b58dff3746577a5c8e5832cfba")
+        (revision "1"))
+    (package
+      (name "emacs-combobulate")
+      (version (git-version "0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/mickeynp/combobulate")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "063w2sm0c7xhg3ml31xp870azb0sv7z689lnbnjnbl3rfdy4kg50"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       (list tree-sitter-javascript
+             tree-sitter-python
+             tree-sitter-typescript))
+      (native-inputs
+       (list python-minimal))
+      (home-page "https://www.masteringemacs.org/article/combobulate-structured-movement-editing-treesitter")
+      (synopsis "Structured editing and navigation in Emacs with tree-sitter")
+      (description
+       "Combobulate is a package that adds structured editing and movement to
+a wide range of programming languages.  Unlike most programming major modes
+that use error-prone imperative code and regular expressions to determine
+what's what in your code, Combobulate uses Emacs 29's tree-sitter library.
+Tree-sitter maintains a concrete syntax tree of your code; it gives
+Combobulate absolute clarity of all aspects of your code, enabling more
+correct movement and editing than you would otherwise have.")
+      (license license:gpl3+))))
+
 (define-public emacs-compat
   (package
     (name "emacs-compat")