From 1306beaf3f6c8ddded2a956f5863bc65aad78882 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 25 Feb 2024 10:02:19 +0100 Subject: [PATCH] gnu: Add emacs-combobulate. * gnu/packages/emacs-xyz.scm (emacs-combobulate): New variable. Change-Id: I0a46340861c920a3cbbd628733c18e5a302c065d --- gnu/packages/emacs-xyz.scm | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) 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")