[nongnu] elpa/cider ada5df5bff: Add CIDER Log Mode

2023-07-05 Thread ELPA Syncer
branch: elpa/cider
commit ada5df5bfff2f43956902e6078688149d702a93d
Author: Roman Scherer 
Commit: Bozhidar Batsov 

Add CIDER Log Mode
---
 .dir-locals.el|4 +-
 CHANGELOG.md  |1 +
 cider-eval.el |1 +
 cider-log.el  | 1403 +
 cider-mode.el |7 +
 cider.el  |2 +-
 doc/modules/ROOT/assets/images/cider-log.png  |  Bin 0 -> 506394 bytes
 doc/modules/ROOT/nav.adoc |1 +
 doc/modules/ROOT/pages/debugging/logging.adoc |  274 +
 test/cider-log-test.el|   52 +
 10 files changed, 1743 insertions(+), 2 deletions(-)

diff --git a/.dir-locals.el b/.dir-locals.el
index 292d4dcf53..14b1c7804c 100644
--- a/.dir-locals.el
+++ b/.dir-locals.el
@@ -28,7 +28,9 @@
   (cl-defun . 2)
   (with-parsed-tramp-file-name . 2)
   (thread-first . 0)
-  (thread-last . 0)
+  (thread-last . 0)
+  (transient-define-prefix . defmacro)
+  (transient-define-suffix . defmacro)
 
 ;; To use the bug-reference stuff, do:
 ;; (add-hook 'text-mode-hook #'bug-reference-mode)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 141ed0545c..f4969d6b5a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,7 @@
 
 ### New features
 
+- [#3352](https://github.com/clojure-emacs/cider/pull/3352) Add CIDER Log 
Mode, a major mode that allows you to capture, debug, inspect and view log 
events emitted by Java logging frameworks.
 - [#3354](https://github.com/clojure-emacs/cider/issues/3354): Add new 
customization variable `cider-reuse-dead-repls` to control how dead REPL 
buffers are reused on new connections.
 
 ### Bugs fixed
diff --git a/cider-eval.el b/cider-eval.el
index eccea291f5..110505bd88 100644
--- a/cider-eval.el
+++ b/cider-eval.el
@@ -320,6 +320,7 @@ If CONNECTION is nil, use `cider-current-repl'."
 "cider.nrepl/wrap-format"
 "cider.nrepl/wrap-info"
 "cider.nrepl/wrap-inspect"
+"cider.nrepl/wrap-log"
 "cider.nrepl/wrap-macroexpand"
 "cider.nrepl/wrap-ns"
 "cider.nrepl/wrap-out"
diff --git a/cider-log.el b/cider-log.el
new file mode 100644
index 00..80635d5034
--- /dev/null
+++ b/cider-log.el
@@ -0,0 +1,1403 @@
+;;; cider-log.el --- Log inspection functionality for Clojure -*- 
lexical-binding: t -*-
+
+;; Copyright © 2023 Bozhidar Batsov and CIDER contributors
+
+;; Author: r0man 
+
+;; This program is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program.  If not, see .
+
+;; This file is not part of GNU Emacs.
+
+;;; Commentary:
+
+;; Log inspection functionality for Clojure.
+
+;;; Code:
+
+(require 'cider-inspector)
+(require 'cider-stacktrace)
+(require 'cl-lib)
+(require 'logview)
+(require 'org)
+(require 'seq)
+(require 'transient)
+
+(defcustom cider-log-framework-name nil
+  "The name of the current log framework."
+  :group 'cider
+  :package-version '(cider . "1.8.0")
+  :safe #'stringp
+  :type 'string)
+
+(defcustom cider-log-appender-id "cider-log"
+  "The name of the default log appender."
+  :group 'cider
+  :package-version '(cider . "1.8.0")
+  :safe #'stringp
+  :type 'string)
+
+(defcustom cider-log-buffer "*cider-log*"
+  "The name of the log buffer."
+  :group 'cider
+  :package-version '(cider . "1.8.0")
+  :safe #'stringp
+  :type 'string)
+
+(defcustom cider-log-event-buffer "*cider-log-event*"
+  "The name of the log event buffer."
+  :group 'cider
+  :package-version '(cider . "1.8.0")
+  :safe #'stringp
+  :type 'string)
+
+(defcustom cider-log-max-message-length 500
+  "The maximum length of the log message to display."
+  :group 'cider
+  :package-version '(cider . "1.8.0")
+  :safe #'integerp
+  :type 'integer)
+
+(defcustom cider-log-pagination-limit 250
+  "The maximum number of log events to return when searching events."
+  :group 'cider
+  :package-version '(cider . "1.8.0")
+  :safe #'integerp
+  :type 'integer)
+
+(defcustom cider-log-pagination-offset 0
+  "The offset from which to return results when searching events."
+  :group 'cider
+  :package-version '(cider . "1.8.0")
+  :safe #'integerp
+  :type 'integer)
+
+(defvar cider

[nongnu] elpa/evil updated (2a0f8d8a83 -> be4815e7e7)

2023-07-05 Thread ELPA Syncer
elpasync pushed a change to branch elpa/evil.

  from  2a0f8d8a83 Remove evil-repeat-start-hook
   new  953cf213dc Generate docstringdb.json at build time
   new  be4815e7e7 Substitute key bindings correctly in manual


Summary of changes:
 .gitignore  | 1 +
 .readthedocs.yaml   | 9 +
 doc/docstringdb.json| 17916 --
 doc/source/_ext/elisp.py|26 +-
 doc/source/conf.py  | 5 -
 evil-commands.el| 5 +-
 scripts/evil-extract-docstrings |83 +-
 7 files changed, 50 insertions(+), 17995 deletions(-)
 create mode 100644 .readthedocs.yaml
 delete mode 100644 doc/docstringdb.json



[nongnu] elpa/evil be4815e7e7 2/2: Substitute key bindings correctly in manual

2023-07-05 Thread ELPA Syncer
branch: elpa/evil
commit be4815e7e779c2cc8898d3ebd17a950d22d04723
Author: Axel Forsman 
Commit: Axel Forsman 

Substitute key bindings correctly in manual

The Sphinx Emacs Lisp extension assumed all \[command] key sequence
substitutions in documentation strings are preceded by a \
sequence specifying the keymap, unlike substitute-command-keys which is
used when accessing docstrings within Emacs.

With this commit the actual substitute-command-keys function is used
when building docstringdb.json, instead of the Python reimplementation.
The drawback is that docstringdb.json now contains partial Sphinx
markup.
---
 doc/source/_ext/elisp.py| 26 +++---
 doc/source/conf.py  |  5 ---
 scripts/evil-extract-docstrings | 79 -
 3 files changed, 35 insertions(+), 75 deletions(-)

diff --git a/doc/source/_ext/elisp.py b/doc/source/_ext/elisp.py
index 924d026b74..a4da67ef98 100644
--- a/doc/source/_ext/elisp.py
+++ b/doc/source/_ext/elisp.py
@@ -18,15 +18,14 @@ with open(path.join(path.dirname(__file__), '..', '..', 
'docstringdb.json')) as
 DATA = json.load(f)
 
 
-re_evilcode = re.compile(r"`(evil-[^']*)'")
-re_code = re.compile(r"`([^:][^ ']*)'")
-re_kwd = re.compile(r"`(:[^']*)'")
+re_evilcode = re.compile(r"‘(evil-[^’]*)’")
+re_code = re.compile(r"‘([^:][^ ’]*)’")
+re_kwd = re.compile(r"‘(:[^’]*)’")
 re_item = re.compile(r"([^\n])\n- ")
-re_sexp = re.compile(r"\([A-Z \-\.'`\[\]]+\)|[A-Z\-]+")
+re_sexp = re.compile(r"\([A-Z \-\.‘’\[\]]+\)|[A-Z\-]+")
 re_capitals = re.compile(r"[A-Z\-]+")
 re_nonspace = re.compile(r"[^ ]")
 re_signature = re.compile(r'\(fn (.*)\)')
-re_keymap_or_kbd = re.compile(r"\\[\[<]([^\]>]*)[\]>]")
 
 emphasis = [
 'thing-at-point',
@@ -52,7 +51,7 @@ def process_docstring(docstring, capitals=None):
 in_block = False
 for line in lines:
 try:
-indented = next(re_nonspace.finditer(line)).start(0) > 3
+indented = next(re_nonspace.finditer(line)).start(0) >= 4
 except StopIteration:
 indented = None
 if indented is True and not in_block:
@@ -73,21 +72,6 @@ def process_docstring(docstring, capitals=None):
 # Substitute `:alpha' with ``alpha``
 docstring = re_kwd.sub(r'``\1``', docstring)
 
-# Translate key bindings
-keymap = None
-def substitute_binding(match):
-nonlocal keymap
-if match.group(0)[1] == '<':
-keymap = match.group(1)
-return ''
-if keymap is None:
-print(docstring)
-assert False
-return '???'
-key = DATA[keymap]['keymap-inv'][match.group(1)]
-return f':kbd:`{key}`'
-docstring = re_keymap_or_kbd.sub(substitute_binding, docstring)
-
 # Add empty line between list items
 docstring = re_item.sub(r'\1\n\n- ', docstring)
 
diff --git a/doc/source/conf.py b/doc/source/conf.py
index 8e5f4aeee5..5b1b6f5e88 100644
--- a/doc/source/conf.py
+++ b/doc/source/conf.py
@@ -83,8 +83,3 @@ exclude_patterns = []
 # a list of builtin themes.
 #
 html_theme = 'sphinx_rtd_theme'
-
-# Add any paths that contain custom static files (such as style sheets) here,
-# relative to this directory. They are copied after the builtin static files,
-# so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['_static']
diff --git a/scripts/evil-extract-docstrings b/scripts/evil-extract-docstrings
index ed72109ce1..06afa43e69 100755
--- a/scripts/evil-extract-docstrings
+++ b/scripts/evil-extract-docstrings
@@ -7,53 +7,34 @@
 (require 'json)
 (require 'help)
 
-(defun keymap-funcs (map)
-  (let (funcs)
-(dolist (elt (cdr map))
-  (when (consp elt)
-(cond
- ((and (cdr elt) (symbolp (cdr elt)))
-  (push (cdr elt) funcs))
- ((keymapp (cdr elt))
-  (setq funcs (append (keymap-funcs (cdr elt)) funcs))
-funcs))
+(defun mark-command-keys (string)
+  "Mark key bindings in STRING with the \":kbd:\" Sphinx role."
+  (when string
+(cl-loop
+ for prev = 0 then pos until (>= prev (length string))
+ for pos = (next-single-property-change prev 'face string (length string))
+ concat
+ (let ((s (substring string prev pos)))
+   (if (eq (get-text-property prev 'face string) 'help-key-binding)
+   (format ":kbd:`%s`" s)
+ s)
 
-(defun keymap-bindings (map)
-  (let ((funcs (keymap-funcs map))
-bindings)
-(dolist (func funcs)
-  (unless (memq func '(undefined))
-;; (push (cons func (key-description (where-is-internal func map t))) 
bindings)
-;; (message (format "%s %s" func (key-description (where-is-internal 
func map t
-(push (cons func (key-description (where-is-internal func map t))) 
bindings)))
-bindings))
-
-(with-temp-file (expand-file-name "../doc/docstringdb.json" cur-path)
-  (let (vars)
-(mapatoms
-

[elpa] externals/cape 7056296268: cape-dict: Always use grep

2023-07-05 Thread ELPA Syncer
branch: externals/cape
commit 7056296268cbd1faaef631cc4f8e1f0a34d03094
Author: Daniel Mendler 
Commit: Daniel Mendler 

cape-dict: Always use grep
---
 CHANGELOG.org |  4 
 cape.el   | 43 ++-
 2 files changed, 14 insertions(+), 33 deletions(-)

diff --git a/CHANGELOG.org b/CHANGELOG.org
index c09b2f056e..d1fd28f518 100644
--- a/CHANGELOG.org
+++ b/CHANGELOG.org
@@ -2,6 +2,10 @@
 #+author: Daniel Mendler
 #+language: en
 
+* Changelog
+
+- =cape-dict=: Always use grep, remove =cape-dict-use-grep=.
+
 * Version 0.16 (2023-07-02)
 
 - =cape-dabbrev=: Respect =dabbrev-abbrev-char-regexp= and
diff --git a/cape.el b/cape.el
index a2002b7cdb..149d75f885 100644
--- a/cape.el
+++ b/cape.el
@@ -68,14 +68,6 @@ This variable can also be a list of paths or
 a function returning a single or more paths."
   :type '(choice string (repeat string) function))
 
-(defcustom cape-dict-grep t
-  "Use grep to search through the dictionary specified by `cape-dict-file'.
-If this variable is non-nil, the dictionary will be searched with
-grep in a separate process.  Otherwise the whole dictionary will
-be loaded into Emacs.  Depending on the size of your dictionary
-one or the other approach is preferable."
-  :type 'boolean)
-
 (defcustom cape-dict-case-replace 'case-replace
   "Preserve case of input.
 See `dabbrev-case-replace' for details."
@@ -505,36 +497,21 @@ See the user options `cape-dabbrev-min-length' and
 :exclusive 'no)
   "Completion extra properties for `cape-dict'.")
 
-(defun cape--dict-file ()
-  "Return list of dictionary files."
-  (ensure-list
-   (if (functionp cape-dict-file)
-   (funcall cape-dict-file)
- cape-dict-file)))
-
-(defvar cape--dict-all-words nil)
 (defun cape--dict-list (input)
   "Return all words from `cape-dict-file' matching INPUT."
   (unless (equal input "")
 (cape--case-replace-list
  cape-dict-case-replace input
- (if cape-dict-grep
- (let ((inhibit-message t)
-   (message-log-max nil))
-   (apply #'process-lines-ignore-status
-  "grep"
-  (concat "-Fh" (and (cape--case-fold-p cape-dict-case-fold) 
"i"))
-  input (cape--dict-file)))
-   (unless cape--dict-all-words
- (setq cape--dict-all-words
-   (split-string (with-temp-buffer
-   (mapc #'insert-file-contents
- (cape--dict-file))
-   (buffer-string))
- "\n" 'omit-nulls)))
-   (let ((completion-ignore-case t)
- (completion-regexp-list (list (regexp-quote input
- (all-completions "" cape--dict-all-words))
+ (let ((inhibit-message t)
+   (message-log-max nil))
+   (apply #'process-lines-ignore-status
+  "grep"
+  (concat "-Fh" (and (cape--case-fold-p cape-dict-case-fold) "i"))
+  input
+  (ensure-list
+   (if (functionp cape-dict-file)
+   (funcall cape-dict-file)
+ cape-dict-file)))
 
 ;;;###autoload
 (defun cape-dict (&optional interactive)



[elpa] externals/ement bbf052ab43 1/2: Fix: (ement-room-edit-message) Already edited events

2023-07-05 Thread ELPA Syncer
branch: externals/ement
commit bbf052ab43bce2bf1d6c8a5d068402fd1c67ef63
Author: Adam Porter 
Commit: Adam Porter 

Fix: (ement-room-edit-message) Already edited events

Fixes #126.
---
 README.org| 1 +
 ement-room.el | 9 -
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/README.org b/README.org
index 08ef48d3f0..270beae13b 100644
--- a/README.org
+++ b/README.org
@@ -307,6 +307,7 @@ Note that, while ~matrix-client~ remains usable, and 
probably will for some time
 + Command ~ement-room-image-show~ is not used for mouse events.
 
 *Fixes*
++ Allow editing of already-edited events.
 + Don't stop syncing if an error is signaled while sending a notification.
 
 ** 0.10
diff --git a/ement-room.el b/ement-room.el
index 776e50e413..f8a0647a1d 100644
--- a/ement-room.el
+++ b/ement-room.el
@@ -1646,16 +1646,15 @@ The message must be one sent by the local user."
   (interactive (ement-room-with-highlighted-event-at (point)
  (cl-assert ement-session) (cl-assert ement-room)
  (pcase-let* ((event (ewoc-data (ewoc-locate ement-ewoc)))
-  ((cl-struct ement-session user) ement-session)
-  ((cl-struct ement-event sender
+  ((cl-struct ement-session user events) 
ement-session)
+  ((cl-struct ement-event sender id
   (content (map body ('m.relates_to 
relates-to
event))
(unless (equal (ement-user-id sender) (ement-user-id user))
  (user-error "You may only edit your own messages"))
(when relates-to
- ;; FIXME: This isn't quite right.  When we show edits by 
replacing
- ;; the original event, this will need to be changed.
- (user-error "Only original messages may be edited, not 
the edit events themselves"))
+ ;; Editing an already-edited event: get the original 
event.
+ (setf event (gethash id events)))
;; Remove any leading asterisk from the plain-text body.
(setf body (replace-regexp-in-string (rx bos "*" (1+ 
space)) "" body t t))
(ement-room-with-typing



[elpa] externals/ement updated (909abd4442 -> 3c50f774af)

2023-07-05 Thread ELPA Syncer
elpasync pushed a change to branch externals/ement.

  from  909abd4442 Fix: (ement-notify) Demote errors
   new  bbf052ab43 Fix: (ement-room-edit-message) Already edited events
   new  3c50f774af Tidy: (ement--sync) Message


Summary of changes:
 README.org| 1 +
 ement-room.el | 9 -
 ement.el  | 2 +-
 3 files changed, 6 insertions(+), 6 deletions(-)



[elpa] externals/ement 3c50f774af 2/2: Tidy: (ement--sync) Message

2023-07-05 Thread ELPA Syncer
branch: externals/ement
commit 3c50f774afabbe3eae976ef0fa2b283f65fffb00
Author: Adam Porter 
Commit: Adam Porter 

Tidy: (ement--sync) Message
---
 ement.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ement.el b/ement.el
index 916bf132bc..8f0b0f5832 100644
--- a/ement.el
+++ b/ement.el
@@ -542,7 +542,7 @@ a filter ID).  When unspecified, the value of
 (when process
   (setf (map-elt ement-syncs session) process)
   (when (and (not quiet) (ement--sync-messages-p session))
-(message "Ement: Sync request sent, waiting for response...")
+(ement-message "Sync request sent.  Waiting for response...")
 
 (defun ement--sync-callback (session data)
   "Process sync DATA for SESSION.



[elpa] externals/org 402f72ad4f 2/2: lisp/org.el: Add final hooks to S-/M-/S-M-cursor commands

2023-07-05 Thread ELPA Syncer
branch: externals/org
commit 402f72ad4f4e52681f2045817227f8870f842e2e
Author: Evgenii Klimov 
Commit: Ihor Radchenko 

lisp/org.el: Add final hooks to S-/M-/S-M-cursor commands

* lisp/org.el (org-metaleft-final-hook, org-metaright-final-hook,
org-metaup-final-hook, org-metadown-final-hook): Define final hooks
for S-cursor commands.
(org-metaleft, org-metaright, org-metaup, org-metadown): Add final
hooks to M-commands and document them in the docstring.

* lisp/org.el (org-shiftup, org-shiftdown, org-shiftright,
org-shiftleft): Document hooks for S-cursor commands in the docstring.

* lisp/org.el (org-shiftmetaleft-final-hook,
org-shiftmetaright-final-hook, org-shiftmetaup-final-hook,
org-shiftmetadown-final-hook): Define final hooks for the S-M-cursor
commands.
(org-shiftmetaleft, org-shiftmetaright, org-shiftmetaup,
org-shiftmetadown): Add final hooks to the S-M-cursor commands and
document hooks in the docstring.

* etc/ORG-NEWS (New final hooks for Modifier-Cursor keys): Document
new hooks.

TINYCHANGE
---
 etc/ORG-NEWS |  17 +++
 lisp/org.el  | 155 +--
 2 files changed, 156 insertions(+), 16 deletions(-)

diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS
index d04e92275a..973a97a2fa 100644
--- a/etc/ORG-NEWS
+++ b/etc/ORG-NEWS
@@ -437,6 +437,23 @@ Currently implemented options are:
   iCalendar programs support this usage.
 
 ** New features
+*** New final hooks for Modifier-Cursor keys
+
+Final hooks are added to the following commands:
+- ~org-metaleft-final-hook~ to ~org-metaleft~ (bound to =M-=).
+- ~org-metaright-final-hook~ to ~org-metaright~ (bound to
+  =M-=).
+- ~org-metaup-final-hook~ to ~org-metaup~ (bound to =M-=).
+- ~org-metadown-final-hook~ to ~org-metadown~ (bound to =M-=).
+- ~org-shiftmetaleft-final-hook~ to ~org-shiftmetaleft~ (bound to
+  =M-S-=).
+- ~org-shiftmetaright-final-hook~ to ~org-shiftmetaright~ (bound to
+  =M-S-=).
+- ~org-shiftmetaup-final-hook~ to ~org-shiftmetaup~ (bound to
+  =M-S-=).
+- ~org-shiftmetadown-final-hook~ to ~org-shiftmetadown~ (bound to
+  =M-S-=).
+
 *** ~org-insert-todo-heading-respect-content~ now accepts prefix arguments
 
 The prefix arguments are passed to ~org-insert-todo-heading~.
diff --git a/lisp/org.el b/lisp/org.el
index 36235322d2..57d8082e5e 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -16658,27 +16658,63 @@ before indentation and \t insertion takes place.")
 (defvar org-metaleft-hook nil
   "Hook for functions attaching themselves to `M-left'.
 See `org-ctrl-c-ctrl-c-hook' for more information.")
+(defvar org-metaleft-final-hook nil
+  "Hook for functions attaching themselves to `M-left'.
+This one runs after all options have been excluded.
+See `org-ctrl-c-ctrl-c-hook' for more information.")
 (defvar org-metaright-hook nil
   "Hook for functions attaching themselves to `M-right'.
 See `org-ctrl-c-ctrl-c-hook' for more information.")
+(defvar org-metaright-final-hook nil
+  "Hook for functions attaching themselves to `M-right'.
+This one runs after all options have been excluded.
+See `org-ctrl-c-ctrl-c-hook' for more information.")
 (defvar org-metaup-hook nil
   "Hook for functions attaching themselves to `M-up'.
 See `org-ctrl-c-ctrl-c-hook' for more information.")
+(defvar org-metaup-final-hook nil
+  "Hook for functions attaching themselves to `M-up'.
+This one runs after all other options except
+`org-drag-element-backward' have been excluded.  See
+`org-ctrl-c-ctrl-c-hook' for more information.")
 (defvar org-metadown-hook nil
   "Hook for functions attaching themselves to `M-down'.
 See `org-ctrl-c-ctrl-c-hook' for more information.")
+(defvar org-metadown-final-hook nil
+  "Hook for functions attaching themselves to `M-down'.
+This one runs after all other options except
+`org-drag-element-forward' have been excluded.  See
+`org-ctrl-c-ctrl-c-hook' for more information.")
 (defvar org-shiftmetaleft-hook nil
   "Hook for functions attaching themselves to `M-S-left'.
 See `org-ctrl-c-ctrl-c-hook' for more information.")
+(defvar org-shiftmetaleft-final-hook nil
+  "Hook for functions attaching themselves to `M-S-left'.
+This one runs after all other options have been excluded.  See
+`org-ctrl-c-ctrl-c-hook' for more information.")
 (defvar org-shiftmetaright-hook nil
   "Hook for functions attaching themselves to `M-S-right'.
 See `org-ctrl-c-ctrl-c-hook' for more information.")
+(defvar org-shiftmetaright-final-hook nil
+  "Hook for functions attaching themselves to `M-S-right'.
+This one runs after all other options have been excluded.  See
+`org-ctrl-c-ctrl-c-hook' for more information.")
 (defvar org-shiftmetaup-hook nil
   "Hook for functions attaching themselves to `M-S-up'.
 See `org-ctrl-c-ctrl-c-hook' for more information.")
+(defvar org-shiftmetaup-final-hook nil
+  "Hook for functions attaching themselves to `M-S-up'.
+This one runs after all other options except
+`org-drag-lin

[elpa] externals/org f18fad60b6 1/2: org-id-uuid: Use compat org-time-convert-to-list for emacs <27.1

2023-07-05 Thread ELPA Syncer
branch: externals/org
commit f18fad60b6e09709a253469f8dde77233baceb34
Author: Justin Vallon 
Commit: Ihor Radchenko 

org-id-uuid: Use compat org-time-convert-to-list for emacs <27.1

* lisp/org-macs.el (org-id-uuid): Use `org-time-convert-to-list'
instead of `time-convert', which is not yet available in Emacs 26.
---
 lisp/org-macs.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lisp/org-macs.el b/lisp/org-macs.el
index 2eed0028e5..d6879e8cf8 100644
--- a/lisp/org-macs.el
+++ b/lisp/org-macs.el
@@ -803,7 +803,7 @@ When NEXT is non-nil, check the next line instead."
   "Return string with random (version 4) UUID."
   (let ((rnd (md5 (format "%s%s%s%s%s%s%s"
  (random)
- (time-convert nil 'list)
+ (org-time-convert-to-list nil)
  (user-uid)
  (emacs-pid)
  (user-full-name)



[elpa] externals/org updated (48fffa5dac -> 402f72ad4f)

2023-07-05 Thread ELPA Syncer
elpasync pushed a change to branch externals/org.

  from  48fffa5dac org-insert-link: Keep the link in `org-stored-links' if 
it was not inserted
   new  f18fad60b6 org-id-uuid: Use compat org-time-convert-to-list for 
emacs <27.1
   new  402f72ad4f lisp/org.el: Add final hooks to S-/M-/S-M-cursor commands


Summary of changes:
 etc/ORG-NEWS |  17 ++
 lisp/org-macs.el |   2 +-
 lisp/org.el  | 155 +--
 3 files changed, 157 insertions(+), 17 deletions(-)



[elpa] externals/cape 28a2a16550: cape-dict-limit: New customizable variable

2023-07-05 Thread ELPA Syncer
branch: externals/cape
commit 28a2a1655026ae68ed9180db6527694334c5d1d4
Author: Daniel Mendler 
Commit: Daniel Mendler 

cape-dict-limit: New customizable variable
---
 CHANGELOG.org |  3 +++
 cape.el   | 86 ++-
 2 files changed, 52 insertions(+), 37 deletions(-)

diff --git a/CHANGELOG.org b/CHANGELOG.org
index d1fd28f518..ad51cf12d9 100644
--- a/CHANGELOG.org
+++ b/CHANGELOG.org
@@ -5,6 +5,9 @@
 * Changelog
 
 - =cape-dict=: Always use grep, remove =cape-dict-use-grep=.
+- =cape-dict=: Add =cape-dict-limit=.
+- Generalize =cape--cached-table=. The candidate computation function must 
return
+  a pair of a predicate function and the list of candidates.
 
 * Version 0.16 (2023-07-02)
 
diff --git a/cape.el b/cape.el
index 149d75f885..5ecb3030b8 100644
--- a/cape.el
+++ b/cape.el
@@ -62,6 +62,10 @@
   :group 'matching
   :prefix "cape-")
 
+(defcustom cape-dict-limit 100
+  "Maximal number of completion candidates returned by `cape-dict'."
+  :type '(choice (const nil) natnum))
+
 (defcustom cape-dict-file "/usr/share/dict/words"
   "Path to dictionary word list file.
 This variable can also be a list of paths or
@@ -214,16 +218,16 @@ SORT should be nil to disable sorting."
 metadata
   (complete-with-action action table str pred))
 
-(defun cape--cached-table (beg end fun valid)
+(defun cape--cached-table (beg end fun)
   "Create caching completion table.
 BEG and END are the input bounds.  FUN is the function which
-computes the candidates.  VALID is a function taking the old and
-new input string.  It should return nil if the cached candidates
-became invalid."
-  (let ((input 'init)
-(beg (copy-marker beg))
+computes the candidates.  FUN must return a pair of a predicate
+function function and the list of candidates.  The predicate is
+passed new input and must return non-nil if the candidates are
+still valid."
+  (let ((beg (copy-marker beg))
 (end (copy-marker end t))
-(table nil))
+valid table)
 (lambda (str pred action)
   ;; Bail out early for `metadata' and `boundaries'. This is a pointless
   ;; move because of caching, but we do it anyway in the hope that the
@@ -232,13 +236,13 @@ became invalid."
   ;; `all-completions' must surely be most expensive, so nobody will 
suspect
   ;; a thing.
   (unless (or (eq action 'metadata) (eq (car-safe action) 'boundaries))
-(let ((new-input (buffer-substring-no-properties beg end)))
-  (when (or (eq input 'init)
-(not (or (string-match-p "\\s-" new-input) ;; Support 
Orderless
- (funcall valid input new-input
-(let ((new-table (funcall fun new-input))
-  (throw-on-input nil)) ;; No interrupt during state update
-  (setq table new-table input new-input
+(let ((input (buffer-substring-no-properties beg end)))
+  (when (or (not valid)
+(not (or (string-match-p "\\s-" input) ;; Support Orderless
+ (funcall valid input
+(pcase-let ((`(,new-valid . ,new-table) (funcall fun input))
+(throw-on-input nil)) ;; No interrupt during state 
update
+  (setq table new-table valid new-valid
 (complete-with-action action table str pred)
 
  Capfs
@@ -439,11 +443,13 @@ If INTERACTIVE is nil the function acts like a Capf."
 (let ((dabbrev-check-other-buffers (not (null 
cape-dabbrev-check-other-buffers)))
   (dabbrev-check-all-buffers (eq cape-dabbrev-check-other-buffers t)))
   (dabbrev--reset-global-variables))
-(cl-loop with min-len = (+ cape-dabbrev-min-length (length input))
- with ic = (cape--case-fold-p dabbrev-case-fold-search)
- for w in (dabbrev--find-all-expansions input ic)
- if (>= (length w) min-len) collect
- (cape--case-replace (and ic dabbrev-case-replace) input w
+(cons
+ (apply-partially #'string-prefix-p input)
+ (cl-loop with min-len = (+ cape-dabbrev-min-length (length input))
+  with ic = (cape--case-fold-p dabbrev-case-fold-search)
+  for w in (dabbrev--find-all-expansions input ic)
+  if (>= (length w) min-len) collect
+  (cape--case-replace (and ic dabbrev-case-replace) input w)
 
 (defun cape--dabbrev-bounds ()
   "Return bounds of abbreviation."
@@ -483,8 +489,7 @@ See the user options `cape-dabbrev-min-length' and
   `(,(car bounds) ,(cdr bounds)
 ,(cape--table-with-properties
   (completion-table-case-fold
-   (cape--cached-table (car bounds) (cdr bounds)
-   #'cape--dabbrev-list #'string-prefix-p)
+   (cape--cached-table (car bounds) (cdr bounds) #'cape--dabbrev-list)
(not (cape--case-fold-p dabbrev-case-fold-search)))
   :category 'cape-dabbrev)

[elpa] externals/ement 8b830e046e 1/3: Change: (ement-connect) Add content to SSO browser page

2023-07-05 Thread ELPA Syncer
branch: externals/ement
commit 8b830e046ec38142c92d3ac9b1daaf35dade928f
Author: Adam Porter 
Commit: Adam Porter 

Change: (ement-connect) Add content to SSO browser page

See #24.
---
 ement.el | 7 ++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/ement.el b/ement.el
index 8f0b0f5832..6e9d2ddd48 100644
--- a/ement.el
+++ b/ement.el
@@ -278,7 +278,12 @@ the port, e.g.
"initial_device_display_name" 
initial-device-display-name)))
  (ement-api session "login" :method 'post
:data (json-encode data)
-   :then (apply-partially #'ement--login-callback 
session)))
+   :then (apply-partially #'ement--login-callback 
session))
+ (process-send-string process "HTTP/1.0 202 Accepted
+Content-Type: text/plain; charset=utf-8
+
+Ement: SSO login accepted; session token received.  Connecting to Matrix 
server.  (You may close this page.)")
+ (process-send-eof process))
  (delete-process sso-server-process)
  (delete-process process
 (sso-login ()



[elpa] externals/ement 804dbcd1b0 3/3: Fix: (ement-connect) Cleanup timer

2023-07-05 Thread ELPA Syncer
branch: externals/ement
commit 804dbcd1b02f9c95d4c2d1ea06972d1ed9fdac8a
Author: Adam Porter 
Commit: Adam Porter 

Fix: (ement-connect) Cleanup timer
---
 ement.el | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/ement.el b/ement.el
index d3ae724272..52d3d28b31 100644
--- a/ement.el
+++ b/ement.el
@@ -292,7 +292,9 @@ Ement: SSO login accepted; session token received.  
Connecting to Matrix server.
   :name "ement-sso" :family 'ipv4 :host 'local 
:service ement-sso-server-port
   :filter #'sso-filter :server t :noquery t))
;; Kill server after 2 minutes in case of problems.
-   (run-at-time 120 nil #'delete-process 
sso-server-process)
+   (run-at-time 120 nil (lambda ()
+  (when (process-live-p 
sso-server-process)
+(delete-process 
sso-server-process
(funcall browse-url-secondary-browser-function
 (concat (ement-server-uri-prefix 
(ement-session-server session))
 
"/_matrix/client/r0/login/sso/redirect?redirectUrl=http://localhost:";



[elpa] externals/ement updated (3c50f774af -> 804dbcd1b0)

2023-07-05 Thread ELPA Syncer
elpasync pushed a change to branch externals/ement.

  from  3c50f774af Tidy: (ement--sync) Message
   new  8b830e046e Change: (ement-connect) Add content to SSO browser page
   new  765ec7f6d9 Change/Fix: (ement-connect) Use external browser for SSO
   new  804dbcd1b0 Fix: (ement-connect) Cleanup timer


Summary of changes:
 ement.el | 19 ++-
 1 file changed, 14 insertions(+), 5 deletions(-)



[elpa] externals/ement 765ec7f6d9 2/3: Change/Fix: (ement-connect) Use external browser for SSO

2023-07-05 Thread ELPA Syncer
branch: externals/ement
commit 765ec7f6d9d28acc6579883d5ac12173952dde5e
Author: Adam Porter 
Commit: Adam Porter 

Change/Fix: (ement-connect) Use external browser for SSO

Use the secondary browser to browse the URL, because typically
JavaScript is required, which EWW doesn't support; and if the page is
opened in EWW first, it may break the process, because the server may
not allow that URL to be loaded multiple times.

See #24.
---
 ement.el | 10 ++
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/ement.el b/ement.el
index 6e9d2ddd48..d3ae724272 100644
--- a/ement.el
+++ b/ement.el
@@ -291,10 +291,12 @@ Ement: SSO login accepted; session token received.  
Connecting to Matrix server.
  (make-network-process
   :name "ement-sso" :family 'ipv4 :host 'local 
:service ement-sso-server-port
   :filter #'sso-filter :server t :noquery t))
-   (browse-url
-(concat (ement-server-uri-prefix 
(ement-session-server session))
-
"/_matrix/client/r0/login/sso/redirect?redirectUrl=http://localhost:";
-(number-to-string ement-sso-server-port
+   ;; Kill server after 2 minutes in case of problems.
+   (run-at-time 120 nil #'delete-process 
sso-server-process)
+   (funcall browse-url-secondary-browser-function
+(concat (ement-server-uri-prefix 
(ement-session-server session))
+
"/_matrix/client/r0/login/sso/redirect?redirectUrl=http://localhost:";
+(number-to-string 
ement-sso-server-port
 (flows-callback
  (data) (let ((flows (cl-loop for flow across (map-elt data 
'flows)
   collect (map-elt flow 'type



[elpa] externals/org 7c6302e203: org-agenda-show-new-time: Fix when window is very narrow

2023-07-05 Thread ELPA Syncer
branch: externals/org
commit 7c6302e2034916ed38f1c61dd0806f48e6f8a21c
Author: Ihor Radchenko 
Commit: Ihor Radchenko 

org-agenda-show-new-time: Fix when window is very narrow

* lisp/org-agenda.el (org-agenda-show-new-time): When window is
narrower than timestamp, do not try to display timestamps starting at
negative column.

Reported-by: Nick Römer 
Link: 
https://orgmode.org/list/4196e86e.19136.1891ceef131.webtop@skynet.be
---
 lisp/org-agenda.el | 6 --
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el
index 89c10403bd..11db80bd78 100644
--- a/lisp/org-agenda.el
+++ b/lisp/org-agenda.el
@@ -10100,8 +10100,10 @@ When called programmatically, FORCE-DIRECTION can be 
`set', `up',
  (line-end-position)
  '(display nil))
  (org-move-to-column
-   (- (window-max-chars-per-line)
-  (length stamp))
+   (max
+1 ;; narrow buffer and wide timestamp
+(- (window-max-chars-per-line)
+   (length stamp)))
t)
   (add-text-properties
(1- (point)) (line-end-position)



[nongnu] elpa/cider ca6893d182: Bump the injected version of cider-nrepl

2023-07-05 Thread ELPA Syncer
branch: elpa/cider
commit ca6893d182536b6b2df182956e24f8752580b902
Author: Bozhidar Batsov 
Commit: Bozhidar Batsov 

Bump the injected version of cider-nrepl
---
 cider.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/cider.el b/cider.el
index 476c6cd779..423709b8c6 100644
--- a/cider.el
+++ b/cider.el
@@ -489,7 +489,7 @@ the artifact.")
 (defconst cider-latest-clojure-version "1.10.1"
   "Latest supported version of Clojure.")
 
-(defconst cider-required-middleware-version "0.31.0"
+(defconst cider-required-middleware-version "0.32.0-alpha1"
   "The CIDER nREPL version that's known to work properly with CIDER.")
 
 (defcustom cider-injected-middleware-version cider-required-middleware-version



[elpa] externals/cape 60757869e0: cape-dict: Disable sorting

2023-07-05 Thread ELPA Syncer
branch: externals/cape
commit 60757869e08c2040edc561eaa282d83c1c1b3027
Author: Daniel Mendler 
Commit: Daniel Mendler 

cape-dict: Disable sorting
---
 cape.el | 6 --
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/cape.el b/cape.el
index 5ecb3030b8..1e20b8a641 100644
--- a/cape.el
+++ b/cape.el
@@ -528,8 +528,9 @@ See the user options `cape-dabbrev-min-length' and
 ;;;###autoload
 (defun cape-dict (&optional interactive)
   "Complete word from dictionary at point.
-See the custom option `cape-dict-file'.
-If INTERACTIVE is nil the function acts like a Capf."
+This completion function works best if the dictionary is sorted
+by frequency.  See the custom option `cape-dict-file'.  If
+INTERACTIVE is nil the function acts like a Capf."
   (interactive (list t))
   (if interactive
   (cape-interactive #'cape-dict)
@@ -539,6 +540,7 @@ If INTERACTIVE is nil the function acts like a Capf."
   (completion-table-case-fold
(cape--cached-table beg end #'cape--dict-list)
(not (cape--case-fold-p cape-dict-case-fold)))
+  :sort nil ;; Presorted word list (by frequency)
   :category 'cape-dict)
 ,@cape--dict-properties
 



[nongnu] elpa/helm c46c04cd55: Same icons in bookmarks for dirs as in HFF

2023-07-05 Thread ELPA Syncer
branch: elpa/helm
commit c46c04cd55287e1e9fb790bbcf1240185f07d230
Author: Thierry Volpiatto 
Commit: Thierry Volpiatto 

Same icons in bookmarks for dirs as in HFF
---
 helm-bookmark.el | 9 -
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/helm-bookmark.el b/helm-bookmark.el
index d1471fb5e4..d4831cc07c 100644
--- a/helm-bookmark.el
+++ b/helm-bookmark.el
@@ -32,6 +32,9 @@
 (declare-function all-the-icons-fileicon "ext:all-the-icons.el")
 (declare-function all-the-icons-icon-for-file"ext:all-the-icons.el")
 (declare-function all-the-icons-octicon  "ext:all-the-icons.el")
+(declare-function all-the-icons-match-to-alist "ext:all-the-icons.el")
+
+(defvar all-the-icons-dir-icon-alist)
 
 
 (defgroup helm-bookmark nil
@@ -608,7 +611,11 @@ If `browse-url-browser-function' is set to something else 
than
 i)
   for icon = (when helm-bookmark-use-icon
(cond ((and isfile hff)
-  (all-the-icons-octicon "file-directory"))
+  (helm-aif (all-the-icons-match-to-alist
+ (helm-basename isfile)
+ all-the-icons-dir-icon-alist)
+  (apply (car it) (cdr it))
+(all-the-icons-octicon "file-directory")))
  ((and isfile isinfo) (all-the-icons-octicon 
"info"))
  (isfile (all-the-icons-icon-for-file isfile))
  ((or iswoman isman)



[nongnu] elpa/helm-core updated (3de4f8bbd7 -> c46c04cd55)

2023-07-05 Thread ELPA Syncer
elpasync pushed a change to branch elpa/helm-core.

  from  3de4f8bbd7 Use specialized icons for dirs
  adds  c46c04cd55 Same icons in bookmarks for dirs as in HFF

No new revisions were added by this update.

Summary of changes:
 helm-bookmark.el | 9 -
 1 file changed, 8 insertions(+), 1 deletion(-)