[nongnu] elpa/parseedn b399b72a8e 1/6: Iterative parseedn-print-seq
branch: elpa/parseedn commit b399b72a8ea0d7698aaaff80c8a43eda943c49fb Author: tmpUser2022 <98637343+tmpuser2...@users.noreply.github.com> Commit: GitHub Iterative parseedn-print-seq Avoid C stack overflows, `(error "Variable binding depth exceeds max-specpdl-size")` and `(error "Lisp nesting exceeds ‘max-lisp-eval-depth’")` when working with large sequences. --- parseedn.el | 10 +- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/parseedn.el b/parseedn.el index 1e06e54218..5422b25f06 100644 --- a/parseedn.el +++ b/parseedn.el @@ -156,12 +156,12 @@ TAG-READERS is an optional association list. For more information, see (defun parseedn-print-seq (coll) "Insert sequence COLL as EDN into the current buffer." - (unless (seq-empty-p coll) -(parseedn-print (elt coll 0))) - (let ((next (seq-drop coll 1))) -(when (not (seq-empty-p next)) + (when (not (seq-empty-p coll)) +(while (not (seq-empty-p coll)) + (parseedn-print (elt coll 0)) (insert " ") - (parseedn-print-seq next + (setq coll (seq-drop coll 1))) +(delete-char -1))) (defun parseedn-print-hash-or-alist (map &optional ks) "Insert hash table MAP or elisp alist as an EDN map into the current buffer."
[elpa] externals/org e268e47971: lisp/org.el: Add org-property-separators option
branch: externals/org commit e268e479718e04f590324a29036f081a3f80f208 Author: Tyler Grinn Commit: Ihor Radchenko lisp/org.el: Add org-property-separators option * lisp/org.el (org-property-separators, org-property-get-separator): Created. (org-entry-get, org-entry-get-with-inheritance): Use new `org-property-get-separator' function. * testing/lisp/test-org.el (test-org/entry-get): Added tests for combining properties with custom separators `org-property-separators' is a customization option that allows for properties to be combined using a separator other than the default (a single space). It is an alist with the car of each element being a list of property names or regular expression and the cdr being the separator string, like '((("EXPORT_FILE_NAME") . "/")). --- etc/ORG-NEWS | 31 +++ lisp/org.el | 47 +++ testing/lisp/test-org.el | 30 +- 3 files changed, 99 insertions(+), 9 deletions(-) diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS index 5828165340..35af94f928 100644 --- a/etc/ORG-NEWS +++ b/etc/ORG-NEWS @@ -141,6 +141,37 @@ discouraged when working with Org files. ** New features +*** New customization option =org-property-separators= +A new alist variable to control how properties are combined. + +If a property is specified multiple times with a =+=, like + +#+begin_src org +:PROPERTIES: +:EXPORT_FILE_NAME: some/path +:EXPORT_FILE_NAME+: to/file +:END: +#+end_src + +the old behavior was to always combine them with a single space +(=some/path to/file=). For the new variable, the car of each item in +the alist should be either a list of property names or a regular +expression, while the cdr should be the separator to use when +combining that property. + +The default value for the separator is a single space, if none of the +provided items in the alist match a given property. + +For example, in order to combine =EXPORT_FILE_NAME= properties with a +forward slash =/=, one can use + +#+begin_src emacs-lisp +(setq org-property-separators '((("EXPORT_FILE_NAME") . "/"))) +#+end_src + +The example above would then produce the property value +=some/path/to/file=. + *** New library =org-persist.el= implements variable persistence across Emacs sessions The library stores variable data in ~org-persist-directory~ (set to XDG diff --git a/lisp/org.el b/lisp/org.el index dc0b215165..d7da8efc46 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -2850,6 +2850,34 @@ in this variable)." (member-ignore-case property org-use-property-inheritance)) (t (error "Invalid setting of `org-use-property-inheritance'" +(defcustom org-property-separators nil + "An alist to control how properties are combined. + +The car of each item should be either a list of property names or +a regular expression, while the cdr should be the separator to +use when combining that property. + +If an alist item cannot be found that matches a given property, a +single space will be used as the separator." + :group 'org-properties + :type '(alist :key-type (choice (repeat :tag "Properties" string) + (string :tag "Regular Expression")) +:value-type (restricted-sexp :tag "Separator" + :match-alternatives (stringp) + :value " "))) + +(defun org--property-get-separator (property) + "Get the separator to use for combining PROPERTY." + (or + (catch 'separator + (dolist (spec org-property-separators) + (if (listp (car spec)) + (if (member property (car spec)) + (throw 'separator (cdr spec))) + (if (string-match-p (car spec) property) + (throw 'separator (cdr spec)) + " ")) + (defcustom org-columns-default-format "%25ITEM %TODO %3PRIORITY %TAGS" "The default column format, if no other format has been defined. This variable can be set on the per-file basis by inserting a line @@ -12358,7 +12386,9 @@ value higher up the hierarchy." (org-entry-get-with-inheritance property literal-nil)) (t (let* ((local (org--property-local-values property literal-nil)) -(value (and local (mapconcat #'identity (delq nil local) " " +(value (and local (mapconcat #'identity + (delq nil local) + (org--property-get-separator property) (if literal-nil value (org-not-nil value))) (defun org-property-or-variable-value (var &optional inherit) @@ -12467,7 +12497,8 @@ However, if LITERAL-NIL is set, return the string value \"nil\" instead." (catch 'exit (let ((element (or element (and (org-element--cache-active-p) - (org-element-at-point nil 'cached) +
[nongnu] elpa/parseedn 8dca313b95 5/6: Merge pull request #15 from tmpUser2022/empty-hash
branch: elpa/parseedn commit 8dca313b95e426ba91d77eb9c0a9537c346ba0fa Merge: 35e9f3173a 2b28df1c3d Author: Arne Brasseur Commit: GitHub Merge pull request #15 from tmpUser2022/empty-hash Fix empty hash --- parseedn.el | 2 +- test/parseedn-test.el | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/parseedn.el b/parseedn.el index 1e06e54218..6e93399f91 100644 --- a/parseedn.el +++ b/parseedn.el @@ -165,7 +165,7 @@ TAG-READERS is an optional association list. For more information, see (defun parseedn-print-hash-or-alist (map &optional ks) "Insert hash table MAP or elisp alist as an EDN map into the current buffer." - (let ((keys (or ks (map-keys map + (when-let ((keys (or ks (map-keys map (parseedn-print (car keys)) (insert " ") (parseedn-print (map-elt map (car keys))) diff --git a/test/parseedn-test.el b/test/parseedn-test.el index 49a3a66b2c..8d167d54a8 100644 --- a/test/parseedn-test.el +++ b/test/parseedn-test.el @@ -45,6 +45,7 @@ (should (equal (parseedn-print-str '(:a 1 :b (:c 3))) "{:a 1, :b {:c 3}}")) (should (equal (parseedn-print-str '(edn-tagged-literal unknown "data")) "#unknown \"data\"")) (should (equal (parseedn-print-str '(edn-tagged-literal unknown (edn-tagged-literal unknown "data"))) "#unknown #unknown \"data\"")) + (should (equal (parseedn-print-str #s(hash-table size 0 data ())) "{}")) (should (listp (member (parseedn-print-str (let ((ht (make-hash-table))) (puthash :a 1 ht)
[nongnu] elpa/parseedn 7b888171de 2/6: add empty sequences test
branch: elpa/parseedn commit 7b888171deaaaff35abd95639d6f0b3df66d7dc3 Author: tmpUser2022 <98637343+tmpuser2...@users.noreply.github.com> Commit: GitHub add empty sequences test --- test/parseedn-test.el | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/parseedn-test.el b/test/parseedn-test.el index 49a3a66b2c..9f7a954fa3 100644 --- a/test/parseedn-test.el +++ b/test/parseedn-test.el @@ -37,6 +37,8 @@ (should (equal (parseedn-print-str nil) "nil")) (should (equal (parseedn-print-str 100) "100")) (should (equal (parseedn-print-str 1.2) "1.2")) + (should (equal (parseedn-print-str []) "[]")) + (should (equal (parseedn-print-str '(edn-set ())) "#{}")) (should (equal (parseedn-print-str [1 2 3]) "[1 2 3]")) (should (equal (parseedn-print-str t) "true")) (should (equal (parseedn-print-str '((a . 1) (b . 2))) "{a 1, b 2}"))
[nongnu] elpa/parseedn 2b28df1c3d 4/6: Add empty hash test
branch: elpa/parseedn commit 2b28df1c3d117c852978e06da0c5721cbc90d6c2 Author: tmpUser2022 <98637343+tmpuser2...@users.noreply.github.com> Commit: GitHub Add empty hash test --- test/parseedn-test.el | 1 + 1 file changed, 1 insertion(+) diff --git a/test/parseedn-test.el b/test/parseedn-test.el index 49a3a66b2c..8d167d54a8 100644 --- a/test/parseedn-test.el +++ b/test/parseedn-test.el @@ -45,6 +45,7 @@ (should (equal (parseedn-print-str '(:a 1 :b (:c 3))) "{:a 1, :b {:c 3}}")) (should (equal (parseedn-print-str '(edn-tagged-literal unknown "data")) "#unknown \"data\"")) (should (equal (parseedn-print-str '(edn-tagged-literal unknown (edn-tagged-literal unknown "data"))) "#unknown #unknown \"data\"")) + (should (equal (parseedn-print-str #s(hash-table size 0 data ())) "{}")) (should (listp (member (parseedn-print-str (let ((ht (make-hash-table))) (puthash :a 1 ht)
[nongnu] elpa/parseedn updated (35e9f3173a -> a09686fbb9)
elpasync pushed a change to branch elpa/parseedn. from 35e9f3173a Merge pull request #13 from tmpUser2022/main new 7f38ea08b4 Fix empty hash new 2b28df1c3d Add empty hash test new 8dca313b95 Merge pull request #15 from tmpUser2022/empty-hash new b399b72a8e Iterative parseedn-print-seq new 7b888171de add empty sequences test new a09686fbb9 Merge pull request #14 from tmpUser2022/iterative-parseedn-print-seq Summary of changes: parseedn.el | 12 ++-- test/parseedn-test.el | 3 +++ 2 files changed, 9 insertions(+), 6 deletions(-)
[nongnu] elpa/parseedn 7f38ea08b4 3/6: Fix empty hash
branch: elpa/parseedn commit 7f38ea08b44691bd9ee13d3d539f2c9380d5c07f Author: tmpUser2022 <98637343+tmpuser2...@users.noreply.github.com> Commit: GitHub Fix empty hash Before: `(parseedn-print-str #s(hash-table size 0 data ())) ;; => "{nil nil}"` After:`(parseedn-print-str #s(hash-table size 0 data ())) ;; => "{}"` --- parseedn.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/parseedn.el b/parseedn.el index 1e06e54218..6e93399f91 100644 --- a/parseedn.el +++ b/parseedn.el @@ -165,7 +165,7 @@ TAG-READERS is an optional association list. For more information, see (defun parseedn-print-hash-or-alist (map &optional ks) "Insert hash table MAP or elisp alist as an EDN map into the current buffer." - (let ((keys (or ks (map-keys map + (when-let ((keys (or ks (map-keys map (parseedn-print (car keys)) (insert " ") (parseedn-print (map-elt map (car keys)))
[nongnu] elpa/parseedn a09686fbb9 6/6: Merge pull request #14 from tmpUser2022/iterative-parseedn-print-seq
branch: elpa/parseedn commit a09686fbb9113b8b1b4f20c9e1dc0d6fea01a64f Merge: 8dca313b95 7b888171de Author: Arne Brasseur Commit: GitHub Merge pull request #14 from tmpUser2022/iterative-parseedn-print-seq Iterative parseedn-print-seq to avoid overflows --- parseedn.el | 10 +- test/parseedn-test.el | 2 ++ 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/parseedn.el b/parseedn.el index 6e93399f91..eb36782792 100644 --- a/parseedn.el +++ b/parseedn.el @@ -156,12 +156,12 @@ TAG-READERS is an optional association list. For more information, see (defun parseedn-print-seq (coll) "Insert sequence COLL as EDN into the current buffer." - (unless (seq-empty-p coll) -(parseedn-print (elt coll 0))) - (let ((next (seq-drop coll 1))) -(when (not (seq-empty-p next)) + (when (not (seq-empty-p coll)) +(while (not (seq-empty-p coll)) + (parseedn-print (elt coll 0)) (insert " ") - (parseedn-print-seq next + (setq coll (seq-drop coll 1))) +(delete-char -1))) (defun parseedn-print-hash-or-alist (map &optional ks) "Insert hash table MAP or elisp alist as an EDN map into the current buffer." diff --git a/test/parseedn-test.el b/test/parseedn-test.el index 8d167d54a8..e3c7d88f2f 100644 --- a/test/parseedn-test.el +++ b/test/parseedn-test.el @@ -37,6 +37,8 @@ (should (equal (parseedn-print-str nil) "nil")) (should (equal (parseedn-print-str 100) "100")) (should (equal (parseedn-print-str 1.2) "1.2")) + (should (equal (parseedn-print-str []) "[]")) + (should (equal (parseedn-print-str '(edn-set ())) "#{}")) (should (equal (parseedn-print-str [1 2 3]) "[1 2 3]")) (should (equal (parseedn-print-str t) "true")) (should (equal (parseedn-print-str '((a . 1) (b . 2))) "{a 1, b 2}"))
[elpa] externals/corfu a2d843646f 2/2: README update - Expand on corfu-terminal
branch: externals/corfu commit a2d843646fc30df2bea7b5cd3237ebf9269b2a01 Author: Daniel Mendler Commit: Daniel Mendler README update - Expand on corfu-terminal --- README.org | 15 +-- 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/README.org b/README.org index f706e10fba..d7bdad72a0 100644 --- a/README.org +++ b/README.org @@ -27,9 +27,9 @@ provided by other programming language packages are usually sufficient. A few additional Capfs and completion utilities are provided by the [[https://github.com/minad/cape][Cape]] package. *NOTE*: Corfu uses child frames to show the popup and falls back to the default -setting of the ~completion-in-region-function~ on non-graphical displays. There is -a [[https://codeberg.org/akib/emacs-corfu-popup][package in the works]] which uses overlays for the popup such that Corfu can be -used when Emacs is running in a terminal. +setting of the ~completion-in-region-function~ on non-graphical displays. If you +want to use Corfu in the terminal, install the package [[https://codeberg.org/akib/emacs-corfu-terminal][corfu-terminal]], which +provides an alternative overlay-based display. [[https://github.com/minad/corfu/blob/screenshots/light.png?raw=true]] @@ -422,6 +422,12 @@ Corfu works well together with all packages providing code completion via the out of the box. Nevertheless you may want to look into complementary packages to enhance your setup. +- [[https://codeberg.org/akib/emacs-corfu-terminal][corfu-terminal]]: The corfu-terminal package provides an overlay-based display + for Corfu, such that you can use Corfu in terminal Emacs. + +- [[https://github.com/galeo/corfu-doc][corfu-doc]]: The corfu-doc package displays the candidate documentation in a + popup next to the Corfu popup, similar to =company-quickhelp=. + - [[https://github.com/oantolin/orderless][Orderless]]: Corfu supports completion styles, including the advanced [[https://github.com/oantolin/orderless][Orderless]] completion style, where the filtering expressions are separated by spaces or another character (see ~corfu-separator~). @@ -437,9 +443,6 @@ enhance your setup. the [[https://github.com/jdtsmith/kind-icon][kind-icon]] package provides beautifully styled SVG icons based on monochromatic icon sets like material design. -- [[https://github.com/galeo/corfu-doc][corfu-doc]]: The corfu-doc package displays the candidate documentation in a - popup next to the Corfu popup, similar to =company-quickhelp=. - - [[https://github.com/JonWaltman/pcmpl-args.el][pcmpl-args]]: Extend the Eshell/Shell Pcomplete mechanism with support for many more commands. Similar to the Fish shell, Pcomplete uses man page parsing to dynamically retrieve the completions and helpful annotations. This package
[elpa] externals/corfu cf58c19598 1/2: Extract function corfu--popup-support-p
branch: externals/corfu commit cf58c19598aee9828da49bdfb7d596208a91ccc9 Author: Daniel Mendler Commit: Daniel Mendler Extract function corfu--popup-support-p --- corfu.el | 8 ++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/corfu.el b/corfu.el index 1e3ec7937c..c62a17806f 100644 --- a/corfu.el +++ b/corfu.el @@ -497,6 +497,10 @@ A scroll bar is displayed from LO to LO+BAR." (let ((inhibit-read-only t)) (erase-buffer) +(defun corfu--popup-support-p () + "Return non-nil if child frames are supported." + (display-graphic-p)) + (defun corfu--move-to-front (elem list) "Move ELEM to front of LIST." (if-let (found (member elem list)) @@ -1083,7 +1087,7 @@ Quit if no candidate is selected." "Corfu completion in region function called with ARGS." ;; XXX We can get an endless loop when `completion-in-region-function' is set ;; globally to `corfu--in-region'. This should never happen. - (apply (if (display-graphic-p) #'corfu--in-region-1 + (apply (if (corfu--popup-support-p) #'corfu--in-region-1 (default-value 'completion-in-region-function)) args)) @@ -1184,7 +1188,7 @@ See `completion-in-region' for the arguments BEG, END, TABLE, PRED." (when (and (not completion-in-region-mode) (not defining-kbd-macro) (corfu--match-symbol-p corfu-auto-commands this-command) - (display-graphic-p)) + (corfu--popup-support-p)) ;; NOTE: Do not use idle timer since this leads to unacceptable slowdowns, ;; in particular if flyspell-mode is enabled. (setq corfu--auto-timer
[elpa] externals/corfu updated (1481b67871 -> a2d843646f)
elpasync pushed a change to branch externals/corfu. from 1481b67871 Extract corfu--in-region-1 new cf58c19598 Extract function corfu--popup-support-p new a2d843646f README update - Expand on corfu-terminal Summary of changes: README.org | 15 +-- corfu.el | 8 ++-- 2 files changed, 15 insertions(+), 8 deletions(-)
[elpa] externals/dtache a2761a0517 06/16: Update broken test
branch: externals/dtache commit a2761a051727a5b374de69a027823a03bbb39268 Author: Niklas Eklund Commit: Niklas Eklund Update broken test --- test/detached-test.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/detached-test.el b/test/detached-test.el index 7ad2c4abf3..c177056a0a 100644 --- a/test/detached-test.el +++ b/test/detached-test.el @@ -283,13 +283,13 @@ (let ((str " [EOF - dtach terminating] user@machine ")) -(should (string= " user@machine " (dtache--dtach-eof-message-filter str) +(should (string= " user@machine " (detached--dtach-eof-message-filter str) (ert-deftest detached-test-dtach-detached-message-filter () (let ((str " [detached] user@machine ")) -(should (string= " user@machine " (dtache--dtach-detached-message-filter str) +(should (string= " user@machine " (detached--dtach-detached-message-filter str) (ert-deftest detached-test-detached-env-message-filter () (let ((str "output\n\nDetached session exited abnormally with code 127"))
[elpa] externals/dtache e38c9c7649 16/16: Revert badges in README
branch: externals/dtache commit e38c9c764969823a64f6a0075244efa73eacf09d Author: Niklas Eklund Commit: Niklas Eklund Revert badges in README --- README.md | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 52f05ed27c..4ad8caa8d8 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ # detached.el -http://elpa.gnu.org/packages/detached.html";>https://elpa.gnu.org/packages/detached.svg"/> -http://elpa.gnu.org/devel/detached.html";>https://elpa.gnu.org/devel/detached.svg"/> -https://melpa.org/#/detached";>https://melpa.org/packages/detached-badge.svg"/> -https://stable.melpa.org/#/detached";>https://stable.melpa.org/packages/detached-badge.svg"/> +http://elpa.gnu.org/packages/dtache.html";>https://elpa.gnu.org/packages/dtache.svg"/> +http://elpa.gnu.org/devel/dtache.html";>https://elpa.gnu.org/devel/dtache.svg"/> +https://melpa.org/#/dtache";>https://melpa.org/packages/dtache-badge.svg"/> +https://stable.melpa.org/#/dtache";>https://stable.melpa.org/packages/dtache-badge.svg"/> https://builds.sr.ht/~niklaseklund/detached.el/commits/main/.build.yml";>https://builds.sr.ht/~niklaseklund/detached.el/commits/main/.build.yml.svg"/> # Introduction
[elpa] externals/dtache eefc2833b1 01/16: Update README
branch: externals/dtache commit eefc2833b1956099d7cecbbe9fd17b4fe2ea4f3d Author: Niklas Eklund Commit: Niklas Eklund Update README --- README.md | 503 +- 1 file changed, 171 insertions(+), 332 deletions(-) diff --git a/README.md b/README.md index 090a639d02..1ed2a32c7b 100644 --- a/README.md +++ b/README.md @@ -1,53 +1,39 @@ -# Detach Emacs +# detached.el -http://elpa.gnu.org/packages/dtache.html";>https://elpa.gnu.org/packages/dtache.svg"/> -http://elpa.gnu.org/devel/dtache.html";>https://elpa.gnu.org/devel/dtache.svg"/> -https://melpa.org/#/dtache";>https://melpa.org/packages/dtache-badge.svg"/> -https://stable.melpa.org/#/dtache";>https://stable.melpa.org/packages/dtache-badge.svg"/> -https://builds.sr.ht/~niklaseklund/dtache/commits/main/.build.yml";>https://builds.sr.ht/~niklaseklund/dtache/commits/main/.build.yml.svg"/> +http://elpa.gnu.org/packages/detached.html";>https://elpa.gnu.org/packages/detached.svg"/> +http://elpa.gnu.org/devel/detached.html";>https://elpa.gnu.org/devel/detached.svg"/> +https://melpa.org/#/detached";>https://melpa.org/packages/detached-badge.svg"/> +https://stable.melpa.org/#/detached";>https://stable.melpa.org/packages/detached-badge.svg"/> +https://builds.sr.ht/~niklaseklund/detached.el/commits/main/.build.yml";>https://builds.sr.ht/~niklaseklund/detached.el/commits/main/.build.yml.svg"/> # Introduction -Dtache is a package to run, and interact with, shell commands that are completely detached from Emacs itself. The package achieves this functionality by launching the commands with the program [dtach](https://github.com/crigler/dtach). Even though the commands are run decoupled, the package makes sure the integration to Emacs is seamless. The advantage is that the processes are insensitive to Emacs being killed, and this holds true for remote hosts as well, essentially making `dtache` a [...] +`detached.el` is a package to launch, and manage, detached processes. The idea is that these processes are detached from the Emacs process and the package can make Emacs seamlessly attach to these processes. This enables users to launch processes that can survive when Emacs itself is being shutdown. The package relies on the program [dtach](https://github.com/crigler/dtach), in order to make this functionality possible. -Another advantage of `dtache` is that in order to implement the detached feature it actually represents the processes as text inside of Emacs. This enables features such as history of all session outputs, possibility to diff session outputs etc. +Internally the package transforms the detached process into a `detached-session` object, which essentially is a text-based representation of the process. All `detached-session` objects are stored in a lisp file, and the output of all sessions are captured into individual logs. -The following videos about `dtache`. They are currently a bit outdated but the core concept is still true. +The package supports integration with multiple packages, here is a list of the built-in packages that are supported: -- [Dtache - An Emacs package that provides detachable shell commands](https://www.youtube.com/watch?v=if1W58SrClk) -- [Dtache - Version 0.2](https://www.youtube.com/watch?v=De5oXdnY5hY) +- `shell` +- `eshell` +- `compile` +- `org` +- `dired` -## Features +# Features -The way `dtache` is designed with its `dtache-session` objects opens up the possibilities for the following features. +Since a `detached-session` contain all the output of the process as well as data such as, `what` command was run, `which` directory the process was launched etc, it opens up the possibility for the following features: -### Output - -The user always have access to the session's output. The user never needs to fear that the output history of the terminal is not enough to capture all of its output. Also its pretty handy to be able to go back in time and see the output from a session you ran earlier today. Having access to the output as well as the other information from the session makes it possible to compile a session using Emacs built in functionality. This enables navigation between errors in the output as well as [...] - -### Notifications - -Start a session and then focus on something else. `Dtache` will notify you when the session has become inactive. - -### Metadata - -The session always contain metadata, such as when the session was started, for how long it has been running (if it is active), how long it ran (if it is inactive). - -### Annotations - -Arbitrary metadata can be captured when a session is started. An example further down is how to leverage this feature to capture the git branch for a session. - -### Remote - -Proper support for running session on a remote host. See the `Remote suppport` section of the README for further details on how to configure `dtache` to work for a remote host. - -### Actions - -The p
[elpa] externals/dtache 249e21f498 15/16: Fix too long docstring
branch: externals/dtache commit 249e21f498e121ee1f9dfa7f915e9db79f734bbe Author: Niklas Eklund Commit: Niklas Eklund Fix too long docstring --- detached-compile.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/detached-compile.el b/detached-compile.el index ba31a88ec3..a924275fe1 100644 --- a/detached-compile.el +++ b/detached-compile.el @@ -104,7 +104,7 @@ Optionally EDIT-COMMAND." ; Support functions (defun detached-compile--compilation-start (compilation-start &rest args) - "Optionally create a `detached' session before running COMPILATION-START with ARGS." + "Create a `detached' session before running COMPILATION-START with ARGS." (if detached-enabled (pcase-let ((`(,command ,mode ,_ ,highlight-regexp) args) (buffer-name "*detached-compilation*"))
[elpa] externals/dtache 71028ba150 14/16: Fix incorrect function name
branch: externals/dtache commit 71028ba150549ba213dfc2334e5e83dc2e5d90eb Author: Niklas Eklund Commit: Niklas Eklund Fix incorrect function name --- detached.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/detached.el b/detached.el index a39aada48e..2dc98962d7 100644 --- a/detached.el +++ b/detached.el @@ -1067,7 +1067,7 @@ Optionally make the path LOCAL to host." (string-match regexp header) (match-string 1 header))) -(defun detaced--db-insert-entry (session) +(defun detached--db-insert-entry (session) "Insert SESSION into `detached--sessions' and update database." (detached-initialize-sessions) (push `(,(detached--session-id session) . ,session) detached--sessions)
[elpa] externals/dtache 34becd11d6 10/16: Remove temporary hack
branch: externals/dtache commit 34becd11d628eb49b922361f4bd2abdb469d9e96 Author: Niklas Eklund Commit: Niklas Eklund Remove temporary hack This is an inherent behavior of compile and should not be addressed like this in detached. --- detached-compile.el | 10 +- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/detached-compile.el b/detached-compile.el index 8d1fd6ae2a..ba31a88ec3 100644 --- a/detached-compile.el +++ b/detached-compile.el @@ -80,15 +80,7 @@ Optionally EDIT-COMMAND." (let* ((detached-enabled t) (detached-session-mode 'attach) (detached--current-session session)) - (compilation-start (detached--session-command session)) - (when detached-show-output-on-attach -;; HACK: When attaching to a detached session and -;; `detached-show-output-on-attach' is non-nil we need to switch -;; to the compile buffer and go to the end. Otherwise it won't -;; properly update when new output is coming -(other-window 1) -(end-of-buffer) -(other-window 1) + (compilation-start (detached--session-command session) ;;;###autoload (defun detached-compile-open (session)
[elpa] externals/dtache f835ca1172 04/16: Update README
branch: externals/dtache commit f835ca11720dc2ae7450ab7046e76cf3535e7b3b Author: Niklas Eklund Commit: Niklas Eklund Update README --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1ed2a32c7b..5278cf4149 100644 --- a/README.md +++ b/README.md @@ -278,9 +278,9 @@ Next add the annotation function to the `detached-metadata-annotators-alist` tog ## Nonattachable commands -To be able to both attach to a dtach session as well as logging its output `detached` relies on the usage of `tee`. However it is possible that the user tries to run a command which involves a program that doesn't integrate well with tee. In those situations the output could be delayed until the session ends, which is not preferable. +To be able to both attach to a dtach session as well as logging its output `detached.el` relies on the usage of `tee`. However it is possible that the user tries to run a command which involves a program that doesn't integrate well with tee. In those situations the output could be delayed until the session ends, which is not preferable. -For these situations `detached` provides the `detached-nonattachable-commands` variable. This is a list of regular expressions. Any command that matches any of the strings will be getting the property `attachable` set to false. +For these situations `detached.el` provides the `detached-nonattachable-commands` variable. This is a list of regular expressions. Any command that matches any of the strings will be getting the property `attachable` set to false. ``` emacs-lisp (setq detached-nonattachable-commands '("^ls")) ```
[elpa] externals/dtache 02ff2173d3 12/16: Update header description in detached.el
branch: externals/dtache commit 02ff2173d3b6915e786c8f82bf568af3da6ef800 Author: Niklas Eklund Commit: Niklas Eklund Update header description in detached.el --- detached.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/detached.el b/detached.el index 0d5fa93a5e..1f5c846f98 100644 --- a/detached.el +++ b/detached.el @@ -1,4 +1,4 @@ -;;; detached.el --- Run and interact with detached shell commands -*- lexical-binding: t -*- +;;; detached.el --- A package to launch, and manage, detached processes -*- lexical-binding: t -*- ;; Copyright (C) 2020-2022 Free Software Foundation, Inc.
[elpa] externals/dtache updated (02651e47d3 -> e38c9c7649)
elpasync pushed a change to branch externals/dtache. from 02651e47d3 Update CHANGELOG new eefc2833b1 Update README new 2d33efdd9d Rename dtache -> detached new 450c12ea0c Rename all files new f835ca1172 Update README new fa7aa42f43 Update CHANGELOG new a2761a0517 Update broken test new 518317cc3e Update comment new 72c563bc96 Fix indentation new cbc8c8ae70 Minor update to README new 34becd11d6 Remove temporary hack new 5a26fa0cb1 Fix broken command width new 02ff2173d3 Update header description in detached.el new 2fe1e6fb0d Update initialization of sessions new 71028ba150 Fix incorrect function name new 249e21f498 Fix too long docstring new e38c9c7649 Revert badges in README Summary of changes: .build.yml |2 +- CHANGELOG.org|3 +- LICENSE |4 +- README.md| 495 detached-compile.el | 169 detached-consult.el | 210 + dtache-dired.el => detached-dired.el | 18 +- detached-env | 30 + detached-eshell.el | 145 dtache-extra.el => detached-extra.el | 36 +- detached-init.el | 168 dtache-org.el => detached-org.el | 42 +- detached-shell.el| 148 dtache-vterm.el => detached-vterm.el | 68 +- detached.el | 1423 ++ dtache-compile.el| 177 - dtache-consult.el| 210 - dtache-env | 30 - dtache-eshell.el | 145 dtache-init.el | 168 dtache-shell.el | 148 dtache.el| 1415 - guix.scm | 16 +- test/detached-test.el| 302 test/dtache-test.el | 302 25 files changed, 2858 insertions(+), 3016 deletions(-) create mode 100644 detached-compile.el create mode 100644 detached-consult.el rename dtache-dired.el => detached-dired.el (68%) create mode 100755 detached-env create mode 100644 detached-eshell.el rename dtache-extra.el => detached-extra.el (53%) create mode 100644 detached-init.el rename dtache-org.el => detached-org.el (58%) create mode 100644 detached-shell.el rename dtache-vterm.el => detached-vterm.el (50%) create mode 100644 detached.el delete mode 100644 dtache-compile.el delete mode 100644 dtache-consult.el delete mode 100755 dtache-env delete mode 100644 dtache-eshell.el delete mode 100644 dtache-init.el delete mode 100644 dtache-shell.el delete mode 100644 dtache.el create mode 100644 test/detached-test.el delete mode 100644 test/dtache-test.el
[elpa] externals/dtache 450c12ea0c 03/16: Rename all files
branch: externals/dtache commit 450c12ea0c38d7254faa7cdd4fdd022671b4fd75 Author: Niklas Eklund Commit: Niklas Eklund Rename all files --- dtache-compile.el => detached-compile.el | 0 dtache-consult.el => detached-consult.el | 0 dtache-dired.el => detached-dired.el | 0 dtache-env => detached-env| 0 dtache-eshell.el => detached-eshell.el| 0 dtache-extra.el => detached-extra.el | 0 dtache-init.el => detached-init.el| 0 dtache-org.el => detached-org.el | 0 dtache-shell.el => detached-shell.el | 0 dtache-vterm.el => detached-vterm.el | 0 dtache.el => detached.el | 0 test/{dtache-test.el => detached-test.el} | 0 12 files changed, 0 insertions(+), 0 deletions(-) diff --git a/dtache-compile.el b/detached-compile.el similarity index 100% rename from dtache-compile.el rename to detached-compile.el diff --git a/dtache-consult.el b/detached-consult.el similarity index 100% rename from dtache-consult.el rename to detached-consult.el diff --git a/dtache-dired.el b/detached-dired.el similarity index 100% rename from dtache-dired.el rename to detached-dired.el diff --git a/dtache-env b/detached-env similarity index 100% rename from dtache-env rename to detached-env diff --git a/dtache-eshell.el b/detached-eshell.el similarity index 100% rename from dtache-eshell.el rename to detached-eshell.el diff --git a/dtache-extra.el b/detached-extra.el similarity index 100% rename from dtache-extra.el rename to detached-extra.el diff --git a/dtache-init.el b/detached-init.el similarity index 100% rename from dtache-init.el rename to detached-init.el diff --git a/dtache-org.el b/detached-org.el similarity index 100% rename from dtache-org.el rename to detached-org.el diff --git a/dtache-shell.el b/detached-shell.el similarity index 100% rename from dtache-shell.el rename to detached-shell.el diff --git a/dtache-vterm.el b/detached-vterm.el similarity index 100% rename from dtache-vterm.el rename to detached-vterm.el diff --git a/dtache.el b/detached.el similarity index 100% rename from dtache.el rename to detached.el diff --git a/test/dtache-test.el b/test/detached-test.el similarity index 100% rename from test/dtache-test.el rename to test/detached-test.el
[elpa] externals/dtache fa7aa42f43 05/16: Update CHANGELOG
branch: externals/dtache commit fa7aa42f432a283ca5edf79c178071233ad38597 Author: Niklas Eklund Commit: Niklas Eklund Update CHANGELOG --- CHANGELOG.org | 49 + 1 file changed, 25 insertions(+), 24 deletions(-) diff --git a/CHANGELOG.org b/CHANGELOG.org index 5c6c8b1527..070966c66c 100644 --- a/CHANGELOG.org +++ b/CHANGELOG.org @@ -3,51 +3,52 @@ #+language: en * Development -- Introduce =detached-init.el= and move integration of other packages there. The integration now becomes even simpler for users of =detached=. -- Rewrite =detached= to enable the package to lazy load and not force users to load it when starting Emacs. +- Rename =dtache= to =detached.el= +- Introduce =dtache-init.el= and move integration of other packages there. The integration now becomes even simpler for users of =dtache=. +- Rewrite =dtache= to enable the package to lazy load and not force users to load it when starting Emacs. - Make completion of sessions adapt to the current dtache sessions. All of the sessions will be used to determine an an appropriate width for the command width as well as each individual annotation. Format has updated in =dtache-annotation-format= and a =dtache-command-format= has been added, this supersedes the =dtache-max-command-lenght=. - Improvements to =dtache-env=. The package will now control which mode =dtache-env= should be run in. The mode is either =plain-text= or =terminal-data=. The latter is enabled by default and allows =dtache= to capture control sequences for e.g. colored output. This update will require users to update their =dtache-env= scripts. - Add integration with =dired= through =dired-do-shell-command= -- Add option to show a session's output when attaching to a it. This feature is enabled with =detached-show-output-on-attach=. +- Add option to show a session's output when attaching to a it. This feature is enabled with =dtache-show-output-on-attach=. * Version 0.6 (2022-05-01) -- Eshell integration has been updated. The package now supports expansion of =eshell= aliases. However =detached= will no longer run if commands are =elisp= functions. -- Example configuration for =detached= integration with =vterm= added. -- The package now uses =ansi-color= to handle ANSI escape sequences. This feature is enabled by default but can be turned of if =detached-filter-ansi-sequences= is set to nil. +- Eshell integration has been updated. The package now supports expansion of =eshell= aliases. However =dtache= will no longer run if commands are =elisp= functions. +- Example configuration for =dtache= integration with =vterm= added. +- The package now uses =ansi-color= to handle ANSI escape sequences. This feature is enabled by default but can be turned of if =dtache-filter-ansi-sequences= is set to nil. * Version 0.5 (2022-02-02) -- Add support for =org= through the =detached-org= extension. This makes it possible to use =detached= with =org-babel= (shell) source code blocks. -- Support for multiple Emacs sessions. When a =detached= session is created, it will now become visible in all active Emacs sessions. +- Add support for =org= through the =dtache-org= extension. This makes it possible to use =dtache= with =org-babel= (shell) source code blocks. +- Support for multiple Emacs sessions. When a =dtache= session is created, it will now become visible in all active Emacs sessions. * Version 0.4 (2022-01-22) -- =detached= takes care of setting up the keybindings for its users. The detach key can be customized through =detached-detach-key= -- =detached= now has full on macOS. The previous issue of not being able to utilize =filenotify= has been resolved. -- =detached= now uses =notifications= library to issue notifications by default. -- =detached= now uses =filenotify= for notifications except on local macOS hosts. +- =dtache= takes care of setting up the keybindings for its users. The detach key can be customized through =dtache-detach-key= +- =dtache= now has full on macOS. The previous issue of not being able to utilize =filenotify= has been resolved. +- =dtache= now uses =notifications= library to issue notifications by default. +- =dtache= now uses =filenotify= for notifications except on local macOS hosts. * Version 0.3 (2022-01-15) -- =detached= now uses =filenotify= for both local and remote sessions. If run on =macOS= timers are used both for local as well as remote sessions. -- Add version for =detached-session= objects. This makes detached not break whenever non-backwards compatible changes are made to the detached-session object. -- The commands for launching sessions are now renamed to resemble the non detached commands. The commands are =detached-shell-command=, =detached-shell-send-input=, =detached-eshell-send-input=, =detached-compile=. -- Add action value to a session. This value is set to detached-session-action which is a property list optionally specifying
[elpa] externals/dtache 518317cc3e 07/16: Update comment
branch: externals/dtache commit 518317cc3e981c46f73a0c0ab1b73f8618c279c0 Author: Niklas Eklund Commit: Niklas Eklund Update comment --- detached-compile.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/detached-compile.el b/detached-compile.el index 26a050340d..14a4fedad6 100644 --- a/detached-compile.el +++ b/detached-compile.el @@ -82,7 +82,7 @@ Optionally EDIT-COMMAND." (detached--current-session session)) (compilation-start (detached--session-command session)) (when detached-show-output-on-attach -;; HACK: When attaching to a detached process and +;; HACK: When attaching to a detached session and ;; `detached-show-output-on-attach' is non-nil we need to switch ;; to the compile buffer and go to the end. Otherwise it won't ;; properly update when new output is coming
[elpa] externals/dtache cbc8c8ae70 09/16: Minor update to README
branch: externals/dtache commit cbc8c8ae701cf085db712f40f19b9573b625a7a6 Author: Niklas Eklund Commit: Niklas Eklund Minor update to README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5278cf4149..52f05ed27c 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ The package supports integration with multiple packages, here is a list of the b # Features -Since a `detached-session` contain all the output of the process as well as data such as, `what` command was run, `which` directory the process was launched etc, it opens up the possibility for the following features: +Since a `detached-session` contain all the output of the process as well as data such as, `what command` was run, `which directory` the process was launched etc, it opens up the possibility for the following features: - `Unlimited scrollback:` All the output from a `detached-session` is always accessible - `Remote support:` Full support for running on remote hosts. See `Remote support` section of the README
[elpa] externals/dtache 72c563bc96 08/16: Fix indentation
branch: externals/dtache commit 72c563bc9605dc7ae345e179c4f027340482399e Author: Niklas Eklund Commit: Niklas Eklund Fix indentation --- detached-compile.el | 4 +- detached-consult.el | 204 ++-- detached-extra.el | 12 ++-- detached-init.el| 18 ++--- 4 files changed, 120 insertions(+), 118 deletions(-) diff --git a/detached-compile.el b/detached-compile.el index 14a4fedad6..8d1fd6ae2a 100644 --- a/detached-compile.el +++ b/detached-compile.el @@ -56,7 +56,7 @@ Optionally enable COMINT if prefix-argument is provided." (let* ((detached-enabled t) (detached-session-origin (or detached-session-origin 'compile)) (detached-session-action (or detached-session-action -detached-compile-session-action)) + detached-compile-session-action)) (detached-session-mode 'create-and-attach)) (compile command comint))) @@ -121,7 +121,7 @@ Optionally EDIT-COMMAND." (detached-start-session command t) (cl-letf* ((name-function (lambda (_) buffer-name)) (detached--current-session (or detached--current-session - (detached-create-session command +(detached-create-session command (apply compilation-start `(,(detached-dtach-command detached--current-session t) ,(or mode 'detached-compilation-mode) ,name-function diff --git a/detached-consult.el b/detached-consult.el index 1e3860330a..0022163036 100644 --- a/detached-consult.el +++ b/detached-consult.el @@ -57,139 +57,139 @@ See `consult-multi' for a description of the source values." (defvar detached-consult--source-session `(:category detached -:annotate detached-session-annotation -:action (lambda (x) (detached-open-session (detached--decode-session x))) -:items -,(lambda () - (mapcar #'car - (seq-remove -(lambda (x) - (seq-find (lambda (predicate) - (apply predicate `(,(cdr x - detached-consult-hidden-predicates)) -(detached-session-candidates (detached-get-sessions)) + :annotate detached-session-annotation + :action (lambda (x) (detached-open-session (detached--decode-session x))) + :items + ,(lambda () + (mapcar #'car + (seq-remove + (lambda (x) +(seq-find (lambda (predicate) +(apply predicate `(,(cdr x + detached-consult-hidden-predicates)) + (detached-session-candidates (detached-get-sessions)) "All `detached' sessions as a source for `consult'.") (defvar detached-consult--source-hidden-session `(:narrow (?\s . "Hidden") -:hidden t -:category detached -:annotate detached-session-annotation -:action (lambda (x) (detached-open-session (detached--decode-session x))) -:items -,(lambda () - (mapcar #'car - (seq-filter -(lambda (x) - (seq-find (lambda (predicate) - (apply predicate `(,(cdr x - detached-consult-hidden-predicates)) -(detached-session-candidates (detached-get-sessions)) +:hidden t +:category detached +:annotate detached-session-annotation +:action (lambda (x) (detached-open-session (detached--decode-session x))) +:items +,(lambda () + (mapcar #'car + (seq-filter +(lambda (x) + (seq-find (lambda (predicate) + (apply predicate `(,(cdr x +detached-consult-hidden-predicates)) +(detached-session-candidates (detached-get-sessions)) "Active `detached' sessions as a source for `consult'.") (defvar detached-consult--source-active-session `(:narrow (?a . "Active") -:hidden t -:category detached -:annotate detached-session-annotation -:action (lambda (x) (detached-open-session (detached--decode-session x))) -:items -,(lambda () - (mapcar #'car - (seq-filter -(lambda (x) - (eq 'active (detached--session-state (cdr x -(detached-session-candidates (detached-get-sessions)) +:hidden t +:category detached +:annotate detached-session-annotation +:action (lambda (x) (detached-open-sessio
[elpa] externals/dtache 5a26fa0cb1 11/16: Fix broken command width
branch: externals/dtache commit 5a26fa0cb127765757a92cf91d6789ac7db73e45 Author: Niklas Eklund Commit: Niklas Eklund Fix broken command width --- detached.el | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/detached.el b/detached.el index 3c7ea8357d..0d5fa93a5e 100644 --- a/detached.el +++ b/detached.el @@ -897,7 +897,10 @@ Optionally CONCAT the command return command into a string." "Return SESSION's command as a string restrict it to MAX-LENGTH." (let ((command (detached--session-command session))) (if (<= (length command) max-length) -command +(truncate-string-to-width + command + max-length + 0 ?\s) (concat (substring (detached--session-command session) 0 (- max-length 3)) "..." Support functions
[elpa] externals/dtache 2fe1e6fb0d 13/16: Update initialization of sessions
branch: externals/dtache commit 2fe1e6fb0dd13834a0b3bd538d00f2d84ad56b91 Author: Niklas Eklund Commit: Niklas Eklund Update initialization of sessions Make sure initialization of sessions are not only called when retrieving sessions but also when creating sessions. Prior behavior should have overwritten known sessions if sessions had yet been initialized when creating a new session. --- detached.el | 11 --- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/detached.el b/detached.el index 1f5c846f98..a39aada48e 100644 --- a/detached.el +++ b/detached.el @@ -786,7 +786,6 @@ This function uses the `notifications' library." (defun detached-get-sessions () "Return validated sessions." - (detached-initialize-sessions) (detached--validate-unknown-sessions) (detached--db-get-sessions)) @@ -1068,36 +1067,42 @@ Optionally make the path LOCAL to host." (string-match regexp header) (match-string 1 header))) -(defun detached--db-insert-entry (session) +(defun detaced--db-insert-entry (session) "Insert SESSION into `detached--sessions' and update database." + (detached-initialize-sessions) (push `(,(detached--session-id session) . ,session) detached--sessions) (detached--db-update-sessions)) (defun detached--db-remove-entry (session) "Remove SESSION from `detached--sessions', delete log and update database." + (detached-initialize-sessions) (let ((log (detached--session-file session 'log))) (when (file-exists-p log) (delete-file log))) (setq detached--sessions -(assq-delete-all (detached--session-id session) detached--sessions )) +(assq-delete-all (detached--session-id session) detached--sessions)) (detached--db-update-sessions)) (defun detached--db-update-entry (session &optional update) "Update SESSION in `detached--sessions' optionally UPDATE database." + (detached-initialize-sessions) (setf (alist-get (detached--session-id session) detached--sessions) session) (when update (detached--db-update-sessions))) (defun detached--db-get-session (id) "Return session with ID." + (detached-initialize-sessions) (alist-get id detached--sessions)) (defun detached--db-get-sessions () "Return all sessions stored in the database." + (detached-initialize-sessions) (seq-map #'cdr detached--sessions)) (defun detached--db-update-sessions () "Write `detached--sessions' to database." + (detached-initialize-sessions) (let ((db (expand-file-name "detached.db" detached-db-directory))) (with-temp-file db (insert (format ";; Detached Session Version: %s\n\n" detached-session-version))
[elpa] externals/dtache updated (e38c9c7649 -> 3c04415b17)
elpasync pushed a change to branch externals/dtache. from e38c9c7649 Revert badges in README new a10da6a7e3 Update build script new 3c04415b17 Update build script to new project name Summary of changes: .build.yml | 2 +- detached.el | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)
[elpa] externals/dtache 3c04415b17 2/2: Update build script to new project name
branch: externals/dtache commit 3c04415b1716abffb35814d609c384106f0af4de Author: Niklas Eklund Commit: Niklas Eklund Update build script to new project name --- .build.yml | 2 +- detached.el | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.build.yml b/.build.yml index e1064d970d..1c83904acd 100644 --- a/.build.yml +++ b/.build.yml @@ -3,7 +3,7 @@ packages: - emacs-ert-runner - dtach environment: - project: dtache + project: detached.el tasks: - guix: | cd $project diff --git a/detached.el b/detached.el index 2dc98962d7..f5a0ac97a0 100644 --- a/detached.el +++ b/detached.el @@ -4,7 +4,7 @@ ;; Author: Niklas Eklund ;; Maintainer: Niklas Eklund -;; URL: https://www.gitlab.com/niklaseklund/detached.git +;; URL: https://sr.ht/~niklaseklund/detached.el/ ;; Version: 0.6 ;; Package-Requires: ((emacs "27.1")) ;; Keywords: convenience processes
[elpa] externals/dtache a10da6a7e3 1/2: Update build script
branch: externals/dtache commit a10da6a7e308f8fbbd191ee15c35a790ebbae76e Author: Niklas Eklund Commit: Niklas Eklund Update build script --- .build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.build.yml b/.build.yml index d894686d5f..e1064d970d 100644 --- a/.build.yml +++ b/.build.yml @@ -3,7 +3,7 @@ packages: - emacs-ert-runner - dtach environment: - project: detached + project: dtache tasks: - guix: | cd $project
[nongnu] elpa/git-commit 9a09823e56: magit-renamed-files: Fix recent regression
branch: elpa/git-commit commit 9a09823e56ccb1d9a63f0edeac260fbc9bd5025b Author: Jonas Bernoulli Commit: Jonas Bernoulli magit-renamed-files: Fix recent regression [1: efb09e8d57] removed the "-M"/"--find-renames" argument because I thought there is no config setting that disables detection of renames. But there is, so we have to make sure we override it here. 1: 2022-05-16 efb09e8d57818894b29d87eecfb09cdab2342b4a magit-renamed-files: Minor tweaks --- lisp/magit-git.el | 1 + 1 file changed, 1 insertion(+) diff --git a/lisp/magit-git.el b/lisp/magit-git.el index d3b88d8461..356800d808 100644 --- a/lisp/magit-git.el +++ b/lisp/magit-git.el @@ -1105,6 +1105,7 @@ range. Otherwise, it can be any revision or range accepted by (mapcar (pcase-lambda (`(,_status ,fileA ,fileB)) (cons fileA fileB)) (seq-partition (magit-git-items "diff" "-z" "--name-status" + "--find-renames" "--diff-filter=R" revA revB) 3)))
[nongnu] elpa/magit updated (e920cdb326 -> 9a09823e56)
elpasync pushed a change to branch elpa/magit. from e920cdb326 magit-ediff-buffers: Fix docstring typos adds 9a09823e56 magit-renamed-files: Fix recent regression No new revisions were added by this update. Summary of changes: lisp/magit-git.el | 1 + 1 file changed, 1 insertion(+)
[nongnu] elpa/magit-section updated (e920cdb326 -> 9a09823e56)
elpasync pushed a change to branch elpa/magit-section. from e920cdb326 magit-ediff-buffers: Fix docstring typos adds 9a09823e56 magit-renamed-files: Fix recent regression No new revisions were added by this update. Summary of changes: lisp/magit-git.el | 1 + 1 file changed, 1 insertion(+)
[elpa] externals/javaimp 35c4b85e54: Fix javaimp-parse--scope-anon-class when there're parens inside ctor invocation
branch: externals/javaimp commit 35c4b85e5400c49d6f29f5a6392e4c5b5e6159c7 Author: Filipp Gunbin Commit: Filipp Gunbin Fix javaimp-parse--scope-anon-class when there're parens inside ctor invocation --- javaimp-parse.el | 68 +++- javaimp.el | 5 +++-- tests/parse.el | 2 ++ 3 files changed, 43 insertions(+), 32 deletions(-) diff --git a/javaimp-parse.el b/javaimp-parse.el index 1c1bdab517..b06890a7ca 100644 --- a/javaimp-parse.el +++ b/javaimp-parse.el @@ -228,18 +228,23 @@ function is to just skip whitespace / comments." (setq last-what 'char last-pos (point) -(defun javaimp-parse--preceding (regexp scope-start &optional bound skip-count) +(defun javaimp-parse--preceding (regexp open-brace &optional bound skip-count) "Returns non-nil if a match for REGEXP is found before point, but not before BOUND. Matches inside comments / strings are -skipped. Potential match is checked to be SKIP-COUNT lists away -from the SCOPE-START (1 is for scope start itself, so if you want -to skip one additional list, use 2 etc.). If a match is found, -then match-data is set, as for `re-search-backward'." +skipped. A match is checked to be SKIP-COUNT lists away from the +OPEN-BRACE. If a suitable match is found, then the match-data is +set, as for `re-search-backward'." (and (javaimp-parse--rsb-keyword regexp bound t) (ignore-errors - ;; Does our match belong to the right block? - (= (scan-lists (match-end 0) (or skip-count 1) -1) -(1+ scope-start) + ;; Check if our match belongs to the right block + (let ((pos (match-end 0))) + ;; Skip over complete lists + (when skip-count + (setq pos (scan-lists pos skip-count 0))) + ;; Now go past open-brace + (and pos +(= (scan-lists pos 1 -1) + (1+ open-brace))) (defun javaimp-parse--decl-suffix (regexp brace-pos &optional bound) "Attempts to parse declaration suffix backwards from point (but @@ -389,13 +394,14 @@ type definitions. If INCLUDE-ALSO is 'method' then also include brace.") (defun javaimp-parse--scope-class (brace-pos) - "Attempts to parse class scope." + "Attempts to parse class-like scope." (when (javaimp-parse--preceding javaimp-parse--class-keywords-regexp brace-pos - ;; closest preceding closing paren is a good bound - ;; because there _will be_ such char in frequent case - ;; of method/stmt + ;; Nearest preceding closing paren is a good bound because + ;; there _will be_ such char in frequent case of + ;; method/statement/anon-class, and we stop checks here + ;; sooner than later. (save-excursion (when (javaimp-parse--rsb-keyword ")" nil t 1) (1+ (point) @@ -403,11 +409,13 @@ brace.") (keyword-end (match-end 1)) arglist) (goto-char brace-pos) + ;; "extends" comes before "implements" etc., thus try in this + ;; order (or (javaimp-parse--decl-suffix "\\_" brace-pos keyword-end) (javaimp-parse--decl-suffix "\\_" brace-pos keyword-end) (javaimp-parse--decl-suffix "\\_" brace-pos keyword-end)) - ;; we either skipped back over the valid declaration - ;; suffix(-es), or there wasn't any + ;; We either skipped back over the valid declaration suffixes, + ;; or there weren't any of them. (setq arglist (javaimp-parse--arglist keyword-end (point) t)) (when (= (length arglist) 1) (make-javaimp-scope :type (intern @@ -436,22 +444,22 @@ lambdas are also recognized as such." "Attempts to parse anonymous class scope." ;; skip arg-list and ws (when (and (progn - (javaimp-parse--skip-back-until) - (= (char-before) ?\))) - (ignore-errors - (goto-char - (scan-lists (point) -1 0 - (let ((end (point)) -start arglist) -(when (javaimp-parse--preceding "\\_" brace-pos nil 2) - (setq start (match-beginning 0) -arglist (javaimp-parse--arglist (match-end 0) end t)) - (when (= (length arglist) 1) -(make-javaimp-scope :type 'anon-class -:name -(concat "" -(javaimp-parse--substr-before-< (caar arglist))) -:start start)) + (javaimp-parse--skip-back-until) + (= (char-before) ?\))) + (ignore-errors + (goto-char +(scan-lists (point) -1 0 +(let ((end (point)) + start arglist) + (when (javaimp-parse--preceding "\\_" brace-pos nil 1) +(setq start (match-beginning 0) + arglist (java
[elpa] externals/cape 2ac24a8ac2 2/2: Simplification
branch: externals/cape commit 2ac24a8ac26dc36a3930fab52863cf66583f5251 Author: Daniel Mendler Commit: Daniel Mendler Simplification --- cape.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cape.el b/cape.el index 85631942bb..995af85a28 100644 --- a/cape.el +++ b/cape.el @@ -577,7 +577,7 @@ If INTERACTIVE is nil the function acts like a Capf." :company-deprecated (funcall extra-fun :company-deprecated) :company-kind (funcall extra-fun :company-kind) :annotation-function (funcall extra-fun :annotation-function) - :exit-function (lambda (x s) (funcall (funcall extra-fun :exit-function) x s))) + :exit-function (funcall extra-fun :exit-function)) (defun cape--company-call (&rest app) "Apply APP and handle future return values."
[elpa] externals/cape updated (0a490abfbf -> 2ac24a8ac2)
elpasync pushed a change to branch externals/cape. from 0a490abfbf Combine predicates for super-capf test/try-completion (#40) new 9bdaebb9e6 Minor cleanup new 2ac24a8ac2 Simplification Summary of changes: cape.el | 16 1 file changed, 8 insertions(+), 8 deletions(-)
[elpa] externals/cape 9bdaebb9e6 1/2: Minor cleanup
branch: externals/cape commit 9bdaebb9e66ab2ce6af8de1e091fd30d510f1998 Author: Daniel Mendler Commit: Daniel Mendler Minor cleanup --- cape.el | 14 +++--- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/cape.el b/cape.el index 29e65f1775..85631942bb 100644 --- a/cape.el +++ b/cape.el @@ -561,13 +561,13 @@ If INTERACTIVE is nil the function acts like a Capf." (_ (completion--some (pcase-lambda (`(,table . ,plist)) - (let* ((pr (plist-get plist :predicate)) -(pred (if pr - (if pred (lambda (x) ; satisfy both - (and (funcall pred x) (funcall pr x))) -pr) -pred))) - (complete-with-action action table str pred))) + (complete-with-action + action table str + (if-let (pr (plist-get plist :predicate)) + (if pred + (lambda (x) (and (funcall pred x) (funcall pr x))) + pr) + pred))) tables :exclusive 'no :company-prefix-length prefix-len
[elpa] externals/javaimp ecf0782761: * javaimp-parse.el (javaimp-parse--decl-prefix): Allow symbols
branch: externals/javaimp commit ecf07827618b630997bae0d85fa91ce875babbe6 Author: Filipp Gunbin Commit: Filipp Gunbin * javaimp-parse.el (javaimp-parse--decl-prefix): Allow symbols --- javaimp-parse.el | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/javaimp-parse.el b/javaimp-parse.el index b06890a7ca..8948e93294 100644 --- a/javaimp-parse.el +++ b/javaimp-parse.el @@ -301,8 +301,9 @@ point is also at that position) or nil." '(?@ ?\( ;annotation type / args ?<;generic type ?\[)) ;array - ;; keyword / identifier first char - (= (syntax-class (syntax-after pos)) 2))) ;word + ;; keyword / identifier first char: word or + ;; symbol + (memql (syntax-class (syntax-after pos)) '(2 3 (goto-char (setq res pos res))
[elpa] main dd6976f761: * elpa-packages (detached): New package (renaming of `dtache`)
branch: main commit dd6976f7619756f7d22e4a1e62633d2d4800ed2c Author: Stefan Monnier Commit: Stefan Monnier * elpa-packages (detached): New package (renaming of `dtache`) --- elpa-packages | 7 +++ 1 file changed, 7 insertions(+) diff --git a/elpa-packages b/elpa-packages index ac322f4cc4..93a85154e5 100644 --- a/elpa-packages +++ b/elpa-packages @@ -173,6 +173,10 @@ ("debbugs":url nil :doc ("debbugs.texi" "debbugs-ug.texi")) ("delight":url "https://git.savannah.gnu.org/r/delight.git"; :auto-sync t) + ("detached" :url "https://git.sr.ht/~niklaseklund/detached.el"; + :news "CHANGELOG.org" + :readme "README.md" + :auto-sync t) ("devdocs":url "https://github.com/astoff/devdocs.el"; :auto-sync t) ("dict-tree" :url "http://www.dr-qubit.org/git/predictive.git";) @@ -311,6 +315,9 @@ ("gnugo" :url nil) ("gnus-mock" :url nil) ("gpastel":url "https://gitlab.petton.fr/DamienCassou/gpastel";) + ;; FIXME: Waiting for copyright assignment. + ;;("graphql" :url "https://github.com/vermiculus/graphql.el"; + ;; :auto-sync t) ("greader":url "https://gitlab.com/michelangelo-rodriguez/greader"; :auto-sync t) ("greenbar" :url nil)
[elpa] branch externals/detached created (now 94fb854572)
elpasync pushed a change to branch externals/detached. at 94fb854572 Update URL for badges This branch includes the following new commits: new 94fb854572 Update URL for badges
[elpa] externals/detached 94fb854572: Update URL for badges
branch: externals/detached commit 94fb8545729eb6dd647ef5175b02fd12bcc8a6e9 Author: Niklas Eklund Commit: Niklas Eklund Update URL for badges --- README.md | 10 +- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 4ad8caa8d8..324b2907ed 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ # detached.el -http://elpa.gnu.org/packages/dtache.html";>https://elpa.gnu.org/packages/dtache.svg"/> -http://elpa.gnu.org/devel/dtache.html";>https://elpa.gnu.org/devel/dtache.svg"/> -https://melpa.org/#/dtache";>https://melpa.org/packages/dtache-badge.svg"/> -https://stable.melpa.org/#/dtache";>https://stable.melpa.org/packages/dtache-badge.svg"/> -https://builds.sr.ht/~niklaseklund/detached.el/commits/main/.build.yml";>https://builds.sr.ht/~niklaseklund/detached.el/commits/main/.build.yml.svg"/> +[](http://elpa.gnu.org/detached.html) +[](http://elpa.gnu.org/devel/detached.html) +[](https://melpa.org/#/detached) +[](https://stable.melpa.org/#/detached) +[](https://builds.sr.ht/~niklaseklund/detached.el/commits/main/.build.yml?) # Introduction
[elpa] externals/detached 8402e7ef45: Update detached to version 0.7
branch: externals/detached commit 8402e7ef4574c719f114b15f89b4aecdddea1e1e Author: Niklas Eklund Commit: Niklas Eklund Update detached to version 0.7 --- CHANGELOG.org | 4 ++-- detached.el | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.org b/CHANGELOG.org index 070966c66c..3c810043cc 100644 --- a/CHANGELOG.org +++ b/CHANGELOG.org @@ -2,8 +2,8 @@ #+author: Niklas Eklund #+language: en -* Development -- Rename =dtache= to =detached.el= +* Version 0.7 (2022-05-21) +- Rename =dtache= to =detached.el=, source code has been moved to https://git.sr.ht/~niklaseklund/detached.el - Introduce =dtache-init.el= and move integration of other packages there. The integration now becomes even simpler for users of =dtache=. - Rewrite =dtache= to enable the package to lazy load and not force users to load it when starting Emacs. - Make completion of sessions adapt to the current dtache sessions. All of the sessions will be used to determine an an appropriate width for the command width as well as each individual annotation. Format has updated in =dtache-annotation-format= and a =dtache-command-format= has been added, this supersedes the =dtache-max-command-lenght=. diff --git a/detached.el b/detached.el index f5a0ac97a0..df97b0e632 100644 --- a/detached.el +++ b/detached.el @@ -5,7 +5,7 @@ ;; Author: Niklas Eklund ;; Maintainer: Niklas Eklund ;; URL: https://sr.ht/~niklaseklund/detached.el/ -;; Version: 0.6 +;; Version: 0.7 ;; Package-Requires: ((emacs "27.1")) ;; Keywords: convenience processes @@ -194,7 +194,7 @@ Valid values are: create, new and attach") (defvar detached-metadata-annotators-alist nil "An alist of annotators for metadata.") -(defconst detached-session-version "0.6.1" +(defconst detached-session-version "0.7.0" "The version of `detached-session'. This version is encoded as [package-version].[revision].")
[nongnu] elpa/cider updated (e86f2f74f6 -> 0dcc5b079a)
elpasync pushed a change to branch elpa/cider. from e86f2f74f6 Add changelog new af7d9e1483 Use cider-nrepl 0.28.4 new 0dcc5b079a Fix cider-client.el indentation Summary of changes: CHANGELOG.md | 4 +++ cider-client.el| 6 ++-- cider.el | 2 +- .../ROOT/pages/basics/middleware_setup.adoc| 2 +- test/cider-tests.el| 38 +++--- 5 files changed, 28 insertions(+), 24 deletions(-)
[nongnu] elpa/cider 0dcc5b079a 2/2: Fix cider-client.el indentation
branch: elpa/cider commit 0dcc5b079a79a928b791cc9cd9bbd2e3bef92d0d Author: vemv Commit: Bozhidar Batsov Fix cider-client.el indentation Fixes the build. --- cider-client.el | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cider-client.el b/cider-client.el index 78e8073deb..c49e975810 100644 --- a/cider-client.el +++ b/cider-client.el @@ -597,9 +597,9 @@ Sometimes the classpath contains entries like src/main and we need to resolve those to absolute paths." (when (cider-runtime-clojure-p) (let ((classpath (thread-first "(seq (.split (System/getProperty \"java.class.path\") \":\"))" - (cider-sync-tooling-eval) - (nrepl-dict-get "value") - read)) + (cider-sync-tooling-eval) + (nrepl-dict-get "value") + read)) (project (clojure-project-dir))) (mapcar (lambda (path) (cider--get-abs-path path project)) classpath
[nongnu] elpa/cider af7d9e1483 1/2: Use cider-nrepl 0.28.4
branch: elpa/cider commit af7d9e148343420c165b4a1e37794e46d55d2b1b Author: vemv Commit: Bozhidar Batsov Use cider-nrepl 0.28.4 https://github.com/clojure-emacs/cider-nrepl/blob/v0.28.4/CHANGELOG.md#0284-2022-05-18 --- CHANGELOG.md | 4 +++ cider.el | 2 +- .../ROOT/pages/basics/middleware_setup.adoc| 2 +- test/cider-tests.el| 38 +++--- 4 files changed, 25 insertions(+), 21 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c45d489d15..18ab6b3f86 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ ## master (unreleased) +## Changes + +* Upgrade cider-nrepl to [0.28.4](https://github.com/clojure-emacs/cider-nrepl/blob/v0.28.4/CHANGELOG.md#0284-2022-05-18). + ### Bugs fixed * [#3195](https://github.com/clojure-emacs/cider/issues/3195): Revert the change that resulted in `(error "Cyclic keymap inheritance")` on `cider-test-run-test`. diff --git a/cider.el b/cider.el index 63b875dba6..95a449e804 100644 --- a/cider.el +++ b/cider.el @@ -416,7 +416,7 @@ the artifact.") (defconst cider-latest-clojure-version "1.10.1" "Latest supported version of Clojure.") -(defconst cider-required-middleware-version "0.28.3" +(defconst cider-required-middleware-version "0.28.4" "The CIDER nREPL version that's known to work properly with CIDER.") (defcustom cider-injected-middleware-version cider-required-middleware-version diff --git a/doc/modules/ROOT/pages/basics/middleware_setup.adoc b/doc/modules/ROOT/pages/basics/middleware_setup.adoc index eb6abcdaaf..259542f228 100644 --- a/doc/modules/ROOT/pages/basics/middleware_setup.adoc +++ b/doc/modules/ROOT/pages/basics/middleware_setup.adoc @@ -45,7 +45,7 @@ A minimal `profiles.clj` for CIDER would be: [source,clojure] -{:repl {:plugins [[cider/cider-nrepl "0.28.3"] +{:repl {:plugins [[cider/cider-nrepl "0.28.4"] [mx.cider/enrich-classpath "1.9.0"]]}} diff --git a/test/cider-tests.el b/test/cider-tests.el index bcd000e6c0..7abb7b30a1 100644 --- a/test/cider-tests.el +++ b/test/cider-tests.el @@ -112,7 +112,7 @@ (describe "when there is a single dependency" (before-each (setq-local cider-injected-nrepl-version "0.9.0") - (setq-local cider-injected-middleware-version "0.28.3") + (setq-local cider-injected-middleware-version "0.28.4") (setq-local cider-jack-in-nrepl-middlewares '("cider.nrepl/cider-middleware")) (setq-local cider-jack-in-dependencies-exclusions '()) (setq-local cider-enrich-classpath t)) @@ -122,7 +122,7 @@ :to-equal (concat "update-in :dependencies conj " (shell-quote-argument "[nrepl/nrepl \"0.9.0\"]") " -- update-in :plugins conj " -(shell-quote-argument "[cider/cider-nrepl \"0.28.3\"]") +(shell-quote-argument "[cider/cider-nrepl \"0.28.4\"]") " -- update-in :plugins conj " (shell-quote-argument "[mx.cider/enrich-classpath \"1.9.0\"]") " -- update-in :middleware conj cider.enrich-classpath/middleware" @@ -135,7 +135,7 @@ "update-in :dependencies conj " (shell-quote-argument "[nrepl/nrepl \"0.9.0\" :exclusions [org.clojure/clojure]]") " -- update-in :plugins conj " - (shell-quote-argument "[cider/cider-nrepl \"0.28.3\"]") + (shell-quote-argument "[cider/cider-nrepl \"0.28.4\"]") " -- update-in :plugins conj " (shell-quote-argument "[mx.cider/enrich-classpath \"1.9.0\"]") " -- update-in :middleware conj cider.enrich-classpath/middleware" @@ -147,7 +147,7 @@ :to-equal (concat "update-in :dependencies conj " (shell-quote-argument "[nrepl/nrepl \"0.9.0\" :exclusions [org.clojure/clojure foo.bar/baz]]") " -- update-in :plugins conj " -(shell-quote-argument "[cider/cider-nrepl \"0.28.3\"]") +(shell-quote-argument "[cider/cider-nrepl \"0.28.4\"]") " -- update-in :plugins conj " (shell-quote-argument "[mx.cider/enrich-classpath \"1.9.0\"]") " -- update-in :middleware conj cider.enrich-classpath/middleware" @@ -160,7 +160,7 @@ " -d " (shell-quote-argument "nrepl/nrepl:0.9.0") " -d " - (shell-quote-argument "cider/cider-nrepl:0.28.3") + (shell-quote-argument "cider/cider-nrepl: