[nongnu] elpa/cider 186b497656: [Fix #3200] Improve browse-ns interface with filters and groupings (#3217)

2022-06-28 Thread ELPA Syncer
branch: elpa/cider
commit 186b4976565a18fcb00e1685a44a87a8559eadcc
Author: Zachary Romero 
Commit: GitHub 

[Fix #3200] Improve browse-ns interface with filters and groupings (#3217)

Major re-work of the browse-ns interface, as well as fixing
misc bug.

- cider-browse-ns--thing-at-point didn't distinguish a ns without '.'
- Added helper nrepl-dict-filter to filter entries in a nrepl-dict
- added grouping feature and corresponding keybindings
- added filtering features and corresponding keybindings
- added new local vars to aid in re-displaying buffer
---
 CHANGELOG.md|   1 +
 cider-browse-ns.el  | 391 +---
 cider-client.el |   9 +
 cider-debug.el  |  21 +-
 doc/modules/ROOT/assets/images/ns_browser.png   | Bin 292793 -> 217749 bytes
 doc/modules/ROOT/pages/usage/misc_features.adoc |  26 ++
 nrepl-dict.el   |  12 +
 test/cider-browse-ns-tests.el   |   7 +-
 8 files changed, 416 insertions(+), 51 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5da369b039..5291ffb405 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,6 +9,7 @@
 ## Changes
 
 * Upgrade injected `cider-nrepl` to 
[0.28.5](https://github.com/clojure-emacs/cider-nrepl/releases/tag/v0.28.5).
+* [#3200](https://github.com/clojure-emacs/cider/issues/3200): Improve 
cider-browse-ns interface to allow selective hiding of var types as well as 
grouping options.  Include private vars in result list.
 
 ## 1.4.1 (2022-05-25)
 
diff --git a/cider-browse-ns.el b/cider-browse-ns.el
index 8c864cc87c..76e5c05600 100644
--- a/cider-browse-ns.el
+++ b/cider-browse-ns.el
@@ -42,12 +42,41 @@
 
 (require 'subr-x)
 (require 'easymenu)
+(require 'button)
+(require 'cl-lib)
 (require 'thingatpt)
 
+
+(defgroup cider-browse-ns nil
+  "Display contents of namespaces for CIDER."
+  :prefix "cider-browse-ns-"
+  :group 'cider)
+
+(defface cider-browse-ns-extra-info-face
+  '((t (:inherit shadow)))
+  "Face for displaying extra info of namespace vars."
+  :package-version '(cider . "1.4.0"))
+
+(defcustom cider-browse-ns-default-filters nil
+  "List of default hide filters to apply to browse-ns buffer.
+
+Available options include `private', `test', `macro', `function', and
+`var'."
+  :type 'list
+  :package-version '(cider . "1.4.0"))
+
 (defconst cider-browse-ns-buffer "*cider-ns-browser*")
 
 (defvar-local cider-browse-ns-current-ns nil)
 
+(defvar-local cider-browse-ns-filters nil)
+(defvar-local cider-browse-ns-show-all nil)
+(defvar-local cider-browse-ns-group-by nil)
+(defvar-local cider-browse-ns-items nil)
+(defvar-local cider-browse-ns-title nil)
+(defvar-local cider-browse-ns-group-by nil)
+
+
 ;; Mode Definition
 
 (defvar cider-browse-ns-mode-map
@@ -59,6 +88,18 @@
 (define-key map "^" #'cider-browse-ns-all)
 (define-key map "n" #'next-line)
 (define-key map "p" #'previous-line)
+
+(define-key map "a" #'cider-browse-ns-toggle-all)
+
+(define-key map (kbd "h p") #'cider-browse-ns-toggle-hide-private)
+(define-key map (kbd "h t") #'cider-browse-ns-toggle-hide-test)
+(define-key map (kbd "h m") #'cider-browse-ns-toggle-hide-macro)
+(define-key map (kbd "h f") #'cider-browse-ns-toggle-hide-function)
+(define-key map (kbd "h v") #'cider-browse-ns-toggle-hide-var)
+
+(define-key map (kbd "g t") #'cider-browse-ns-group-by-type)
+(define-key map (kbd "g v") #'cider-browse-ns-group-by-visibility)
+
 (easy-menu-define cider-browse-ns-mode-menu map
   "Menu for CIDER's namespace browser"
   '("Namespace Browser"
@@ -106,22 +147,256 @@ VAR-META is used to decide a font-lock face."
 'mouse-face 'highlight
 'keymap cider-browse-ns-mouse-map)))
 
-(defun cider-browse-ns--list (buffer title items &optional ns noerase)
-  "Reset contents of BUFFER.
-Display TITLE at the top and ITEMS are indented underneath.
-If NS is non-nil, it is added to each item as the
-`cider-browse-ns-current-ns' text property.  If NOERASE is non-nil, the
-contents of the buffer are not reset before inserting TITLE and ITEMS."
+(defun cider-browse-ns--ns-list (buffer title nss)
+  "List the namespaces NSS in BUFFER.
+
+Buffer is rendered with TITLE at the top and lists ITEMS filtered according
+to user settings."
+  (let ((dict (nrepl-dict)))
+(dolist (ns nss)
+  (nrepl-dict-put dict ns (nrepl-dict "ns" "true")))
+(cider-browse-ns--list buffer title dict nil)))
+
+(defun cider-browse-ns--list (buffer title items ns)
+  "Initialize rendering of browse-ns BUFFER.
+
+Initialize the buffer's TITLE, namespace NS, and the nrepl-dict ITEMS to be
+displayed."
   (with-current-buffer buffer
 (cider-browse-ns-mode)
-(let ((inhibit-read-only t))
-  (unless noerase (erase-buffer))
-  (goto-char (point-max))
-  (insert (cider-propertize title 'ns) "\

[elpa] externals/tmr 1751526fb6 4/4: Make tmr-duration-history public

2022-06-28 Thread ELPA Syncer
branch: externals/tmr
commit 1751526fb6de0ce9c2f053137df4c11d18b564dd
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Make tmr-duration-history public
---
 tmr.el | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/tmr.el b/tmr.el
index 8a93e2c1cc..1fec868e94 100644
--- a/tmr.el
+++ b/tmr.el
@@ -310,19 +310,19 @@ TIMER is unused."
   "Show a `message' informing the user that TIMER is cancelled."
   (message "Cancelled: <<%s>>" (tmr--long-description timer)))
 
-(defvar tmr--duration-hist '()
+(defvar tmr-duration-history '()
   "Minibuffer history of `tmr' durations.")
 
 (defun tmr--read-duration (&optional default)
   "Ask the user to type a duration.
 If DEFAULT is provided, use that as a default."
-  (let ((def (or default (nth 0 tmr--duration-hist
+  (let ((def (or default (nth 0 tmr-duration-history
 (read-string
  (if def
  (format "N minutes for timer (append `h' or `s' for other units) 
[%s]: " def)
"N minutes for timer (append `h' or `s' for other units): ")
  nil
- 'tmr--duration-hist def)))
+ 'tmr-duration-history def)))
 
 (defvar tmr-description-history '()
   "Minibuffer history of `tmr' descriptions.")



[elpa] externals/pyim 48549c5688: Simplify pyim-process-select-handle-char

2022-06-28 Thread ELPA Syncer
branch: externals/pyim
commit 48549c5688f5ae97871631447cc45049c458718f
Author: Feng Shu 
Commit: Feng Shu 

Simplify pyim-process-select-handle-char
---
 pyim-outcome.el |  13 +++--
 pyim-process.el | 157 +---
 pyim-punctuation.el |  43 +++---
 tests/pyim-tests.el |   4 +-
 4 files changed, 120 insertions(+), 97 deletions(-)

diff --git a/pyim-outcome.el b/pyim-outcome.el
index 80395e413a..1df4c6c1af 100644
--- a/pyim-outcome.el
+++ b/pyim-outcome.el
@@ -88,7 +88,7 @@ pyim 使用函数 `pyim-process-select-handle-char' 来处理特殊功能触发
 方案下,这个快捷键设置是否合理有效,如果不是一个合理的设置,则使
 用拼音方案默认的 :prefer-triggers 。
 
-具体请参考 `pyim-outcome-get-trigger' 。"
+具体请参考 `pyim-outcome--get-trigger' 。"
   :type '(choice (const nil) string))
 
 (defcustom pyim-outcome-trigger-function 'pyim-outcome-trigger-function-default
@@ -157,7 +157,11 @@ pyim 使用函数 `pyim-process-select-handle-char' 来处理特殊功能触发
 result))
 str))
 
-(defun pyim-outcome-get-trigger ()
+(defun pyim-outcome-trigger-p (str)
+  "判断 STR 是否是一个 trigger."
+  (equal (pyim-outcome--get-trigger) str))
+
+(defun pyim-outcome--get-trigger ()
   "检查 `pyim-outcome-trigger' 是否为一个合理的 trigger char 。
 
 pyim 的 translate-trigger-char 要占用一个键位,为了防止用户
@@ -173,10 +177,7 @@ pyim 的 translate-trigger-char 要占用一个键位,为了防止用户
  (prefer-triggers (pyim-scheme-prefer-triggers
(pyim-scheme-current
 (if (pyim-string-match-p (regexp-quote user-trigger) first-char)
-(progn
-  ;; (message "注意:pyim-outcome-trigger 设置和当前输入法冲突,使用推荐设置:\"%s\""
-  ;;  prefer-trigger)
-  (car prefer-triggers))
+(car prefer-triggers)
   user-trigger)))
 
 (defun pyim-outcome-trigger-function-default (&optional no-space)
diff --git a/pyim-process.el b/pyim-process.el
index 00eafd834f..2b02d5b1c0 100644
--- a/pyim-process.el
+++ b/pyim-process.el
@@ -864,105 +864,100 @@ BUG:拼音无法有效地处理多音字。"
 (declare-function pyim-delete-word-at-point "pyim")
 
 (defun pyim-process-select-handle-char (char)
-  "Pyim 字符转换函数,主要用于处理标点符号.
-
-pyim 在运行过程中调用这个函数来进行标点符号格式的转换。
-
-常用的标点符号数量不多,所以 pyim 没有使用文件而是使用一个变量
-`pyim-punctuation-dict' 来设置标点符号对应表,这个变量是一个
-alist 列表。"
-  (let* ((str (char-to-string char))
- ;; 注意:`str' 是 *待输入* 的字符对应的字符串。
- (str-before-1 (pyim-char-before-to-string 0))
- (str-before-2 (pyim-char-before-to-string 1))
- (str-before-3 (pyim-char-before-to-string 2))
- ;; 从标点词库中搜索与 `str' 对应的标点列表。
- (punc-list (assoc str pyim-punctuation-dict))
- ;; 从标点词库中搜索与 `str-before-1' 对应的标点列表。
- (punc-list-before-1
-  (cl-some (lambda (x)
- (when (member str-before-1 x) x))
-   pyim-punctuation-dict))
- ;; `str-before-1' 在其对应的标点列表中的位置。
- (punc-posit-before-1
-  (cl-position str-before-1 punc-list-before-1
-   :test #'equal))
- (trigger (pyim-outcome-get-trigger)))
+  "Pyim 字符转换函数,CHAR 代表 *待输入* 的字符。"
+  (let ((str (char-to-string char)))
 (cond
- ;; 空格之前的字符什么也不输入。
- ((< char ? ) "")
-
- ;; 这个部份与标点符号处理无关,主要用来快速删除用户自定义词条。
- ;; 比如:在一个中文字符串后输入 2-v,可以将光标前两个中文字符
- ;; 组成的字符串,从个人词库删除。
- ((and (eq (char-before) ?-)
-   (pyim-string-match-p "[0-9]" str-before-2)
-   (pyim-string-match-p "\\cc" str-before-3)
-   (equal str trigger))
-  (delete-char -2)
-  (pyim-delete-word-at-point
-   (string-to-number str-before-2))
+ ((pyim-process--invalid-char-p char) "")
+
+ ((pyim-process--trigger-delete-word-p char)
+  (let ((str-before-2 (pyim-char-before-to-string 1)))
+(delete-char -2)
+(pyim-delete-word-at-point
+ (string-to-number str-before-2)))
   "")
- ;; 这个部份与标点符号处理无关,主要用来快速保存用户自定义词条。
- ;; 比如:在一个中文字符串后输入 2v,可以将光标前两个中文字符
- ;; 组成的字符串,保存到个人词库。
- ((and (member (char-before) (number-sequence ?2 ?9))
-   (pyim-string-match-p "\\cc" str-before-2)
-   (equal str trigger))
-  (delete-char -1)
-  (pyim-create-word-at-point
-   (string-to-number str-before-1))
+
+ ((pyim-process--trigger-create-word-p char)
+  (let ((str-before-1 (pyim-char-before-to-string 0)))
+(delete-char -1)
+(pyim-create-word-at-point
+ (string-to-number str-before-1)))
   "")
 
- ;; 光标前面的字符为中文字符时,按 v 清洗当前行的内容。
- ((and (not (numberp punc-posit-before-1))
-   (pyim-string-match-p "\\cc" str-before-1)
-   (equal str trigger)
-   (functionp pyim-outcome-trigger-function))
+ ((pyim-process--call-trigger-function-p char)
   (funcall pyim-outcome-trigger-function)
+  (message "PYIM: 运行 `pyim-outcome-trigger-function' 函数。")
   "")
 
- ;; 关闭标点转换功能时,只插入英文标点。
- ((not (pyim-process--punctuation-full-width-p))
-  str)
-
- ;; 当用户使用 org-mode 以及 markdown 等轻量级标记语言撰写文档时,
- ;; 常常需要输入数字列表,比如:
-
- ;; 1. item1
- ;; 2. item2
- ;; 3. item3
-
- ;; 在这种情况下,数

[elpa] externals/tmr updated (a5107c9639 -> 1751526fb6)

2022-06-28 Thread ELPA Syncer
elpasync pushed a change to branch externals/tmr.

  from  a5107c9639 Fix typo in doc string
   new  bf0d6eebfb Make tmr description history public
   new  7fd5f1a325 Update doc string of tmr-description-list
   new  3a7b3833a9 Update manual about tmr-descriptions-list
   new  1751526fb6 Make tmr-duration-history public


Summary of changes:
 README.org | 15 +++
 tmr.el | 19 ---
 2 files changed, 23 insertions(+), 11 deletions(-)



[elpa] externals/tmr 3a7b3833a9 3/4: Update manual about tmr-descriptions-list

2022-06-28 Thread ELPA Syncer
branch: externals/tmr
commit 3a7b3833a9286b4807dbae6d2b9b1295e6045002
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Update manual about tmr-descriptions-list
---
 README.org | 15 +++
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/README.org b/README.org
index d378b98cc3..6f31d7b9c1 100644
--- a/README.org
+++ b/README.org
@@ -88,18 +88,23 @@ The input can be a floating point:
 | 1.5   | 1.5 minutes (90 seconds) |
 | 1.5h  | 1.5 hours (90 minutes)   |
 
-#+vindex: tmr-descriptions-list
 If ~tmr~ is called with an optional prefix argument (=C-u= with default
 key bindings), it asks for a description to be associated with the given
-timer.  Preconfigured candidates, as a list of strings, are specified in
-the user option ~tmr-descriptions-list~, though any arbitrary input is
-acceptable at the minibuffer prompt.
+timer.
 
 #+findex: tmr-with-description
 An alternative to the ~tmr~ command is ~tmr-with-description~.  The
 difference between the two is that the latter always prompts for a
 description.
 
+#+vindex: tmr-descriptions-list
+The user option ~tmr-descriptions-list~ defines the completion
+candidates that are shown at the description prompt.  Its value can be
+either a list of strings or the symbol of a variable that holds a list
+of strings.  The default value of ~tmr-description-history~, is the name
+of a variable that contains input provided by the user at the relevant
+prompt of the ~tmr~ and ~tmr-with-description~ commands.
+
 When the timer is set, a message is sent to the echo area recording the
 current time and the point in the future when the timer elapses.  Echo
 area messages can be reviewed with the ~view-echo-area-messages~ which
@@ -304,6 +309,8 @@ Everything is in place to set up the package.
   "/usr/share/sounds/freedesktop/stereo/alarm-clock-elapsed.oga")
 
 (setq tmr-notification-urgency 'normal)
+
+;; Read the `tmr-descriptions-list' doc string
 (setq tmr-descriptions-list (list "Boil water" "Prepare tea" "Bake bread"))
 
 ;; OPTIONALLY set global key bindings:



[elpa] externals/pyim updated (de55fbdf97 -> 130d7f078b)

2022-06-28 Thread ELPA Syncer
elpasync pushed a change to branch externals/pyim.

  from  de55fbdf97 Simplify pyim-process--auto-select
   new  facb66b266 pyim-process-add-last-created-word -> 
pyim-process--add-last-created-word
   new  130d7f078b Simplify pyim-process-create-word


Summary of changes:
 pyim-process.el | 76 +++--
 1 file changed, 41 insertions(+), 35 deletions(-)



[elpa] externals/pyim facb66b266 1/2: pyim-process-add-last-created-word -> pyim-process--add-last-created-word

2022-06-28 Thread ELPA Syncer
branch: externals/pyim
commit facb66b2664500bc3cb0e7314751093c03c23270
Author: Feng Shu 
Commit: Feng Shu 

pyim-process-add-last-created-word -> pyim-process--add-last-created-word
---
 pyim-process.el | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pyim-process.el b/pyim-process.el
index b2877d9757..4b85869393 100644
--- a/pyim-process.el
+++ b/pyim-process.el
@@ -786,7 +786,7 @@ BUG:拼音无法有效地处理多音字。"
 ;; PYIM 有些功能会用到 text property, 保存词条之前将 text property 去除,防
 ;; 止不必要的数据进入 cache.
 (setq word (substring-no-properties word))
-(pyim-process-add-last-created-word word)
+(pyim-process--add-last-created-word word)
 (let* ((scheme (pyim-scheme-current))
(code-prefix (pyim-scheme-code-prefix scheme))
(codes (pyim-cstring-to-codes
@@ -812,7 +812,7 @@ BUG:拼音无法有效地处理多音字。"
(format "%s -> %s" (concat (or code-prefix "") code) word))
  codes "; "
 
-(defun pyim-process-add-last-created-word (word)
+(defun pyim-process--add-last-created-word (word)
   (setq pyim-process--last-created-words
 (cons word (remove word pyim-process--last-created-words
 



[elpa] externals/tmr 114c4fd306 5/7: Mark obsolete what was changed in e46df43

2022-06-28 Thread ELPA Syncer
branch: externals/tmr
commit 114c4fd3065268fb723cc1b1c143ce1925120e77
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Mark obsolete what was changed in e46df43
---
 tmr.el | 10 ++
 1 file changed, 10 insertions(+)

diff --git a/tmr.el b/tmr.el
index 0458038ab2..d91ca2e90c 100644
--- a/tmr.el
+++ b/tmr.el
@@ -69,6 +69,11 @@ Each function must accept a timer as argument."
 
 (declare-function tmr-notification-notify "ext:tmr-notification.el" (title 
message))
 
+(define-obsolete-variable-alias
+  'tmr-timer-completed-functions
+  'tmr-timer-finished-functions
+  "0.4.0")
+
 (defcustom tmr-timer-finished-functions
   (list #'tmr-print-message-for-finished-timer
 #'tmr-sound-play
@@ -315,6 +320,11 @@ TIMER is unused."
   "Show a `message' informing the user that TIMER has finished."
   (message "%s" (tmr--long-description-for-finished-timer timer)))
 
+(define-obsolete-function-alias
+  'tmr-print-message-for-completed-timer
+  'tmr-print-message-for-finished-timer
+  "0.4.0")
+
 (defun tmr-print-message-for-cancelled-timer (timer)
   "Show a `message' informing the user that TIMER is cancelled."
   (message "Cancelled: <<%s>>" (tmr--long-description timer)))



[elpa] externals/tmr updated (1751526fb6 -> 61144ea82e)

2022-06-28 Thread ELPA Syncer
elpasync pushed a change to branch externals/tmr.

  from  1751526fb6 Make tmr-duration-history public
   new  a9d4ca04a6 Simplify tmr--read-timer
   new  17b084f96a tmr--long-description: Show remaining time
   new  e46df436e2 Rename done and completed to finished for consistency
   new  c511fe5587 Update manual's entry about grid view
   new  114c4fd306 Mark obsolete what was changed in e46df43
   new  6c2af5d8be Update tmr-clone docs to reflect current state
   new  61144ea82e Define obsolete alias for 'tmr-descriptions-list'


Summary of changes:
 README.org  | 28 +
 tmr-notification.el |  2 +-
 tmr.el  | 86 ++---
 3 files changed, 71 insertions(+), 45 deletions(-)



[elpa] externals/tmr e46df436e2 3/7: Rename done and completed to finished for consistency

2022-06-28 Thread ELPA Syncer
branch: externals/tmr
commit e46df436e2ee1779c4afef587d48ec08b6ab6b71
Author: Daniel Mendler 
Commit: Protesilaos Stavrou 

Rename done and completed to finished for consistency
---
 README.org  |  4 ++--
 tmr-notification.el |  2 +-
 tmr.el  | 34 +-
 3 files changed, 20 insertions(+), 20 deletions(-)

diff --git a/README.org b/README.org
index 6f31d7b9c1..bb2b668e13 100644
--- a/README.org
+++ b/README.org
@@ -200,8 +200,8 @@ TMR provides the following hooks:
   the newly created timer's start and end time as well as its optional
   description (if provided).
 
-#+vindex: tmr-timer-completed-functions
-+ ~tmr-timer-completed-functions~ :: This runs when a timer elapses.  By
+#+vindex: tmr-timer-finished-functions
++ ~tmr-timer-finished-functions~ :: This runs when a timer elapses.  By
   default, it will (i) produce a desktop notification which describes
   the timer's start/end time and optional description (if available),
   (ii) play an alarm sound ([[#h:56bbbd6f-5b63-4375-9c86-e1eb231be356][Sound 
and desktop notifications]]), and (iii)
diff --git a/tmr-notification.el b/tmr-notification.el
index 0a0c09391c..3855520060 100644
--- a/tmr-notification.el
+++ b/tmr-notification.el
@@ -59,7 +59,7 @@ such notifications."
 Read: (info \"(elisp) Desktop Notifications\") for details."
   (if (featurep 'dbusbind)
   (let ((title "TMR May Ring (Emacs tmr package)")
-(body (tmr--long-description-for-completed-timer timer)))
+(body (tmr--long-description-for-finished-timer timer)))
 (notifications-notify
  :title title
  :body body
diff --git a/tmr.el b/tmr.el
index 8152d2747e..0458038ab2 100644
--- a/tmr.el
+++ b/tmr.el
@@ -69,14 +69,14 @@ Each function must accept a timer as argument."
 
 (declare-function tmr-notification-notify "ext:tmr-notification.el" (title 
message))
 
-(defcustom tmr-timer-completed-functions
-  (list #'tmr-print-message-for-completed-timer
+(defcustom tmr-timer-finished-functions
+  (list #'tmr-print-message-for-finished-timer
 #'tmr-sound-play
 #'tmr-notification-notify)
-  "Functions to execute when a timer is completed.
+  "Functions to execute when a timer is finished.
 Each function must accept a timer as argument."
   :type 'hook
-  :options (list #'tmr-print-message-for-completed-timer
+  :options (list #'tmr-print-message-for-finished-timer
  #'tmr-sound-play
  #'tmr-notification-notify))
 
@@ -97,7 +97,7 @@ Each function must accept a timer as argument."
nil
:read-only t
:documentation "Number of seconds after `start' indicating when the timer 
finishes.")
-  (donep
+  (finishedp
nil
:read-only nil
:documentation "Non-nil if the timer is finished.")
@@ -133,8 +133,8 @@ Each function must accept a timer as argument."
 (format " [%s]" (propertize description 'face 'bold))
   ""
 
-(defun tmr--long-description-for-completed-timer (timer)
-  "Return a human-readable description of completed TIMER.
+(defun tmr--long-description-for-finished-timer (timer)
+  "Return a human-readable description of finished TIMER.
 This includes the creation and completion dates as well as the
 optional `tmr--timer-description'."
   (let ((start (tmr--format-creation-date timer))
@@ -177,10 +177,10 @@ original input for TIMER's duration."
 
 (defun tmr--format-remaining (timer &optional finished prefix)
   "Format remaining time of TIMER.
-FINISHED is the string used for completed timers.
+FINISHED is the string used for finished timers.
 PREFIX is used as prefix for running timers."
   (setq prefix (or prefix ""))
-  (if (tmr--timer-donep timer)
+  (if (tmr--timer-finishedp timer)
   (or finished "✔")
 (let ((secs (round (- (float-time
(time-add (tmr--timer-creation-date timer)
@@ -261,7 +261,7 @@ cancelling the original one."
 (defun tmr-remove-finished ()
   "Remove all finished timers."
   (interactive)
-  (setq tmr--timers (cl-delete-if #'tmr--timer-donep tmr--timers))
+  (setq tmr--timers (cl-delete-if #'tmr--timer-finishedp tmr--timers))
   (run-hooks 'tmr--update-hook))
 
 (defvar tmr--read-timer-hook nil
@@ -282,7 +282,7 @@ completion candidates."
(run-hook-with-args-until-success 'tmr--read-timer-hook)
(pcase
(if active
-   (cl-remove-if #'tmr--timer-donep tmr--timers)
+   (cl-remove-if #'tmr--timer-finishedp tmr--timers)
  tmr--timers)
  ('nil (user-error "No timers available"))
  (`(,timer) timer)
@@ -311,9 +311,9 @@ TIMER is unused."
   "Show a `message' informing the user that TIMER was created."
   (message "%s" (tmr--long-description timer)))
 
-(defun tmr-print-message-for-completed-timer (timer)
-  "Show a `message' informing the user that TIMER has completed."
-  (message "%s" (tmr--long-description-for-completed-timer timer)))
+(defun tmr-print-message-for-finished-timer (timer)
+  "Show a `m

[elpa] externals/tmr c511fe5587 4/7: Update manual's entry about grid view

2022-06-28 Thread ELPA Syncer
branch: externals/tmr
commit c511fe55876d17e6179b7aaf678e8ebccc00ad91
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Update manual's entry about grid view
---
 README.org | 15 ---
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/README.org b/README.org
index bb2b668e13..b1ee795fb6 100644
--- a/README.org
+++ b/README.org
@@ -150,16 +150,17 @@ Timers can be viewed in a grid with ~tmr-tabulated-view~. 
 The data is
 placed in the =*tmr-tabulated-view*= buffer and looks like this:
 
 #+begin_example
-Start  EndFinished?  Description
-09:22:43   09:32:43   ✔ Prepare tea
-09:17:14   09:37:14  Boil water
-09:07:03   09:57:03  Bake bread
+Start  EndRemaining  Description
+10:11:49   10:11:54   ✔
+10:11:36   10:31:36   19m 35s
+10:11:32   10:26:32   14m 31sYet another test
+10:11:16   10:21:16   9m 14s Testing how it works
 #+end_example
 
 If a timer has elapsed, it has a check mark associated with it,
-otherwise the =Finished?= column is empty.  A =Description= is shown
-only if it is provided while setting the timer, otherwise the field is
-left blank.
+otherwise the =Remaining= column shows the time left.  A =Description=
+is shown only if it is provided while setting the timer, otherwise the
+field is left blank.
 
 The ~tmr-tabulated-view~ command relies on Emacs' ~tabulated-list-mode~.
 From the =*tmr-tabulated-view*= buffer, invoke the command



[elpa] externals/tmr 17b084f96a 2/7: tmr--long-description: Show remaining time

2022-06-28 Thread ELPA Syncer
branch: externals/tmr
commit 17b084f96af726b842a9998f6f2435269c323c63
Author: Daniel Mendler 
Commit: Protesilaos Stavrou 

tmr--long-description: Show remaining time
---
 tmr.el | 23 +++
 1 file changed, 15 insertions(+), 8 deletions(-)

diff --git a/tmr.el b/tmr.el
index f4de620ac3..8152d2747e 100644
--- a/tmr.el
+++ b/tmr.el
@@ -118,15 +118,17 @@ Each function must accept a timer as argument."
   "Return a human-readable description for TIMER."
   (let ((start (tmr--format-creation-date timer))
 (end (tmr--format-end-date timer))
+(remaining (tmr--format-remaining timer "finished" "in "))
 (description (tmr--timer-description timer)))
 ;; We prefix it with TMR just so it is easier to find in
 ;; `view-echo-area-messages'.  The concise wording makes it flexible
 ;; enough to be used when starting a timer but also when cancelling
 ;; one: check `tmr-print-message-for-created-timer' and
 ;; `tmr-print-message-for-cancelled-timer'.
-(format "TMR start at %s; end at %s%s"
+(format "TMR start at %s; end at %s; %s%s"
 (propertize start 'face 'success)
 (propertize end 'face 'error)
+remaining
 (if description
 (format " [%s]" (propertize description 'face 'bold))
   ""
@@ -152,11 +154,13 @@ This is like `tmr--long-description' with the inclusion 
of the
 original input for TIMER's duration."
   (let ((start (tmr--format-creation-date timer))
 (end (tmr--format-end-date timer))
+(remaining (tmr--format-remaining timer "finished" "in "))
 (description (tmr--timer-description timer))
 (input (tmr--timer-input timer)))
-(format "TMR start at %s; end at %s%s (input was '%s')"
+(format "TMR start at %s; end at %s; %s%s (input was '%s')"
 (propertize start 'face 'success)
 (propertize end 'face 'error)
+remaining
 (if description
 (format " [%s]" (propertize description 'face 'bold))
   "")
@@ -171,19 +175,22 @@ original input for TIMER's duration."
   (tmr--format-time (time-add (tmr--timer-creation-date timer)
   (tmr--timer-duration timer
 
-(defun tmr--format-remaining (timer)
-  "Format remaining time of TIMER."
+(defun tmr--format-remaining (timer &optional finished prefix)
+  "Format remaining time of TIMER.
+FINISHED is the string used for completed timers.
+PREFIX is used as prefix for running timers."
+  (setq prefix (or prefix ""))
   (if (tmr--timer-donep timer)
-  "✔"
+  (or finished "✔")
 (let ((secs (round (- (float-time
(time-add (tmr--timer-creation-date timer)
  (tmr--timer-duration timer)))
   (float-time)
   (if (> secs 3600)
-  (format "%sh %sm" (/ secs 3600) (/ (% secs 3600) 60))
+  (format "%s%sh %sm" prefix (/ secs 3600) (/ (% secs 3600) 60))
 (if (> secs 60)
-(format "%sm %ss" (/ secs 60) (% secs 60))
-  (format "%ss" secs))
+(format "%s%sm %ss" prefix (/ secs 60) (% secs 60))
+  (format "%s%ss" prefix secs))
 
 (defun tmr--format-time (time)
   "Return a human-readable string representing TIME."



[elpa] externals/tmr 6c2af5d8be 6/7: Update tmr-clone docs to reflect current state

2022-06-28 Thread ELPA Syncer
branch: externals/tmr
commit 6c2af5d8be1fdf60a95dfa36abfddc5d0dcad15d
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Update tmr-clone docs to reflect current state
---
 README.org | 9 +
 tmr.el | 6 +++---
 2 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/README.org b/README.org
index b1ee795fb6..e01b70c445 100644
--- a/README.org
+++ b/README.org
@@ -123,10 +123,11 @@ that ~tmr~ and ~tmr-with-description~ accept.
 
 #+findex: tmr-clone
 The ~tmr-clone~ command directly copies the duration and optional
-description of a timer into a new one.  With an optional prefix
-argument, this command prompts for a duration and, if the underlying
-timer had a description, for a description as well.  The default values
-of such prompts as those of the original timer.
+description of a timer into a new one.  With an optional prefix argument
+(=C-u= by default), this command prompts for a duration.  If a double
+prefix argument is supplied (=C-u C-u=), the command asks for a duration
+and then a description.  The default values of such prompts as those of
+the original timer.
 
 #+findex: tmr-remove-finished
 The ~tmr-remove-finished~ command deletes all elapsed timers from the
diff --git a/tmr.el b/tmr.el
index d91ca2e90c..d742c6cf89 100644
--- a/tmr.el
+++ b/tmr.el
@@ -426,9 +426,9 @@ user uses a prefix argument (\\[universal-argument])."
 ;;;###autoload
 (defun tmr-clone (timer &optional prompt)
   "Create a new timer by cloning TIMER.
-With optional PROMPT, such as a prefix argument (C-u), ask for
-confirmation about the duration. The description is asked only
-when the prefix argument is given twice (C-u C-u).
+With optional PROMPT, such as a prefix argument, ask for
+confirmation about the duration.  When PROMPT is a double prefix
+argument, ask for a description as well.
 
 Without a PROMPT, clone TIMER outright."
   (interactive



[elpa] externals/tmr 61144ea82e 7/7: Define obsolete alias for 'tmr-descriptions-list'

2022-06-28 Thread ELPA Syncer
branch: externals/tmr
commit 61144ea82e40c16e0730c6b641078b97226aa699
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Define obsolete alias for 'tmr-descriptions-list'
---
 tmr.el | 5 +
 1 file changed, 5 insertions(+)

diff --git a/tmr.el b/tmr.el
index d742c6cf89..051eff9712 100644
--- a/tmr.el
+++ b/tmr.el
@@ -42,6 +42,11 @@
   "TMR May Ring: set timers using a simple notation."
   :group 'data)
 
+(define-obsolete-variable-alias
+  'tmr-descriptions-list
+  'tmr-description-list
+  "0.4.0")
+
 (defcustom tmr-description-list 'tmr-description-history
   "List of timer description presets.
 The value can be either a list of strings or the symbol of a



[nongnu] elpa/helm 480ec04955 2/3: Fix warnings in helm-top-command docstring

2022-06-28 Thread ELPA Syncer
branch: elpa/helm
commit 480ec04955b7062158eedaf68d3b10007d94066a
Author: Thierry Volpiatto 
Commit: Thierry Volpiatto 

Fix warnings in helm-top-command docstring

This is another attempt to fix single quotes warnings in emacs-29,
here it is fixed according to documentation and discussion on
emacs-devel but native compile still emit warnings in some place, so
give up fixing this from now.
---
 helm-sys.el | 18 +-
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/helm-sys.el b/helm-sys.el
index fcd36583e4..39945574f4 100644
--- a/helm-sys.el
+++ b/helm-sys.el
@@ -1,6 +1,6 @@
 ;;; helm-sys.el --- System related functions for helm. -*- lexical-binding: t 
-*-
 
-;; Copyright (C) 2012 ~ 2021 Thierry Volpiatto 
+;; Copyright (C) 2012 ~ 2021 Thierry Volpiatto
 
 ;; 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
@@ -41,20 +41,20 @@
   "Top command used to display output of top.
 A format string where %s will be replaced with `frame-width'.
 
-To use \\='top' command, a version supporting batch mode (-b option)
-is needed. On Mac OSX \\='top' command doesn't support this, so the
+To use 'top' command, a version supporting batch mode (-b option)
+is needed. On Mac OSX 'top' command doesn't support this, so the
 'ps' command is used instead by default.
 
-Normally \\='top' command output have 12 columns, but in some
+Normally 'top' command output have 12 columns, but in some
 versions you may have less than this, so you can either customize
-top to use 12 columns with the interactives \\='f' and \\='W' commands
-of top, or modify `helm-top-sort-columns-alist' to fit with the
-number of columns your \\='top' command is using.
+'top' to use 12 columns with the interactives 'f' and 'W' commands
+of 'top', or modify `helm-top-sort-columns-alist' to fit with the
+number of columns your 'top' command is using.
 
-If you modify \\='ps' command be sure that \\='pid' comes in first and
+If you modify 'ps' command be sure that 'pid' comes in first and
 \"env COLUMNS=%s\" is specified at beginning of command. Ensure
 also that no elements contain spaces (e.g., use start_time and
-not start). Same as for \\='top': you can customize
+not start). Same as for 'top': you can customize
 `helm-top-sort-columns-alist' to make sort commands working
 properly according to your settings."
   :group 'helm-sys



[nongnu] elpa/helm 0f905a6c62 3/3: Revert "Ensure to not collect nil candidates in helm-occur-transformer"

2022-06-28 Thread ELPA Syncer
branch: elpa/helm
commit 0f905a6c626de2fd103dac699afcd252e43b1161
Author: Thierry Volpiatto 
Commit: Thierry Volpiatto 

Revert "Ensure to not collect nil candidates in helm-occur-transformer"

This reverts commit 187e358493a598607d11648d76c92850bc9d69f3.
---
 helm-occur.el | 27 +++
 1 file changed, 11 insertions(+), 16 deletions(-)

diff --git a/helm-occur.el b/helm-occur.el
index 9fccfcdd96..365b3b03fb 100644
--- a/helm-occur.el
+++ b/helm-occur.el
@@ -252,22 +252,17 @@ engine beeing completely different and also much faster."
 (defun helm-occur-transformer (candidates source)
   "Return CANDIDATES prefixed with line number."
   (cl-loop with buf = (helm-get-attr 'buffer-name source)
-   for c in candidates
-   for cand = (when (string-match helm-occur--search-buffer-regexp c)
-(let ((linum (match-string 1 c))
-  (disp  (match-string 2 c)))
-  (when (and disp (not (string= disp "")))
-(cons (concat
-   (propertize " " 'display
-   (concat
-(propertize
- linum 'face 'helm-grep-lineno
- 'help-echo (buffer-file-name
- (get-buffer buf)))
-":"))
-   disp)
-  (string-to-number linum)
-   when cand collect cand))
+   for c in candidates collect
+   (when (string-match helm-occur--search-buffer-regexp c)
+ (let ((linum (match-string 1 c))
+   (disp (match-string 2 c)))
+   (cons (format "%s:%s"
+ (propertize
+  linum 'face 'helm-grep-lineno
+  'help-echo (buffer-file-name
+  (get-buffer buf)))
+ disp)
+ (string-to-number linum))
 
 (defclass helm-moccur-class (helm-source-in-buffer)
   ((buffer-name :initarg :buffer-name



[nongnu] elpa/helm 9caab6c5bb 1/3: Declare helm-get-first-line-documentation

2022-06-28 Thread ELPA Syncer
branch: elpa/helm
commit 9caab6c5bbdd54d0ac0b6c51632e3394b43bf164
Author: Thierry Volpiatto 
Commit: Thierry Volpiatto 

Declare helm-get-first-line-documentation
---
 helm-mode.el | 1 +
 1 file changed, 1 insertion(+)

diff --git a/helm-mode.el b/helm-mode.el
index fbc4c99a8c..8330b228c4 100644
--- a/helm-mode.el
+++ b/helm-mode.el
@@ -38,6 +38,7 @@
 (declare-function helm-lisp-completion-persistent-action "helm-elisp")
 (declare-function helm-lisp-completion-persistent-help "helm-elisp")
 (declare-function help--symbol-class "help-fns.el")
+(declare-function helm-get-first-line-documentation "helm-elisp")
 
 (defgroup helm-mode nil
   "Enable helm completion."



[nongnu] elpa/helm-core updated (a4b6559745 -> 0f905a6c62)

2022-06-28 Thread ELPA Syncer
elpasync pushed a change to branch elpa/helm-core.

  from  a4b6559745 Fix some quotes in docstring
  adds  9caab6c5bb Declare helm-get-first-line-documentation
  adds  480ec04955 Fix warnings in helm-top-command docstring
  adds  0f905a6c62 Revert "Ensure to not collect nil candidates in 
helm-occur-transformer"

No new revisions were added by this update.

Summary of changes:
 helm-mode.el  |  1 +
 helm-occur.el | 27 +++
 helm-sys.el   | 18 +-
 3 files changed, 21 insertions(+), 25 deletions(-)



[elpa] externals/denote f0c43d5c2d 2/2: Update sample front matter of Org

2022-06-28 Thread ELPA Syncer
branch: externals/denote
commit f0c43d5c2d89e5e0e7dc6dee84942098f8eba78b
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Update sample front matter of Org
---
 README.org | 20 +++-
 1 file changed, 15 insertions(+), 5 deletions(-)

diff --git a/README.org b/README.org
index 0151c06c7f..9652d9c8b1 100644
--- a/README.org
+++ b/README.org
@@ -515,15 +515,25 @@ what we have in =denote.el=:
   ":PROPERTIES:
 :ID:  %4$s
 :END:
-#+title:  %s
-#+date:   %s
-#+filetags:   %s
+#+title:  %1$s
+#+date:   %2$s
+#+filetags:   %3$s
 \n"
   "Org front matter value for `format'.
 The order of the arguments is TITLE, DATE, KEYWORDS, ID.  If you
 are an avdanced user who wants to edit this variable to affect
 how front matter is produced, consider using something like %2$s
-to control where Nth argument is placed.")
+to control where Nth argument is placed.
+
+Make sure to
+
+1. Not use empty lines inside the front matter block.
+
+2. Insert at least one empty line after the front matter block
+and do not use any empty line before it.
+
+These help ensure consistency and might prove useful if we need
+to operate on the front matter as a whole.")
 #+end_src
 
 Notice how we can pass a number to the =%s= specifier for the =:ID:=
@@ -534,7 +544,7 @@ The default Org mode front matter is formatted as:
 
 #+begin_src org
 :PROPERTIES:
-:ID: 20220610T202537
+:ID:  20220610T202537
 :END:
 ,#+title:  This is a sample note
 ,#+date:   2022-06-10



[elpa] externals/tmr updated (61144ea82e -> 711616ea75)

2022-06-28 Thread ELPA Syncer
elpasync pushed a change to branch externals/tmr.

  from  61144ea82e Define obsolete alias for 'tmr-descriptions-list'
   new  8594a02b11 Use timer as id in tabulated list
   new  e1a62e3185 Prefer seq
   new  b0fa40439b tabulated view: Restore point at the end of buffer when 
refreshing
   new  711616ea75 Optimize tabulated refreshing


Summary of changes:
 tmr-tabulated.el | 17 +++--
 tmr.el   |  7 ---
 2 files changed, 15 insertions(+), 9 deletions(-)



[elpa] externals/tmr bf0d6eebfb 1/4: Make tmr description history public

2022-06-28 Thread ELPA Syncer
branch: externals/tmr
commit bf0d6eebfbd535bfe58f672e4e6338f8938fbef9
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Make tmr description history public
---
 tmr.el | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/tmr.el b/tmr.el
index cd614edc62..63bf0cdbb4 100644
--- a/tmr.el
+++ b/tmr.el
@@ -42,7 +42,7 @@
   "TMR May Ring: set timers using a simple notation."
   :group 'data)
 
-(defcustom tmr-description-list 'tmr--description-hist
+(defcustom tmr-description-list 'tmr-description-history
   "List of timer description presets.
 The value can either be a variable symbol or a list of strings."
   :type '(choice symbol (repeat string)))
@@ -319,7 +319,7 @@ If DEFAULT is provided, use that as a default."
  nil
  'tmr--duration-hist def)))
 
-(defvar tmr--description-hist '()
+(defvar tmr-description-history '()
   "Minibuffer history of `tmr' descriptions.")
 
 (defun tmr--description-prompt (&optional default)
@@ -339,7 +339,7 @@ If optional DEFAULT is provided use it as a default 
candidate."
(symbol-value tmr-description-list))
  string predicate)))
nil nil nil
-   'tmr--description-hist default))
+   'tmr-description-history default))
 
 (defun tmr--complete (timer)
   "Mark TIMER as completed and execute `tmr-timer-completed-functions'."



[elpa] externals/tmr 7fd5f1a325 2/4: Update doc string of tmr-description-list

2022-06-28 Thread ELPA Syncer
branch: externals/tmr
commit 7fd5f1a325194b8925da46d06208ee2329ccac75
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Update doc string of tmr-description-list
---
 tmr.el | 7 ++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/tmr.el b/tmr.el
index 63bf0cdbb4..8a93e2c1cc 100644
--- a/tmr.el
+++ b/tmr.el
@@ -44,7 +44,12 @@
 
 (defcustom tmr-description-list 'tmr-description-history
   "List of timer description presets.
-The value can either be a variable symbol or a list of strings."
+The value can be either a list of strings or the symbol of a
+variable that holds a list of strings.
+
+The default value of `tmr-description-history', is the name of a
+variable that contains input provided by the user at the relevant
+prompt of the `tmr' and `tmr-with-description' commands."
   :type '(choice symbol (repeat string)))
 
 (defcustom tmr-sound-file



[elpa] externals/denote updated (5ea4a000d6 -> f0c43d5c2d)

2022-06-28 Thread ELPA Syncer
elpasync pushed a change to branch externals/denote.

  from  5ea4a000d6 Update to version 0.1.0 (first stable release)
   new  6fd52c289d Tweak README.org front matter
   new  f0c43d5c2d Update sample front matter of Org


Summary of changes:
 README.org | 62 +-
 1 file changed, 33 insertions(+), 29 deletions(-)



[elpa] externals/denote 6fd52c289d 1/2: Tweak README.org front matter

2022-06-28 Thread ELPA Syncer
branch: externals/denote
commit 6fd52c289d4fd088641a09b018f297194385a0fb
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Tweak README.org front matter
---
 README.org | 42 ++
 1 file changed, 18 insertions(+), 24 deletions(-)

diff --git a/README.org b/README.org
index ffe149df65..0151c06c7f 100644
--- a/README.org
+++ b/README.org
@@ -1,27 +1,21 @@
-#+title: denote: Simple notes with an efficient file-naming scheme
-#+author: Protesilaos Stavrou
-#+email: i...@protesilaos.com
-#+language: en
-#+options: ':t toc:nil author:t email:t num:t
-#+startup: content
-
-#+macro: stable-version 0.1.0
-#+macro: release-date 2022-06-27
-#+macro: development-version 0.2.0-dev
-#+macro: file @@texinfo:@file{@@$1@@texinfo:}@@
-#+macro: space @@texinfo:@: @@
-#+macro: kbd @@texinfo:@kbd{@@$1@@texinfo:}@@
-
-#+export_file_name: denote.texi
-
-#+texinfo_filename: denote.info
-#+texinfo_dir_category: Emacs misc features
-#+texinfo_dir_title: Denote: (denote)
-#+texinfo_dir_desc: Simple notes with an efficient file-naming scheme
-#+texinfo_header: @set MAINTAINERSITE @uref{https://protesilaos.com,maintainer 
webpage}
-#+texinfo_header: @set MAINTAINER Protesilaos Stavrou
-#+texinfo_header: @set MAINTAINEREMAIL @email{i...@protesilaos.com}
-#+texinfo_header: @set MAINTAINERCONTACT 
@uref{mailto:i...@protesilaos.com,contact the maintainer}
+#+title: denote: Simple notes with an efficient file-naming 
scheme
+#+author:Protesilaos Stavrou
+#+email: i...@protesilaos.com
+#+language:  en
+#+options:   ':t toc:nil author:t email:t num:t
+#+startup:   content
+#+macro: stable-version 0.1.0
+#+macro: release-date 2022-06-27
+#+macro: development-version 0.2.0-dev
+#+export_file_name:  denote.texi
+#+texinfo_filename:  denote.info
+#+texinfo_dir_category:  Emacs misc features
+#+texinfo_dir_title: Denote: (denote)
+#+texinfo_dir_desc:  Simple notes with an efficient file-naming scheme
+#+texinfo_header:@set MAINTAINERSITE 
@uref{https://protesilaos.com,maintainer webpage}
+#+texinfo_header:@set MAINTAINER Protesilaos Stavrou
+#+texinfo_header:@set MAINTAINEREMAIL @email{i...@protesilaos.com}
+#+texinfo_header:@set MAINTAINERCONTACT 
@uref{mailto:i...@protesilaos.com,contact the maintainer}
 
 #+texinfo: @insertcopying
 



[elpa] externals/tmr b0fa40439b 3/4: tabulated view: Restore point at the end of buffer when refreshing

2022-06-28 Thread ELPA Syncer
branch: externals/tmr
commit b0fa40439bf0495c73ab88ce072e22321118964a
Author: Daniel Mendler 
Commit: Protesilaos Stavrou 

tabulated view: Restore point at the end of buffer when refreshing
---
 tmr-tabulated.el | 9 ++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/tmr-tabulated.el b/tmr-tabulated.el
index bfa5cb7303..8dad902646 100644
--- a/tmr-tabulated.el
+++ b/tmr-tabulated.el
@@ -86,9 +86,12 @@
 (lambda ()
   (if (buffer-live-p buf)
   (with-current-buffer buf
-(if (get-buffer-window)
-(progn
-  (revert-buffer)
+(if-let (win (get-buffer-window))
+(with-selected-window win
+  (let ((end (eobp)))
+(revert-buffer)
+(when end
+  (goto-char (point-max
   ;; HACK: For some reason the hl-line 
highlighting gets lost here
   (when (and (bound-and-true-p global-hl-line-mode)
  (fboundp 'global-hl-line-highlight))



[elpa] externals/tmr 711616ea75 4/4: Optimize tabulated refreshing

2022-06-28 Thread ELPA Syncer
branch: externals/tmr
commit 711616ea7588cf7b260a49ede9ac081dbca953b6
Author: Daniel Mendler 
Commit: Protesilaos Stavrou 

Optimize tabulated refreshing

This should reduce the memory allocations and hopefully
improve the negative side effects of the refreshing (point movement etc)
---
 tmr-tabulated.el | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/tmr-tabulated.el b/tmr-tabulated.el
index 8dad902646..9566e11675 100644
--- a/tmr-tabulated.el
+++ b/tmr-tabulated.el
@@ -89,7 +89,10 @@
 (if-let (win (get-buffer-window))
 (with-selected-window win
   (let ((end (eobp)))
-(revert-buffer)
+;; Optimized refreshing
+(dolist (entry tabulated-list-entries)
+  (setf (aref (cadr entry) 2) 
(tmr--format-remaining (car entry
+(tabulated-list-print t t)
 (when end
   (goto-char (point-max
   ;; HACK: For some reason the hl-line 
highlighting gets lost here



[elpa] externals/tmr e1a62e3185 2/4: Prefer seq

2022-06-28 Thread ELPA Syncer
branch: externals/tmr
commit e1a62e318587ee25fa3df745e567f10628222ea6
Author: Daniel Mendler 
Commit: Protesilaos Stavrou 

Prefer seq

seq seems to be the recommended package these days. It is even autoloaded on
Emacs 29. However cl-lib is still very useful to load at compile time since 
it
contains useful macros, cl-struct, cl-defun and cl-loop (for optimized 
inlined
loops).
---
 tmr.el | 7 ---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/tmr.el b/tmr.el
index 051eff9712..b3ff0fafd5 100644
--- a/tmr.el
+++ b/tmr.el
@@ -36,7 +36,8 @@
 
 ;;; Code:
 
-(require 'cl-lib)
+(require 'seq)
+(eval-when-compile (require 'cl-lib))
 
 (defgroup tmr ()
   "TMR May Ring: set timers using a simple notation."
@@ -271,7 +272,7 @@ cancelling the original one."
 (defun tmr-remove-finished ()
   "Remove all finished timers."
   (interactive)
-  (setq tmr--timers (cl-delete-if #'tmr--timer-finishedp tmr--timers))
+  (setq tmr--timers (seq-remove #'tmr--timer-finishedp tmr--timers))
   (run-hooks 'tmr--update-hook))
 
 (defvar tmr--read-timer-hook nil
@@ -292,7 +293,7 @@ completion candidates."
(run-hook-with-args-until-success 'tmr--read-timer-hook)
(pcase
(if active
-   (cl-remove-if #'tmr--timer-finishedp tmr--timers)
+   (seq-remove #'tmr--timer-finishedp tmr--timers)
  tmr--timers)
  ('nil (user-error "No timers available"))
  (`(,timer) timer)



[elpa] externals/tmr a9d4ca04a6 1/7: Simplify tmr--read-timer

2022-06-28 Thread ELPA Syncer
branch: externals/tmr
commit a9d4ca04a6fb76329b70b6552d69aa6f6b749c98
Author: Daniel Mendler 
Commit: Protesilaos Stavrou 

Simplify tmr--read-timer
---
 tmr.el | 10 ++
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/tmr.el b/tmr.el
index 1fec868e94..f4de620ac3 100644
--- a/tmr.el
+++ b/tmr.el
@@ -269,7 +269,7 @@ there are no timers, return nil.
 If optional ACTIVE is non-nil, limit the list of timers to those
 that are still running.
 
-If optional DESCRIPTION is provided use it to format the
+If optional DESCRIPTION function is provided use it to format the
 completion candidates."
   (or
(run-hook-with-args-until-success 'tmr--read-timer-hook)
@@ -281,9 +281,11 @@ completion candidates."
  (`(,timer) timer)
  (timers
   (let* ((formatter (or description #'tmr--long-description))
- (timer-descriptions (mapcar formatter timers))
- (selection (completing-read "Timer: " timer-descriptions nil t)))
-(cl-find selection timers :test #'string= :key formatter))
+ (timer-alist (mapcar
+   (lambda (x)
+ (cons (funcall formatter x) x))
+   timers)))
+(cdr (assoc (completing-read "Timer: " timer-alist nil t) 
timer-alist)))
 
 ;; NOTE 2022-04-21: Emacs has a `play-sound' function but it only
 ;; supports .wav and .au formats.  Also, it does not work on all



[nongnu] elpa/helm updated (a4b6559745 -> 0f905a6c62)

2022-06-28 Thread ELPA Syncer
elpasync pushed a change to branch elpa/helm.

  from  a4b6559745 Fix some quotes in docstring
   new  9caab6c5bb Declare helm-get-first-line-documentation
   new  480ec04955 Fix warnings in helm-top-command docstring
   new  0f905a6c62 Revert "Ensure to not collect nil candidates in 
helm-occur-transformer"


Summary of changes:
 helm-mode.el  |  1 +
 helm-occur.el | 27 +++
 helm-sys.el   | 18 +-
 3 files changed, 21 insertions(+), 25 deletions(-)



[elpa] externals/tmr 8594a02b11 1/4: Use timer as id in tabulated list

2022-06-28 Thread ELPA Syncer
branch: externals/tmr
commit 8594a02b1185056f8ae6829091ae16ce4e4935e6
Author: Daniel Mendler 
Commit: Protesilaos Stavrou 

Use timer as id in tabulated list
---
 tmr-tabulated.el | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/tmr-tabulated.el b/tmr-tabulated.el
index 2ee6b6c860..bfa5cb7303 100644
--- a/tmr-tabulated.el
+++ b/tmr-tabulated.el
@@ -53,7 +53,7 @@
 
 (defun tmr-tabulated--timer-to-entry (timer)
   "Convert TIMER into an entry suitable for `tabulated-list-entries'."
-  (list (tmr--timer-creation-date timer)
+  (list timer
 (vector (tmr--format-creation-date timer)
 (tmr--format-end-date timer)
 (tmr--format-remaining timer)
@@ -120,8 +120,7 @@
 
 (defun tmr-tabulated--timer-at-point ()
   "Return the timer on the current line or nil."
-  (and (eq major-mode #'tmr-tabulated-mode)
-   (cl-find (tabulated-list-get-id) tmr--timers :key 
#'tmr--timer-creation-date)))
+  (and (eq major-mode #'tmr-tabulated-mode) (tabulated-list-get-id)))
 
 (defun tmr-tabulated--refresh ()
   "Refresh *tmr-tabulated-view* buffer if it exists."



[elpa] externals/pyim 1ea51042ca 3/3: Indent pyim-create-word-at-point

2022-06-28 Thread ELPA Syncer
branch: externals/pyim
commit 1ea51042ca7fbada99fd5acd809e3b74004ef089
Author: Feng Shu 
Commit: Feng Shu 

Indent pyim-create-word-at-point
---
 pyim.el | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/pyim.el b/pyim.el
index 85aca6f930..61352cff05 100644
--- a/pyim.el
+++ b/pyim.el
@@ -274,7 +274,8 @@ REFRESH-COMMON-DCACHE 已经废弃,不要再使用了。"
 (pyim-process-register-self-insert-command 'pyim-self-insert-command)
 
 ;; ** 加词功能
-(defalias 'pyim-create-word-at-point #'pyim-process-create-word-at-point)
+(defalias 'pyim-create-word-at-point
+  #'pyim-process-create-word-at-point)
 
 (defun pyim-create-2cchar-word-at-point ()
   "将光标前2个中文字符组成的字符串加入个人词库。"



[elpa] externals/pyim 4d2d02aa24 1/3: Add pyim-process-create-word-at-point

2022-06-28 Thread ELPA Syncer
branch: externals/pyim
commit 4d2d02aa248f7c97bfb88dbb51f45ebf6a894ac4
Author: Feng Shu 
Commit: Feng Shu 

Add pyim-process-create-word-at-point
---
 pyim-process.el | 13 +++--
 pyim.el | 10 +-
 2 files changed, 12 insertions(+), 11 deletions(-)

diff --git a/pyim-process.el b/pyim-process.el
index 2b02d5b1c0..f499ecb7b7 100644
--- a/pyim-process.el
+++ b/pyim-process.el
@@ -860,7 +860,6 @@ BUG:拼音无法有效地处理多音字。"
   (pyim-process-terminate))
 
 ;; Fix compile warn.
-(declare-function pyim-create-word-at-point "pyim")
 (declare-function pyim-delete-word-at-point "pyim")
 
 (defun pyim-process-select-handle-char (char)
@@ -879,7 +878,7 @@ BUG:拼音无法有效地处理多音字。"
  ((pyim-process--trigger-create-word-p char)
   (let ((str-before-1 (pyim-char-before-to-string 0)))
 (delete-char -1)
-(pyim-create-word-at-point
+(pyim-process-create-word-at-point
  (string-to-number str-before-1)))
   "")
 
@@ -926,6 +925,16 @@ BUG:拼音无法有效地处理多音字。"
  (pyim-string-match-p "\\cc" str-before-2)
  (pyim-outcome-trigger-p str
 
+(defun pyim-process-create-word-at-point (&optional number silent)
+  "将光标前字符数为 NUMBER 的中文字符串添加到个人词库中,当
+SILENT 设置为 t 是,不显示提醒信息。"
+  (let ((string (pyim-cstring-at-point (or number 2)))
+output)
+(when string
+  (setq output (pyim-process-create-word string))
+  (unless silent
+(message "将词条: %S 加入 personal 缓冲。" output)
+
 (defun pyim-process--call-trigger-function-p (char)
   "判断是否触发 `pyim-outcome-trigger-function'."
   (let* ((str (char-to-string char))
diff --git a/pyim.el b/pyim.el
index e2d541119f..4ace0f4880 100644
--- a/pyim.el
+++ b/pyim.el
@@ -274,15 +274,7 @@ REFRESH-COMMON-DCACHE 已经废弃,不要再使用了。"
 (pyim-process-register-self-insert-command 'pyim-self-insert-command)
 
 ;; ** 加词功能
-(defun pyim-create-word-at-point (&optional number silent)
-  "将光标前字符数为 NUMBER 的中文字符串添加到个人词库中,当
-SILENT 设置为 t 是,不显示提醒信息。"
-  (let ((string (pyim-cstring-at-point (or number 2)))
-output)
-(when string
-  (setq output (pyim-process-create-word string))
-  (unless silent
-(message "将词条: %S 加入 personal 缓冲。" output)
+(defalias 'pyim-create-word-at-point #'pyim-process-create-word-at-point)
 
 (defun pyim-create-2cchar-word-at-point ()
   "将光标前2个中文字符组成的字符串加入个人词库。"



[nongnu] elpa/helm 7cd4a46315: Fix helm-occur transformer issue #2526

2022-06-28 Thread ELPA Syncer
branch: elpa/helm
commit 7cd4a463153447c8dd7ad60173ccabfe8a367d55
Author: Thierry Volpiatto 
Commit: Thierry Volpiatto 

Fix helm-occur transformer issue #2526

Avoid empty or nil candidates while not breaking nearest position.
---
 helm-occur.el | 27 ---
 1 file changed, 16 insertions(+), 11 deletions(-)

diff --git a/helm-occur.el b/helm-occur.el
index 365b3b03fb..b46f78fce7 100644
--- a/helm-occur.el
+++ b/helm-occur.el
@@ -252,17 +252,22 @@ engine beeing completely different and also much faster."
 (defun helm-occur-transformer (candidates source)
   "Return CANDIDATES prefixed with line number."
   (cl-loop with buf = (helm-get-attr 'buffer-name source)
-   for c in candidates collect
-   (when (string-match helm-occur--search-buffer-regexp c)
- (let ((linum (match-string 1 c))
-   (disp (match-string 2 c)))
-   (cons (format "%s:%s"
- (propertize
-  linum 'face 'helm-grep-lineno
-  'help-echo (buffer-file-name
-  (get-buffer buf)))
- disp)
- (string-to-number linum))
+   for c in candidates
+   for disp-linum = (when (string-match 
helm-occur--search-buffer-regexp c)
+  (let ((linum (match-string 1 c))
+(disp (match-string 2 c)))
+(list
+ linum
+ (format "%s:%s"
+ (propertize
+  linum 'face 'helm-grep-lineno
+  'help-echo (buffer-file-name
+  (get-buffer buf)))
+ disp
+   for linum = (car disp-linum)
+   for disp = (cadr disp-linum)
+   when (and disp (not (string= disp "")))
+   collect (cons disp (string-to-number linum
 
 (defclass helm-moccur-class (helm-source-in-buffer)
   ((buffer-name :initarg :buffer-name



[nongnu] elpa/helm-core updated (0f905a6c62 -> 7cd4a46315)

2022-06-28 Thread ELPA Syncer
elpasync pushed a change to branch elpa/helm-core.

  from  0f905a6c62 Revert "Ensure to not collect nil candidates in 
helm-occur-transformer"
  adds  7cd4a46315 Fix helm-occur transformer issue #2526

No new revisions were added by this update.

Summary of changes:
 helm-occur.el | 27 ---
 1 file changed, 16 insertions(+), 11 deletions(-)



[elpa] externals/pyim 58f55d990c 2/3: Add pyim-process-delete-word-at-point

2022-06-28 Thread ELPA Syncer
branch: externals/pyim
commit 58f55d990c82b98739dde0a2d7c9b84ecf691c8a
Author: Feng Shu 
Commit: Feng Shu 

Add pyim-process-delete-word-at-point
---
 pyim-process.el | 14 ++
 pyim.el | 10 ++
 2 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/pyim-process.el b/pyim-process.el
index f499ecb7b7..e4819e7932 100644
--- a/pyim-process.el
+++ b/pyim-process.el
@@ -859,9 +859,6 @@ BUG:拼音无法有效地处理多音字。"
(pyim-process-select-handle-char last-command-event)))
   (pyim-process-terminate))
 
-;; Fix compile warn.
-(declare-function pyim-delete-word-at-point "pyim")
-
 (defun pyim-process-select-handle-char (char)
   "Pyim 字符转换函数,CHAR 代表 *待输入* 的字符。"
   (let ((str (char-to-string char)))
@@ -871,7 +868,7 @@ BUG:拼音无法有效地处理多音字。"
  ((pyim-process--trigger-delete-word-p char)
   (let ((str-before-2 (pyim-char-before-to-string 1)))
 (delete-char -2)
-(pyim-delete-word-at-point
+(pyim-process-delete-word-at-point
  (string-to-number str-before-2)))
   "")
 
@@ -917,6 +914,15 @@ BUG:拼音无法有效地处理多音字。"
  (pyim-string-match-p "\\cc" str-before-3)
  (pyim-outcome-trigger-p str
 
+(defun pyim-process-delete-word-at-point (&optional number silent)
+  "将光标前字符数为 NUMBER 的中文字符串从个人词库中删除
+当 SILENT 设置为 t 是,不显示提醒信息。"
+  (let ((string (pyim-cstring-at-point (or number 2
+(when string
+  (pyim-process-delete-word string)
+  (unless silent
+(message "词条: \"%s\" 已经从个人词库缓冲中删除。" string)
+
 (defun pyim-process--trigger-create-word-p (char)
   "当光标之前的字符串类似“[2-9]”时,比如 “你好2v” ,返回 t."
   (let* ((str (char-to-string char))
diff --git a/pyim.el b/pyim.el
index 4ace0f4880..85aca6f930 100644
--- a/pyim.el
+++ b/pyim.el
@@ -413,14 +413,8 @@ FILE 的格式与 `pyim-dcache-export' 生成的文件格式相同,
   (pyim-process-delete-word word)
   (message "pyim: 从个人词库中删除词条 “%s” !" word
 
-(defun pyim-delete-word-at-point (&optional number silent)
-  "将光标前字符数为 NUMBER 的中文字符串从个人词库中删除
-当 SILENT 设置为 t 是,不显示提醒信息。"
-  (let ((string (pyim-cstring-at-point (or number 2
-(when string
-  (pyim-process-delete-word string)
-  (unless silent
-(message "词条: \"%s\" 已经从个人词库缓冲中删除。" string)
+(defalias 'pyim-delete-word-at-point
+  #'pyim-process-delete-word-at-point)
 
 (defun pyim-delete-word ()
   "从个人词库中删除词条。"



[elpa] externals/pyim updated (48549c5688 -> 1ea51042ca)

2022-06-28 Thread ELPA Syncer
elpasync pushed a change to branch externals/pyim.

  from  48549c5688 Simplify pyim-process-select-handle-char
   new  4d2d02aa24 Add pyim-process-create-word-at-point
   new  58f55d990c Add pyim-process-delete-word-at-point
   new  1ea51042ca Indent pyim-create-word-at-point


Summary of changes:
 pyim-process.el | 27 +--
 pyim.el | 21 -
 2 files changed, 25 insertions(+), 23 deletions(-)



[elpa] externals/pyim 799fd800fe 2/3: Fix pyim-punctuation-p

2022-06-28 Thread ELPA Syncer
branch: externals/pyim
commit 799fd800febb379a970ac4fa2bc5253434dcbff6
Author: Feng Shu 
Commit: Feng Shu 

Fix pyim-punctuation-p
---
 pyim-punctuation.el | 4 +++-
 tests/pyim-tests.el | 2 +-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/pyim-punctuation.el b/pyim-punctuation.el
index 9d04c3fd6e..748c13ecdf 100644
--- a/pyim-punctuation.el
+++ b/pyim-punctuation.el
@@ -149,7 +149,9 @@ pyim 输入半角标点,函数列表中每个函数都有一个参数:char 
 
 (defun pyim-punctuation-p (punct)
   "判断 PUNCT 是否是包含在 `pyim-punctuation-dict' 中的标点符号。"
-  (assoc (char-to-string punct) pyim-punctuation-dict))
+  (cl-some (lambda (x)
+ (when (member (char-to-string punct) x) x))
+   pyim-punctuation-dict))
 
 (defun pyim-punctuation-position (punct)
   "返回 PUNCT 在 `pyim-punctuation-dict' 某一行中的位置。"
diff --git a/tests/pyim-tests.el b/tests/pyim-tests.el
index 92acb66979..28a4c199f1 100644
--- a/tests/pyim-tests.el
+++ b/tests/pyim-tests.el
@@ -376,7 +376,7 @@
 ;; ** pyim-punctuation 相关单元测试
 (ert-deftest pyim-tests-pyim-punctuation-p ()
   (should (pyim-punctuation-p ?,))
-  (should-not (pyim-punctuation-p ?,))
+  (should (pyim-punctuation-p ?,))
   (should-not (pyim-punctuation-p ?a))
   (should-not (pyim-punctuation-p ?1)))
 



[elpa] externals/pyim updated (1ea51042ca -> b28653f340)

2022-06-28 Thread ELPA Syncer
elpasync pushed a change to branch externals/pyim.

  from  1ea51042ca Indent pyim-create-word-at-point
   new  0d835657f7 Add pyim-process tests
   new  799fd800fe Fix pyim-punctuation-p
   new  b28653f340 Fix: can not toggle punct width with trigger.


Summary of changes:
 pyim-process.el |  6 +++---
 pyim-punctuation.el |  4 +++-
 tests/pyim-tests.el | 36 
 3 files changed, 42 insertions(+), 4 deletions(-)



[elpa] externals/pyim b28653f340 3/3: Fix: can not toggle punct width with trigger.

2022-06-28 Thread ELPA Syncer
branch: externals/pyim
commit b28653f340bec21b275ad8e00476c0aaef7f20d4
Author: Feng Shu 
Commit: Feng Shu 

Fix: can not toggle punct width with trigger.
---
 pyim-process.el | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/pyim-process.el b/pyim-process.el
index e4819e7932..43e39ce23c 100644
--- a/pyim-process.el
+++ b/pyim-process.el
@@ -884,9 +884,6 @@ BUG:拼音无法有效地处理多音字。"
   (message "PYIM: 运行 `pyim-outcome-trigger-function' 函数。")
   "")
 
- ((pyim-process--punctuation-half-width-p char)
-  str)
-
  ((pyim-process--translate-punctuation-to-full-width-p char)
   (pyim-punctuation-translate 'full-width)
   "")
@@ -895,6 +892,9 @@ BUG:拼音无法有效地处理多音字。"
   (pyim-punctuation-translate 'half-width)
   "")
 
+ ((pyim-process--punctuation-half-width-p char)
+  str)
+
  ((pyim-punctuation-p char)
   (pyim-punctuation-return-proper-punct char))
 



[elpa] externals/pyim 0d835657f7 1/3: Add pyim-process tests

2022-06-28 Thread ELPA Syncer
branch: externals/pyim
commit 0d835657f744d112ff4c8d36c72d6c5f94a8f567
Author: Feng Shu 
Commit: Feng Shu 

Add pyim-process tests
---
 tests/pyim-tests.el | 36 
 1 file changed, 36 insertions(+)

diff --git a/tests/pyim-tests.el b/tests/pyim-tests.el
index c23bf8a4c4..92acb66979 100644
--- a/tests/pyim-tests.el
+++ b/tests/pyim-tests.el
@@ -374,6 +374,12 @@
  ("f" "en" "h" "eng"))
 
 ;; ** pyim-punctuation 相关单元测试
+(ert-deftest pyim-tests-pyim-punctuation-p ()
+  (should (pyim-punctuation-p ?,))
+  (should-not (pyim-punctuation-p ?,))
+  (should-not (pyim-punctuation-p ?a))
+  (should-not (pyim-punctuation-p ?1)))
+
 (ert-deftest pyim-tests-pyim-punctuation ()
   (with-temp-buffer
 (insert ",")
@@ -2191,6 +2197,36 @@ abc 这是")))
 
 (should (equal (pyim-process-next-word-position -4) 10
 
+(ert-deftest pyim-tests-pyim-process--trigger-delete-word-p ()
+  (let ((pyim-default-scheme 'quanpin))
+(with-temp-buffer
+  (insert "你好2-")
+  (should (pyim-process--trigger-delete-word-p ?v)
+
+(ert-deftest pyim-tests-pyim-process--trigger-create-word-p ()
+  (let ((pyim-default-scheme 'quanpin))
+(with-temp-buffer
+  (insert "你好2")
+  (should (pyim-process--trigger-create-word-p ?v)
+
+(ert-deftest pyim-tests-pyim-process--call-trigger-function-p ()
+  (let ((pyim-default-scheme 'quanpin))
+(with-temp-buffer
+  (insert "你好")
+  (should (pyim-process--call-trigger-function-p ?v)
+
+(ert-deftest pyim-tests-pyim-process--translate-punctuation-to-full-width-p ()
+  (let ((pyim-default-scheme 'quanpin))
+(with-temp-buffer
+  (insert ",")
+  (should (pyim-process--translate-punctuation-to-full-width-p ?v)
+
+(ert-deftest pyim-tests-pyim-process--translate-punctuation-to-half-width-p ()
+  (let ((pyim-default-scheme 'quanpin))
+(with-temp-buffer
+  (insert ",")
+  (should (pyim-process--translate-punctuation-to-half-width-p ?v)
+
 
 (ert-run-tests-batch-and-exit)
 



[nongnu] elpa/forth-mode 3ad7b9e9d6: Make indentation rules customizable.

2022-06-28 Thread ELPA Syncer
branch: elpa/forth-mode
commit 3ad7b9e9d6b9b69140ceed8ffabaa58aa89b78cb
Author: Helmut Eller 
Commit: Lars Brinkhoff 

Make indentation rules customizable.

* forth-smie.el (forth-smie-bnf-extensions): New customization variable.
  (forth-smie--grammar): Turn the variable into a function ...
  (forth-smie--bnf): ... and the default rules into a constant.
  (forth-smie-setup): Compute the grammer each time.

* forth-mode.el (forth-mode): Call hack-local-variables so that
  forth-smie-setup sees file local variables.

* test/tests.el (forth-indent-customization): Move the ?OF ... ENDOF
  test to a seperate test.

  Also add cl- prefix in some places.
---
 forth-mode.el |  1 +
 forth-smie.el | 61 +++
 test/tests.el | 30 +++--
 3 files changed, 62 insertions(+), 30 deletions(-)

diff --git a/forth-mode.el b/forth-mode.el
index 430712bc73..6662b460d9 100644
--- a/forth-mode.el
+++ b/forth-mode.el
@@ -193,6 +193,7 @@
   (when (boundp 'syntax-propertize-function)
 (setq-local syntax-propertize-function #'forth-syntax-propertize))
   (setq-local parse-sexp-lookup-properties t)
+  (hack-local-variables)
   (forth-smie-setup)
   (setq-local fill-paragraph-function #'forth-fill-paragraph)
   (setq-local beginning-of-defun-function #'forth-beginning-of-defun)
diff --git a/forth-smie.el b/forth-smie.el
index 9c10f7df7d..df6678151d 100644
--- a/forth-smie.el
+++ b/forth-smie.el
@@ -8,26 +8,47 @@
   :group 'forth-smie
   :safe 'integerp)
 
-(defvar forth-smie--grammar
+(defcustom forth-smie-bnf-extensions '()
+  "Rules for non-standard syntax.
+
+We add this list of BNF rules to the default rules to support
+user defined syntax.  E.g., setting this variable to
+
+  '((gforth-ext (\"?of\" words \"endof\")))
+
+tells Emacs to recognize ?OF ... ENDOF as a matching pair of tokens.
+
+This variable can also be set in .dir-locals.el, e.g.:
+
+  ((forth-mode . ((forth-smie-bnf-extensions
+. ((my-stuff (\"import\" words \"{\" words \"}\"))).
+"
+  :type '(alist :key-type symbol :value-type (list (list string symbol)))
+  :group 'forth-smie
+  :safe 'listp)
+
+(defconst forth-smie--bnf
+  '((control
+ ("if" words "else" words "then")
+ ("if" words "then")
+ ("begin" words "while" words "repeat")
+ ("begin" words "until")
+ ("begin" words "again")
+ ("of" words "endof")
+ ("case" words "endcase")
+ ("?do" words "loop")
+ ("?do" words "+loop")
+ ("do" words "loop")
+ ("do" words "+loop")
+ ("begin-structure" words "end-structure")
+ (":" words ";")
+ (":noname" words ";"))
+(words)))
+
+(defun forth-smie--grammar ()
   (smie-prec2->grammar
-   (smie-bnf->prec2
-'((control
-   ("if" words "else" words "then")
-   ("if" words "then")
-   ("begin" words "while" words "repeat")
-   ("begin" words "until")
-   ("begin" words "again")
-   ("?of" words "endof")
-   ("of" words "endof")
-   ("case" words "endcase")
-   ("?do" words "loop")
-   ("?do" words "+loop")
-   ("do" words "loop")
-   ("do" words "+loop")
-   ("begin-structure" words "end-structure")
-   (":" words ";")
-   (":noname" words ";"))
-  (words)
+   (smie-bnf->prec2 (append forth-smie--bnf
+   forth-smie-bnf-extensions
 
 (unless (fboundp 'pcase)
   (defmacro pcase (form &rest forms)
@@ -69,7 +90,7 @@
(point)
 
 (defun forth-smie-setup ()
-  (smie-setup forth-smie--grammar #'forth-smie--indentation-rules
+  (smie-setup (forth-smie--grammar) #'forth-smie--indentation-rules
  :forward-token #'forth-smie--forward-token
  :backward-token #'forth-smie--backward-token))
 
diff --git a/test/tests.el b/test/tests.el
index 27391893b9..94a87d2d12 100644
--- a/test/tests.el
+++ b/test/tests.el
@@ -52,7 +52,7 @@
 
 (defun forth-assert-face (content face)
   (when (boundp 'syntax-propertize-function)
-(destructuring-bind (content pos) (forth-strip-|-and-→ content)
+(cl-destructuring-bind (content pos) (forth-strip-|-and-→ content)
   (forth-with-temp-buffer content
(font-lock-ensure)
(should (eq face (or (get-text-property pos 'face)
@@ -72,14 +72,14 @@ The whitespace before and including \"|\" on each line is 
removed."
 (substring-no-properties (buffer-string
 
 (defun forth-assert-forward-sexp (content)
-  (destructuring-bind (content start end) (forth-strip-|-and-¹² content)
+  (cl-destructuring-bind (content start end) (forth-strip-|-and-¹² content)
 (forth-with-temp-buffer content
   (goto-char start)
   (forward-sexp)
   (should (= (point) end)
 
 (defun forth-assert-forward-word (content)
-  (destructuring-bind (content start end) (forth-strip-|-and-¹² content)
+  (cl-destructuring-bind (content start end) (forth-strip-|-and-¹² content

[nongnu] elpa/tuareg 4b38b9ba3a: (tuareg-mode-version): Try and compute it automatically

2022-06-28 Thread ELPA Syncer
branch: elpa/tuareg
commit 4b38b9ba3a8d66eaa4aa561b877d945cddb13928
Author: Stefan Monnier 
Commit: Stefan Monnier 

(tuareg-mode-version): Try and compute it automatically

Use `package-get-version` when available to automatically get the
actual package-version rather than relying on a manually updated duplicate 
of
the authoritative data.
Update that manual duplicate while at it (and update the duplicate license
blurb as well).
---
 tuareg.el | 29 -
 1 file changed, 16 insertions(+), 13 deletions(-)

diff --git a/tuareg.el b/tuareg.el
index 7c7ef4c66d..aaf2c26849 100644
--- a/tuareg.el
+++ b/tuareg.el
@@ -1,7 +1,7 @@
 ;;; tuareg.el --- OCaml mode  -*- coding: utf-8; lexical-binding:t -*-
 
 ;; Copyright (C) 1997-2006 Albert Cohen, all rights reserved.
-;; Copyright (C) 2011-2021 Free Software Foundation, Inc.
+;; Copyright (C) 2011-2022 Free Software Foundation, Inc.
 ;; Copyright (C) 2009-2010 Jane Street Holding, LLC.
 ;; Licensed under the GNU General Public License.
 
@@ -99,11 +99,14 @@
   "Tuareg revision from the control system used.")
 
 (defconst tuareg-mode-version
-  (let ((version "Tuareg Version 2.2.0"))
-(if (null tuareg-mode-revision)
-version
-  (concat version " (" tuareg-mode-revision ")")
-  ))
+  (let ((version (or (if (fboundp 'package-get-version)
+ (package-get-version))
+ "2.3.0")))
+(concat "Tuareg Version " version
+(when tuareg-mode-revision
+  (concat " (" tuareg-mode-revision ")"
+  ;; FIXME: Do we really want to have this copy of the license blurb
+  ;; as the docstring?
   " Copyright (C) 1997-2006 Albert Cohen, all rights reserved.
  Copyright (C) 2009-2010 Jane Street Holding, LLC.
  Copyright (C) 2011- Stefan Monnier & Christophe Troestler
@@ -111,7 +114,7 @@
 
 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 2 of the License, or
+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,
@@ -392,7 +395,7 @@ Valid names are `browse-url', `browse-url-firefox', etc."
   'tuareg-font-lock-module-face)
 
 (defface tuareg-font-lock-constructor-face
-  '((t (:inherit default)))
+  '((t (:inherit default))) ;FIXME: Why not just nil?
   "Face description for constructors of (polymorphic) variants and exceptions."
   :group 'tuareg-faces)
 (defvar tuareg-font-lock-constructor-face
@@ -2516,7 +2519,7 @@ Return a non-nil value if a comment was skipped."
   nil)))
 
 (defun tuareg--skip-backward-comments-semicolon ()
-  "Skip 'sticky' comments and ';;' after a definition."
+  "Skip `sticky' comments and `;;' after a definition."
   ;; Comments after the definition not separated by a blank like
   ;; ("sticking") are considered part of the definition.
   (when (looking-at-p "[ \t]*(\\*")
@@ -2538,7 +2541,7 @@ Return a non-nil value if a comment was skipped."
   nil)))
 
 (defun tuareg--skip-forward-comments-semicolon ()
-  "Skip ';;' and then 'sticky' comments after a definition."
+  "Skip `;;' and then `sticky' comments after a definition."
   (when (looking-at (rx (* (in " \t\n")) ";;"))
 (goto-char (match-end 0)))
   (while (tuareg--skip-forward-comment)))
@@ -3253,7 +3256,7 @@ You have better byte-compile tuareg.el.
 For customization purposes, you should use `tuareg-mode-hook'
 \(run for every file) or `tuareg-load-hook' (run once) and not patch
 the mode itself.  You should add to your configuration file something like:
-  (add-hook 'tuareg-mode-hook
+  (add-hook \\='tuareg-mode-hook
 (lambda ()
... ; your customization code
 ))
@@ -4104,8 +4107,8 @@ See `imenu-create-index-function'."
 (when (require 'speedbar nil t)
   (speedbar-add-supported-extension
'(".ml" ".mli" ".mll" ".mly" ".mlp" ".ls"))
-  (push '("\\.mli$" . ".cmi") speedbar-obj-alist)
-  (push '("\\.ml$"  . ".cmo") speedbar-obj-alist))
+  (push '("\\.mli\\'" . ".cmi") speedbar-obj-alist)
+  (push '("\\.ml\\'"  . ".cmo") speedbar-obj-alist))
 
 ;;;
 ;; Hooks and Exit



[elpa] externals/cursory 99390a1946: Name the mailing list address as the "Maintainer:"

2022-06-28 Thread ELPA Syncer
branch: externals/cursory
commit 99390a1946fe8524a993caf33752fc59cb4e5780
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Name the mailing list address as the "Maintainer:"

This is to conform with work being done in package.el by Philip
Kaludercic.  I was informed about it here:

.
---
 cursory.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/cursory.el b/cursory.el
index 599e342634..6e853bf914 100644
--- a/cursory.el
+++ b/cursory.el
@@ -3,8 +3,8 @@
 ;; Copyright (C) 2022  Free Software Foundation, Inc.
 
 ;; Author: Protesilaos Stavrou 
+;; Maintainer: Cursory Development <~protesilaos/curs...@lists.sr.ht>
 ;; URL: https://git.sr.ht/~protesilaos/cursory
-;; Mailing list: https://lists.sr.ht/~protesilaos/cursory
 ;; Version: 0.1.4
 ;; Package-Requires: ((emacs "27.1"))
 ;; Keywords: convenience, cursor



[elpa] externals/denote 879f9e1613: Name the mailing list address as the "Maintainer:"

2022-06-28 Thread ELPA Syncer
branch: externals/denote
commit 879f9e1613d1f38cfca8a3b57788f562f495bb59
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Name the mailing list address as the "Maintainer:"

This is to conform with work being done in package.el by Philip
Kaludercic.  I was informed about it here:

.
---
 denote-dired.el   | 2 +-
 denote-link.el| 2 +-
 denote-org-capture.el | 2 +-
 denote-retrieve.el| 2 +-
 denote.el | 2 +-
 5 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/denote-dired.el b/denote-dired.el
index 4e20b5aa47..e925baf141 100644
--- a/denote-dired.el
+++ b/denote-dired.el
@@ -3,8 +3,8 @@
 ;; Copyright (C) 2022  Free Software Foundation, Inc.
 
 ;; Author: Protesilaos Stavrou 
+;; Maintainer: Denote Development <~protesilaos/den...@lists.sr.ht>
 ;; URL: https://git.sr.ht/~protesilaos/denote
-;; Mailing list: https://lists.sr.ht/~protesilaos/denote
 ;; Version: 0.1.0
 ;; Package-Requires: ((emacs "27.2"))
 
diff --git a/denote-link.el b/denote-link.el
index 056f3c6b6b..66b886640e 100644
--- a/denote-link.el
+++ b/denote-link.el
@@ -3,8 +3,8 @@
 ;; Copyright (C) 2022  Free Software Foundation, Inc.
 
 ;; Author: Protesilaos Stavrou 
+;; Maintainer: Denote Development <~protesilaos/den...@lists.sr.ht>
 ;; URL: https://git.sr.ht/~protesilaos/denote
-;; Mailing list: https://lists.sr.ht/~protesilaos/denote
 ;; Version: 0.1.0
 ;; Package-Requires: ((emacs "27.2"))
 
diff --git a/denote-org-capture.el b/denote-org-capture.el
index fe341e4ec3..7fb7b3dcc1 100644
--- a/denote-org-capture.el
+++ b/denote-org-capture.el
@@ -3,8 +3,8 @@
 ;; Copyright (C) 2022  Free Software Foundation, Inc.
 
 ;; Author: Protesilaos Stavrou 
+;; Maintainer: Denote Development <~protesilaos/den...@lists.sr.ht>
 ;; URL: https://git.sr.ht/~protesilaos/denote
-;; Mailing list: https://lists.sr.ht/~protesilaos/denote
 ;; Version: 0.1.0
 ;; Package-Requires: ((emacs "27.2"))
 
diff --git a/denote-retrieve.el b/denote-retrieve.el
index 22c46f9366..c12907f872 100644
--- a/denote-retrieve.el
+++ b/denote-retrieve.el
@@ -3,8 +3,8 @@
 ;; Copyright (C) 2022  Free Software Foundation, Inc.
 
 ;; Author: Protesilaos Stavrou 
+;; Maintainer: Denote Development <~protesilaos/den...@lists.sr.ht>
 ;; URL: https://git.sr.ht/~protesilaos/denote
-;; Mailing list: https://lists.sr.ht/~protesilaos/denote
 ;; Version: 0.1.0
 ;; Package-Requires: ((emacs "27.2"))
 
diff --git a/denote.el b/denote.el
index 6f5139ad66..346986e12e 100644
--- a/denote.el
+++ b/denote.el
@@ -3,8 +3,8 @@
 ;; Copyright (C) 2022  Free Software Foundation, Inc.
 
 ;; Author: Protesilaos Stavrou 
+;; Maintainer: Denote Development <~protesilaos/den...@lists.sr.ht>
 ;; URL: https://git.sr.ht/~protesilaos/denote
-;; Mailing list: https://lists.sr.ht/~protesilaos/denote
 ;; Version: 0.1.0
 ;; Package-Requires: ((emacs "27.2"))
 



[elpa] externals/fontaine addd1f7920: Name the mailing list address as the "Maintainer:"

2022-06-28 Thread ELPA Syncer
branch: externals/fontaine
commit addd1f7920aab7d4ba6ce06fad4645fd27bc725e
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Name the mailing list address as the "Maintainer:"

This is to conform with work being done in package.el by Philip
Kaludercic.  I was informed about it here:

.
---
 fontaine.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fontaine.el b/fontaine.el
index 2a4bd0c010..c6d1d58255 100644
--- a/fontaine.el
+++ b/fontaine.el
@@ -3,8 +3,8 @@
 ;; Copyright (C) 2022  Free Software Foundation, Inc.
 
 ;; Author: Protesilaos Stavrou 
+;; Maintainer: Fontaine Development <~protesilaos/fonta...@lists.sr.ht>
 ;; URL: https://git.sr.ht/~protesilaos/fontaine
-;; Mailing list: https://lists.sr.ht/~protesilaos/fontaine
 ;; Version: 0.2.3
 ;; Package-Requires: ((emacs "27.1"))
 



[elpa] externals/lin 76018d9110: Name the mailing list address as the "Maintainer:"

2022-06-28 Thread ELPA Syncer
branch: externals/lin
commit 76018d911079b2a9683edcf556bc0c394866b8c6
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Name the mailing list address as the "Maintainer:"

This is to conform with work being done in package.el by Philip
Kaludercic.  I was informed about it here:

.
---
 lin.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lin.el b/lin.el
index 822d0c8450..6c80579f4b 100644
--- a/lin.el
+++ b/lin.el
@@ -3,8 +3,8 @@
 ;; Copyright (C) 2021-2022  Free Software Foundation, Inc.
 
 ;; Author: Protesilaos Stavrou 
+;; Maintainer: Lin Development <~protesilaos/l...@lists.sr.ht>
 ;; URL: https://git.sr.ht/~protesilaos/lin
-;; Mailing list: https://lists.sr.ht/~protesilaos/lin
 ;; Version: 0.4.0
 ;; Package-Requires: ((emacs "27.1"))
 ;; Keywords: convenience, faces, theme



[elpa] externals/logos 6f47f326e1: Name the mailing list address as the "Maintainer:"

2022-06-28 Thread ELPA Syncer
branch: externals/logos
commit 6f47f326e107fa8432bd6b844bf204317c533591
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Name the mailing list address as the "Maintainer:"

This is to conform with work being done in package.el by Philip
Kaludercic.  I was informed about it here:

.
---
 logos.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/logos.el b/logos.el
index 1bc66282d9..3f71db8f37 100644
--- a/logos.el
+++ b/logos.el
@@ -3,8 +3,8 @@
 ;; Copyright (C) 2022  Free Software Foundation, Inc.
 
 ;; Author: Protesilaos Stavrou 
+;; Maintainer: Logos Development <~protesilaos/lo...@lists.sr.ht>
 ;; URL: https://git.sr.ht/~protesilaos/logos
-;; Mailing list: https://lists.sr.ht/~protesilaos/logos
 ;; Version: 0.4.0
 ;; Package-Requires: ((emacs "27.1"))
 ;; Keywords: convenience, focus, writing, presentation, narrowing



[elpa] externals/pulsar 45c716bf9f: Name the mailing list address as the "Maintainer:"

2022-06-28 Thread ELPA Syncer
branch: externals/pulsar
commit 45c716bf9f1183de6b3cb46d6ab559fa6a8eb31f
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Name the mailing list address as the "Maintainer:"

This is to conform with work being done in package.el by Philip
Kaludercic.  I was informed about it here:

.
---
 pulsar.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pulsar.el b/pulsar.el
index 15c6193f90..f35aa8cb5f 100644
--- a/pulsar.el
+++ b/pulsar.el
@@ -3,8 +3,8 @@
 ;; Copyright (C) 2022  Free Software Foundation, Inc.
 
 ;; Author: Protesilaos Stavrou 
+;; Maintainer: Pulsar Development <~protesilaos/pul...@lists.sr.ht>
 ;; URL: https://git.sr.ht/~protesilaos/pulsar
-;; Mailing list: https://lists.sr.ht/~protesilaos/pulsar
 ;; Version: 0.3.1
 ;; Package-Requires: ((emacs "27.1"))
 ;; Keywords: convenience, pulse, highlight



[elpa] externals/tmr aaad527cf5 1/3: Fix sorting in tmr-tabulated

2022-06-28 Thread ELPA Syncer
branch: externals/tmr
commit aaad527cf51f4f72c78df456f910795b17f80d7c
Author: Daniel Mendler 
Commit: Protesilaos Stavrou 

Fix sorting in tmr-tabulated
---
 tmr-tabulated.el | 12 
 tmr.el   | 13 +
 2 files changed, 13 insertions(+), 12 deletions(-)

diff --git a/tmr-tabulated.el b/tmr-tabulated.el
index 9566e11675..49fd2564df 100644
--- a/tmr-tabulated.el
+++ b/tmr-tabulated.el
@@ -92,9 +92,8 @@
 ;; Optimized refreshing
 (dolist (entry tabulated-list-entries)
   (setf (aref (cadr entry) 2) 
(tmr--format-remaining (car entry
-(tabulated-list-print t t)
-(when end
-  (goto-char (point-max
+(tabulated-list-print t)
+(when end (goto-char (point-max
   ;; HACK: For some reason the hl-line 
highlighting gets lost here
   (when (and (bound-and-true-p global-hl-line-mode)
  (fboundp 'global-hl-line-highlight))
@@ -111,12 +110,17 @@
   (cancel-timer tmr-tabulated--refresh-timer)
   (setq tmr-tabulated--refresh-timer nil
 
+(defun tmr-tabulated--compare-remaining (a b)
+  "Compare remaining time of timers A and B."
+  (time-less-p (tmr--timer-end-date (car a))
+   (tmr--timer-end-date (car b
+
 (define-derived-mode tmr-tabulated-mode tabulated-list-mode "TMR"
   "Major mode to display tmr timers."
   (setq-local tabulated-list-format
   [("Start" 10 t)
("End" 10 t)
-   ("Remaining" 10 t)
+   ("Remaining" 10 tmr-tabulated--compare-remaining)
("Description" 0 t)])
   (add-hook 'window-configuration-change-hook #'tmr-tabulated--window-hook nil 
t)
   (add-hook 'tabulated-list-revert-hook #'tmr-tabulated--set-entries nil t)
diff --git a/tmr.el b/tmr.el
index b3ff0fafd5..c1ab8945f0 100644
--- a/tmr.el
+++ b/tmr.el
@@ -104,10 +104,10 @@ Each function must accept a timer as argument."
nil
:read-only t
:documentation "Time at which the timer was created.")
-  (duration
+  (end-date
nil
:read-only t
-   :documentation "Number of seconds after `start' indicating when the timer 
finishes.")
+   :documentation "Time at which the timer finishes.")
   (finishedp
nil
:read-only nil
@@ -183,8 +183,7 @@ original input for TIMER's duration."
 
 (defun tmr--format-end-date (timer)
   "Return a string representing when TIMER should finish."
-  (tmr--format-time (time-add (tmr--timer-creation-date timer)
-  (tmr--timer-duration timer
+  (tmr--format-time (tmr--timer-end-date timer)))
 
 (defun tmr--format-remaining (timer &optional finished prefix)
   "Format remaining time of TIMER.
@@ -193,9 +192,7 @@ PREFIX is used as prefix for running timers."
   (setq prefix (or prefix ""))
   (if (tmr--timer-finishedp timer)
   (or finished "✔")
-(let ((secs (round (- (float-time
-   (time-add (tmr--timer-creation-date timer)
- (tmr--timer-duration timer)))
+(let ((secs (round (- (float-time (tmr--timer-end-date timer))
   (float-time)
   (if (> secs 3600)
   (format "%s%sh %sm" prefix (/ secs 3600) (/ (% secs 3600) 60))
@@ -405,7 +402,7 @@ command `tmr-with-description' instead of this one."
  (timer (tmr--timer-create
  :description description
  :creation-date creation-date
- :duration duration
+ :end-date (time-add creation-date duration)
  :input time))
  (timer-object (run-with-timer
 duration nil



[elpa] externals/tmr 0c9f901dd5 3/3: Name the mailing list address as the "Maintainer:"

2022-06-28 Thread ELPA Syncer
branch: externals/tmr
commit 0c9f901dd5553ac89c66d783400636bc9b3d4cc1
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Name the mailing list address as the "Maintainer:"

This is to conform with work being done in package.el by Philip
Kaludercic.  I was informed about it here:

.
---
 tmr-notification.el | 3 +--
 tmr-tabulated.el| 3 +--
 tmr.el  | 3 +--
 3 files changed, 3 insertions(+), 6 deletions(-)

diff --git a/tmr-notification.el b/tmr-notification.el
index 3855520060..a52fbbf956 100644
--- a/tmr-notification.el
+++ b/tmr-notification.el
@@ -4,9 +4,8 @@
 
 ;; Author: Protesilaos Stavrou ,
 ;; Damien Cassou 
-;; Maintainer: Protesilaos Stavrou 
+;; Maintainer: TMR Development <~protesilaos/t...@lists.sr.ht>
 ;; URL: https://git.sr.ht/~protesilaos/tmr
-;; Mailing list: https://lists.sr.ht/~protesilaos/tmr
 ;; Version: 0.3.1
 ;; Package-Requires: ((emacs "27.1"))
 
diff --git a/tmr-tabulated.el b/tmr-tabulated.el
index 49fd2564df..2eec68ed4a 100644
--- a/tmr-tabulated.el
+++ b/tmr-tabulated.el
@@ -4,9 +4,8 @@
 
 ;; Author: Damien Cassou ,
 ;; Protesilaos Stavrou 
-;; Maintainer: Protesilaos Stavrou 
+;; Maintainer: TMR Development <~protesilaos/t...@lists.sr.ht>
 ;; URL: https://git.sr.ht/~protesilaos/tmr
-;; Mailing list: https://lists.sr.ht/~protesilaos/tmr
 ;; Version: 0.3.1
 ;; Package-Requires: ((emacs "27.1"))
 
diff --git a/tmr.el b/tmr.el
index 521f7d0e25..11adc73c28 100644
--- a/tmr.el
+++ b/tmr.el
@@ -4,9 +4,8 @@
 
 ;; Author: Protesilaos Stavrou ,
 ;; Damien Cassou 
-;; Maintainer: Protesilaos Stavrou 
+;; Maintainer: TMR Development <~protesilaos/t...@lists.sr.ht>
 ;; URL: https://git.sr.ht/~protesilaos/tmr
-;; Mailing list: https://lists.sr.ht/~protesilaos/tmr
 ;; Version: 0.3.1
 ;; Package-Requires: ((emacs "27.1"))
 ;; Keywords: convenience, timer



[elpa] externals/tmr e3ff16c685 2/3: Add tmr-timer completion category

2022-06-28 Thread ELPA Syncer
branch: externals/tmr
commit e3ff16c6856c0efe02821c01745dfd21a623c347
Author: Daniel Mendler 
Commit: Protesilaos Stavrou 

Add tmr-timer completion category

The category makes it possible to use Embark in the completing-read 
interface.
Furthermore disable sorting in the completing-read interface such that the
newest timers appear at the top.
---
 tmr.el | 31 +++
 1 file changed, 19 insertions(+), 12 deletions(-)

diff --git a/tmr.el b/tmr.el
index c1ab8945f0..521f7d0e25 100644
--- a/tmr.el
+++ b/tmr.el
@@ -300,7 +300,11 @@ completion candidates."
(lambda (x)
  (cons (funcall formatter x) x))
timers)))
-(cdr (assoc (completing-read "Timer: " timer-alist nil t) 
timer-alist)))
+(cdr (assoc (completing-read
+ "Timer: "
+ (tmr--completion-table timer-alist 'tmr-timer)
+ nil t)
+timer-alist)))
 
 ;; NOTE 2022-04-21: Emacs has a `play-sound' function but it only
 ;; supports .wav and .au formats.  Also, it does not work on all
@@ -356,17 +360,11 @@ If optional DEFAULT is provided use it as a default 
candidate."
(if default
(format "Description for this tmr [%s]: " default)
  "Description for this tmr: ")
-   (lambda (string predicate action)
- (if (eq action 'metadata)
- `(metadata (display-sort-function . ,#'identity)
-(cycle-sort-function . ,#'identity))
-   (complete-with-action action
- (if (listp tmr-description-list)
- tmr-description-list
-   (symbol-value tmr-description-list))
- string predicate)))
-   nil nil nil
-   'tmr-description-history default))
+   (tmr--completion-table
+(if (listp tmr-description-list)
+tmr-description-list
+  (symbol-value tmr-description-list)))
+   nil nil nil 'tmr-description-history default))
 
 (defun tmr--complete (timer)
   "Mark TIMER as finished and execute `tmr-timer-finished-functions'."
@@ -446,5 +444,14 @@ Without a PROMPT, clone TIMER outright."
(tmr--description-prompt (tmr--timer-description timer))
  (tmr--timer-description timer
 
+(defun tmr--completion-table (candidates &optional category)
+  "Return completion table for CANDIDATES of CATEGORY with sorting disabled."
+  (lambda (str pred action)
+(if (eq action 'metadata)
+`(metadata (display-sort-function . identity)
+   (cycle-sort-function . identity)
+   (category . ,category))
+  (complete-with-action action candidates str pred
+
 (provide 'tmr)
 ;;; tmr.el ends here



[elpa] externals/tmr updated (711616ea75 -> 0c9f901dd5)

2022-06-28 Thread ELPA Syncer
elpasync pushed a change to branch externals/tmr.

  from  711616ea75 Optimize tabulated refreshing
   new  aaad527cf5 Fix sorting in tmr-tabulated
   new  e3ff16c685 Add tmr-timer completion category
   new  0c9f901dd5 Name the mailing list address as the "Maintainer:"


Summary of changes:
 tmr-notification.el |  3 +--
 tmr-tabulated.el| 15 +--
 tmr.el  | 47 +--
 3 files changed, 35 insertions(+), 30 deletions(-)



[nongnu] scratch/rust-mode 01df37d523: Add email to `Maintainer:`; various cosmetic changes

2022-06-28 Thread Stefan Monnier via
branch: scratch/rust-mode
commit 01df37d52386b89fad3bebcc93d87d755ae92fa0
Author: Stefan Monnier 
Commit: Stefan Monnier 

Add email to `Maintainer:`; various cosmetic changes
---
 .gitignore |  1 +
 rust-cargo.el  |  2 +-
 rust-compile.el|  2 +-
 rust-mode-tests.el | 51 ++--
 rust-mode.el   | 77 +++---
 rust-rustfmt.el| 10 +++
 6 files changed, 71 insertions(+), 72 deletions(-)

diff --git a/.gitignore b/.gitignore
index 2835be648c..8663ddfd6b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,6 @@
 *.elc
 *-autoloads.el
+/rust-mode-pkg.el
 
 .eask
 /dist
diff --git a/rust-cargo.el b/rust-cargo.el
index 090945a16d..0c35ddb150 100644
--- a/rust-cargo.el
+++ b/rust-cargo.el
@@ -64,7 +64,7 @@
   (when rust-always-locate-project-on-open
 (rust-update-buffer-project)))
 
-(add-hook 'rust-mode-hook 'rust-maybe-initialize-buffer-project)
+(add-hook 'rust-mode-hook #'rust-maybe-initialize-buffer-project)
 
 ;;; Internal
 
diff --git a/rust-compile.el b/rust-compile.el
index 78a53cf1d6..1bb31030ee 100644
--- a/rust-compile.el
+++ b/rust-compile.el
@@ -76,7 +76,7 @@ the compilation window until the top of the error is visible."
  (add-to-list 'compilation-error-regexp-alist-alist
   (cons 'cargo cargo-compilation-regexps))
  (add-to-list 'compilation-error-regexp-alist 'cargo)
- (add-hook 'next-error-hook 'rustc-scroll-down-after-next-error)))
+ (add-hook 'next-error-hook #'rustc-scroll-down-after-next-error)))
 
 ;;; _
 (provide 'rust-compile)
diff --git a/rust-mode-tests.el b/rust-mode-tests.el
index 8e3ee45f2b..011663c449 100644
--- a/rust-mode-tests.el
+++ b/rust-mode-tests.el
@@ -7,16 +7,19 @@
 (require 'imenu)
 
 (defconst rust-test-fill-column 32)
+;; FIXME: Loading a file shouldn't cause such changes.
 (setq-default indent-tabs-mode nil)
 
+;; FIXME: This macro doesn't obey the `rust-' namespace.
 (defmacro test-silence (messages &rest body)
-  `(cl-letf* (((symbol-function 'm)
-   (symbol-function #'message))
-  ((symbol-function #'message)
-  (lambda (format-string &rest args)
-(unless (member format-string ,messages)
-  (apply 'm format-string args)
- ,@body))
+  `(let ((f (lambda (orig-fun format-string &rest args)
+ (unless (member format-string ,messages)
+   (apply orig-fun format-string args)
+ (unwind-protect
+ (progn
+   (advice-add 'message :around f)
+   ,@body)
+   (advice-remove 'message f
 
 (defun rust-compare-code-after-manip (_original _point-pos _manip-func 
expected got)
   (equal expected got))
@@ -53,6 +56,7 @@
 (should (rust-compare-code-after-manip
  original point-pos manip-func expected (buffer-string)
 
+;; FIXME: This function doesn't obey the `rust-' namespace.
 (defun test-fill-paragraph (unfilled expected &optional start-pos end-pos)
   "We're going to run through many scenarios here--the point should be able to 
be anywhere from the start-pos (defaults to 1) through end-pos (defaults to the 
length of what was passed in) and (fill-paragraph) should return the same 
result.  It should also work with fill-region from start-pos to end-pos.
 
@@ -253,6 +257,7 @@ fn bar() { }"
 /// even more.
 fn bar() { }" 14 85))
 
+;; FIXME: This function doesn't obey the `rust-' namespace.
 (defun test-auto-fill (initial position inserted expected)
   (rust-test-manip-code
initial
@@ -312,6 +317,7 @@ very very very long string
  */"
))
 
+;; FIXME: This function doesn't obey the `rust-' namespace.
 (defun test-indent (indented &optional deindented)
   (let ((deindented (or deindented (replace-regexp-in-string "^[[:blank:]]*" " 
 " indented
 (rust-test-manip-code
@@ -392,11 +398,11 @@ not_a_string();
 
 "
 
-   (apply 'append (mapcar (lambda (s) (list s 'font-lock-string-face))
-  '("r\"foo\\\"" "\"bar\"" "r\"bar\""
-"r\"foo\\.\"" "\"bar\"" "r\"bar\""
-"r\"foo\\..\"" "\"bar\"" "r\"foo\\..\\bar\""
-"r\"\\\"" "\"foo\"" "r\"\\foo\"")))
+   (apply #'append (mapcar (lambda (s) (list s 'font-lock-string-face))
+   '("r\"foo\\\"" "\"bar\"" "r\"bar\""
+ "r\"foo\\.\"" "\"bar\"" "r\"bar\""
+ "r\"foo\\..\"" "\"bar\"" "r\"foo\\..\\bar\""
+ "r\"\\\"" "\"foo\"" "r\"\\foo\"")))
))
 
 (ert-deftest font-lock-raw-string-after-normal-string-ending-in-r ()
@@ -3305,7 +3311,10 @@ type Foo where T: Copy = Box;
 (ert-deftest redo-syntax-after-change-far-from-point ()
   (let*
   ((tmp-file-name (make-temp-file "rust-mdoe-test-issue104"))
-   (base-contents (apply 'concat (append '("fn foo() {\n\n}\n") (make-list 
500 "// More stuff...\n") '("fn bar() {\n\n}\n")
+

[nongnu] branch scratch/rust-mode created (now 01df37d523)

2022-06-28 Thread Stefan Monnier via
monnier pushed a change to branch scratch/rust-mode.

at  01df37d523 Add email to `Maintainer:`; various cosmetic changes

This branch includes the following new commits:

   new  01df37d523 Add email to `Maintainer:`; various cosmetic changes




[nongnu] elpa/evil 7e67e61271: Small fix in 'evil-command-window-ex

2022-06-28 Thread ELPA Syncer
branch: elpa/evil
commit 7e67e61271ca5b60efa341e6a4c1a0cfa636dc23
Author: Gabriel Barreto 
Commit: Tom Dalziel <33435574+tomd...@users.noreply.github.com>

Small fix in 'evil-command-window-ex

No more "There are no full lines in the region" when 'hist is
empty. Plus doing it like this is actually faster.
---
 evil-command-window.el | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/evil-command-window.el b/evil-command-window.el
index b4c2b1a3a6..21299a2dc0 100644
--- a/evil-command-window.el
+++ b/evil-command-window.el
@@ -175,8 +175,7 @@ Parameters passed in through IGNORED are ignored."
 (defun evil-command-window-insert-commands (hist)
   "Insert the commands in HIST."
   (let ((inhibit-modification-hooks t))
-(mapc #'(lambda (cmd) (insert cmd) (newline)) hist)
-(reverse-region (point-min) (point-max)))
+(mapc #'(lambda (cmd) (insert cmd) (newline)) (reverse hist)))
   (let ((prefix (propertize evil-command-window-cmd-key
 'font-lock-face 'minibuffer-prompt)))
 (set-text-properties (point-min) (point-max) (list 'line-prefix prefix)))



[nongnu] elpa/xah-fly-keys 1b9c07644d: xah-delete-backward-char-or-bracket-text hack fix a bug. this is a mess to be figured out later. problem is, elisp syntax-ppss can't tell comment when at beginni

2022-06-28 Thread ELPA Syncer
branch: elpa/xah-fly-keys
commit 1b9c07644d796add7113521e63fc1a1525d11719
Author: Xah Lee 
Commit: Xah Lee 

xah-delete-backward-char-or-bracket-text hack fix a bug. this is a mess to 
be figured out later. problem is, elisp syntax-ppss can't tell comment when at 
beginning of a 2 char comment.
---
 xah-fly-keys.el | 26 +++---
 1 file changed, 15 insertions(+), 11 deletions(-)

diff --git a/xah-fly-keys.el b/xah-fly-keys.el
index e8d5b8c3c6..568b6dced4 100644
--- a/xah-fly-keys.el
+++ b/xah-fly-keys.el
@@ -4,7 +4,7 @@
 
 ;; Author: Xah Lee ( http://xahlee.info/ )
 ;; Maintainer: Xah Lee 
-;; Version: 17.15.20220627044859
+;; Version: 17.15.20220628130211
 ;; Created: 10 Sep 2013
 ;; Package-Requires: ((emacs "24.1"))
 ;; Keywords: convenience, emulations, vim, ergoemacs
@@ -633,26 +633,30 @@ Version: 2017-07-02 2022-06-23"
   (delete-region (region-beginning) (region-end))
 (cond
  ((looking-back "\\s)" 1)
-  (let ($isComment ($p0 (point)))
-(backward-char)
-(setq $isComment (nth 4 (syntax-ppss)))
-(goto-char $p0)
-(if $isComment
-(if (forward-comment -1)
-(kill-region (point) $p0)
-  (message "error GSNN2:parsing comment failed."))
+  (if (string-equal major-mode "xah-wolfram-mode")
+  (let ($isComment ($p0 (point)))
+(backward-char)
+(setq $isComment (nth 4 (syntax-ppss)))
+(goto-char $p0)
+(if $isComment
+(if (forward-comment -1)
+(kill-region (point) $p0)
+  (message "error GSNN2:parsing comment failed."))
+  (if current-prefix-arg
+  (xah-delete-backward-bracket-pair)
+(xah-delete-backward-bracket-text
+(progn
   (if current-prefix-arg
   (xah-delete-backward-bracket-pair)
 (xah-delete-backward-bracket-text)
  ((looking-back "\\s(" 1)
   (message "left of cursor is opening bracket")
   (let ($pOpenBracketLeft
-($pOpenBracketRight (point)) $p1 $isComment)
+($pOpenBracketRight (point)) $isComment)
 (backward-char)
 (setq $pOpenBracketLeft (point))
 (goto-char $pOpenBracketRight)
 (forward-char)
-(setq $p1 (point))
 (setq $isComment (nth 4 (syntax-ppss)))
 (if $isComment
 (progn



[nongnu] elpa/tuareg e7c49c6f8f 2/3: Copy-edit key bindings in CHANGES.md

2022-06-28 Thread Stefan Monnier via
branch: elpa/tuareg
commit e7c49c6f8f6ec7d3c046525e6dc626621371c434
Author: Mattias Engdegård 
Commit: Mattias Engdegård 

Copy-edit key bindings in CHANGES.md

Use established Emacs style (space between subsequent keystrokes) for
consistency and readability. Drop the `<>` because it annoyed Markdown.
---
 CHANGES.md | 12 ++--
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/CHANGES.md b/CHANGES.md
index 2b55776210..a88faa0404 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -5,12 +5,12 @@ Backward incompatible changes are marked with “⚠”.
 
 * New mode `tuareg-menhir` thanks to Stefan Monnier.
   Note that C-c C-c launches the compilation.
-* ⚠ `tuareg-eval-phrase` (C-cC-e and C-xC-e) now
+* ⚠ `tuareg-eval-phrase` (C-c C-e and C-x C-e) now
   evaluate the smallest set of phrases containing the region if the
   latter is active.
 * ⚠ `tuareg-eval-phrase` now skips `;;` even on a separate line when moving
   forward. This permits quick evaluation of multiple phrases in succession.
-* ⚠ `tuareg-eval-region` (C-cC-r): only send the content of
+* ⚠ `tuareg-eval-region` (C-c C-r): only send the content of
   the region to the REPL.
 * Be more subtle in phrase detection.
 * Bogus mismatched parentheses at the end of comment fixed.
@@ -27,13 +27,13 @@ Backward incompatible changes are marked with “⚠”.
   was extended to `.eliom` ↔ `.eliomi` and `.mly` ↔ `.mli`.  It also
   work for pre-processed files named `.pp.ml` and `.pp.mli`.
 * When switching from an `.ml` to a non-existing `.mli` file using
-  C-cC-a, one is offered to fill the `.mli` buffer with the
+  C-c C-a, one is offered to fill the `.mli` buffer with the
   generated interface.
 * Set `beginning-of-defun-function` and `end-of-defun-function` which
   allows to go to the beginning of the current function (resp. end)
   with C-M-home, C-M-a or ESC
-   (resp. , C-M-e, or
-  ESC ).
+  C-home (resp. C-M-end, C-M-e, or
+  ESC C-end).
 * ⚠ `beginning-of-defun` (C-M-a, C-M-home) is
   now repeatable. Previously it would not move the cursor if invoked
   at the beginning of a defun. Now it goes to the start of the
@@ -43,7 +43,7 @@ Backward incompatible changes are marked with “⚠”.
   declarative `let` to be defuns in their own right, since that's
   closer to how programmers think. This generally makes defun-based
   operations more useful.
-* ⚠ `tuareg-comment-dwim` is now bound to C-cC-; (fixes #149).
+* ⚠ `tuareg-comment-dwim` is now bound to C-c C-; (fixes #149).
 * Fix the highlighting of errors locations in interactive mode.
 * ocamldebug: Handle correctly the new code pointer format (issue #205).
 * Rework electric functions (fixes issues #150 and #162).



[nongnu] elpa/tuareg updated (4b38b9ba3a -> 3fdf4f2869)

2022-06-28 Thread Stefan Monnier via
monnier pushed a change to branch elpa/tuareg.

  from  4b38b9ba3a (tuareg-mode-version): Try and compute it automatically
   new  1ccf7daad1 Describe some recent changes in CHANGES.md
   new  e7c49c6f8f Copy-edit key bindings in CHANGES.md
   new  3fdf4f2869 Merge commit 'refs/pull/276/head' of 
https://github.com/ocaml/tuareg into elpa/tuareg


Summary of changes:
 CHANGES.md | 45 +++--
 1 file changed, 39 insertions(+), 6 deletions(-)



[nongnu] elpa/tuareg 3fdf4f2869 3/3: Merge commit 'refs/pull/276/head' of https://github.com/ocaml/tuareg into elpa/tuareg

2022-06-28 Thread Stefan Monnier via
branch: elpa/tuareg
commit 3fdf4f28695b9e2ecee0044c6d8c4a2c3b9f0638
Merge: 4b38b9ba3a e7c49c6f8f
Author: Stefan Monnier 
Commit: Stefan Monnier 

Merge commit 'refs/pull/276/head' of https://github.com/ocaml/tuareg into 
elpa/tuareg
---
 CHANGES.md | 45 +++--
 1 file changed, 39 insertions(+), 6 deletions(-)

diff --git a/CHANGES.md b/CHANGES.md
index d914f37188..a88faa0404 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -5,10 +5,12 @@ Backward incompatible changes are marked with “⚠”.
 
 * New mode `tuareg-menhir` thanks to Stefan Monnier.
   Note that C-c C-c launches the compilation.
-* ⚠ `tuareg-eval-phrase` (C-cC-e and C-xC-e) now
+* ⚠ `tuareg-eval-phrase` (C-c C-e and C-x C-e) now
   evaluate the smallest set of phrases containing the region if the
   latter is active.
-* ⚠ `tuareg-eval-region` (C-cC-r): only send the content of
+* ⚠ `tuareg-eval-phrase` now skips `;;` even on a separate line when moving
+  forward. This permits quick evaluation of multiple phrases in succession.
+* ⚠ `tuareg-eval-region` (C-c C-r): only send the content of
   the region to the REPL.
 * Be more subtle in phrase detection.
 * Bogus mismatched parentheses at the end of comment fixed.
@@ -25,14 +27,23 @@ Backward incompatible changes are marked with “⚠”.
   was extended to `.eliom` ↔ `.eliomi` and `.mly` ↔ `.mli`.  It also
   work for pre-processed files named `.pp.ml` and `.pp.mli`.
 * When switching from an `.ml` to a non-existing `.mli` file using
-  C-cC-a, one is offered to fill the `.mli` buffer with the
+  C-c C-a, one is offered to fill the `.mli` buffer with the
   generated interface.
 * Set `beginning-of-defun-function` and `end-of-defun-function` which
   allows to go to the beginning of the current function (resp. end)
   with C-M-home, C-M-a or ESC
-   (resp. , C-M-e, or
-  ESC ).
-* ⚠ `tuareg-comment-dwim` is now bound to C-cC-; (fixes #149).
+  C-home (resp. C-M-end, C-M-e, or
+  ESC C-end).
+* ⚠ `beginning-of-defun` (C-M-a, C-M-home) is
+  now repeatable. Previously it would not move the cursor if invoked
+  at the beginning of a defun. Now it goes to the start of the
+  previous defun, which is the standard in Emacs and generally more
+  useful.
+* ⚠ Movement by defun now considers `and` clauses of a `type` or
+  declarative `let` to be defuns in their own right, since that's
+  closer to how programmers think. This generally makes defun-based
+  operations more useful.
+* ⚠ `tuareg-comment-dwim` is now bound to C-c C-; (fixes #149).
 * Fix the highlighting of errors locations in interactive mode.
 * ocamldebug: Handle correctly the new code pointer format (issue #205).
 * Rework electric functions (fixes issues #150 and #162).
@@ -40,6 +51,15 @@ Backward incompatible changes are marked with “⚠”.
   OCaml ≥ 4.08 (fixes #202).
 * Autoload compilation error regexp so it is correct even if Tuareg
   was not loaded.
+* Messages from recent OCaml compiler versions are now parsed
+  correctly for severity and source location. This includes precise
+  parsing of the location start and end columns. Exception backtraces
+  are now also recognised.
+* Ancillary locations are now treated as Info-level messages, not
+  errors in their own right. This way they no longer contribute to
+  Emacs's compilation-mode error count, but they will be ignored by
+  `next-error` and `previous-error`. Set `compilation-skip-threshold`
+  to `0` if you want `next-error` to step into these locations.
 * Evaluation of phrases: evaluate the above phrase if the point is in
   or after comments immediately following the let-binding (without
   separating blank lines).
@@ -47,6 +67,19 @@ Backward incompatible changes are marked with “⚠”.
 * Use a pty to communicate with the `ocaml` process (fixes #83).
 * `tuareg-opam`: syntax highlighting updates.
 * ⚠ Remove `tuareg-light`, you should now use `tuareg`.
+* `class type` is now parsed correctly (#239).
+* Improved indentation of class definition with non-hanging `object` (#239).
+  The new behaviour agrees with ocp-indent and seems to be the more modern
+  usage. `initialize` clauses are also indented correctly.
+* Better default colour for extension nodes on dark background.
+  `tuareg-font-lock-extension-node-face` was nigh-unreadable against
+  a dark background. The face now uses the default background colour.
+* Ocamldoc `(** ... *)` comments are now fontified by their structure.
+  This makes markup constructs stand out in order to improve legibility
+  and reduces the risk of mistakes. The body text is set in
+  `font-lock-doc-face` as before; mark-up constructs use
+  `tuareg-font-lock-doc-markup-face`, which defaults to
+  `font-lock-doc-markup-face` (new in Emacs 28) if available.
 
 Note that the mode `tuareg-dune` which was in the development version
 of this package is now part of [Dune](https://github.com/ocaml/dune).



[nongnu] elpa/tuareg 1ccf7daad1 1/3: Describe some recent changes in CHANGES.md

2022-06-28 Thread Stefan Monnier via
branch: elpa/tuareg
commit 1ccf7daad164264de55fc9100679ee261d728fc7
Author: Mattias Engdegård 
Commit: Mattias Engdegård 

Describe some recent changes in CHANGES.md
---
 CHANGES.md | 33 +
 1 file changed, 33 insertions(+)

diff --git a/CHANGES.md b/CHANGES.md
index d914f37188..2b55776210 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -8,6 +8,8 @@ Backward incompatible changes are marked with “⚠”.
 * ⚠ `tuareg-eval-phrase` (C-cC-e and C-xC-e) now
   evaluate the smallest set of phrases containing the region if the
   latter is active.
+* ⚠ `tuareg-eval-phrase` now skips `;;` even on a separate line when moving
+  forward. This permits quick evaluation of multiple phrases in succession.
 * ⚠ `tuareg-eval-region` (C-cC-r): only send the content of
   the region to the REPL.
 * Be more subtle in phrase detection.
@@ -32,6 +34,15 @@ Backward incompatible changes are marked with “⚠”.
   with C-M-home, C-M-a or ESC
(resp. , C-M-e, or
   ESC ).
+* ⚠ `beginning-of-defun` (C-M-a, C-M-home) is
+  now repeatable. Previously it would not move the cursor if invoked
+  at the beginning of a defun. Now it goes to the start of the
+  previous defun, which is the standard in Emacs and generally more
+  useful.
+* ⚠ Movement by defun now considers `and` clauses of a `type` or
+  declarative `let` to be defuns in their own right, since that's
+  closer to how programmers think. This generally makes defun-based
+  operations more useful.
 * ⚠ `tuareg-comment-dwim` is now bound to C-cC-; (fixes #149).
 * Fix the highlighting of errors locations in interactive mode.
 * ocamldebug: Handle correctly the new code pointer format (issue #205).
@@ -40,6 +51,15 @@ Backward incompatible changes are marked with “⚠”.
   OCaml ≥ 4.08 (fixes #202).
 * Autoload compilation error regexp so it is correct even if Tuareg
   was not loaded.
+* Messages from recent OCaml compiler versions are now parsed
+  correctly for severity and source location. This includes precise
+  parsing of the location start and end columns. Exception backtraces
+  are now also recognised.
+* Ancillary locations are now treated as Info-level messages, not
+  errors in their own right. This way they no longer contribute to
+  Emacs's compilation-mode error count, but they will be ignored by
+  `next-error` and `previous-error`. Set `compilation-skip-threshold`
+  to `0` if you want `next-error` to step into these locations.
 * Evaluation of phrases: evaluate the above phrase if the point is in
   or after comments immediately following the let-binding (without
   separating blank lines).
@@ -47,6 +67,19 @@ Backward incompatible changes are marked with “⚠”.
 * Use a pty to communicate with the `ocaml` process (fixes #83).
 * `tuareg-opam`: syntax highlighting updates.
 * ⚠ Remove `tuareg-light`, you should now use `tuareg`.
+* `class type` is now parsed correctly (#239).
+* Improved indentation of class definition with non-hanging `object` (#239).
+  The new behaviour agrees with ocp-indent and seems to be the more modern
+  usage. `initialize` clauses are also indented correctly.
+* Better default colour for extension nodes on dark background.
+  `tuareg-font-lock-extension-node-face` was nigh-unreadable against
+  a dark background. The face now uses the default background colour.
+* Ocamldoc `(** ... *)` comments are now fontified by their structure.
+  This makes markup constructs stand out in order to improve legibility
+  and reduces the risk of mistakes. The body text is set in
+  `font-lock-doc-face` as before; mark-up constructs use
+  `tuareg-font-lock-doc-markup-face`, which defaults to
+  `font-lock-doc-markup-face` (new in Emacs 28) if available.
 
 Note that the mode `tuareg-dune` which was in the development version
 of this package is now part of [Dune](https://github.com/ocaml/dune).



[elpa] externals/pyim f56212a895 5/5: Simplify pyim-process-select-handle-char

2022-06-28 Thread ELPA Syncer
branch: externals/pyim
commit f56212a89511040890e8035ff5431518e49dd1db
Author: Feng Shu 
Commit: Feng Shu 

Simplify pyim-process-select-handle-char
---
 pyim-process.el | 104 
 tests/pyim-tests.el |  13 ---
 2 files changed, 56 insertions(+), 61 deletions(-)

diff --git a/pyim-process.el b/pyim-process.el
index 0ba0e2b377..96a84ecbae 100644
--- a/pyim-process.el
+++ b/pyim-process.el
@@ -864,69 +864,66 @@ BUG:拼音无法有效地处理多音字。"
   (let ((str (char-to-string char)))
 (cond
  ((pyim-process--invalid-char-p char) "")
+ ((pyim-process--trigger-feature-run-p char) "")
+ ((pyim-process--punctuation-half-width-p char) str)
+ ((pyim-punctuation-p char)
+  (pyim-punctuation-return-proper-punct char))
+ (t str
 
- ((pyim-process--trigger-delete-word-p char)
-  (let ((number-before-2 (pyim-char-before-to-number 1)))
-(delete-char -2)
-(pyim-process-delete-word-at-point number-before-2))
-  "")
+(defun pyim-process--invalid-char-p (char)
+  "当 CHAR 是空格前面的字符时,返回 t."
+  (< char ? ))
 
- ((pyim-process--trigger-create-word-p char)
-  (let ((number-before-1 (pyim-char-before-to-number 0)))
-(delete-char -1)
-(pyim-process-create-word-at-point number-before-1))
-  "")
+(defun pyim-process--trigger-feature-run-p (char)
+  (and (pyim-outcome-trigger-p (char-to-string char))
+   (not (eq (pyim-process--trigger-feature-run)
+'without-trigger-feature
 
- ((pyim-process--trigger-call-function-p char)
-  (pyim-outcome-call-trigger-function)
-  "")
+(defun pyim-process--trigger-feature-run ()
+  (cond
+   ((pyim-process--trigger-delete-word-p)
+(let ((number-before-2 (pyim-char-before-to-number 1)))
+  (delete-char -2)
+  (pyim-process-delete-word-at-point number-before-2)))
 
- ((pyim-process--trigger-punctuation-to-full-width-p char)
-  (pyim-punctuation-translate 'full-width)
-  "")
+   ((pyim-process--trigger-create-word-p)
+(let ((number-before-1 (pyim-char-before-to-number 0)))
+  (delete-char -1)
+  (pyim-process-create-word-at-point number-before-1)))
 
- ((pyim-process--trigger-punctuation-to-half-width-p char)
-  (pyim-punctuation-translate 'half-width)
-  "")
+   ((pyim-process--trigger-call-function-p)
+(pyim-outcome-call-trigger-function))
 
- ((pyim-process--punctuation-half-width-p char)
-  str)
+   ((pyim-process--trigger-punctuation-to-full-width-p)
+(pyim-punctuation-translate 'full-width))
 
- ((pyim-punctuation-p char)
-  (pyim-punctuation-return-proper-punct char))
-
- (t str
+   ((pyim-process--trigger-punctuation-to-half-width-p)
+(pyim-punctuation-translate 'half-width))
 
-(defun pyim-process--invalid-char-p (char)
-  "当 CHAR 是空格前面的字符时,返回 t."
-  (< char ? ))
+   (t 'without-trigger-feature)))
 
-(defun pyim-process--trigger-delete-word-p (char)
-  "当光标之前的字符串类似 “[1-9]-”时,比如 “你好-2v” ,返回 t."
-  (let* ((str (char-to-string char))
- (str-before-2 (pyim-char-before-to-string 1))
+(defun pyim-process--trigger-delete-word-p ()
+  "当光标之前的字符串类似 “<中文>[1-9]-” 时,比如 “你好2-” ,返回 t."
+  (let* ((str-before-2 (pyim-char-before-to-string 1))
  (str-before-3 (pyim-char-before-to-string 2)))
 (and (eq (char-before) ?-)
  (pyim-string-match-p "[0-9]" str-before-2)
- (pyim-string-match-p "\\cc" str-before-3)
- (pyim-outcome-trigger-p str
+ (pyim-string-match-p "\\cc" str-before-3
 
 (defun pyim-process-delete-word-at-point (&optional number silent)
   "将光标前字符数为 NUMBER 的中文字符串从个人词库中删除
 当 SILENT 设置为 t 是,不显示提醒信息。"
-  (let* ((string (pyim-cstring-at-point (or number 2
+  (let ((string (pyim-cstring-at-point (or number 2
 (when string
   (pyim-process-delete-word string)
   (unless silent
 (message "词条: \"%s\" 已经从个人词库缓冲中删除。" string)
 
-(defun pyim-process--trigger-create-word-p (char)
-  "当光标之前的字符串类似“[2-9]”时,比如 “你好2v” ,返回 t."
-  (let* ((str (char-to-string char))
- (str-before-2 (pyim-char-before-to-string 1)))
+(defun pyim-process--trigger-create-word-p ()
+  "当光标之前的字符串类似 “<中文>[2-9]” 时,比如 “你好2” ,返回 t."
+  (let ((str-before-2 (pyim-char-before-to-string 1)))
 (and (member (char-before) (number-sequence ?2 ?9))
- (pyim-string-match-p "\\cc" str-before-2)
- (pyim-outcome-trigger-p str
+ (pyim-string-match-p "\\cc" str-before-2
 
 (defun pyim-process-create-word-at-point (&optional number silent)
   "将光标前字符数为 NUMBER 的中文字符串添加到个人词库中,当
@@ -938,34 +935,29 @@ SILENT 设置为 t 是,不显示提醒信息。"
   (unless silent
 (message "将词条: %S 加入 personal 缓冲。" output)
 
-(defun pyim-process--trigger-call-function-p (char)
-  "判断是否触发 `pyim-outcome-trigger-function'."
-  (let* ((str (char-to-string char))
- (str-before-1 (pyim-char-before-to-string 0)))
+(defun pyim-process--trigger-call-function-p ()
+  "当光标之前是中文但不是标点符号时,返回 t."
+  (let ((str-befor

[elpa] externals/pyim updated (b28653f340 -> f56212a895)

2022-06-28 Thread ELPA Syncer
elpasync pushed a change to branch externals/pyim.

  from  b28653f340 Fix: can not toggle punct width with trigger.
   new  04bc9dd2bf pyim-process--call-trigger-function-p -> 
pyim-process--trigger-call-function-p
   new  31a052173d pyim-process--translate-punctuation* -> 
pyim-process--trigger-punctuation
   new  0d0eec01b4 Add pyim-outcome-call-trigger-function
   new  a258f60048 Add pyim-char-before-to-number
   new  f56212a895 Simplify pyim-process-select-handle-char


Summary of changes:
 pyim-common.el  |   4 ++
 pyim-outcome.el |   5 +++
 pyim-process.el | 109 +++-
 tests/pyim-tests.el |  19 +
 4 files changed, 69 insertions(+), 68 deletions(-)



[elpa] externals/pyim 04bc9dd2bf 1/5: pyim-process--call-trigger-function-p -> pyim-process--trigger-call-function-p

2022-06-28 Thread ELPA Syncer
branch: externals/pyim
commit 04bc9dd2bf48b3812170d3aa1ac5d7b26f14bf3b
Author: Feng Shu 
Commit: Feng Shu 

pyim-process--call-trigger-function-p -> 
pyim-process--trigger-call-function-p
---
 pyim-process.el | 4 ++--
 tests/pyim-tests.el | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/pyim-process.el b/pyim-process.el
index 43e39ce23c..efe3aedd7f 100644
--- a/pyim-process.el
+++ b/pyim-process.el
@@ -879,7 +879,7 @@ BUG:拼音无法有效地处理多音字。"
  (string-to-number str-before-1)))
   "")
 
- ((pyim-process--call-trigger-function-p char)
+ ((pyim-process--trigger-call-function-p char)
   (funcall pyim-outcome-trigger-function)
   (message "PYIM: 运行 `pyim-outcome-trigger-function' 函数。")
   "")
@@ -941,7 +941,7 @@ SILENT 设置为 t 是,不显示提醒信息。"
   (unless silent
 (message "将词条: %S 加入 personal 缓冲。" output)
 
-(defun pyim-process--call-trigger-function-p (char)
+(defun pyim-process--trigger-call-function-p (char)
   "判断是否触发 `pyim-outcome-trigger-function'."
   (let* ((str (char-to-string char))
  (str-before-1 (pyim-char-before-to-string 0)))
diff --git a/tests/pyim-tests.el b/tests/pyim-tests.el
index 28a4c199f1..6a4679d0f7 100644
--- a/tests/pyim-tests.el
+++ b/tests/pyim-tests.el
@@ -2209,11 +2209,11 @@ abc 这是")))
   (insert "你好2")
   (should (pyim-process--trigger-create-word-p ?v)
 
-(ert-deftest pyim-tests-pyim-process--call-trigger-function-p ()
+(ert-deftest pyim-tests-pyim-process--trigger-call-function-p ()
   (let ((pyim-default-scheme 'quanpin))
 (with-temp-buffer
   (insert "你好")
-  (should (pyim-process--call-trigger-function-p ?v)
+  (should (pyim-process--trigger-call-function-p ?v)
 
 (ert-deftest pyim-tests-pyim-process--translate-punctuation-to-full-width-p ()
   (let ((pyim-default-scheme 'quanpin))



[elpa] externals/pyim 0d0eec01b4 3/5: Add pyim-outcome-call-trigger-function

2022-06-28 Thread ELPA Syncer
branch: externals/pyim
commit 0d0eec01b4cfddf9502f9fc19b22d02f1754d7b7
Author: Feng Shu 
Commit: Feng Shu 

Add pyim-outcome-call-trigger-function
---
 pyim-outcome.el | 5 +
 pyim-process.el | 3 +--
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/pyim-outcome.el b/pyim-outcome.el
index 1df4c6c1af..6ec1a169d5 100644
--- a/pyim-outcome.el
+++ b/pyim-outcome.el
@@ -180,6 +180,11 @@ pyim 的 translate-trigger-char 要占用一个键位,为了防止用户
 (car prefer-triggers)
   user-trigger)))
 
+(defun pyim-outcome-call-trigger-function ()
+  (when (functionp pyim-outcome-trigger-function)
+(funcall pyim-outcome-trigger-function)
+(message "PYIM: 运行 `pyim-outcome-trigger-function' 函数。")))
+
 (defun pyim-outcome-trigger-function-default (&optional no-space)
   "默认的 `pyim-outcome-trigger-function'.
 
diff --git a/pyim-process.el b/pyim-process.el
index 017ae7477b..b38b3c974c 100644
--- a/pyim-process.el
+++ b/pyim-process.el
@@ -880,8 +880,7 @@ BUG:拼音无法有效地处理多音字。"
   "")
 
  ((pyim-process--trigger-call-function-p char)
-  (funcall pyim-outcome-trigger-function)
-  (message "PYIM: 运行 `pyim-outcome-trigger-function' 函数。")
+  (pyim-outcome-call-trigger-function)
   "")
 
  ((pyim-process--trigger-punctuation-to-full-width-p char)



[elpa] externals/pyim 31a052173d 2/5: pyim-process--translate-punctuation* -> pyim-process--trigger-punctuation

2022-06-28 Thread ELPA Syncer
branch: externals/pyim
commit 31a052173da6a80ed6ba624a75e2919370ac29d5
Author: Feng Shu 
Commit: Feng Shu 

pyim-process--translate-punctuation* -> pyim-process--trigger-punctuation
---
 pyim-process.el | 8 
 tests/pyim-tests.el | 8 
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/pyim-process.el b/pyim-process.el
index efe3aedd7f..017ae7477b 100644
--- a/pyim-process.el
+++ b/pyim-process.el
@@ -884,11 +884,11 @@ BUG:拼音无法有效地处理多音字。"
   (message "PYIM: 运行 `pyim-outcome-trigger-function' 函数。")
   "")
 
- ((pyim-process--translate-punctuation-to-full-width-p char)
+ ((pyim-process--trigger-punctuation-to-full-width-p char)
   (pyim-punctuation-translate 'full-width)
   "")
 
- ((pyim-process--translate-punctuation-to-half-width-p char)
+ ((pyim-process--trigger-punctuation-to-half-width-p char)
   (pyim-punctuation-translate 'half-width)
   "")
 
@@ -950,7 +950,7 @@ SILENT 设置为 t 是,不显示提醒信息。"
  (pyim-outcome-trigger-p str)
  (functionp pyim-outcome-trigger-function
 
-(defun pyim-process--translate-punctuation-to-full-width-p (char)
+(defun pyim-process--trigger-punctuation-to-full-width-p (char)
   "当光标前面是半角标点时,返回 t."
   (let* ((str (char-to-string char))
  (str-before-1 (pyim-char-before-to-string 0))
@@ -959,7 +959,7 @@ SILENT 设置为 t 是,不显示提醒信息。"
  (= punc-posit-before-1 0)
  (pyim-outcome-trigger-p str
 
-(defun pyim-process--translate-punctuation-to-half-width-p (char)
+(defun pyim-process--trigger-punctuation-to-half-width-p (char)
   "当光标前面是全角标点时,返回 t."
   (let* ((str (char-to-string char))
  (str-before-1 (pyim-char-before-to-string 0))
diff --git a/tests/pyim-tests.el b/tests/pyim-tests.el
index 6a4679d0f7..e37a220860 100644
--- a/tests/pyim-tests.el
+++ b/tests/pyim-tests.el
@@ -2215,17 +2215,17 @@ abc 这是")))
   (insert "你好")
   (should (pyim-process--trigger-call-function-p ?v)
 
-(ert-deftest pyim-tests-pyim-process--translate-punctuation-to-full-width-p ()
+(ert-deftest pyim-tests-pyim-process--trigger-punctuation-to-full-width-p ()
   (let ((pyim-default-scheme 'quanpin))
 (with-temp-buffer
   (insert ",")
-  (should (pyim-process--translate-punctuation-to-full-width-p ?v)
+  (should (pyim-process--trigger-punctuation-to-full-width-p ?v)
 
-(ert-deftest pyim-tests-pyim-process--translate-punctuation-to-half-width-p ()
+(ert-deftest pyim-tests-pyim-process--trigger-punctuation-to-half-width-p ()
   (let ((pyim-default-scheme 'quanpin))
 (with-temp-buffer
   (insert ",")
-  (should (pyim-process--translate-punctuation-to-half-width-p ?v)
+  (should (pyim-process--trigger-punctuation-to-half-width-p ?v)
 
 
 (ert-run-tests-batch-and-exit)



[elpa] externals/pyim a258f60048 4/5: Add pyim-char-before-to-number

2022-06-28 Thread ELPA Syncer
branch: externals/pyim
commit a258f600480a1e7a014822641be6fe29f0d00856
Author: Feng Shu 
Commit: Feng Shu 

Add pyim-char-before-to-number
---
 pyim-common.el  |  4 
 pyim-process.el | 16 +++-
 2 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/pyim-common.el b/pyim-common.el
index 82bf46c9bc..307c40d185 100644
--- a/pyim-common.el
+++ b/pyim-common.el
@@ -146,6 +146,10 @@ When CARE-FIRST-ONE is no-nil, ((a b c) (d e)) => (a d)."
 (when (char-after point-after)
   (char-to-string (char-after point-after)
 
+(defun pyim-char-before-to-number (num)
+  (string-to-number
+   (pyim-char-before-to-string num)))
+
 (if (fboundp 'string-distance)
 (defalias 'pyim-string-distance 'string-distance)
   (defun pyim-string-distance (s1 s2)
diff --git a/pyim-process.el b/pyim-process.el
index b38b3c974c..0ba0e2b377 100644
--- a/pyim-process.el
+++ b/pyim-process.el
@@ -866,17 +866,15 @@ BUG:拼音无法有效地处理多音字。"
  ((pyim-process--invalid-char-p char) "")
 
  ((pyim-process--trigger-delete-word-p char)
-  (let ((str-before-2 (pyim-char-before-to-string 1)))
+  (let ((number-before-2 (pyim-char-before-to-number 1)))
 (delete-char -2)
-(pyim-process-delete-word-at-point
- (string-to-number str-before-2)))
+(pyim-process-delete-word-at-point number-before-2))
   "")
 
  ((pyim-process--trigger-create-word-p char)
-  (let ((str-before-1 (pyim-char-before-to-string 0)))
+  (let ((number-before-1 (pyim-char-before-to-number 0)))
 (delete-char -1)
-(pyim-process-create-word-at-point
- (string-to-number str-before-1)))
+(pyim-process-create-word-at-point number-before-1))
   "")
 
  ((pyim-process--trigger-call-function-p char)
@@ -916,7 +914,7 @@ BUG:拼音无法有效地处理多音字。"
 (defun pyim-process-delete-word-at-point (&optional number silent)
   "将光标前字符数为 NUMBER 的中文字符串从个人词库中删除
 当 SILENT 设置为 t 是,不显示提醒信息。"
-  (let ((string (pyim-cstring-at-point (or number 2
+  (let* ((string (pyim-cstring-at-point (or number 2
 (when string
   (pyim-process-delete-word string)
   (unless silent
@@ -933,8 +931,8 @@ BUG:拼音无法有效地处理多音字。"
 (defun pyim-process-create-word-at-point (&optional number silent)
   "将光标前字符数为 NUMBER 的中文字符串添加到个人词库中,当
 SILENT 设置为 t 是,不显示提醒信息。"
-  (let ((string (pyim-cstring-at-point (or number 2)))
-output)
+  (let* ((string (pyim-cstring-at-point (or number 2)))
+ output)
 (when string
   (setq output (pyim-process-create-word string))
   (unless silent



[elpa] externals/pyim 8eece89d89: Update README

2022-06-28 Thread ELPA Syncer
branch: externals/pyim
commit 8eece89d8942f3658e1d6c3d5ab61ee834c961d3
Author: Feng Shu 
Commit: Feng Shu 

Update README
---
 README.org | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/README.org b/README.org
index ad80e03dd1..11fa5830bb 100644
--- a/README.org
+++ b/README.org
@@ -286,9 +286,9 @@ pyim 的选词框默认使用 *双行显示* 的样式,在一些特殊的情
置变量: `pyim-punctuation-translate-p', 用户也可以手动设置这个变量, 比如:

#+begin_example
-   (setq-default pyim-punctuation-translate-p '(yes no auto))   ;使用全角标点。
-   (setq-default pyim-punctuation-translate-p '(no yes auto))   ;使用半角标点。
-   (setq-default pyim-punctuation-translate-p '(auto yes no))   
;中文使用全角标点,英文使用半角标点。
+   (setq-default pyim-punctuation-translate-p '(yes));使用全角标点。
+   (setq-default pyim-punctuation-translate-p '(no)) ;使用半角标点。
+   (setq-default pyim-punctuation-translate-p '(auto))   ;中文使用全角标点,英文使用半角标点。
#+end_example

 2. 第二种方法:使用命令 `pyim-punctuation-translate-at-point' 只切换光标处标点的



[elpa] externals/org d788fe9927 1/3: org-persist: Remove read cache introduced in f77800c68

2022-06-28 Thread ELPA Syncer
branch: externals/org
commit d788fe99272d3563ff88e872bf337b8c198c7c7d
Author: Ihor Radchenko 
Commit: Ihor Radchenko 

org-persist: Remove read cache introduced in f77800c68

* lisp/org-persist.el (org-persist--read-cache): Remove variable.
(org-persist-read):
(org-persist-write): Do not use `org-persist--read-cache'.  Using
`sx-hash-equal' as unique key indicating as-read data is not
reliable for deeply nested structures like `org-element--cache'.  The
`sx-hash-equal' returns the same value regardless of the cache
contents.  See Emacs Bug#56255.
---
 lisp/org-persist.el | 8 +---
 1 file changed, 1 insertion(+), 7 deletions(-)

diff --git a/lisp/org-persist.el b/lisp/org-persist.el
index b16289da72..fd1c7eafd7 100644
--- a/lisp/org-persist.el
+++ b/lisp/org-persist.el
@@ -749,10 +749,6 @@ When ASSOCIATED is `all', unregister CONTAINER everywhere."
  (remove container (plist-get collection :container)))
   (org-persist--add-to-index collection))
 
-(defvar org-persist--read-cache (make-hash-table :test #'equal)
-  "Hash table storing as-read data object hashes.
-
-This data is used to avoid overwriting unchanged data.")
 (defvar org-persist--write-cache (make-hash-table :test #'equal)
   "Hash table storing as-written data objects.
 
@@ -793,7 +789,6 @@ When LOAD? is non-nil, load the data instead of reading."
   (plist-get collection :container))
   (setq data (or (gethash persist-file org-persist--write-cache)
  (org-persist--read-elisp-file persist-file)))
-  (puthash persist-file (sxhash-equal data) org-persist--read-cache)
   (when data
 (cl-loop for container in (plist-get collection :container)
  with result = nil
@@ -859,8 +854,7 @@ When IGNORE-RETURN is non-nil, just return t on success 
without calling
 (data (mapcar (lambda (c) (cons c (org-persist-write:generic c 
collection)))
   (plist-get collection :container
 (puthash file data org-persist--write-cache)
-(unless (equal (sxhash-equal data) (gethash file 
org-persist--read-cache))
-  (org-persist--write-elisp-file file data))
+(org-persist--write-elisp-file file data)
 (or ignore-return (org-persist-read container associated
 
 (defun org-persist-write-all (&optional associated)



[elpa] externals/org aa5bc2c760 3/3: org-element-cache: Make sure that cache is correctly synced before saving

2022-06-28 Thread ELPA Syncer
branch: externals/org
commit aa5bc2c760d142ae24eb9253ff472d5505c612de
Author: Ihor Radchenko 
Commit: Ihor Radchenko 

org-element-cache: Make sure that cache is correctly synced before saving

* lisp/org-element.el (org-element--cache-persist-before-write): Sync
cache before force-overwriting transient cache keys.
---
 lisp/org-element.el | 19 +--
 1 file changed, 9 insertions(+), 10 deletions(-)

diff --git a/lisp/org-element.el b/lisp/org-element.el
index 7d2168496b..2a826bdbb3 100644
--- a/lisp/org-element.el
+++ b/lisp/org-element.el
@@ -7166,16 +7166,15 @@ The element is: %S\n The real element is: %S\n Cache 
around :begin:\n%S\n%S\n%S"
 (with-current-buffer (get-file-buffer (plist-get associated :file))
   (if (and (derived-mode-p 'org-mode)
org-element--cache)
-  (progn
-;; Cleanup cache request keys to avoid collisions during next
-;; Emacs session.
-(avl-tree-mapc
- (lambda (el)
-   (org-element-put-property el :org-element--cache-sync-key 
nil))
- org-element--cache)
-(org-with-wide-buffer
- (org-element-at-point (point-max)))
-nil)
+  (org-with-wide-buffer
+   (org-element--cache-sync (current-buffer) (point-max))
+   ;; Cleanup cache request keys to avoid collisions during next
+   ;; Emacs session.
+   (avl-tree-mapc
+(lambda (el)
+  (org-element-put-property el :org-element--cache-sync-key 
nil))
+org-element--cache)
+   nil)
 'forbid))
   'forbid)))
 



[elpa] externals/org updated (ac7b8f9d2e -> aa5bc2c760)

2022-06-28 Thread ELPA Syncer
elpasync pushed a change to branch externals/org.

  from  ac7b8f9d2e org-agenda-with-point-at-orig-entry: Fix body indentation
   new  d788fe9927 org-persist: Remove read cache introduced in f77800c68
   new  eb796ae432 org-element-cache: Use `buffer-size' to detect silent 
modifications
   new  aa5bc2c760 org-element-cache: Make sure that cache is correctly 
synced before saving


Summary of changes:
 lisp/org-element.el | 94 +
 lisp/org-macs.el|  1 +
 lisp/org-persist.el |  8 +
 3 files changed, 25 insertions(+), 78 deletions(-)



[elpa] externals/org eb796ae432 2/3: org-element-cache: Use `buffer-size' to detect silent modifications

2022-06-28 Thread ELPA Syncer
branch: externals/org
commit eb796ae4326faf246b1b1a382a0a6a372f28c9e4
Author: Ihor Radchenko 
Commit: Ihor Radchenko 

org-element-cache: Use `buffer-size' to detect silent modifications

* lisp/org-element.el (org-element--cache-diagnostics-modifications):
(org-element--cache-silent-modification-check): Remove variables that
were introduced to deal with false positives.  The new check is more
reliable.
(org-element--cache-last-buffer-size): New variable storing the last
known buffer size registered before/after handled buffer edits.
(org-element--cache-sync): Use `buffer-size' instead of
`buffer-chars-modified-tick' heuristics.  `buffer-size' may not catch
all the modifications, but it does not cause numerous
false-positives triggered by quail.  See Emacs Bug#51766 for the
detailed discussion.
(org-element--cache-before-change):
(org-element-cache-reset): Record buffer size before/after changes.
* lisp/org-macs.el (org-unique-local-variables): Do not carry over
buffer-local `org-element--cache-last-buffer-size' when cloning
buffer.
---
 lisp/org-element.el | 75 ++---
 lisp/org-macs.el|  1 +
 2 files changed, 15 insertions(+), 61 deletions(-)

diff --git a/lisp/org-element.el b/lisp/org-element.el
index 900bdce714..7d2168496b 100644
--- a/lisp/org-element.el
+++ b/lisp/org-element.el
@@ -5322,29 +5322,6 @@ to be correct.  Setting this to a value less than 0.0001 
is useless.")
 (defvar org-element--cache-map-statistics-threshold 0.1
   "Time threshold in seconds to log statistics for `org-element-cache-map'.")
 
-(defvar org-element--cache-diagnostics-modifications t
-  "Non-nil enables cache warnings when for silent modifications.
-
-Silent modifications are the modifications in Org buffers that are not
-registered by `org-element--cache-before-change' and
-`org-element--cache-after-change'.
-
-This variable may cause false-positives because some Emacs versions
-can change `buffer-chars-modified-tick' internally even though no
-visible changes in buffer are being made.  Some of such expected cases
-are covered by heuristics, but not all.")
-
-(defvar org-element--cache-silent-modification-check t
-  "Detect changes in buffer made inside `with-silent-modifications'.
-
-Note that some internal Emacs functions may also trigger a warning and
-cache reset.  The warning can be suppressed by setting
-`org-element--cache-diagnostics-modifications' to nil, but the cache
-will still be refreshed to be safe.
-
-WARNING: Setting this variable to nil may cause cache corruption is some
-third-party packages make undetected changes in buffers.")
-
 (defvar org-element--cache-diagnostics-level 2
   "Detail level of the diagnostics.")
 
@@ -5454,6 +5431,9 @@ See `org-element--cache-key' for more information.")
 (defvar-local org-element--cache-change-tic nil
   "Last `buffer-chars-modified-tick' for registered changes.")
 
+(defvar-local org-element--cache-last-buffer-size nil
+  "Last value of `buffer-size' for registered changes.")
+
 (defvar org-element--cache-non-modifying-commands
   '(org-agenda
 org-agenda-redo
@@ -5968,46 +5948,17 @@ actually submitted."
 (with-current-buffer (or (buffer-base-buffer buffer) buffer)
   ;; Check if the buffer have been changed outside visibility of
   ;; `org-element--cache-before-change' and 
`org-element--cache-after-change'.
-  (if (and (/= org-element--cache-change-tic
-  (buffer-chars-modified-tick))
-   org-element--cache-silent-modification-check
-   ;; FIXME: Below is a heuristics noticed by observation.
-   ;; quail.el with non-latin input does silent
-   ;; modifications in buffer increasing the tick counter
-   ;; but not actually changing the buffer text:
-   ;; https://list.orgmode.org/87sfw2luhj.fsf@localhost/T/#you
-   ;; 
https://lists.gnu.org/archive/html/bug-gnu-emacs/2021-11/msg00894.html
-   ;; However, the values of `buffer-chars-modified-tick'
-   ;; and `buffer-modified-tick' appear to be same after
-   ;; the quail.el's changes in buffer.  We do not
-   ;; consider these exact changes as a dangerous silent
-   ;; edit.
-   (/= (buffer-chars-modified-tick)
-  (buffer-modified-tick)))
+  (if (/= org-element--cache-last-buffer-size (buffer-size))
   (progn
-(when (or (and org-element--cache-diagnostics-modifications
-   ;; A number of Emacs internal operations in
-   ;; Emacs 26 and 27 alter
-   ;; `buffer-chars-modified-tick' (see
-   ;; 
https://list.orgmode.org/87ee7jdv70.fsf@localhost/T/#t
-   ;; 
https://list.orgmode.org/2022-01-06t12-13...@devnull.karl-voit.at/T/#mb3771758f81b31721ba2f4208

[elpa] externals/eev 98bde18792: Small changes in comments.

2022-06-28 Thread ELPA Syncer
branch: externals/eev
commit 98bde18792052aa94a75413d5d4bcf1445bc1c8f
Author: Eduardo Ochs 
Commit: Eduardo Ochs 

Small changes in comments.
---
 VERSION  |  4 ++--
 eev-intro.el |  2 ++
 eev-kla.el   | 18 +++---
 eev-mode.el  |  2 ++
 4 files changed, 17 insertions(+), 9 deletions(-)

diff --git a/VERSION b/VERSION
index fafc7bb4b3..2797b75a98 100644
--- a/VERSION
+++ b/VERSION
@@ -1,2 +1,2 @@
-Sun Jun 26 08:42:08 GMT 2022
-Sun Jun 26 05:42:08 -03 2022
+Wed Jun 29 03:49:53 GMT 2022
+Wed Jun 29 00:49:53 -03 2022
diff --git a/eev-intro.el b/eev-intro.el
index 17133b73d7..21a0075561 100644
--- a/eev-intro.el
+++ b/eev-intro.el
@@ -1974,6 +1974,7 @@ See: (find-enode \"Keys\" \"key sequence\")
 C-g   keyboard-quit (\"get out\")  (find-enode \"Quitting\" \"C-g\")
 M-x   execute-extended-command   (find-enode \"M-x\" \"Running Commands by 
Name\")
 
+More about buffers:  (find-enode \"Buffers\")
 More about the minibuffer:   (find-enode \"Minibuffer\")
 More about TAB - for completion: (find-enode \"Completion\")
 for indentation: (find-enode \"Indentation\")
@@ -1987,6 +1988,7 @@ See also: (find-enode \"Mode Line\" \"(MAJOR MINOR)\")
   (find-enode \"Mode Line\" \" MINOR is a list\")
   (find-enode \"Mode Line\" \" BUF \")
   (find-enode \"Mode Line\" \" BUF \" \"name of the buffer\")
+  (find-enode \"Echo Area\")
 
 
 
diff --git a/eev-kla.el b/eev-kla.el
index e5093d5c79..5f10313522 100644
--- a/eev-kla.el
+++ b/eev-kla.el
@@ -19,7 +19,7 @@
 ;;
 ;; Author: Eduardo Ochs 
 ;; Maintainer: Eduardo Ochs 
-;; Version:20220625
+;; Version:20220628
 ;; Keywords:   e-scripts
 ;;
 ;; Latest version: <http://angg.twu.net/eev-current/eev-kla.el>
@@ -203,6 +203,10 @@
 ;; (ee-efile "textmodes/fill.el")
 ;;(ee-kl-fname "e" (ee-efile "textmodes/fill.el"))
 ;;
+;; TODO: add support for "living fossils" to ee-kl-fname.
+;; See: (find-angg-es-links 2 "and suffixes")
+;; Prototype: (find-angg ".emacs" "eev-kla-fossils")
+
 (defun ee-kl-c ()
   (or ee-preferred-c (error "`ee-preferred-c' is nil here!")))
 
@@ -354,16 +358,17 @@ Body:
   (ee-kla-demo-write-file "/tmp/eev-kla-test/dirb/bar"
   "This file: /tmp/eev-kla-test/dirb/bar
 Index:
-# «.b1»   (to \"b1\")
-# «.b2»   (to \"b2\")\n
+-- «.b1»   (to \"b1\")
+-- «.b2»   (to \"b2\")\n
 Body:
-# «b1»(to \".b1\")\n
-# «b2»(to \".b2\")\n\n")
+-- «b1»(to \".b1\")\n
+-- «b2»(to \".b2\")\n\n")
   ;;
   (ee-kla-demo-write-file "/tmp/eev-kla-test/.dir-locals.el"
   ";; This file: /tmp/eev-kla-test/.dir-locals.el
 ;;
-((\"dira\" . ((nil . ((ee-preferred-c . \"klata\")
+(; (\"dira\" . ((nil . ((ee-preferred-c . \"klata\")
+ (\"\" . ((nil . ((ee-preferred-c . \"klat\")
  (\"dirb\" . ((nil . ((ee-preferred-c . \"klatb\")
  )")
   )
@@ -376,7 +381,6 @@ Body:
 ;; (defalias 'klas 'eeklas)
 ;; (defalias 'klf  'eeklf)
 ;; (defalias 'klfs 'eeklfs)
-;; (defalias 'klfs 'eeklfs)
 ;; (defalias 'kla2 'eekla2)
 
 
diff --git a/eev-mode.el b/eev-mode.el
index 7f2485aa0a..3d76adeccf 100644
--- a/eev-mode.el
+++ b/eev-mode.el
@@ -178,6 +178,8 @@ and: (find-eval-intro \"`M-k'\")"
 ;; `eev-mode-map' with different keybindings you can do that by
 ;; putting something like this
 ;;
+;;   ;; See: (find-eev "eev-mode.el" "when-not-eev-mode-map")
+;;   ;;
 ;;   (setq eev-mode-map (make-sparse-keymap))
 ;;   (define-key eev-mode-map "\M-e" 'ee-eval-sexp-eol)
 ;;   (define-key eev-mode-map "\M-E" 'ee-eval-last-sexp)



[elpa] externals/cursory 39c252b001: Restore link to mailing list archive

2022-06-28 Thread ELPA Syncer
branch: externals/cursory
commit 39c252b001f8dde1cae18274dd9cbbc911fbb68e
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Restore link to mailing list archive
---
 cursory.el | 1 +
 1 file changed, 1 insertion(+)

diff --git a/cursory.el b/cursory.el
index 6e853bf914..aaed1f2e44 100644
--- a/cursory.el
+++ b/cursory.el
@@ -5,6 +5,7 @@
 ;; Author: Protesilaos Stavrou 
 ;; Maintainer: Cursory Development <~protesilaos/curs...@lists.sr.ht>
 ;; URL: https://git.sr.ht/~protesilaos/cursory
+;; Mailing-List: https://lists.sr.ht/~protesilaos/cursory
 ;; Version: 0.1.4
 ;; Package-Requires: ((emacs "27.1"))
 ;; Keywords: convenience, cursor



[elpa] externals/lin a08ad97c14: Restore link to mailing list archive

2022-06-28 Thread ELPA Syncer
branch: externals/lin
commit a08ad97c1477f0227c0198535761100a1048534f
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Restore link to mailing list archive
---
 lin.el | 1 +
 1 file changed, 1 insertion(+)

diff --git a/lin.el b/lin.el
index 6c80579f4b..9a89e78e00 100644
--- a/lin.el
+++ b/lin.el
@@ -5,6 +5,7 @@
 ;; Author: Protesilaos Stavrou 
 ;; Maintainer: Lin Development <~protesilaos/l...@lists.sr.ht>
 ;; URL: https://git.sr.ht/~protesilaos/lin
+;; Mailing-List: https://lists.sr.ht/~protesilaos/lin
 ;; Version: 0.4.0
 ;; Package-Requires: ((emacs "27.1"))
 ;; Keywords: convenience, faces, theme



[elpa] externals/org 26878e28e7: org-persist: Bump storage version to ignore bugged persisted data

2022-06-28 Thread ELPA Syncer
branch: externals/org
commit 26878e28e7525e1a791ac10c5a037144095188e1
Author: Ihor Radchenko 
Commit: Ihor Radchenko 

org-persist: Bump storage version to ignore bugged persisted data

* lisp/org-persist.el (org-persist--storage-version): Bump version to
avoid loading recently broken persisted element cache.
---
 lisp/org-persist.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lisp/org-persist.el b/lisp/org-persist.el
index fd1c7eafd7..c3dfeee87b 100644
--- a/lisp/org-persist.el
+++ b/lisp/org-persist.el
@@ -158,7 +158,7 @@
 (declare-function org-at-heading-p "org" (&optional invisible-not-ok))
 
 
-(defconst org-persist--storage-version "2.4"
+(defconst org-persist--storage-version "2.5"
   "Persistent storage layout version.")
 
 (defgroup org-persist nil



[elpa] externals/pulsar 8af400c03f: Restore link to mailing list archive

2022-06-28 Thread ELPA Syncer
branch: externals/pulsar
commit 8af400c03ff9f7b4e2318bce3328e5eb43ec8ef7
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Restore link to mailing list archive
---
 pulsar.el | 1 +
 1 file changed, 1 insertion(+)

diff --git a/pulsar.el b/pulsar.el
index f35aa8cb5f..1942f8b33b 100644
--- a/pulsar.el
+++ b/pulsar.el
@@ -5,6 +5,7 @@
 ;; Author: Protesilaos Stavrou 
 ;; Maintainer: Pulsar Development <~protesilaos/pul...@lists.sr.ht>
 ;; URL: https://git.sr.ht/~protesilaos/pulsar
+;; Mailing-List: https://lists.sr.ht/~protesilaos/pulsar
 ;; Version: 0.3.1
 ;; Package-Requires: ((emacs "27.1"))
 ;; Keywords: convenience, pulse, highlight



[elpa] externals/pyim 255f15aa1f: Simplify pyim-convert-string-at-point

2022-06-28 Thread ELPA Syncer
branch: externals/pyim
commit 255f15aa1f7abf26cbe93756d0e2e8f7d5b08f45
Author: Feng Shu 
Commit: Feng Shu 

Simplify pyim-convert-string-at-point
---
 pyim-process.el |  11 ++---
 pyim.el | 121 
 tests/pyim-tests.el |   8 
 3 files changed, 61 insertions(+), 79 deletions(-)

diff --git a/pyim-process.el b/pyim-process.el
index 96a84ecbae..a8921a345c 100644
--- a/pyim-process.el
+++ b/pyim-process.el
@@ -864,7 +864,9 @@ BUG:拼音无法有效地处理多音字。"
   (let ((str (char-to-string char)))
 (cond
  ((pyim-process--invalid-char-p char) "")
- ((pyim-process--trigger-feature-run-p char) "")
+ ((and (pyim-outcome-trigger-p (char-to-string char))
+   (pyim-process-trigger-feature-run-p))
+  "")
  ((pyim-process--punctuation-half-width-p char) str)
  ((pyim-punctuation-p char)
   (pyim-punctuation-return-proper-punct char))
@@ -874,10 +876,9 @@ BUG:拼音无法有效地处理多音字。"
   "当 CHAR 是空格前面的字符时,返回 t."
   (< char ? ))
 
-(defun pyim-process--trigger-feature-run-p (char)
-  (and (pyim-outcome-trigger-p (char-to-string char))
-   (not (eq (pyim-process--trigger-feature-run)
-'without-trigger-feature
+(defun pyim-process-trigger-feature-run-p ()
+  (not (eq (pyim-process--trigger-feature-run)
+   'without-trigger-feature)))
 
 (defun pyim-process--trigger-feature-run ()
   (cond
diff --git a/pyim.el b/pyim.el
index 61352cff05..1ed0af8429 100644
--- a/pyim.el
+++ b/pyim.el
@@ -53,17 +53,6 @@
   "Pyim is a Chinese input method support quanpin, shuangpin, wubi and 
cangjie."
   :group 'leim)
 
-(defcustom pyim-convert-string-at-point-hook nil
-  "Hook of `pyim-convert-string-at-point'.
-
-这个 hook 运行时机:
-1. 获取并删除光标处 code 字符串之后。
-2. code 转换得到的中文字符串插入之前。
-
-Tip: 用户也可以利用 `pyim-outcome-trigger-function-default' 函数
-来构建适合自己的 hook 函数。"
-  :type 'hook)
-
 (defcustom pyim-select-word-by-number t
   "使用数字键来选择词条.
 
@@ -303,7 +292,8 @@ REFRESH-COMMON-DCACHE 已经废弃,不要再使用了。"
 (if (not (string-match-p "^\\cc+\\'" string))
 (error "不是纯中文字符串")
   (setq output (pyim-process-create-word string))
-  (message "将词条: %S 插入 personal file。" output))
+  (message "将词条: %S 插入 personal file。" output
+(deactivate-mark)))
 
 ;; ** 导入词条功能
 (defun pyim-import-words-and-counts (file &optional merge-method silent)
@@ -589,71 +579,54 @@ FILE 的格式与 `pyim-dcache-export' 生成的文件格式相同,
   (interactive "P")
   (unless (equal input-method-function 'pyim-input-method)
 (activate-input-method 'pyim))
+  (let ((string (pyim--string-at-region-or-point)))
+(cond
+ ((region-active-p) (pyim-create-word-from-selection))
+ ((pyim-process-trigger-feature-run-p) nil)
+ ((pyim--find-code string) (pyim--convert-string string))
+ (t (message "Pyim: pyim-convert-string-at-point did nothing.")
+
+(defun pyim--string-at-region-or-point ()
+  (if mark-active
+  (buffer-substring-no-properties
+   (region-beginning) (region-end))
+(buffer-substring (point) (line-beginning-position
+
+(defun pyim--find-code (string)
+  "从 STRING 末尾提取一个有效的 code."
   (let* ((case-fold-search nil)
  (scheme (pyim-scheme-current))
  (first-chars (pyim-scheme-first-chars scheme))
- (rest-chars (pyim-scheme-rest-chars scheme))
- (string (if mark-active
- (buffer-substring-no-properties
-  (region-beginning) (region-end))
-   (buffer-substring (point) (line-beginning-position
- (str-before-1 (pyim-char-before-to-string 0))
- (str-before-2 (pyim-char-before-to-string 1))
- (str-before-3 (pyim-char-before-to-string 2))
- code length)
-(cond
- ;; 如果用户已经选择词条,就将此词条添加到个人词库。
- ((region-active-p)
-  (pyim-create-word-from-selection)
-  (deactivate-mark))
- ;; 删除用户自定义词条。比如:在一个中文字符串后输入 2-,运行此命令可以将
- ;; 光标前两个中文字符组成的字符串,从个人词库删除。
- ((and (eq (char-before) ?-)
-   (pyim-string-match-p "[0-9]" str-before-2)
-   (pyim-string-match-p "\\cc" str-before-3))
-  (delete-char -2)
-  (pyim-delete-word-at-point
-   (string-to-number str-before-2)))
- ;; 输入"-"然后运行此命令,可以快速删除最近一次创建的词条。
- ((and (eq (char-before) ?-)
-   (pyim-string-match-p "\\cc" str-before-2))
-  (delete-char -1)
-  (pyim-delete-last-word))
- ;; 快速保存用户自定义词条。比如:在一个中文字符串后输入 2,运行此命令可以
- ;; 将光标前两个中文字符组成的字符串,保存到个人词库。
- ((and (member (char-before) (number-sequence ?2 ?9))
-   (pyim-string-match-p "\\cc" str-before-2))
-  (delete-char -1)
-  (pyim-create-word-at-point
-   (string-to-number str-before-1)))
- ;; 金手指功能
- ((string-match
-   ;; 创建一个 regexp, 用于提取出光标处一个适合
-   ;; 转换的字符串。
-   (format "[%s]+ *$"
-   (cl-delete-duplicates
-(concat first-chars rest-chars "'-")))
-   string)
-  (setq code
-;; 一些编程语言使用单引号 ' 做为字符串的标记,这里需要特殊处理。
-(replace-rege

[elpa] externals/tmr aa521d5ce6 3/3: Restore link to mailing list archive

2022-06-28 Thread ELPA Syncer
branch: externals/tmr
commit aa521d5ce673788c16b738180c7b66db6f45dbc5
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Restore link to mailing list archive
---
 tmr-notification.el | 1 +
 tmr-tabulated.el| 1 +
 tmr.el  | 1 +
 3 files changed, 3 insertions(+)

diff --git a/tmr-notification.el b/tmr-notification.el
index a61fc26c10..c248bad087 100644
--- a/tmr-notification.el
+++ b/tmr-notification.el
@@ -7,6 +7,7 @@
 ;; Daniel Mendler 
 ;; Maintainer: TMR Development <~protesilaos/t...@lists.sr.ht>
 ;; URL: https://git.sr.ht/~protesilaos/tmr
+;; Mailing-List: https://lists.sr.ht/~protesilaos/tmr
 ;; Version: 0.3.1
 ;; Package-Requires: ((emacs "27.1"))
 
diff --git a/tmr-tabulated.el b/tmr-tabulated.el
index ab70a180a4..741788af32 100644
--- a/tmr-tabulated.el
+++ b/tmr-tabulated.el
@@ -7,6 +7,7 @@
 ;; Daniel Mendler 
 ;; Maintainer: TMR Development <~protesilaos/t...@lists.sr.ht>
 ;; URL: https://git.sr.ht/~protesilaos/tmr
+;; Mailing-List: https://lists.sr.ht/~protesilaos/tmr
 ;; Version: 0.3.1
 ;; Package-Requires: ((emacs "27.1"))
 
diff --git a/tmr.el b/tmr.el
index bc96f573b6..0626c9acd9 100644
--- a/tmr.el
+++ b/tmr.el
@@ -7,6 +7,7 @@
 ;; Daniel Mendler 
 ;; Maintainer: TMR Development <~protesilaos/t...@lists.sr.ht>
 ;; URL: https://git.sr.ht/~protesilaos/tmr
+;; Mailing-List: https://lists.sr.ht/~protesilaos/tmr
 ;; Version: 0.3.1
 ;; Package-Requires: ((emacs "27.1"))
 ;; Keywords: convenience, timer



[elpa] externals/tmr 14fe997e9f 1/3: Improve Embark support

2022-06-28 Thread ELPA Syncer
branch: externals/tmr
commit 14fe997e9fc874c8ab95980d3c89c39731e89190
Author: Daniel Mendler 
Commit: Protesilaos Stavrou 

Improve Embark support

In order to better support Embark we make sure that the TMR
formatting is consistent across completion sessions. The
remaining time is displayed via an annotation-function.
---
 tmr.el | 78 +++---
 1 file changed, 32 insertions(+), 46 deletions(-)

diff --git a/tmr.el b/tmr.el
index 11adc73c28..b15cdc8f4b 100644
--- a/tmr.el
+++ b/tmr.el
@@ -128,17 +128,16 @@ Each function must accept a timer as argument."
   "Return a human-readable description for TIMER."
   (let ((start (tmr--format-creation-date timer))
 (end (tmr--format-end-date timer))
-(remaining (tmr--format-remaining timer "finished" "in "))
 (description (tmr--timer-description timer)))
 ;; We prefix it with TMR just so it is easier to find in
 ;; `view-echo-area-messages'.  The concise wording makes it flexible
 ;; enough to be used when starting a timer but also when cancelling
 ;; one: check `tmr-print-message-for-created-timer' and
 ;; `tmr-print-message-for-cancelled-timer'.
-(format "TMR start at %s; end at %s; %s%s"
+(format "TMR start %s; end %s; duration %s%s"
 (propertize start 'face 'success)
 (propertize end 'face 'error)
-remaining
+(tmr--timer-input timer)
 (if description
 (format " [%s]" (propertize description 'face 'bold))
   ""
@@ -158,24 +157,6 @@ optional `tmr--timer-description'."
 (propertize "Ended" 'face 'error)
 end)))
 
-(defun tmr--long-description-for-clonable-timer (timer)
-  "Return a human-readable description for clonable TIMER.
-This is like `tmr--long-description' with the inclusion of the
-original input for TIMER's duration."
-  (let ((start (tmr--format-creation-date timer))
-(end (tmr--format-end-date timer))
-(remaining (tmr--format-remaining timer "finished" "in "))
-(description (tmr--timer-description timer))
-(input (tmr--timer-input timer)))
-(format "TMR start at %s; end at %s; %s%s (input was '%s')"
-(propertize start 'face 'success)
-(propertize end 'face 'error)
-remaining
-(if description
-(format " [%s]" (propertize description 'face 'bold))
-  "")
-(propertize input 'face 'warning
-
 (defun tmr--format-creation-date (timer)
   "Return a string representing when TIMER was created."
   (tmr--format-time (tmr--timer-creation-date timer)))
@@ -184,20 +165,17 @@ original input for TIMER's duration."
   "Return a string representing when TIMER should finish."
   (tmr--format-time (tmr--timer-end-date timer)))
 
-(defun tmr--format-remaining (timer &optional finished prefix)
-  "Format remaining time of TIMER.
-FINISHED is the string used for finished timers.
-PREFIX is used as prefix for running timers."
-  (setq prefix (or prefix ""))
+(defun tmr--format-remaining (timer)
+  "Format remaining time of TIMER."
   (if (tmr--timer-finishedp timer)
-  (or finished "✔")
+  "✔"
 (let ((secs (round (- (float-time (tmr--timer-end-date timer))
   (float-time)
   (if (> secs 3600)
-  (format "%s%sh %sm" prefix (/ secs 3600) (/ (% secs 3600) 60))
+  (format "%sh %sm" (/ secs 3600) (/ (% secs 3600) 60))
 (if (> secs 60)
-(format "%s%sm %ss" prefix (/ secs 60) (% secs 60))
-  (format "%s%ss" prefix secs))
+(format "%sm %ss" (/ secs 60) (% secs 60))
+  (format "%ss" secs))
 
 (defun tmr--format-time (time)
   "Return a human-readable string representing TIME."
@@ -274,17 +252,21 @@ cancelling the original one."
 (defvar tmr--read-timer-hook nil
   "Hooks to execute to find current timer.")
 
-(defun tmr--read-timer (&optional active description)
+(defun tmr--timer-annotation (timer)
+  "Annotate TIMER completion candidate with remaining time."
+  (setq timer (get-text-property 0 'tmr-timer timer))
+  (if (tmr--timer-finishedp timer)
+  " (finished)"
+(format " (%s remaining)" (tmr--format-remaining timer
+
+(defun tmr--read-timer (&optional active)
   "Let the user choose a timer among all timers.
 Return the selected timer.  If there is a single timer, use that.
 If there are multiple timers, prompt for one with completion.  If
 there are no timers, return nil.
 
 If optional ACTIVE is non-nil, limit the list of timers to those
-that are still running.
-
-If optional DESCRIPTION function is provided use it to format the
-completion candidates."
+that are still running."
   (or
(run-hook-with-args-until-success 'tmr--read-timer-hook)
(pcase
@@ -294,16 +276,20 @@ completion candidates."
  ('nil (user-error "No timers available"))
  (`(,timer) timer)
  (tim

[elpa] externals/tmr 129c1afcb8 2/3: Add Daniel Mendler to co-authors; tweak Acknowledgements

2022-06-28 Thread ELPA Syncer
branch: externals/tmr
commit 129c1afcb8be25e9134324d46ebc963de5bd4958
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Add Daniel Mendler to co-authors; tweak Acknowledgements
---
 README.org  | 7 ---
 tmr-notification.el | 3 ++-
 tmr-tabulated.el| 5 +++--
 tmr.el  | 3 ++-
 4 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/README.org b/README.org
index e01b70c445..213ae654ac 100644
--- a/README.org
+++ b/README.org
@@ -335,10 +335,11 @@ Everything is in place to set up the package.
 
 TMR is meant to be a collective effort.  Every bit of help matters.
 
-+ Authors :: Protesilaos Stavrou (maintainer), Damien Cassou.
++ Authors :: Protesilaos Stavrou (maintainer), Damien Cassou, Daniel
+  Mendler.
 
-+ Contributions to the code or manual :: Christian Tietze, Damien
-  Cassou, Daniel Mendler, Nathan R. DeGruchy.
++ Contributions to the code or manual :: Christian Tietze, Nathan
+  R. DeGruchy.
 
 * GNU Free Documentation License
 :PROPERTIES:
diff --git a/tmr-notification.el b/tmr-notification.el
index a52fbbf956..a61fc26c10 100644
--- a/tmr-notification.el
+++ b/tmr-notification.el
@@ -3,7 +3,8 @@
 ;; Copyright (C) 2020-2022  Free Software Foundation, Inc.
 
 ;; Author: Protesilaos Stavrou ,
-;; Damien Cassou 
+;; Damien Cassou ,
+;; Daniel Mendler 
 ;; Maintainer: TMR Development <~protesilaos/t...@lists.sr.ht>
 ;; URL: https://git.sr.ht/~protesilaos/tmr
 ;; Version: 0.3.1
diff --git a/tmr-tabulated.el b/tmr-tabulated.el
index 2eec68ed4a..ab70a180a4 100644
--- a/tmr-tabulated.el
+++ b/tmr-tabulated.el
@@ -2,8 +2,9 @@
 
 ;; Copyright (C) 2020-2022  Free Software Foundation, Inc.
 
-;; Author: Damien Cassou ,
-;; Protesilaos Stavrou 
+;; Author: Protesilaos Stavrou ,
+;; Damien Cassou ,
+;; Daniel Mendler 
 ;; Maintainer: TMR Development <~protesilaos/t...@lists.sr.ht>
 ;; URL: https://git.sr.ht/~protesilaos/tmr
 ;; Version: 0.3.1
diff --git a/tmr.el b/tmr.el
index b15cdc8f4b..bc96f573b6 100644
--- a/tmr.el
+++ b/tmr.el
@@ -3,7 +3,8 @@
 ;; Copyright (C) 2020-2022  Free Software Foundation, Inc.
 
 ;; Author: Protesilaos Stavrou ,
-;; Damien Cassou 
+;; Damien Cassou ,
+;; Daniel Mendler 
 ;; Maintainer: TMR Development <~protesilaos/t...@lists.sr.ht>
 ;; URL: https://git.sr.ht/~protesilaos/tmr
 ;; Version: 0.3.1



[elpa] externals/fontaine 54b68afade: Restore link to mailing list archive

2022-06-28 Thread ELPA Syncer
branch: externals/fontaine
commit 54b68afadec9c07edf2e252d2a7c91f0512de4b8
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Restore link to mailing list archive
---
 fontaine.el | 1 +
 1 file changed, 1 insertion(+)

diff --git a/fontaine.el b/fontaine.el
index c6d1d58255..dc33bc34fd 100644
--- a/fontaine.el
+++ b/fontaine.el
@@ -5,6 +5,7 @@
 ;; Author: Protesilaos Stavrou 
 ;; Maintainer: Fontaine Development <~protesilaos/fonta...@lists.sr.ht>
 ;; URL: https://git.sr.ht/~protesilaos/fontaine
+;; Mailing-List: https://lists.sr.ht/~protesilaos/fontaine
 ;; Version: 0.2.3
 ;; Package-Requires: ((emacs "27.1"))
 



[elpa] externals/logos 904c3dfe28: Restore link to mailing list archive

2022-06-28 Thread ELPA Syncer
branch: externals/logos
commit 904c3dfe287dcf0d8432e2ea153ffe3ab477f74e
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Restore link to mailing list archive
---
 logos.el | 1 +
 1 file changed, 1 insertion(+)

diff --git a/logos.el b/logos.el
index 3f71db8f37..33b2240f65 100644
--- a/logos.el
+++ b/logos.el
@@ -5,6 +5,7 @@
 ;; Author: Protesilaos Stavrou 
 ;; Maintainer: Logos Development <~protesilaos/lo...@lists.sr.ht>
 ;; URL: https://git.sr.ht/~protesilaos/logos
+;; Mailing-List: https://lists.sr.ht/~protesilaos/logos
 ;; Version: 0.4.0
 ;; Package-Requires: ((emacs "27.1"))
 ;; Keywords: convenience, focus, writing, presentation, narrowing



[elpa] externals/tmr updated (0c9f901dd5 -> aa521d5ce6)

2022-06-28 Thread ELPA Syncer
elpasync pushed a change to branch externals/tmr.

  from  0c9f901dd5 Name the mailing list address as the "Maintainer:"
   new  14fe997e9f Improve Embark support
   new  129c1afcb8 Add Daniel Mendler to co-authors; tweak Acknowledgements
   new  aa521d5ce6 Restore link to mailing list archive


Summary of changes:
 README.org  |  7 +++--
 tmr-notification.el |  4 ++-
 tmr-tabulated.el|  6 ++--
 tmr.el  | 82 +++--
 4 files changed, 46 insertions(+), 53 deletions(-)



[nongnu] elpa/forth-mode 162b79f005: Better indentation in the presence of POSTPONE.

2022-06-28 Thread ELPA Syncer
branch: elpa/forth-mode
commit 162b79f005a64b1f91e60b8f4c022d1d90cd3d95
Author: Helmut Eller 
Commit: Lars Brinkhoff 

Better indentation in the presence of POSTPONE.

Make the SMIE lexer aware of POSTPONE, so that indentation isn't so
easily messed up when POSTPONE quotes IF or other words relevant to
indentation.

* forth-smie.el (forth-smie--backward-token)
  (forth-smie--backward-token): Look at the next two words, so that we
  can recognize "POSTPONE IF" as a single token.
  (forth-smie--backward-word, forth-smie--forward-word): New helpers.
  (forth-smie--parsing-word-regexp): New precomputed regexp.

* test/tests.el (forth-indent-postpone, forth-smie-backward-token)
  (forth-smie-forward-token): New tests.
  (forth-assert-backward-token,forth-assert-forward-token): New
  helpers.
---
 forth-smie.el | 40 --
 test/tests.el | 80 ++-
 2 files changed, 111 insertions(+), 9 deletions(-)

diff --git a/forth-smie.el b/forth-smie.el
index df6678151d..077f387894 100644
--- a/forth-smie.el
+++ b/forth-smie.el
@@ -75,19 +75,43 @@ This variable can also be set in .dir-locals.el, e.g.:
 (`(:list-intro . ,_) t)
 (_ nil)))
 
+(defconst forth-smie--parsing-word-regexp
+  (eval-when-compile
+(concat "^"
+   (regexp-opt '("postpone" "[']" "[char]"))
+   "$")))
+
+(defun forth-smie--forward-word ()
+  (let* ((start (progn (skip-syntax-forward " ") (point)))
+(end (progn (skip-syntax-forward "w_") (point
+(buffer-substring-no-properties start end)))
+
+(defun forth-smie--backward-word ()
+  (let* ((end (progn (skip-syntax-backward " ") (point)))
+(start (progn (skip-syntax-backward "w_") (point
+(buffer-substring-no-properties start end)))
+
 (defun forth-smie--forward-token ()
   (forward-comment (point-max))
-  (downcase (buffer-substring-no-properties
-(point)
-(progn (skip-syntax-forward "w_")
-   (point)
+  (let* ((word1 (downcase (forth-smie--forward-word)))
+(pos1 (point))
+(word2 (downcase (forth-smie--forward-word
+(cond ((string-match forth-smie--parsing-word-regexp word1)
+  (list word1 word2))
+ (t
+  (goto-char pos1)
+  word1
 
 (defun forth-smie--backward-token ()
   (forward-comment (- (point)))
-  (downcase (buffer-substring-no-properties
-(point)
-(progn (skip-syntax-backward "w_")
-   (point)
+  (let* ((word1 (downcase (forth-smie--backward-word)))
+(pos1 (point))
+(word2 (downcase (forth-smie--backward-word
+(cond ((string-match forth-smie--parsing-word-regexp word2)
+  (list word2 word1))
+ (t
+  (goto-char pos1)
+  word1
 
 (defun forth-smie-setup ()
   (smie-setup (forth-smie--grammar) #'forth-smie--indentation-rules
diff --git a/test/tests.el b/test/tests.el
index 94a87d2d12..039319d41b 100644
--- a/test/tests.el
+++ b/test/tests.el
@@ -120,6 +120,22 @@ The whitespace before and including \"|\" on each line is 
removed."
 (progn . ,body)
 (kill-process proc
 
+(defun forth-assert-backward-token (content token)
+  (cl-destructuring-bind (content pos1 pos2) (forth-strip-|-and-¹² content)
+(forth-with-temp-buffer content
+  (goto-char pos1)
+  (let ((token2 (forth-smie--backward-token)))
+   (should (equal token2 token))
+   (should (= (point) pos2))
+
+(defun forth-assert-forward-token (content token)
+  (cl-destructuring-bind (content pos1 pos2) (forth-strip-|-and-¹² content)
+(forth-with-temp-buffer content
+  (goto-char pos1)
+  (let ((token2 (forth-smie--forward-token)))
+   (should (equal token2 token))
+   (should (= (point) pos2))
+
 (ert-deftest forth-paren-comment-font-lock ()
   (forth-assert-face "→( )" font-lock-comment-delimiter-face)
   (forth-assert-face "→.( )" font-lock-comment-face)
@@ -306,10 +322,44 @@ The whitespace before and including \"|\" on each line is 
removed."
|;
|execute"))
 
+(ert-deftest forth-indent-postpone ()
+  (forth-should-indent
+   ": foo
+   |  postpone :
+   |  42 postpone literal
+   |  postpone ;
+   |;")
+  (forth-should-indent
+   ": foo
+   |  POSTPONE :
+   |  42 POSTPONE literal
+   |  postpone ;
+   |;")
+  (forth-should-indent
+   ": foo
+   |  postpone if
+   |  if
+   |postpone then
+   |  else
+   |postpone then
+   |  then
+   |;")
+  (forth-should-indent
+   ": foo
+   |  ['] :
+   |  if
+   |postpone ;
+   |  else
+   |postpone recurse postpone ;
+   |  then
+   |;")
+  )
+
 (ert-deftest forth-sexp-movements ()
   (forth-assert-forward-sexp " ¹: foo bar ;² \ x")
   (forth-assert-forward-sexp " ¹:noname foo bar ;² \ x")
-  (forth-assert-forward-sexp " ¹if drop exit else 1+ then² bar "))
+  (forth-assert-forward-sexp " ¹if drop exit else 1+ t