[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
01/01: gnu: Add emacs-highlight-stages.
From: |
Oleg Pykhalov |
Subject: |
01/01: gnu: Add emacs-highlight-stages. |
Date: |
Fri, 24 Nov 2017 16:58:27 -0500 (EST) |
wigust pushed a commit to branch master
in repository guix.
commit 7a45268935f2319ae8349cafd858495dfc891a50
Author: Oleg Pykhalov <address@hidden>
Date: Wed Nov 22 09:10:24 2017 +0300
gnu: Add emacs-highlight-stages.
* gnu/packages/emacs.scm (emacs-highlight-stages): New variable.
* gnu/packages/patches/emacs-highlight-stages-add-gexp.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add this.
---
gnu/local.mk | 1 +
gnu/packages/emacs.scm | 25 +++++++++++++++++++++
.../patches/emacs-highlight-stages-add-gexp.patch | 26 ++++++++++++++++++++++
3 files changed, 52 insertions(+)
diff --git a/gnu/local.mk b/gnu/local.mk
index e348bf3..41e22f1 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -608,6 +608,7 @@ dist_patch_DATA =
\
%D%/packages/patches/einstein-build.patch \
%D%/packages/patches/emacs-exec-path.patch \
%D%/packages/patches/emacs-fix-scheme-indent-function.patch \
+ %D%/packages/patches/emacs-highlight-stages-add-gexp.patch \
%D%/packages/patches/emacs-scheme-complete-scheme-r5rs-info.patch \
%D%/packages/patches/emacs-source-date-epoch.patch \
%D%/packages/patches/erlang-man-path.patch \
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 61915ca..f7a3ce5 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -4861,6 +4861,31 @@ jQuery and Bootstrap resources included via osscdn.")
"This Emacs package highlights the s-exp at the current position.")
(license license:gpl3+)))
+(define-public emacs-highlight-stages
+ (let ((commit "29cbc5b78261916da042ddb107420083da49b271")
+ (revision "1"))
+ (package
+ (name "emacs-highlight-stages")
+ (version (string-append "1.1.0" "-" revision "." (string-take commit 7)))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/zk-phi/highlight-stages.git")
+ (commit commit)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "0r6nbcrr0dqpgm8dir8ahzjy7rw4nrac48byamzrq96r7ajlxlv0"))
+ (patches
+ (search-patches "emacs-highlight-stages-add-gexp.patch"))))
+ (build-system emacs-build-system)
+ (home-page "https://github.com/wigust/highlight-stages")
+ (synopsis "Minor mode that highlights (quasi-quoted) expressions")
+ (description "@code{highlight-stages} provides an Emacs minor mode that
+highlights quasi-quoted expressions.")
+ (license license:gpl3+))))
+
(define-public emacspeak
(package
(name "emacspeak")
diff --git a/gnu/packages/patches/emacs-highlight-stages-add-gexp.patch
b/gnu/packages/patches/emacs-highlight-stages-add-gexp.patch
new file mode 100644
index 0000000..931355b
--- /dev/null
+++ b/gnu/packages/patches/emacs-highlight-stages-add-gexp.patch
@@ -0,0 +1,26 @@
+Copyright © 2017 Oleg Pykhalov <address@hidden>
+Copyright © 2017 Ludovic Courtès <address@hidden>
+
+This patch adds highlighting for (guix) G-Expressions.
+
+diff --git a/highlight-stages.el b/highlight-stages.el
+index 3094c3c..e11260e 100644
+--- a/highlight-stages.el
++++ b/highlight-stages.el
+@@ -237,14 +237,14 @@ non-nil, (match-string 0) must be the expression
matched."
+
+ (defun highlight-stages-lisp-quote-matcher (&optional limit)
+ (when (highlight-stages--search-forward-regexp
+-
"\\(?:`\\|\\(#?'\\)\\)\\|([\s\t\n]*\\(?:backquote\\|\\(quote\\)\\)[\s\t\n]+"
limit)
++
"\\(?:`\\|\\(#?'\\)\\)\\|([\s\t\n]*\\(?:backquote\\|\\(quote\\)\\)[\s\t\n]+\\|\\(?:#~\\)\\|([\s\t\n]*\\(?:gexp\\)[\s\t\n]+"
limit)
+ (prog1 (if (or (match-beginning 1) (match-beginning 2)) 'real t)
+ (set-match-data
+ (list (point)
+ (progn (ignore-errors (forward-sexp 1)) (point)))))))
+
+ (defun highlight-stages-lisp-escape-matcher (&optional limit)
+- (when (highlight-stages--search-forward-regexp
",@?\\|([\s\t\n]*\\\\,@?+[\s\t\n]+" limit)
++ (when (highlight-stages--search-forward-regexp
",@?\\|([\s\t\n]*\\\\,@?+[\s\t\n]+\\|\\(unquote\\)\\|\\(unquote-splicing\\)\\|\\(ungexp-native\\)\\|\\(ungexp-splicing\\)\\|\\(ungexp-native-splicing\\)\\|\\(ungexp\\)\\|#\\$"
limit)
+ (set-match-data
+ (list (point)
+ (progn (ignore-errors (forward-sexp 1)) (point))))