gnu: emacs-lsp-mode: Update to 6.1.
[jackhill/guix/guix.git] / gnu / packages / emacs-xyz.scm
index 46c570d..0c60777 100644 (file)
@@ -40,7 +40,7 @@
 ;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
 ;;; Copyright © 2018 Alex Branham <alex.branham@gmail.com>
 ;;; Copyright © 2018 Thorsten Wilms <t_w_@freenet.de>
-;;; Copyright © 2018 Pierre Langlois <pierre.langlois@gmx.com>
+;;; Copyright © 2018, 2019 Pierre Langlois <pierre.langlois@gmx.com>
 ;;; Copyright © 2018, 2019 Brett Gilio <brettg@posteo.net>
 ;;; Copyright © 2019 Dimakakos Dimos <bendersteed@teknik.io>
 ;;; Copyright © 2019 Brian Leung <bkleung89@gmail.com>
@@ -52,6 +52,7 @@
 ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autitici.org>
 ;;; Copyright © 2019 Jens Mølgaard <jens@zete.tk>
 ;;; Copyright © 2019 Amin Bandali <bandali@gnu.org>
+;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages video)
-  #:use-module (gnu packages haskell)
+  #:use-module (gnu packages haskell-xyz)
   #:use-module (gnu packages wordnet)
   #:use-module (guix utils)
   #:use-module (srfi srfi-1)
@@ -904,6 +905,35 @@ skip set strings, which are arguments to @code{skip-chars-forward} and
 @code{skip-chars-backward}.")
     (license license:gpl3+)))
 
+(define-public emacs-ample-regexps
+  (let ((commit "cbe91e148cac1ee8e223874dc956ed4cf607f046")
+        (revision "1"))
+    (package
+      (name "emacs-ample-regexps")
+      (version (git-version "0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/immerrr/ample-regexps.el")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1mm4icrwx4mscp7kbbmlc34995r164dhrfczn5ybkyxjzzf76jn1"))))
+      (build-system emacs-build-system)
+      (native-inputs
+       `(("ert-runner" ,emacs-ert-runner)))
+      (arguments
+       `(#:tests? #t
+         #:test-command '("ert-runner" "-l" "ample-regexps")))
+      (home-page "https://github.com/immerrr/ample-regexps.el")
+      (synopsis "Compose and reuse Emacs regexps")
+      (description
+       "This package allows common parts of regexps to be easily picked out
+and reused.")
+      (license license:gpl3+))))
+
 (define-public emacs-reformatter
   (package
     (name "emacs-reformatter")
@@ -2255,7 +2285,7 @@ display and behaviour is easily customisable.")
 (define-public emacs-git-timemachine
   (package
     (name "emacs-git-timemachine")
-    (version "4.10")
+    (version "4.11")
     (source
      (origin
        (method git-fetch)
@@ -2265,7 +2295,7 @@ display and behaviour is easily customisable.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "08zsn3lsnnf01wkv5ls38jga02s5dnf0j3gigy4qd6im3j3d04m1"))))
+         "1pz4l1xnq6s67w5yq9107vm8dg7rqf8n9dmbn90jys97c722g70n"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-transient" ,emacs-transient)))
@@ -2729,6 +2759,78 @@ naming style of a symbol.  It supports different naming conventions such as:
 tables.")
     (license license:gpl2+)))
 
+(define-public emacs-org-rich-yank
+  (package
+    (name "emacs-org-rich-yank")
+    (version "0.2.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/unhammer/org-rich-yank.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0gxb0fnh5gxjmld0hnk5hli0cvdd8gjd27m30bk2b80kwldxlq1z"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/unhammer/org-rich-yank")
+    (synopsis "Automatically surround source code pasted into Org with
+@code{#+BEGIN_SRC} blocks")
+    (description
+     "This package provides a utility function for Org buffers that makes a
+@code{_SRC} block with the appropriate language annotation for code that has
+been copied from an Emacs major mode.")
+    (license license:gpl2+)))
+
+(define-public emacs-ob-restclient
+  (let ((commit "53376667eeddb1388fd6c6976f3222e7c8adcd46"))
+    (package
+      (name "emacs-ob-restclient")
+      (version (git-version "0.02" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/alf/ob-restclient.el.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1djg53cp7y83gic2v71y6r5z76kwrbkp0r69hl25rs99dx6p89dy"))))
+      (propagated-inputs
+       `(("emacs-restclient" ,emacs-restclient)))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/alf/ob-restclient.el")
+      (synopsis "Org-babel functionality for @code{restclient-mode}")
+      (description
+       "This package integrates @code{restclient-mode} with Org.")
+      (license license:gpl3+))))
+
+(define-public emacs-org-now
+  (let ((commit "8f6b277a73f1c66e58ccb4b7f40d406851befc91"))
+    (package
+      (name "emacs-org-now")
+      (version (git-version "0.1-pre" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/alphapapa/org-now.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "117zzkryznznk6h4i1jqzdn888nl019xrgxm2gza0lndx8dxsg2c"))))
+      (propagated-inputs
+       `(("emacs-dash" ,emacs-dash)))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/alphapapa/org-now")
+      (synopsis "Show current Org tasks in a sidebar")
+      (description
+       "This package provides commands to show Org headings in a sidebar
+window while working on them.  After defining one heading as the \"now\"
+heading, other headings can be refiled to it with one command, and back to
+their original location with another.")
+      (license license:gpl3+))))
+
 (define-public emacs-rich-minority
   (package
     (name "emacs-rich-minority")
@@ -2975,30 +3077,27 @@ for Flow files.")
       (license license:gpl3+))))
 
 (define-public emacs-elisp-demos
-  (let ((commit "4c1fbc392668662890b685ab297e950259227e06")
-        (version "0.1")
-        (revision "1"))
-    (package
-      (name "emacs-elisp-demos")
-      (version (git-version version revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/xuchunyang/elisp-demos")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32
-           "01cbkmjgmzxdf02w9xgbf4bhnx1mh53vvpkri13yxfksym5zizp4"))))
-      (build-system emacs-build-system)
-      (arguments '(#:include '("\\.el$" "\\.org$")))
-      (home-page "https://github.com/xuchunyang/elisp-demos/")
-      (synopsis "Enhance @code{*Help*} buffers with additional examples")
-      (description
-       "This package injects example uses of Elisp functions into their
+  (package
+    (name "emacs-elisp-demos")
+    (version "2019.08.16")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/xuchunyang/elisp-demos")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0lybadq66bl4snkwph9i1y0qxln29wyfjn222ii3nfwany28cj66"))))
+    (build-system emacs-build-system)
+    (arguments '(#:include '("\\.el$" "\\.org$")))
+    (home-page "https://github.com/xuchunyang/elisp-demos/")
+    (synopsis "Enhance @code{*Help*} buffers with additional examples")
+    (description
+     "This package injects example uses of Elisp functions into their
 respective @code{*Help*} buffers.")
-      (license license:gpl3+))))
+    (license license:gpl3+)))
 
 (define-public emacs-docker-compose-mode
   (package
@@ -3460,6 +3559,55 @@ completion candidate when using the Company text completion framework.")
 a customizable list.")
       (license license:gpl3+))))
 
+(define-public emacs-phi-search
+  (let ((commit "9a089b8271cb1cff9640848850298c9ec855286c")
+        (revision "1"))
+    (package
+      (name "emacs-phi-search")
+      (version (git-version "20160630" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/zk-phi/phi-search.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1gr5plcbrfdc4pglfj905s89hf8x0kc083h30wcnd81bnw9jwz1x"))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/zk-phi/phi-search")
+      (synopsis "Interactive search compatible with @code{multiple-cursors}")
+      (description "This package can be used with @code{multiple-cursors} to
+provide an incremental search that moves all fake cursors in sync.")
+      (license license:gpl2+))))
+
+(define-public emacs-phi-search-mc
+  (let ((commit "7aa671910f766437089aec26c3aa7814222d1356")
+        (revision "1"))
+    (package
+      (name "emacs-phi-search-mc")
+      (version (git-version "2.2.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/knu/phi-search-mc.el.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0wr86ad0yl52im6b9z0b9pzmhcn39qg5m9878yfv1nbxliw40lcd"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-phi-search" ,emacs-phi-search)
+         ("emacs-multiple-cursors" ,emacs-multiple-cursors)))
+      (home-page "https://github.com/knu/phi-search-mc.el")
+      (synopsis "Extend @code{phi-search} with additional
+@code{multiple-cursors} functionality")
+      (description "This package provides further integration between
+@code{multiple-cursors} and @code{phi-search}, a package that allows for
+interactive searches to move multiple fake cursors.")
+      (license license:bsd-2))))
+
 (define-public emacs-multiple-cursors
   (package
     (name "emacs-multiple-cursors")
@@ -3754,7 +3902,7 @@ in @code{html-mode}.")
 (define-public emacs-slime
   (package
     (name "emacs-slime")
-    (version "2.23")
+    (version "2.24")
     (source
      (origin
        (method git-fetch)
@@ -3763,7 +3911,7 @@ in @code{html-mode}.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0i637n0ragpbj39hqx65nx5k99xf0464c4w6w1qpzykm6z42grky"))))
+        (base32 "0js24x42m7b5iymb4rxz501dff19vav5pywnzv50b673rbkaaqvh"))))
     (build-system emacs-build-system)
     (native-inputs
      `(("texinfo" ,texinfo)))
@@ -4487,6 +4635,29 @@ regardless of @code{highlight-symbol-idle-delay}.
 @code{highlight-symbol-query-replace} can be used to replace the symbol. ")
       (license license:gpl2+))))
 
+(define-public emacs-symbol-overlay
+  (let ((commit "e40a7c407f24158c45eaa5f54ed41f5e416a51dc")
+        (revision "1"))
+    (package
+      (name "emacs-symbol-overlay")
+      (version (git-version "4.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/wolray/symbol-overlay.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0ibz3392d3jw1l8006h9kf8s7bg6vl7jc92bmqc031a433009ic7"))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/wolray/symbol-overlay")
+      (synopsis "Highlight symbols and perform various search operations on them")
+      (description
+       "This package provides functions for highlighting and navigating
+between symbols.")
+      (license license:gpl3+))))
+
 (define-public emacs-hl-todo
   (package
     (name "emacs-hl-todo")
@@ -6101,26 +6272,51 @@ not tied in the trap of backward compatibility.")
 (define-public emacs-helm-swoop
   (package
     (name "emacs-helm-swoop")
-    (version "1.7.4")
+    (version "2.0.0")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/ShingoFukuyama/helm-swoop.git")
+             (url "https://github.com/emacsorphanage/helm-swoop.git")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0b23j1bkpg4pm310hqdhgnl4mxsj05gpl08b6kb2ja4fzrg6adsk"))))
+        (base32 "0k0ns92g45x8dbymqpl6ylk5mj3wiw2h03f48q5cy1z8in0c4rjd"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-helm" ,emacs-helm)))
-    (home-page "https://github.com/ShingoFukuyama/helm-swoop")
+    (home-page "https://github.com/emacsorphanage/helm-swoop")
     (synopsis "Filter and jump to lines in an Emacs buffer using Helm")
     (description
      "This package builds on the Helm interface to provide several commands
 for search-based navigation of buffers.")
     (license license:gpl2+)))
 
+(define-public emacs-helm-ag
+  (let ((commit "2fc02c4ead29bf0db06fd70740cc7c364cb650ac")
+        (revision "1"))
+    (package
+      (name "emacs-helm-ag")
+      (version "0.58")
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/syohex/emacs-helm-ag.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1gnn0byywbld6afcq1vp92cjvy4wlag9d1wgymnqn86c3b1bcf21"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-helm" ,emacs-helm)))
+      (home-page "https://github.com/syohex/emacs-helm-ag")
+      (synopsis "Helm interface to the Silver Searcher")
+      (description
+       "This package provides a frontend for grepping tools like ag and ack,
+as well as features for editing search results.")
+      (license license:gpl3+))))
+
 (define-public emacs-helm-projectile
   (package
     (name "emacs-helm-projectile")
@@ -6145,6 +6341,86 @@ for search-based navigation of buffers.")
      "This Emacs library provides a Helm interface for Projectile.")
     (license license:gpl3+)))
 
+(define-public emacs-taskrunner
+  (let ((commit "3afd4a546d42339543d3d4e51b175fc3e82b3358")
+        (revision "1"))
+    (package
+      (name "emacs-taskrunner")
+      (version (git-version "0.6" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/emacs-taskrunner/emacs-taskrunner.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1lkdvmjn3alhqxq2i64sdr977sbw3g0b2670d9bwyzi67qh0jxrv"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-async" ,emacs-async)
+         ("emacs-projectile" ,emacs-projectile)))
+      (home-page "https://github.com/emacs-taskrunner/emacs-taskrunner")
+      (synopsis "Retrieve tasks from various build systems and task-runners")
+      (description "This package parses Makefiles and build-system files for
+multiple project types.")
+      (license license:gpl3+))))
+
+(define-public emacs-ivy-taskrunner
+  (let ((commit "75d8d67cfe3c29663fe0f5508a887adf40ed5162")
+        (revision "1"))
+    (package
+      (name "emacs-ivy-taskrunner")
+      (version (git-version "0.9" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/emacs-taskrunner/ivy-taskrunner.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1wf4s4k0ap21f7g5w6128an8nsvbja7f5n889vcml5b6gjz058db"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-ivy" ,emacs-ivy)
+         ("emacs-taskrunner" ,emacs-taskrunner)
+         ("emacs-projectile" ,emacs-projectile)))
+      (home-page "https://github.com/emacs-taskrunner/ivy-taskrunner")
+      (synopsis "Retrieve build-system tasks using Ivy")
+      (description "This package provides an Ivy interface for selecting
+Makefile targets.")
+      (license license:gpl3+))))
+
+(define-public emacs-helm-taskrunner
+  (let ((commit "1910dac19cbc7bd4fd08b0faf9affd455339fbea")
+        (revision "1"))
+    (package
+      (name "emacs-helm-taskrunner")
+      (version (git-version "0.9" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/emacs-taskrunner/helm-taskrunner.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "182lmr858fx6rdhp1fy7kv8dvrhzcnxzwfck1q22s6xs8x85d5q7"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-helm" ,emacs-helm)
+         ("emacs-taskrunner" ,emacs-taskrunner)
+         ("emacs-projectile" ,emacs-projectile)))
+      (home-page "https://github.com/emacs-taskrunner/helm-taskrunner")
+      (synopsis "Retrieve build-system tasks using Helm")
+      (description "This package provides a Helm interface for selecting
+Makefile targets.")
+      (license license:gpl3+))))
+
 (define-public emacs-helm-make
   (let ((commit "feae8df22bc4b20705ea08ac9adfc2b43bb348d0")
         (revision "1"))
@@ -6409,6 +6685,32 @@ used for reverse direction.")
 end of a line and increment or decrement it.")
       (license license:gpl3+))))
 
+(define-public emacs-evil-owl
+  (let ((commit "e8fe5b2f745e36db04cb71eb689bf91c5409614f")
+        (revision "2"))
+    (package
+      (name "emacs-evil-owl")
+      (version (git-version "0.0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/mamapanda/evil-owl")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1g7kplna62f271135mnjdbvxk2ayx7m4gvd6l86d2394alx16nhq"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-evil" ,emacs-evil)))
+      (home-page "https://github.com/mamapanda/evil-owl")
+      (synopsis "Preview candidates when using Evil registers and marks")
+      (description
+       "This package supplements Evil's register- and mark-based commands with
+a popup window for previewing candidates.")
+      (license license:gpl3+))))
+
 (define-public emacs-evil-exchange
   (let ((commit "47691537815150715e64e6f6ec79be7746c96120")
         (version "0.41")
@@ -7133,6 +7435,60 @@ Additionally it can display the number of unread emails in the
 mode-line.")
     (license license:gpl3+)))
 
+(define-public emacs-mu4e-jump-to-list
+  (let ((commit "358bba003543b49ffa266e503e54aebd0ebe614b")
+        (revision "1"))
+    (package
+      (name "emacs-mu4e-jump-to-list")
+      (version (git-version "1.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://gitlab.com/wavexx/mu4e-jump-to-list.el.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "00y9nap61q1z2cdql4k9g7fgi2gdgd9iy5s5lzrd9a4agbx6r7sv"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("mu" ,mu)))
+      (home-page "https://gitlab.com/wavexx/mu4e-jump-to-list.el")
+      (synopsis "Select and view mailing lists in mu4e")
+      (description
+        "@code{mu4e-jump-to-list} allows you to select and view mailing lists
+automatically using existing List-ID headers in your mu database.  Just press
+\"l\" in the headers view and any mailing list you've subscribed to will be
+automatically discovered and presented in recency order.")
+      (license license:gpl3+))))
+
+(define-public emacs-mu4e-patch
+  (let ((commit "522da46c1653b1cacc79cde91d6534da7ae9517d")
+        (revision "1"))
+    (package
+      (name "emacs-mu4e-patch")
+      (version (git-version "0.1.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/seanfarley/mu4e-patch")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "10lzf3b70pk6rzdrgx0ww0gc94v0ydh9zj1gbsa20xw27ds7hmfn"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("mu" ,mu)))
+      (home-page "https://github.com/seanfarley/mu4e-patch")
+      (synopsis "Colorize patch-like emails in mu4e")
+      (description
+        "Extension for mu4e to colorize patch-like emails with diff-mode.
+This is based on Frank Terbeck's @code{gnus-article-treat-patch.el} but has
+been adapted to work with mu4e.")
+      (license license:gpl3+))))
+
 (define-public emacs-pretty-mode
   (package
     (name "emacs-pretty-mode")
@@ -7302,7 +7658,7 @@ above over the network.")
 (define-public emacs-helm-org-rifle
   (package
     (name "emacs-helm-org-rifle")
-    (version "1.6.1")
+    (version "1.7.0")
     (source
      (origin
        (method git-fetch)
@@ -7312,12 +7668,13 @@ above over the network.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1r38xhwvgbv6kn5x159phz3xgss7f1rc7icq27rnr4d8aj91wm6k"))))
+         "058zvh7cdall7dl3xay9ibcjvs13fbqp8fli3lz980pinmsds3r2"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-dash" ,emacs-dash)
        ("emacs-f" ,emacs-f)
        ("emacs-helm" ,emacs-helm)
+       ("emacs-org" ,emacs-org)
        ("emacs-s" ,emacs-s)))
     (home-page "https://github.com/alphapapa/helm-org-rifle")
     (synopsis "Rifle through Org files")
@@ -9633,7 +9990,7 @@ Feautures:
 (define-public emacs-evil-matchit
   (package
     (name "emacs-evil-matchit")
-    (version "2.3.0")
+    (version "2.3.3")
     (source
      (origin
        (method git-fetch)
@@ -9642,7 +9999,7 @@ Feautures:
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0y6q42hml7jgf060d83m7hf270h01858g5kxw12na9n4r4jjpdg1"))))
+        (base32 "04kllxd7vvziwqiff3vx60a0r6805wynsla73j8xkcz4yzk8q91r"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-evil" ,emacs-evil)))
@@ -10051,6 +10408,61 @@ environment variables to be retrieved from the shell, so that Emacs will see
 the same values you get in a terminal.")
     (license license:gpl3+)))
 
+(define-public emacs-frog-menu
+  (let ((commit "740bbc88b8535d31f783f3b2043a2a6683afbf31")
+        (revision "1"))
+    (package
+      (name "emacs-frog-menu")
+      (version (git-version "0.2.9" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/clemera/frog-menu")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1g77424jwq62qj06rvld44s5hp0dw8rw2pwmmag6gd536zf65xrj"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-posframe" ,emacs-posframe)
+         ("emacs-avy" ,emacs-avy)))
+      (home-page "https://github.com/clemera/frog-menu")
+      (synopsis "Quickly pick items from ad hoc menus")
+      (description
+       "This package provides a popup offering a preview of a list of
+candidates on which user-defined dispatch actions can act.")
+      (license license:gpl3+))))
+
+(define-public emacs-frog-jump-buffer
+  (let ((commit "2d7b342785ae27d45f5d252272df6eb773c78e20")
+        (revision "1"))
+    (package
+      (name "emacs-frog-jump-buffer")
+      (version (git-version "0.1.4" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/waymondo/frog-jump-buffer")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1z00by8hiss1r2lwmzrl8pnz6jykia2849dqqm4l3z5rf6lwvc0f"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-dash" ,emacs-dash)
+         ("emacs-frog-menu" ,emacs-frog-menu)
+         ("emacs-avy" ,emacs-avy)))
+      (home-page "https://github.com/waymondo/frog-jump-buffer")
+      (synopsis "Jump to any Emacs buffer with minimal keystrokes")
+      (description
+       "This package provides a preview window of buffers that can be switched
+to with quicklink-style selections.")
+      (license license:gpl3+))))
+
 (define-public emacs-deft
   (package
     (name "emacs-deft")
@@ -10724,6 +11136,31 @@ tables of contents.")
 files, allowing for actions to be performed based on search criteria.")
     (license license:gpl3+)))
 
+(define-public emacs-org-auto-expand
+  (let ((commit "4938d5f6460e2f8f051ba9ac000b291bfa43ef62")
+        (revision "1"))
+    (package
+      (name "emacs-org-auto-expand")
+      (version (git-version "0.1" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/alphapapa/org-auto-expand")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1my0c6xmkh37lwi6l472lz9d86lf20h6xcllzlxm1lxa24rhva6v"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-org" ,emacs-org)
+         ("emacs-dash" ,emacs-dash)))
+      (home-page "https://github.com/alphapapa/org-auto-expand")
+      (synopsis "Automatically expand certain Org headings")
+      (description "This package allows a customizable set of headings in Org
+files to be expanded upon opening them.")
+      (license license:gpl3+))))
+
 (define-public emacs-parsebib
   (package
     (name "emacs-parsebib")
@@ -11574,12 +12011,11 @@ key again.")
     (license license:gpl3+)))
 
 (define-public emacs-mbsync
-  (let ((commit "42077e83ae2db778ce0f8e22f8357b40355526b3")
-        (revision "1"))
+  (let ((commit "f549eccde6033449d24cd5b6148599484850c403")
+        (revision "2"))
     (package
       (name "emacs-mbsync")
-      (version (string-append "0.0.1" "-" revision "."
-                              (string-take commit 7)))
+      (version (git-version "0.1.2" revision commit))
       (source
        (origin
          (method git-fetch)
@@ -11589,7 +12025,7 @@ key again.")
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "0yj93y2mpxlir8x73znlg1slxlv4blm1vjv5h2w3j8lxg8bxvmn6"))))
+           "1pdj41rq3pq4jdb5pma5j495xj7w7jgn8pnz1z1zwg75pn7ydfp0"))))
       (build-system emacs-build-system)
       (home-page "https://github.com/dimitri/mbsync-el")
       (synopsis "Interface to mbsync for Emacs")
@@ -13310,6 +13746,32 @@ integrating @code{iedit-mode} into Evil mode with an attempt at sensible
 defaults.")
     (license license:gpl3+)))
 
+(define-public emacs-evil-mc
+  (let ((commit "5205fe671803465149e578849bbbe803c23a8e4e")
+        (revision "1"))
+    (package
+      (name "emacs-evil-mc")
+      (version (git-version "0.0.3" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/gabesoft/evil-mc.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "03pxpjjxbai4dwp84bgxh52ahh0f6ac58xi2mds1kl4v93nm7v42"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-evil" ,emacs-evil)))
+      (native-inputs
+       `(("emacs-espuds" ,emacs-espuds)))
+      (home-page "https://github.com/gabesoft/evil-mc")
+      (synopsis "Interactive search compatible with @code{multiple-cursors}")
+      (description "This package can be used with @code{multiple-cursors} to
+provide an incremental search that moves all fake cursors in sync.")
+      (license license:expat))))
+
 (define-public emacs-evil-org
   (let ((commit "b6d652a9163d3430a9e0933a554bdbee5244bbf6"))
     (package
@@ -13503,7 +13965,7 @@ try completing.  See @code{fish-completion-fallback-on-bash-p}.")
                  ("gif-screencast-cropping-program"
                   (string-append imagemagick "/bin/mogrify"))
                  ("gif-screencast-optimize-program"
-                  (string-append imagemagick "/bin/gifsicle")))))))))
+                  (string-append gifsicle "/bin/gifsicle")))))))))
       (home-page
        "https://gitlab.com/Ambrevar/emacs-gif-screencast")
       (synopsis "One-frame-per-action GIF recording")
@@ -14770,7 +15232,7 @@ correctly.")
 (define-public emacs-helm-slime
   (package
     (name "emacs-helm-slime")
-    (version "0.3.0")
+    (version "0.4.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -14779,7 +15241,7 @@ correctly.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1qhb9446rpj17pm0hi3miy5gs5k3ld43bq29kzy0y26bf7ivfcjv"))))
+                "0mrpjhpijdrq353fnfvdj9l9xfsz390qlcvifcair9732ma7i8l0"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-helm" ,emacs-helm)
@@ -14904,7 +15366,7 @@ RPC channels with users and other software.")
 (define-public emacs-sesman
   (package
     (name "emacs-sesman")
-    (version "0.3.3")
+    (version "0.3.4")
     (source
      (origin
        (method git-fetch)
@@ -14914,10 +15376,18 @@ RPC channels with users and other software.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0r32f8ma9ddczxrrdz0nadp14j3zmk10q1ch02gb82synkx3xdra"))))
+         "0z5jb4vpbjsi63w3wjy6d2lgz33qdfvrgfb3bszv4hcf6a96y7fc"))))
     (build-system emacs-build-system)
     (arguments
-     `(#:tests? #t
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'set-shell
+           ;; Setting the SHELL environment variable is required for the tests
+           ;; to find sh.
+           (lambda _
+             (setenv "SHELL" (which "sh"))
+             #t)))
+       #:tests? #t
        #:test-command '("make" "test")))
     (home-page "https://github.com/vspinu/sesman")
     (synopsis "Session manager for Emacs based IDEs")
@@ -15632,7 +16102,7 @@ the standard @code{Dockerfile} file format.")
 (define-public emacs-lsp-mode
   (package
     (name "emacs-lsp-mode")
-    (version "6.0")
+    (version "6.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -15641,12 +16111,13 @@ the standard @code{Dockerfile} file format.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1v1mq6ixzlgiazj8fmg4xaqhsqn3l89iqy74yndhvzh2rdf0pbkl"))))
+                "0jn5slhv9zfs446a5966bfg9dq144g22v79wnkx9hxq7if78p652"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-dash" ,emacs-dash)
        ("emacs-f" ,emacs-f)
        ("emacs-ht" ,emacs-ht)
+       ("emacs-markdown-mode" ,emacs-markdown-mode)
        ("emacs-spinner" ,emacs-spinner)))
     (home-page "https://github.com/emacs-lsp/lsp-mode")
     (synopsis "Emacs client and library for the Language Server Protocol")
@@ -15814,12 +16285,11 @@ packages with a consistent way to use them.")
       (license license:gpl3+))))
 
 (define-public emacs-undo-propose-el
-  (let ((commit "5f1fa99a04369a959aad01b476fe4f34229f28cd")
-        (version "1.0.0")
+  (let ((commit "21a5cdc8ebfe8113f7039867c4abb0197c0fe71c")
         (revision "1"))
     (package
       (name "emacs-undo-propose-el")
-      (version (git-version version revision commit))
+      (version (git-version "3.0.0" revision commit))
       (source
        (origin
          (method git-fetch)
@@ -15829,7 +16299,7 @@ packages with a consistent way to use them.")
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "1p9h1fqmva07mcs46rqrg9vqn537b615as84s9b7xh76k1r8h1c0"))))
+           "035hav4lfxwgikg3zpb4cz1nf08qfp27awl87dqbm2ly6d74lpny"))))
       (build-system emacs-build-system)
       (home-page "https://github.com/jackkamm/undo-propose-el")
       (synopsis "Simple and safe navigation of @code{undo} history")
@@ -16431,7 +16901,7 @@ previewed by scrolling up and down within a @code{dired} buffer.")
 (define-public emacs-counsel-etags
   (package
     (name "emacs-counsel-etags")
-    (version "1.8.7")
+    (version "1.8.9")
     (source
      (origin
        (method git-fetch)
@@ -16441,7 +16911,7 @@ previewed by scrolling up and down within a @code{dired} buffer.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0vjcjspfrz1csnmfi6r7p7f070a496adxkqnsxwx1gx8cpylwp1g"))))
+         "0rmdl93kgyydwa96yclds9vwly41bpk8v18cbqc1x266w6v77dr9"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-ivy" ,emacs-ivy)))
@@ -17049,7 +17519,8 @@ connections using TLS encryption.")
          "0nnlxzsmhsbszqigcyxak9i1a0digrd13gv6v18ck4h760mihh1m"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-all-the-icons" ,emacs-all-the-icons)))
+     `(("emacs-flycheck" ,emacs-flycheck)
+       ("emacs-all-the-icons" ,emacs-all-the-icons)))
     (home-page
      "https://gitlab.petton.fr/nico/zerodark-theme")
     (synopsis
@@ -17240,3 +17711,165 @@ federated microblogging social network.")
 Emacs.  It's a re-write of the Insidious Big Brother Database (BBDB) using
 Emacs Lisp's (relatively new) EIEIO object oriented libraries.")
       (license license:gpl3+))))
+
+(define-public emacs-refactor
+  (package
+    (name "emacs-refactor")
+    (version "0.4")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/Wilfred/emacs-refactor.git")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1yky7vlv91501xb43xk19rr8mxlvrsxhawsc98jivf64nad5dqay"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-dash" ,emacs-dash)
+       ("emacs-s" ,emacs-s)
+       ("emacs-popup" ,emacs-popup)
+       ("emacs-list-utils" ,emacs-list-utils)
+       ("emacs-iedit" ,emacs-iedit)))
+    (home-page "https://github.com/Wilfred/emacs-refactor/")
+    (synopsis "Language-specific refactoring in Emacs")
+    (description "Emacs Refactor (EMR) is a framework for providing
+language-specific refactoring in Emacs.  It includes refactoring commands for
+a variety of languages, including elisp itself.")
+    (license license:gpl3+)))
+
+(define-public emacs-flyspell-correct
+  (package
+    (name "emacs-flyspell-correct")
+    (version "0.5")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/d12frosted/flyspell-correct.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1r9hmz7sihhy7npv6nxp04sy57glzmfax5d67mwn96fdnc0yhlnd"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-helm" ,emacs-helm)
+       ("emacs-ivy" ,emacs-ivy)
+       ("emacs-popup" ,emacs-popup)))
+    (home-page
+     "https://github.com/d12frosted/flyspell-correct")
+    (synopsis
+     "Correcting words with flyspell via custom interfaces")
+    (description
+     "This package provides functionality for correcting words via custom
+interfaces.  Several interfaces are supported beside the classic ido: popup,
+helm and ivy.")
+    (license license:gpl3+)))
+
+(define-public emacs-org-emms
+  (let ((commit "07a8917f3d628c32e5de1dbd118ac08203772533")
+        (revision "1"))
+    (package
+      (name "emacs-org-emms")
+      (version
+       (git-version "0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://gitlab.com/jagrg/org-emms.git")
+               (commit commit)))
+         (file-name (git-file-name name commit))
+         (sha256
+          (base32
+           "1sqsm5sv311xfdk4f4rsnvprdf2v2vm7l1b3vqi7pc0g8adlnw1d"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emms" ,emacs-emms)
+         ("emacs-org" ,emacs-org)))
+      (home-page "https://gitlab.com/jagrg/org-emms")
+      (synopsis "Play multimedia files from org-mode")
+      (description
+       "This package provides a new org link type for playing back multimedia
+files from org-mode using EMMS, The Emacs Multimedia System.  If the link
+contains a track position, playback will start at the specified position.")
+      (license license:gpl3+))))
+
+(define-public emacs-org-jira
+  (package
+   (name "emacs-org-jira")
+   (version "4.3.1")
+   (source
+    (origin
+     (method git-fetch)
+     (uri (git-reference
+           (url "https://github.com/ahungry/org-jira.git")
+           (commit version)))
+     (file-name (git-file-name name version))
+     (sha256
+      (base32
+       "1l80r2a9zzbfk2c78i40h0ww79vm9v4j6xi2h5i4w9kqh10rs6h2"))))
+   (build-system emacs-build-system)
+   (propagated-inputs
+    `(("emacs-request" ,emacs-request)
+      ("emacs-s" ,emacs-s)
+      ("emacs-dash" ,emacs-dash)
+      ("emacs-org" ,emacs-org)))
+   (home-page "https://github.com/ahungry/org-jira")
+   (synopsis "Syncing between Jira and Org-mode")
+   (description
+    "This package provides an extension to org-mode for syncing issues with
+JIRA issue servers.")
+   (license license:gpl3+)))
+
+(define-public emacs-systemd-mode
+  (package
+    (name "emacs-systemd-mode")
+    (version "1.6")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/holomorph/systemd-mode.git")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0ylgnvpfindg4cxccbqy02ic7p0i9rygf1w16dm1filwhbqvjplq"))))
+    (build-system emacs-build-system)
+    (arguments '(#:include '("\\.el$" "\\.txt$")))
+    (home-page "https://github.com/holomorph/systemd-mode")
+    (synopsis
+     "Major mode for editing systemd units")
+    (description
+     "Major mode for editing systemd units in GNU Emacs.")
+    (license license:gpl3+)))
+
+(define-public emacs-ssh-config-mode
+  (let ((commit "4c1dfa57d452cb5654453bf186c8ff63e1e71b56")
+        (revision "1"))
+    (package
+      (name "emacs-ssh-config-mode")
+      (version (git-version "8.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri
+          (git-reference
+           (url "https://github.com/jhgorrell/ssh-config-mode-el.git")
+           (commit commit)))
+         (file-name (git-file-name name commit))
+         (sha256
+          (base32
+           "0crglfdazzckizbwzmgl2rn6j85avfzkr1q7ijxd17rp2anvr9bd"))))
+      (build-system emacs-build-system)
+      (arguments '(#:include '("\\.el$" "\\.txt$")))
+      (home-page
+       "https://github.com/jhgorrell/ssh-config-mode-el")
+      (synopsis
+       "Mode for fontification of ~/.ssh/config")
+      (description
+       "This packages fontifies the ssh config keywords and creates
+keybindings for skipping from host section to host section.")
+      (license license:gpl3+))))