From ea4a1e5d0b13b5c548804ac854e6eb30c5149ce4 Mon Sep 17 00:00:00 2001 From: Jack Hill Date: Sun, 17 Mar 2019 22:01:17 -0400 Subject: [PATCH] gnu: Add emacs-semantic-refactor. * gnu/packages/emacs-xyz.scm (emacs-semantic-refactor): New variable. Signed-off-by: Marius Bakke --- gnu/packages/emacs-xyz.scm | 43 +++++++++++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index fdda71ac77..8463a91b8c 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -36,7 +36,7 @@ ;;; Copyright © 2018 Mathieu Lirzin ;;; Copyright © 2018, 2019 Pierre Neidhardt ;;; Copyright © 2018, 2019 Tim Gesthuizen -;;; Copyright © 2018 Jack Hill +;;; Copyright © 2018, 2019 Jack Hill ;;; Copyright © 2018 Pierre-Antoine Rouby ;;; Copyright © 2018 Alex Branham ;;; Copyright © 2018 Thorsten Wilms @@ -13744,6 +13744,47 @@ command\", but because it always involves at least two commands (a prefix and a suffix) we prefer to call it just a \"transient\".") (license license:gpl3+)))) +(define-public emacs-semantic-refactor + ;; The last release, 0.5, was made on 2015-07-26 and there have been 47 + ;; commits since then. + (let ((commit "6f2c97d17fb70f4ca2112f5a2b99a8ec162004f5")) + (package + (name "emacs-semantic-refactor") + (version (git-version "0.5" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tuhdo/semantic-refactor") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1lyz3zjkx2csh0xdy1zpx8s32qp1p3sig57mwi9xhgpqjyf0axmb")))) + (build-system emacs-build-system) + (home-page "https://github.com/tuhdo/semantic-refactor") + (synopsis "Refactoring tool for C/C++ and Lisp dialects") + (description "This package provides a refactoring tool based on the +Emacs Semantic parser framework. For C and C++ it supports operations such as: + +@enumerate +@item Generating class implementations +@item Generating function prototypes +@item Converting functions to function pointers +@item Moving semantic units +@item etc... +@end enumerate + +For Lisp dialects like Clojure, ELisp, and Scheme, it supports operations such +as: + +@enumerate +@item Formatting the whole buffer +@item Converting sexpressions to one or multiple lines +@item etc... +@end enumerate\n") + (license license:gpl3+)))) + (define-public emacs-nhexl-mode (package (name "emacs-nhexl-mode")