[elpa] externals/debbugs updated (af445940e3 -> c2f34b2379)

2025-02-11 Thread Michael Albinus via
albinus pushed a change to branch externals/debbugs.

  from  af445940e3 Refine the debbugs-gnu-summary-keep-subject regexp, 
again.
   new  b1432d4f1a tests: Call new setup and teardown functions in tests
   new  d014e21f9e Factor cache accesses into dedicated functions
   new  c2f34b2379 Use consequently `when-let*' and `if-let*


Summary of changes:
 debbugs-gnu.el| 150 +-
 debbugs.el| 113 ++---
 test/debbugs-tests.el | 132 
 3 files changed, 228 insertions(+), 167 deletions(-)



[elpa] externals/debbugs c2f34b2379 3/3: Use consequently `when-let*' and `if-let*

2025-02-11 Thread Michael Albinus via
branch: externals/debbugs
commit c2f34b23793310c17a77bd2555488af28737a93b
Author: Michael Albinus 
Commit: Michael Albinus 

Use consequently `when-let*' and `if-let*

* debbugs.el:
* debbugs-gnu.el: Use consequently `when-let*' and `if-let*.
---
 debbugs-gnu.el | 150 -
 debbugs.el |  20 
 2 files changed, 84 insertions(+), 86 deletions(-)

diff --git a/debbugs-gnu.el b/debbugs-gnu.el
index a75274c17e..75003a092c 100644
--- a/debbugs-gnu.el
+++ b/debbugs-gnu.el
@@ -1181,39 +1181,40 @@ are taken from the cache instead."
 (defun debbugs-gnu-print-entry (list-id cols)
   "Insert a debbugs entry at point.
 Used instead of `tabulated-list-print-entry'."
-  (let ((case-fold-search t))
-(when (and
-  ;; We may have a narrowing in effect.
-  (or (not debbugs-gnu-limit)
-  (memq (alist-get 'id list-id) debbugs-gnu-limit))
-  ;; Filter suppressed bugs.
-  (or (not debbugs-gnu-local-suppress)
-  (not (catch :suppress
- (dolist (check debbugs-gnu-default-suppress-bugs)
-   (when (string-match
-  (cdr check) (alist-get (car check) list-id ""))
- (throw :suppress t))
-  ;; Filter search list.
-  (not (catch :suppress
- (dolist (check debbugs-gnu-local-filter)
-   (let ((val (alist-get (car check) list-id)))
- (if (stringp (cdr check))
- ;; Regular expression.
- (when (not (string-match (cdr check) (or val "")))
-   (throw :suppress t))
-   ;; Time value.
-   (when (or (and (numberp (cadr check))
-  (< (cadr check) val))
- (and (numberp (cddr check))
-  (> (cddr check) val)))
- (throw :suppress t
-
-  (tabulated-list-print-entry list-id cols)
-
-  ;; Add properties.
-  (add-text-properties
-   (line-beginning-position 0) (line-end-position 0)
-   '(mouse-face highlight)
+  (when-let* ((case-fold-search t)
+  ;; We may have a narrowing in effect.
+ ((or (not debbugs-gnu-limit)
+  (memq (alist-get 'id list-id) debbugs-gnu-limit)))
+ ;; Filter suppressed bugs.
+ ((or (not debbugs-gnu-local-suppress)
+  (not (catch :suppress
+ (dolist (check debbugs-gnu-default-suppress-bugs)
+   (when
+(string-match
+(cdr check) (alist-get (car check) list-id ""))
+ (throw :suppress t)))
+ ;; Filter search list.
+ ((not (catch :suppress
+ (dolist (check debbugs-gnu-local-filter)
+   (let ((val (alist-get (car check) list-id)))
+ (if (stringp (cdr check))
+ ;; Regular expression.
+ (when
+  (not (string-match (cdr check) (or val "")))
+   (throw :suppress t))
+   ;; Time value.
+   (when (or (and (numberp (cadr check))
+  (< (cadr check) val))
+ (and (numberp (cddr check))
+  (> (cddr check) val)))
+ (throw :suppress t)
+
+(tabulated-list-print-entry list-id cols)
+
+;; Add properties.
+(add-text-properties
+ (line-beginning-position 0) (line-end-position 0)
+ '(mouse-face highlight
 
 (defun debbugs-gnu-menu-map-emacs-enabled ()
   "Whether \"Show Release Blocking Bugs\" is enabled in the menu."
@@ -1518,20 +1519,20 @@ modified on the debbugs server, consider typing \\`C-u 
g'.
 (defun debbugs-gnu-show-blocked-by-reports ()
   "Display all bug reports this report is blocked by."
   (interactive)
-  (let ((id (debbugs-gnu-current-id))
-   (status (debbugs-gnu-current-status)))
-(if (null (alist-get 'blockedby status))
-   (message "Bug %d is not blocked by any other bug" id)
-  (apply #'debbugs-gnu-bugs (alist-get 'blockedby status)
+  (if-let* ((id (debbugs-gnu-current-id))
+   (status (debbugs-gnu-current-status))
+((null (alist-get 'blockedby status
+  (message "Bug %d is not blocked by any other bug" id)
+(apply #'debbugs-gnu-bugs (alist-get 'blockedby status
 
 (defun debbugs-gnu-show-blocking-reports ()
   "Display all bug reports this report is blocking."
   (interactive)
-  (let ((id (debbugs-gnu-current-id))
-   (status (debbugs-gnu-current-status)))
-(if (null 

[elpa] externals/debbugs d014e21f9e 2/3: Factor cache accesses into dedicated functions

2025-02-11 Thread Michael Albinus via
branch: externals/debbugs
commit d014e21f9e6bd058ef5722abcd0679a83f57c4db
Author: Morgan Smith 
Commit: Michael Albinus 

Factor cache accesses into dedicated functions

* debbugs.el (debbugs-get-cache, debbugs-put-cache): New functions.
(debbugs-newest-bugs, debbugs-get-status): Use new functions.

* test/debbugs-tests.el: Use advice to set the `cache_time' around
the new functions.  (Bug#75789)
(debbugs-test-newest-bug-cached): New test.
(debbugs-test-get-status): Add test for caching behavior.
---
 debbugs.el| 107 ++
 test/debbugs-tests.el |  57 ++-
 2 files changed, 103 insertions(+), 61 deletions(-)

diff --git a/debbugs.el b/debbugs.el
index 5ab1dfc4ba..dd9b6dc09f 100644
--- a/debbugs.el
+++ b/debbugs.el
@@ -118,6 +118,33 @@ t or 0 disables caching, nil disables expiring."
 (const :tag "Forever" nil)
 (integer :tag "Seconds")))
 
+(defun debbugs-get-cache (bug-number)
+  "Return the cached status entry for the bug identified by BUG-NUMBER."
+  (let ((status (gethash bug-number debbugs-cache-data)))
+(when (and status
+   (or (null debbugs-cache-expiry)
+   (and
+(natnump debbugs-cache-expiry)
+(> (alist-get 'cache_time status)
+   (- (float-time) debbugs-cache-expiry)
+  status)))
+
+(defun debbugs-put-cache (bug-number status &optional ttl)
+  "Put the STATUS entry for the bug BUG-NUMBER in the cache.
+Return STATUS."
+  (if (or (null debbugs-cache-expiry)
+  (and (natnump debbugs-cache-expiry)
+   (not (zerop debbugs-cache-expiry
+  (let ((cache-time (float-time)))
+;; Kind of a hack for TTL that assume that `debbugs-cache-expiry'
+;; doesn't change
+(when (and ttl (natnump debbugs-cache-expiry))
+  (setq cache-time (+ ttl (- cache-time debbugs-cache-expiry
+(puthash bug-number
+ (cons (cons 'cache_time cache-time) status)
+ debbugs-cache-data))
+status))
+
 (defun debbugs-soap-invoke (operation-name &rest parameters)
   "Invoke the SOAP connection.
 OPERATION-NAME and PARAMETERS are as described in `soap-invoke'."
@@ -325,41 +352,29 @@ patch:
 (defun debbugs-newest-bugs (amount)
   "Return the list of bug numbers, according to AMOUNT (a number) latest bugs."
   (if (= amount 1)
-  ;; We cache it as bug "0" in `debbugs-cache-data'.
-  (let ((status (gethash 0 debbugs-cache-data)))
-   (unless (and
-status
-(or
- (null debbugs-cache-expiry)
- (and
-  (natnump debbugs-cache-expiry)
-  (> (alist-get 'cache_time status)
- (- (float-time) debbugs-cache-expiry)
- ;; Due to `debbugs-gnu-completion-table', this function
- ;; could be called in rapid sequence.  We cache temporarily
- ;; the value nil, therefore.
- (when (natnump debbugs-cache-expiry)
-   (puthash
-0
-(list (cons 'cache_time (1+ (- (float-time) debbugs-cache-expiry)))
-  (list 'newest_bug))
-debbugs-cache-data))
- ;; Compute the value.
- (setq
-  status
-  (list
-   (cons 'cache_time (float-time))
-   (cons 'newest_bug
- (caar
-  (debbugs-soap-invoke
-   debbugs-wsdl debbugs-port "newest_bugs" amount)
-
- ;; Cache it.
- (when (or (null debbugs-cache-expiry) (natnump debbugs-cache-expiry))
-   (puthash 0 status debbugs-cache-data)))
-
-   ;; Return the value, as list.
-   (list (alist-get 'newest_bug status)))
+  ;; We cache it as bug "0"
+  (let ((status (debbugs-get-cache 0)))
+(unless status
+  ;; Due to `debbugs-gnu-completion-table', this function
+  ;; could be called in rapid sequence.  We cache temporarily
+  ;; the value nil, therefore.
+  (when (natnump debbugs-cache-expiry)
+(debbugs-put-cache 0 (list 'newest_bug) 1))
+
+  ;; Compute the value.
+  (setq
+   status
+   (list
+(cons 'newest_bug
+  (caar
+   (debbugs-soap-invoke
+debbugs-wsdl debbugs-port "newest_bugs" amount)
+
+  ;; Cache it.
+  (debbugs-put-cache 0 status))
+
+;; Return the value, as list.
+(list (alist-get 'newest_bug status)))
 
 (sort
  (car (debbugs-soap-invoke
@@ -477,15 +492,8 @@ Example:
  (delq nil
   (mapcar
(lambda (bug)
- (let ((status (gethash bug debbugs-cache-data)))
-   (if (and
-status
-(or
- (null debbugs-cache-expiry)
-

[elpa] externals/debbugs b1432d4f1a 1/3: tests: Call new setup and teardown functions in tests

2025-02-11 Thread Michael Albinus via
branch: externals/debbugs
commit b1432d4f1a9d873b711c1edb650fe8bb3d514ed8
Author: Morgan Smith 
Commit: Michael Albinus 

tests: Call new setup and teardown functions in tests

* test/debbugs-tests.el: (Bug#75789)
Create new functions `debbugs-test--setup' and `debbugs-test--teardown' to 
be
run before and after each test.
Create new macro `ert-deftest--debbugs' to automatically call the new
functions.
Adjust tests to use the new macro.
---
 test/debbugs-tests.el | 91 +++
 1 file changed, 56 insertions(+), 35 deletions(-)

diff --git a/test/debbugs-tests.el b/test/debbugs-tests.el
index ce6489ca39..8402a4fff9 100644
--- a/test/debbugs-tests.el
+++ b/test/debbugs-tests.el
@@ -89,49 +89,70 @@
   nil)
   return)))
 
-(add-function
- :override (symbol-function #'soap-invoke-internal)
- #'debbugs-test--soap-invoke-internal)
+(defun debbugs-test--setup ()
+  "Mock network and time functions.
+These mock functions are needed to make the tests reproducible."
+  (setq debbugs-test--soap-operation-name nil)
+  (setq debbugs-test--soap-parameters nil)
+
+  (add-function
+   :override (symbol-function #'soap-invoke-internal)
+   #'debbugs-test--soap-invoke-internal))
+
+(defun debbugs-test--teardown ()
+  "Restore functions to as they where before."
+  (setq debbugs-test--soap-operation-name nil)
+  (setq debbugs-test--soap-parameters nil)
+
+  (remove-function
+   (symbol-function #'soap-invoke-internal)
+   #'debbugs-test--soap-invoke-internal))
+
+(defmacro ert-deftest--debbugs (name args docstring &rest body)
+  "The same as `ert-deftest' but runs setup and teardown functions."
+  (declare
+   (doc-string 3)
+   (indent 2))
+  `(ert-deftest ,name ,args ,docstring
+(debbugs-test--setup)
+,@body
+(debbugs-test--teardown)))
 
 ;;; Tests:
 
-(ert-deftest debbugs-test-get-bugs ()
+(ert-deftest--debbugs debbugs-test-get-bugs ()
   "Test \"get_bugs\"."
-  (let (debbugs-test--soap-operation-name debbugs-test--soap-parameters)
-(debbugs-get-bugs
- :tag "patch"
- :severity "critical"
- :status "open"
- :status "forwarded")
-(should (string-equal debbugs-test--soap-operation-name "get_bugs"))
-(should (equal debbugs-test--soap-parameters
-   '(["tag" "patch" "severity" "critical"
-  "status" "open" "status" "forwarded"])
-
-(ert-deftest debbugs-test-newest-bugs ()
+  (debbugs-get-bugs
+   :tag "patch"
+   :severity "critical"
+   :status "open"
+   :status "forwarded")
+  (should (string-equal debbugs-test--soap-operation-name "get_bugs"))
+  (should (equal debbugs-test--soap-parameters
+ '(["tag" "patch" "severity" "critical"
+"status" "open" "status" "forwarded"]
+
+(ert-deftest--debbugs debbugs-test-newest-bugs ()
   "Test \"newest_bugs\"."
-  (let (debbugs-test--soap-operation-name debbugs-test--soap-parameters)
-(debbugs-newest-bugs 4)
-(should (string-equal debbugs-test--soap-operation-name "newest_bugs"))
-(should (equal debbugs-test--soap-parameters '(4)
+  (debbugs-newest-bugs 4)
+  (should (string-equal debbugs-test--soap-operation-name "newest_bugs"))
+  (should (equal debbugs-test--soap-parameters '(4
 
-(ert-deftest debbugs-test-get-status ()
+(ert-deftest--debbugs debbugs-test-get-status ()
   "Test \"get_status\"."
-  (let (debbugs-test--soap-operation-name debbugs-test--soap-parameters)
-(cl-letf (((symbol-function #'float-time)
-   (lambda (&optional _specified-time) 5000)))
-  (should (= (float-time) 5000))
-  (should (equal (sort (car (debbugs-get-status 64064)))
- (sort (car debbugs-test--bug-status
-  (should (string-equal debbugs-test--soap-operation-name "get_status"))
-  (should (equal debbugs-test--soap-parameters '([64064]))
-
-(ert-deftest debbugs-test-get-usertag ()
+  (cl-letf (((symbol-function #'float-time)
+ (lambda (&optional _specified-time) 5000)))
+(should (= (float-time) 5000))
+(should (equal (sort (car (debbugs-get-status 64064)))
+   (sort (car debbugs-test--bug-status
+(should (string-equal debbugs-test--soap-operation-name "get_status"))
+(should (equal debbugs-test--soap-parameters '([64064])
+
+(ert-deftest--debbugs debbugs-test-get-usertag ()
   "Test \"get_usertag\"."
-  (let (debbugs-test--soap-operation-name debbugs-test--soap-parameters)
-(should (equal (debbugs-get-usertag :user "emacs") '("hi")))
-(should (string-equal debbugs-test--soap-operation-name "get_usertag"))
-(should (equal debbugs-test--soap-parameters '("emacs")
+  (should (equal (debbugs-get-usertag :user "emacs") '("hi")))
+  (should (string-equal debbugs-test--soap-operation-name "get_usertag"))
+  (should (equal debbugs-test--soap-parameters '("emacs"
 
 (provide 'debbugs-tests)
 



[elpa] externals/ellama 50460810bf 4/9: Update README

2025-02-11 Thread ELPA Syncer
branch: externals/ellama
commit 50460810bf5f5a40670969eeec1da1fb32e59293
Author: Sergey Kostyaev 
Commit: Sergey Kostyaev 

Update README

Updated README.org with details of the new command and additional
configuration options related to text display and context buffer
styling.
---
 README.org | 10 ++
 1 file changed, 10 insertions(+)

diff --git a/README.org b/README.org
index d58465f66c..f5ca823e3f 100644
--- a/README.org
+++ b/README.org
@@ -253,6 +253,10 @@ Add selected region to context.
 
 Add info node to context.
 
+*** ellama-context-reset
+
+Clear global context.
+
 *** ellama-chat-translation-enable
 
 Chat translation enable.
@@ -313,6 +317,7 @@ Ellama, using the ~ellama-keymap-prefix~ prefix (not set by 
default):
 | "x f"  | ellama-context-add-file | Context add file |
 | "x s"  | ellama-context-add-selection| Context add selection|
 | "x i"  | ellama-context-add-info-node| Context add info node|
+| "x r"  | ellama-context-reset| Context reset|
 | "p s"  | ellama-provider-select  | Provider select  |
 
 ** Configuration
@@ -371,6 +376,11 @@ argument generated text string.
 - ~ellama-translate-italic~: Translate italic during markdown to org
   transformations. Enabled by default.
 - ~ellama-extraction-provider~: LLM provider for data extraction.
+- ~ellama-text-display-limit~: Limit for text display in context elements.
+- ~ellama-context-poshandler~: Position handler for displaying context buffer.
+  ~posframe-poshandler-frame-top-center~ will be used if not set.
+- ~ellama-context-border-width~: Border width for the context buffer.
+- ~ellama-context-element-padding-size~: Padding size for context elements.
 
 ** Acknowledgments
 



[elpa] externals/ellama d1ce220547 2/9: Refactor session context handling

2025-02-11 Thread ELPA Syncer
branch: externals/ellama
commit d1ce220547bc8e0604aba4e9de579198bfc421af
Author: Sergey Kostyaev 
Commit: Sergey Kostyaev 

Refactor session context handling

Refactored the way session context is handled by removing
`ellama--new-session-context` and using `ellama--global-context`
consistently. This change simplifies the code and ensures that the
context is managed more uniformly across different functions.
Additionally, updated `ellama--prompt-with-context` to only add
context if it exists.
---
 ellama.el | 35 ---
 1 file changed, 16 insertions(+), 19 deletions(-)

diff --git a/ellama.el b/ellama.el
index 9ffa8a5e7c..b95d32a229 100644
--- a/ellama.el
+++ b/ellama.el
@@ -739,8 +739,6 @@ EXTRA contains additional information."
   "Generate name for ellama ACTION by PROVIDER according to PROMPT."
   (ellama--fix-file-name (funcall ellama-naming-scheme provider action 
prompt)))
 
-(defvar ellama--new-session-context nil)
-
 (defun ellama-get-nick-prefix-for-mode ()
   "Return preferred header prefix char based om the current mode.
 Defaults to #, but supports `org-mode'.  Depends on `ellama-major-mode'."
@@ -780,15 +778,14 @@ If EPHEMERAL non nil new session will not be associated 
with any file."
  ellama--current-session)))
 (session (make-ellama-session
   :id id :provider provider :file file-name
-  :context (if previous-session
-   (ellama-session-context previous-session)
- ellama--new-session-context)))
+  :context (or (when previous-session
+ (ellama-session-context previous-session))
+   ellama--global-context)))
 (buffer (if file-name
 (progn
   (make-directory ellama-sessions-directory t)
   (find-file-noselect file-name))
   (get-buffer-create id
-(setq ellama--new-session-context nil)
 (setq ellama--current-session-id id)
 (puthash id buffer ellama--active-sessions)
 (with-current-buffer buffer
@@ -916,9 +913,8 @@ If EPHEMERAL non nil new session will not be associated 
with any file."
   :provider (ellama-session-provider session)
   :file (ellama-session-file session)
   :prompt (ellama-session-prompt session)
-  :context ellama--new-session-context
+  :context ellama--global-context
   :extra extra)))
-  (setq ellama--new-session-context nil)
   (setq ellama--current-session-id (ellama-session-id 
ellama--current-session))
   (puthash (ellama-session-id ellama--current-session)
   buffer ellama--active-sessions)
@@ -1052,8 +1048,7 @@ If EPHEMERAL non nil new session will not be associated 
with any file."
   (if-let* ((id ellama--current-session-id)
(session (with-current-buffer (ellama-get-session-buffer id)
   ellama--current-session)))
-  (push element (ellama-session-context session))
-(push element ellama--new-session-context))
+  (push element (ellama-session-context session)))
   (push element ellama--global-context)
   (get-buffer-create ellama--context-buffer t)
   (with-current-buffer ellama--context-buffer
@@ -1524,15 +1519,17 @@ If EPHEMERAL non nil new session will not be associated 
with any file."
 (defun ellama--prompt-with-context (prompt)
   "Add context to PROMPT for sending to llm."
   (let* ((session ellama--current-session)
-(context (if session
- (ellama-session-context session)
-   ellama--global-context)))
-(concat (string-join
-(cons "Context:"
-  (mapcar #'ellama-context-element-extract context))
-"\n")
-   "\n\n"
-   prompt)))
+(context (or (when session
+   (ellama-session-context session))
+ ellama--global-context)))
+(if context
+   (concat (string-join
+(cons "Context:"
+  (mapcar #'ellama-context-element-extract context))
+"\n")
+   "\n\n"
+   prompt)
+  prompt)))
 
 (defun ellama-chat-buffer-p (buffer)
   "Return non-nil if BUFFER is an ellama chat buffer."



[elpa] externals/ellama eafcfe7e01 5/9: Add proofreading functionality

2025-02-11 Thread ELPA Syncer
branch: externals/ellama
commit eafcfe7e01deaf01a0fbec0a14f18fc232223a5d
Author: Sergey Kostyaev 
Commit: Sergey Kostyaev 

Add proofreading functionality

Added new command `ellama-proofread` to proofread selected text or
buffer. Updated keybindings and documentation accordingly.
---
 README.org |  5 +
 ellama.el  | 15 +++
 2 files changed, 20 insertions(+)

diff --git a/README.org b/README.org
index f5ca823e3f..f4c0ab7a64 100644
--- a/README.org
+++ b/README.org
@@ -202,6 +202,10 @@ provided change using Ellama.
 
 Generate commit message based on diff.
 
+*** ellama-proofread
+
+Proofread selected text.
+
 *** ellama-improve-wording
 
 Enhance the wording in the currently selected region or buffer using Ellama.
@@ -297,6 +301,7 @@ Ellama, using the ~ellama-keymap-prefix~ prefix (not set by 
default):
 | "s r"  | ellama-session-rename   | Session rename   |
 | "s d"  | ellama-session-remove   | Session delete   |
 | "s a"  | ellama-session-switch   | Session activate |
+| "P"| ellama-proofread| Proofread|
 | "i w"  | ellama-improve-wording  | Improve wording  |
 | "i g"  | ellama-improve-grammar  | Improve grammar and spelling |
 | "i c"  | ellama-improve-conciseness  | Improve conciseness  |
diff --git a/ellama.el b/ellama.el
index 746c7b127c..519c432526 100644
--- a/ellama.el
+++ b/ellama.el
@@ -134,6 +134,7 @@
 (define-key map (kbd "i w") 'ellama-improve-wording)
 (define-key map (kbd "i g") 'ellama-improve-grammar)
 (define-key map (kbd "i c") 'ellama-improve-conciseness)
+(define-key map (kbd "P") 'ellama-proofread)
 ;; make
 (define-key map (kbd "m l") 'ellama-make-list)
 (define-key map (kbd "m t") 'ellama-make-table)
@@ -268,6 +269,11 @@ You are a summarizer. You write a summary of the input 
**IN THE SAME LANGUAGE AS
   :group 'ellama
   :type 'string)
 
+(defcustom ellama-proofread-prompt-template "proofread"
+  "Prompt template for `ellama-proofread'."
+  :group 'ellama
+  :type 'string)
+
 (defcustom ellama-improve-conciseness-prompt-template "make it as simple and 
concise as possible"
   "Prompt template for `ellama-improve-conciseness'."
   :group 'ellama
@@ -2225,6 +2231,14 @@ prefix (\\[universal-argument]), prompt the user to 
amend the template."
   (interactive "p")
   (ellama-change ellama-improve-wording-prompt-template edit-template))
 
+;;;###autoload
+(defun ellama-proofread (&optional edit-template)
+  "Proofread the currently selected region or buffer.
+When the value of EDIT-TEMPLATE is 4, or with one `universal-argument' as
+prefix (\\[universal-argument]), prompt the user to amend the template."
+  (interactive "p")
+  (ellama-change ellama-proofread-prompt-template edit-template))
+
 ;;;###autoload
 (defun ellama-improve-conciseness (&optional edit-template)
   "Make the text of the currently selected region or buffer concise and simple.
@@ -2549,6 +2563,7 @@ Call CALLBACK on result list of strings.  ARGS contains 
keys for fine control.
   "Main Menu."
   [["Main"
 ("c" "Chat" ellama-chat)
+("P" "Proofread" ellama-proofread)
 ("a" "Ask Commands" ellama-transient-ask-menu)
 ("C" "Code Commands" ellama-transient-code-menu)]]
   [["Text"



[elpa] externals/ellama c20394170b 9/9: Merge pull request #210 from s-kostyaev/improve-working-with-context

2025-02-11 Thread ELPA Syncer
branch: externals/ellama
commit c20394170bcaf4333d44b64d96a015b57113a6bb
Merge: 6fb94007b9 6279b2f2a6
Author: Sergey Kostyaev 
Commit: GitHub 

Merge pull request #210 from s-kostyaev/improve-working-with-context

Improve context management and add new commands
---
 NEWS.org |   4 ++
 README.org   |  23 +++
 ellama.el| 190 +--
 tests/test-ellama.el |  30 
 4 files changed, 225 insertions(+), 22 deletions(-)

diff --git a/NEWS.org b/NEWS.org
index a24c1ebbcb..6d6904f524 100644
--- a/NEWS.org
+++ b/NEWS.org
@@ -1,3 +1,7 @@
+* Version 1.0.0
+- Added ~ellama-write~ command.
+- Added ~ellama-proofread~ command.
+- Added global context management, including functions to reset context.
 * Version 0.13.11
 - Add function ~ellama-make-semantic-similar-p-with-context~ that
   return test function for checking if two provided texts are meaning
diff --git a/README.org b/README.org
index d58465f66c..8fa8a8ffc5 100644
--- a/README.org
+++ b/README.org
@@ -108,6 +108,13 @@ buffer and continue conversation. If called with universal 
argument
 (~C-u~) will start new session with llm model interactive selection.
 [[imgs/ellama-ask.gif]]
 
+*** ellama-write
+
+This command allows you to generate text using an LLM. When called
+interactively, it prompts for an instruction that is then used to
+generate text based on the context. If a region is active, the
+selected text is added to the context before generating the response.
+
 *** ellama-chat-send-last-message
 
 Send last user message extracted from current ellama chat buffer.
@@ -202,6 +209,10 @@ provided change using Ellama.
 
 Generate commit message based on diff.
 
+*** ellama-proofread
+
+Proofread selected text.
+
 *** ellama-improve-wording
 
 Enhance the wording in the currently selected region or buffer using Ellama.
@@ -253,6 +264,10 @@ Add selected region to context.
 
 Add info node to context.
 
+*** ellama-context-reset
+
+Clear global context.
+
 *** ellama-chat-translation-enable
 
 Chat translation enable.
@@ -280,6 +295,7 @@ Ellama, using the ~ellama-keymap-prefix~ prefix (not set by 
default):
 
 | Keymap | Function| Description  |
 |+-+--|
+| "w"| ellama-write| Write|
 | "c c"  | ellama-code-complete| Code complete|
 | "c a"  | ellama-code-add | Code add |
 | "c e"  | ellama-code-edit| Code edit|
@@ -293,6 +309,7 @@ Ellama, using the ~ellama-keymap-prefix~ prefix (not set by 
default):
 | "s r"  | ellama-session-rename   | Session rename   |
 | "s d"  | ellama-session-remove   | Session delete   |
 | "s a"  | ellama-session-switch   | Session activate |
+| "P"| ellama-proofread| Proofread|
 | "i w"  | ellama-improve-wording  | Improve wording  |
 | "i g"  | ellama-improve-grammar  | Improve grammar and spelling |
 | "i c"  | ellama-improve-conciseness  | Improve conciseness  |
@@ -313,6 +330,7 @@ Ellama, using the ~ellama-keymap-prefix~ prefix (not set by 
default):
 | "x f"  | ellama-context-add-file | Context add file |
 | "x s"  | ellama-context-add-selection| Context add selection|
 | "x i"  | ellama-context-add-info-node| Context add info node|
+| "x r"  | ellama-context-reset| Context reset|
 | "p s"  | ellama-provider-select  | Provider select  |
 
 ** Configuration
@@ -371,6 +389,11 @@ argument generated text string.
 - ~ellama-translate-italic~: Translate italic during markdown to org
   transformations. Enabled by default.
 - ~ellama-extraction-provider~: LLM provider for data extraction.
+- ~ellama-text-display-limit~: Limit for text display in context elements.
+- ~ellama-context-poshandler~: Position handler for displaying context buffer.
+  ~posframe-poshandler-frame-top-center~ will be used if not set.
+- ~ellama-context-border-width~: Border width for the context buffer.
+- ~ellama-context-element-padding-size~: Padding size for context elements.
 
 ** Acknowledgments
 
diff --git a/ellama.el b/ellama.el
index 3b6d95fca7..2ad36970f7 100644
--- a/ellama.el
+++ b/ellama.el
@@ -5,8 +5,8 @@
 ;; Author: Sergey Kostyaev 
 ;; URL: http://github.com/s-kostyaev/ellama
 ;; Keywords: help local tools
-;; Package-Requires: ((emacs "28.1") (llm "0.22.0") (spinner "1.7.4") 
(transient "0.7") (compat "29.1"))
-;; Version: 0.13.11
+;; Package-Requires: ((emacs "28.1") (llm "0.22.0") (spinner "1.7.4") 
(transient "0.7") (compat "29.1") (posframe "1.4.0"))
+;; Version: 1.0.0
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;; Created: 8th Oct 2023
 
@@ -41,6 +41,7 @@
 (require

[elpa] externals/ellama 7b1d3ac4b2 1/9: Add context management and display features

2025-02-11 Thread ELPA Syncer
branch: externals/ellama
commit 7b1d3ac4b253c98b8ea41ff8de89b2f0cdf489e4
Author: Sergey Kostyaev 
Commit: Sergey Kostyaev 

Add context management and display features

Added global context management, including functions to reset context
and display context elements. Updated context element classes to
include display methods. Enhanced tests to cover new context element
display functionalities.
---
 ellama.el| 134 ++-
 tests/test-ellama.el |  30 
 2 files changed, 152 insertions(+), 12 deletions(-)

diff --git a/ellama.el b/ellama.el
index 3b6d95fca7..9ffa8a5e7c 100644
--- a/ellama.el
+++ b/ellama.el
@@ -5,7 +5,7 @@
 ;; Author: Sergey Kostyaev 
 ;; URL: http://github.com/s-kostyaev/ellama
 ;; Keywords: help local tools
-;; Package-Requires: ((emacs "28.1") (llm "0.22.0") (spinner "1.7.4") 
(transient "0.7") (compat "29.1"))
+;; Package-Requires: ((emacs "28.1") (llm "0.22.0") (spinner "1.7.4") 
(transient "0.7") (compat "29.1") (posframe "1.4.0"))
 ;; Version: 0.13.11
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;; Created: 8th Oct 2023
@@ -41,6 +41,7 @@
 (require 'spinner)
 (require 'transient)
 (require 'compat)
+(require 'posframe)
 (eval-when-compile (require 'rx))
 
 (defgroup ellama nil
@@ -1000,6 +1001,20 @@ If EPHEMERAL non nil new session will not be associated 
with any file."
 (remhash id ellama--active-sessions)
 (puthash new-id buffer ellama--active-sessions)))
 
+(defvar ellama--global-context nil
+  "Global context.")
+
+(defvar ellama--context-buffer " *ellama-context*")
+
+;;;###autoload
+(defun ellama-context-reset ()
+  "Clear global context."
+  (interactive)
+  (setq ellama--global-context nil)
+  (with-current-buffer ellama--context-buffer
+(erase-buffer))
+  (posframe-hide ellama--context-buffer))
+
 ;; Context elements
 
 (defclass ellama-context-element () ()
@@ -1011,16 +1026,52 @@ If EPHEMERAL non nil new session will not be associated 
with any file."
 (cl-defgeneric ellama-context-element-extract (element)
   "Extract the content of the context ELEMENT.")
 
+(cl-defgeneric ellama-context-element-display (element)
+  "Display the context ELEMENT.")
+
 (cl-defgeneric ellama-context-element-format (element mode)
   "Format the context ELEMENT for the major MODE.")
 
+(defcustom ellama-context-poshandler 'posframe-poshandler-frame-top-center
+  "Position handler for displaying context buffer."
+  :group 'ellama
+  :type 'function)
+
+(defcustom ellama-context-border-width 1
+  "Border width for the context buffer."
+  :group 'ellama
+  :type 'integer)
+
+(defcustom ellama-context-element-padding-size 20
+  "Padding size for context elements."
+  :group 'ellama
+  :type 'integer)
+
 (cl-defmethod ellama-context-element-add ((element ellama-context-element))
   "Add the ELEMENT to the Ellama context."
   (if-let* ((id ellama--current-session-id)
(session (with-current-buffer (ellama-get-session-buffer id)
   ellama--current-session)))
   (push element (ellama-session-context session))
-(push element ellama--new-session-context)))
+(push element ellama--new-session-context))
+  (push element ellama--global-context)
+  (get-buffer-create ellama--context-buffer t)
+  (with-current-buffer ellama--context-buffer
+(erase-buffer)
+(insert (format
+"context: %s"
+(string-join
+ (mapcar
+  (lambda (el)
+(string-pad
+ (ellama-context-element-display el) 
ellama-context-element-padding-size))
+  ellama--global-context)
+ "  "
+  (posframe-show
+   ellama--context-buffer
+   :poshandler ellama-context-poshandler
+   :internal-border-width ellama-context-border-width))
+
 
 ;; Buffer context element
 
@@ -1035,6 +1086,12 @@ If EPHEMERAL non nil new session will not be associated 
with any file."
 (with-current-buffer name
   (buffer-substring-no-properties (point-min) (point-max)
 
+(cl-defmethod ellama-context-element-display
+  ((element ellama-context-element-buffer))
+  "Display the context ELEMENT."
+  (with-slots (name) element
+name))
+
 (cl-defmethod ellama-context-element-format
   ((element ellama-context-element-buffer) (mode (eql 'markdown-mode)))
   "Format the context ELEMENT for the major MODE."
@@ -1063,6 +1120,12 @@ If EPHEMERAL non nil new session will not be associated 
with any file."
   (insert-file-contents name)
   (buffer-substring-no-properties (point-min) (point-max)
 
+(cl-defmethod ellama-context-element-display
+  ((element ellama-context-element-file))
+  "Display the context ELEMENT."
+  (with-slots (name) element
+(file-name-nondirectory name)))
+
 (cl-defmethod ellama-context-element-format
   ((element ellama-context-element-file) (mode (eql 'markdown-mode)))
   "Format the context ELEMENT for the major MODE."
@@ -1091,6 +1154,12 @@ If EPHEMERAL non nil new session w

[elpa] externals/ellama 92c4bd0b48 3/9: Add ellama-context-reset to keymap

2025-02-11 Thread ELPA Syncer
branch: externals/ellama
commit 92c4bd0b483a311c15f5990045e13d933990c85f
Author: Sergey Kostyaev 
Commit: Sergey Kostyaev 

Add ellama-context-reset to keymap
---
 ellama.el | 1 +
 1 file changed, 1 insertion(+)

diff --git a/ellama.el b/ellama.el
index b95d32a229..746c7b127c 100644
--- a/ellama.el
+++ b/ellama.el
@@ -156,6 +156,7 @@
 (define-key map (kbd "x f") 'ellama-context-add-file)
 (define-key map (kbd "x s") 'ellama-context-add-selection)
 (define-key map (kbd "x i") 'ellama-context-add-info-node)
+(define-key map (kbd "x r") 'ellama-context-reset)
 ;; provider
 (define-key map (kbd "p s") 'ellama-provider-select)
 map)



[elpa] externals/kubed 5a0b396442 1/2: (kubed-list-next-column): Fix error when called at end of buffer.

2025-02-11 Thread ELPA Syncer
branch: externals/kubed
commit 5a0b39644283daac9c391621ab11fa2475349c7f
Author: Eshel Yaron 
Commit: Eshel Yaron 

(kubed-list-next-column): Fix error when called at end of buffer.
---
 kubed.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kubed.el b/kubed.el
index c5f7287378..7891e1ab4a 100644
--- a/kubed.el
+++ b/kubed.el
@@ -696,7 +696,7 @@ to 1."
   #'previous-single-property-change)))
 (dotimes (_ times)
   (setq next (funcall dir-fn next 'tabulated-list-column-name))
-  (when (= (char-after next) ?\n)
+  (when (equal (char-after next) ?\n)
 ;; At line boundary, go to first/last column of next line.
 (setq next (funcall dir-fn next 'tabulated-list-column-name)))
   (unless next (user-error "End of table")))



[elpa] externals/kubed updated (8f979a1985 -> 3f66195a62)

2025-02-11 Thread ELPA Syncer
elpasync pushed a change to branch externals/kubed.

  from  8f979a1985 ; Update NEWS.org and bump version to 0.4.3
   new  5a0b396442 (kubed-list-next-column): Fix error when called at end 
of buffer.
   new  3f66195a62 (kubed-set-namespace): Improve message.


Summary of changes:
 kubed.el | 8 ++--
 1 file changed, 6 insertions(+), 2 deletions(-)



[elpa] externals/ellama e15c0aa7db 6/9: Add `ellama-write` command

2025-02-11 Thread ELPA Syncer
branch: externals/ellama
commit e15c0aa7db4f7cbb778c2ca086f24d66d0ee8ebe
Author: Sergey Kostyaev 
Commit: Sergey Kostyaev 

Add `ellama-write` command

Added a new command `ellama-write` that allows users to generate text
based on an instruction and the current context. The command prompts
for an instruction and, if a region is active, adds the selected text
to the context before generating the response. Updated keybindings and
documentation accordingly.
---
 README.org |  8 
 ellama.el  | 21 +
 2 files changed, 29 insertions(+)

diff --git a/README.org b/README.org
index f4c0ab7a64..8fa8a8ffc5 100644
--- a/README.org
+++ b/README.org
@@ -108,6 +108,13 @@ buffer and continue conversation. If called with universal 
argument
 (~C-u~) will start new session with llm model interactive selection.
 [[imgs/ellama-ask.gif]]
 
+*** ellama-write
+
+This command allows you to generate text using an LLM. When called
+interactively, it prompts for an instruction that is then used to
+generate text based on the context. If a region is active, the
+selected text is added to the context before generating the response.
+
 *** ellama-chat-send-last-message
 
 Send last user message extracted from current ellama chat buffer.
@@ -288,6 +295,7 @@ Ellama, using the ~ellama-keymap-prefix~ prefix (not set by 
default):
 
 | Keymap | Function| Description  |
 |+-+--|
+| "w"| ellama-write| Write|
 | "c c"  | ellama-code-complete| Code complete|
 | "c a"  | ellama-code-add | Code add |
 | "c e"  | ellama-code-edit| Code edit|
diff --git a/ellama.el b/ellama.el
index 519c432526..49726ff0df 100644
--- a/ellama.el
+++ b/ellama.el
@@ -145,6 +145,7 @@
 (define-key map (kbd "a l") 'ellama-ask-line)
 (define-key map (kbd "a s") 'ellama-ask-selection)
 ;; text
+(define-key map (kbd "w") 'ellama-write)
 (define-key map (kbd "t t") 'ellama-translate)
 (define-key map (kbd "t b") 'ellama-translate-buffer)
 (define-key map (kbd "t c") 'ellama-complete)
@@ -259,6 +260,16 @@ You are a summarizer. You write a summary of the input 
**IN THE SAME LANGUAGE AS
   :group 'ellama
   :type 'string)
 
+(defcustom ellama-write-prompt-template "
+Write text, based on provided context and instruction. Do not add any 
explanation or acknowledgement, just follow instruction.
+
+
+%s
+"
+  "Prompt template for `ellama-write'."
+  :group 'ellama
+  :type 'string)
+
 (defcustom ellama-improve-grammar-prompt-template "improve grammar and 
spelling"
   "Prompt template for `ellama-improve-grammar'."
   :group 'ellama
@@ -2193,6 +2204,15 @@ ARGS contains keys for fine control.
 (ellama-context-add-buffer (current-buffer)))
   (ellama-chat ellama-code-review-prompt-template nil :provider 
ellama-coding-provider))
 
+;;;###autoload
+(defun ellama-write (instruction)
+  "Write text based on context and INSTRUCTION at point."
+  (interactive "sInstruction: ")
+  (when (region-active-p)
+(ellama-context-add-selection))
+  (ellama-stream (format ellama-write-prompt-template instruction)
+:point (point)))
+
 ;;;###autoload
 (defun ellama-change (change &optional edit-template)
   "Change selected text or text in current buffer according to provided CHANGE.
@@ -2563,6 +2583,7 @@ Call CALLBACK on result list of strings.  ARGS contains 
keys for fine control.
   "Main Menu."
   [["Main"
 ("c" "Chat" ellama-chat)
+("w" "Write" ellama-write)
 ("P" "Proofread" ellama-proofread)
 ("a" "Ask Commands" ellama-transient-ask-menu)
 ("C" "Code Commands" ellama-transient-code-menu)]]



[elpa] externals/ellama updated (6fb94007b9 -> c20394170b)

2025-02-11 Thread ELPA Syncer
elpasync pushed a change to branch externals/ellama.

  from  6fb94007b9 Bump version
   new  7b1d3ac4b2 Add context management and display features
   new  d1ce220547 Refactor session context handling
   new  92c4bd0b48 Add ellama-context-reset to keymap
   new  50460810bf Update README
   new  eafcfe7e01 Add proofreading functionality
   new  e15c0aa7db Add `ellama-write` command
   new  863193ee6f Add markdown to org filter to ellama-write command
   new  6279b2f2a6 Release version 1.0.0
   new  c20394170b Merge pull request #210 from 
s-kostyaev/improve-working-with-context


Summary of changes:
 NEWS.org |   4 ++
 README.org   |  23 +++
 ellama.el| 190 +--
 tests/test-ellama.el |  30 
 4 files changed, 225 insertions(+), 22 deletions(-)



[elpa] externals/ellama 863193ee6f 7/9: Add markdown to org filter to ellama-write command

2025-02-11 Thread ELPA Syncer
branch: externals/ellama
commit 863193ee6f6d3f459c51e77527b5d0951f4f3601
Author: Sergey Kostyaev 
Commit: Sergey Kostyaev 

Add markdown to org filter to ellama-write command

Added a condition to apply `ellama--translate-markdown-to-org-filter`
as a filter when the current mode is derived from org-mode during the
ellama-stream function execution.
---
 ellama.el | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/ellama.el b/ellama.el
index 49726ff0df..f635d3cf4a 100644
--- a/ellama.el
+++ b/ellama.el
@@ -2211,7 +2211,9 @@ ARGS contains keys for fine control.
   (when (region-active-p)
 (ellama-context-add-selection))
   (ellama-stream (format ellama-write-prompt-template instruction)
-:point (point)))
+:point (point)
+:filter (when (derived-mode-p 'org-mode)
+  #'ellama--translate-markdown-to-org-filter)))
 
 ;;;###autoload
 (defun ellama-change (change &optional edit-template)



[elpa] externals/org-gnosis dce0f71932 1/2: update-file: Improve error message for duplicate titles

2025-02-11 Thread ELPA Syncer
branch: externals/org-gnosis
commit dce0f71932ea477bde37c517af8b3519c5ea6f11
Author: Thanos Apollo 
Commit: Thanos Apollo 

update-file: Improve error message for duplicate titles
---
 org-gnosis.el | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/org-gnosis.el b/org-gnosis.el
index 5e7583ecad..e15a2f9ea2 100644
--- a/org-gnosis.el
+++ b/org-gnosis.el
@@ -262,7 +262,8 @@ If JOURNAL is non-nil, update file as a journal entry."
  (master (plist-get item :master))
  (tags (plist-get item :tags))
  (level (plist-get item :level)))
- (when (member title titles) (error "Title for node already 
exists"))
+ (when (member title titles)
+   (error "Title: '%s' already exists" title))
  (org-gnosis--insert-into table `([,id ,filename ,title ,level 
,tags]))
  (cl-loop for tag in tags
   do



[elpa] externals/kubed 3f66195a62 2/2: (kubed-set-namespace): Improve message.

2025-02-11 Thread ELPA Syncer
branch: externals/kubed
commit 3f66195a62764895c7143fb4e02b2d5b0e1d460b
Author: Eshel Yaron 
Commit: Eshel Yaron 

(kubed-set-namespace): Improve message.
---
 kubed.el | 6 +-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/kubed.el b/kubed.el
index 7891e1ab4a..9a9ec6a91c 100644
--- a/kubed.el
+++ b/kubed.el
@@ -2556,7 +2556,11 @@ prefix argument, prompt for CONTEXT as well."
 "config" "set-context" (or context "--current")
 "--namespace" namespace))
 (user-error "Failed to set Kubernetes namespace to `%s'" namespace))
-  (message "Kubernetes namespace is now `%s'." namespace))
+  (message "Default Kubernetes namespace%s is now `%s'."
+   (if context
+   (substitute-quotes (concat " for context `" context "'"))
+ "")
+   namespace))
 
 (defcustom kubed-read-resource-definition-filter-files-by-kind t
   "Whether to filter file completion candidates by their Kubernetes \"kind\".



[elpa] externals/ellama 6279b2f2a6 8/9: Release version 1.0.0

2025-02-11 Thread ELPA Syncer
branch: externals/ellama
commit 6279b2f2a6a522b5c38a4c8ee047c622fc3a07fd
Author: Sergey Kostyaev 
Commit: Sergey Kostyaev 

Release version 1.0.0

- Added `ellama-write` command. Added `ellama-proofread` command.
- Added global context management, including functions to reset
- context.
---
 NEWS.org  | 4 
 ellama.el | 2 +-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/NEWS.org b/NEWS.org
index a24c1ebbcb..6d6904f524 100644
--- a/NEWS.org
+++ b/NEWS.org
@@ -1,3 +1,7 @@
+* Version 1.0.0
+- Added ~ellama-write~ command.
+- Added ~ellama-proofread~ command.
+- Added global context management, including functions to reset context.
 * Version 0.13.11
 - Add function ~ellama-make-semantic-similar-p-with-context~ that
   return test function for checking if two provided texts are meaning
diff --git a/ellama.el b/ellama.el
index f635d3cf4a..2ad36970f7 100644
--- a/ellama.el
+++ b/ellama.el
@@ -6,7 +6,7 @@
 ;; URL: http://github.com/s-kostyaev/ellama
 ;; Keywords: help local tools
 ;; Package-Requires: ((emacs "28.1") (llm "0.22.0") (spinner "1.7.4") 
(transient "0.7") (compat "29.1") (posframe "1.4.0"))
-;; Version: 0.13.11
+;; Version: 1.0.0
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;; Created: 8th Oct 2023
 



[elpa] externals/org-gnosis updated (2588a75a15 -> f949378ce7)

2025-02-11 Thread ELPA Syncer
elpasync pushed a change to branch externals/org-gnosis.

  from  2588a75a15 packaging: Use emacsql 4.0.0
   new  dce0f71932 update-file: Improve error message for duplicate titles
   new  f949378ce7 db-delete-tables: do not hardcode table names.


Summary of changes:
 org-gnosis.el | 11 +--
 1 file changed, 5 insertions(+), 6 deletions(-)



[nongnu] elpa/gptel 49c7167646: gptel: Small documentation tweaks (#625)

2025-02-11 Thread ELPA Syncer
branch: elpa/gptel
commit 49c7167646245691e07b283ce8f1f3920acf81bd
Author: Henrik Ahlgren 
Commit: GitHub 

gptel: Small documentation tweaks (#625)

* README.org: Correct the *elpa badge links. Use periods consistently
on list items. Reduce tautology. Correct link to discussion about
stateless design.

* gptel.el: Add "tools" to package keywords for better
discoverability. Minor formatting and documentation tweaks.
---
 README.org | 42 +++---
 gptel.el   | 26 ++
 2 files changed, 33 insertions(+), 35 deletions(-)

diff --git a/README.org b/README.org
index c69ac2c0a0..b5f8bb7f79 100644
--- a/README.org
+++ b/README.org
@@ -1,6 +1,6 @@
 #+title: gptel: A simple LLM client for Emacs
 
-[[https://elpa.nongnu.org/nongnu/gptel.svg][file:https://elpa.nongnu.org/nongnu/gptel.svg]]
 
[[https://stable.melpa.org/packages/gptel-badge.svg][file:https://stable.melpa.org/packages/gptel-badge.svg]]
 [[https://melpa.org/#/gptel][file:https://melpa.org/packages/gptel-badge.svg]]
+[[https://elpa.nongnu.org/nongnu/gptel.html][file:https://elpa.nongnu.org/nongnu/gptel.svg]]
 
[[https://stable.melpa.org/#/gptel][file:https://stable.melpa.org/packages/gptel-badge.svg]]
 [[https://melpa.org/#/gptel][file:https://melpa.org/packages/gptel-badge.svg]]
 
 gptel is a simple Large Language Model chat client for Emacs, with support for 
multiple models and backends.  It works in the spirit of Emacs, available at 
any time and uniformly in any buffer.
 
@@ -67,11 +67,11 @@ See also [[https://youtu.be/g1VMGhC5gRU][this youtube demo 
(2 minutes)]] by Armi
 --
 
 - gptel is async and fast, streams responses.
-- Interact with LLMs from anywhere in Emacs (any buffer, shell, minibuffer, 
wherever)
+- Interact with LLMs from anywhere in Emacs (any buffer, shell, minibuffer, 
wherever).
 - LLM responses are in Markdown or Org markup.
 - Supports multiple independent conversations and one-off ad hoc interactions.
-- Supports tool-use to equip LLMs with agentic capabilities (experimental 
feature)
-- Supports multi-modal input (include images, documents)
+- Supports tool-use to equip LLMs with agentic capabilities (experimental 
feature).
+- Supports multi-modal input (include images, documents).
 - Save chats as regular Markdown/Org/Text files and resume them later.
 - Edit your previous prompts or LLM responses when continuing a conversation. 
These will be fed back to the model.
 - Supports introspection, so you can see /exactly/ what will be sent.  Inspect 
and modify queries before sending them.
@@ -154,15 +154,11 @@ If you want the stable version instead, add NonGNU-devel 
ELPA or MELPA-stable to
 #+begin_src emacs-lisp
   (straight-use-package 'gptel)
 #+end_src
-
-Installing the =markdown-mode= package is optional.
 #+html: 
 #+html: 
  Manual
 #+html: 
 Clone or download this repository and run =M-x package-install-file⏎= on the 
repository directory.
-
-Installing the =markdown-mode= package is optional.
 #+html: 
 #+html: 
  Doom Emacs
@@ -1325,21 +1321,21 @@ Other Emacs clients for LLMs prescribe the format of 
the interaction (a comint s
 ** COMMENT Will you add feature X?
 
 Maybe, I'd like to experiment a bit more first.  Features added since the 
inception of this package include
-- Curl support (=gptel-use-curl=)
-- Streaming responses (=gptel-stream=)
+- Curl support (=gptel-use-curl=).
+- Streaming responses (=gptel-stream=).
 - Cancelling requests in progress (=gptel-abort=)
 - General API for writing your own commands (=gptel-request=, 
[[https://github.com/karthink/gptel/wiki/Defining-custom-gptel-commands][wiki]])
-- Dispatch menus using Transient (=gptel-send= with a prefix arg)
-- Specifying the conversation context size
-- GPT-4 support
-- Response redirection (to the echo area, another buffer, etc)
-- A built-in refactor/rewrite prompt
-- Limiting conversation context to Org headings using properties (#58)
-- Saving and restoring chats (#17)
+- Dispatch menus using Transient (=gptel-send= with a prefix arg).
+- Specifying the conversation context size.
+- GPT-4 support.
+- Response redirection (to the echo area, another buffer, etc).
+- A built-in refactor/rewrite prompt.
+- Limiting conversation context to Org headings using properties (#58).
+- Saving and restoring chats (#17).
 - Support for local LLMs.
 
 Features being considered or in the pipeline:
-- Fully stateless design (#17)
+- Fully stateless design 
([[https://github.com/karthink/gptel/discussions/119][discussion #119]]).
 
 ** Alternatives
 
@@ -1357,12 +1353,12 @@ There are several more: 
[[https://github.com/MichaelBurge/leafy-mode][leafy-mode
 gptel is a general-purpose package for chat and ad-hoc LLM interaction.  The 
following packages use gptel to provide additional or specialized functionality:
 
 - [[https://github.com/karthink/gptel-quick][gptel-quick]]: Quickly look up 
the region or text at point.
-- [[https://github.com/daedsidog/evedel][Ev

[elpa] externals/org-gnosis f949378ce7 2/2: db-delete-tables: do not hardcode table names.

2025-02-11 Thread ELPA Syncer
branch: externals/org-gnosis
commit f949378ce7325fe41da23c3b028a531f7a455413
Author: Thanos Apollo 
Commit: Thanos Apollo 

db-delete-tables: do not hardcode table names.

* Getting table names from the table-schemata is cleaner & avoids the
  need to change the table names for future db versions.
---
 org-gnosis.el | 8 +++-
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/org-gnosis.el b/org-gnosis.el
index e15a2f9ea2..d30e1a8f94 100644
--- a/org-gnosis.el
+++ b/org-gnosis.el
@@ -688,11 +688,9 @@ ENTRY: Journal entry linked under the heading."
   "Drop all tables."
   (ignore-errors
 (emacsql-with-transaction org-gnosis-db
-  (org-gnosis--drop-table 'nodes)
-  (org-gnosis--drop-table 'tags)
-  (org-gnosis--drop-table 'journal)
-  (org-gnosis--drop-table 'links)
-  (org-gnosis--drop-table 'node-tag
+  ;; Maybe use sql for version upgrades that change schemata?
+  (dolist (table (mapcar #'car org-gnosis-db--table-schemata))
+   (org-gnosis--drop-table table)
 
 (defun org-gnosis-db-sync--journal ()
   "Sync journal entries in databse."



[nongnu] elpa/crux 2b71eea8c3 1/2: Add crux-find-current-directory-dir-locals-file

2025-02-11 Thread ELPA Syncer
branch: elpa/crux
commit 2b71eea8c3828700d1f3161e45a65bcf0d15b001
Author: Brad Howes 
Commit: Bozhidar Batsov 

Add crux-find-current-directory-dir-locals-file
---
 CHANGELOG.md | 2 ++
 README.md| 1 +
 crux.el  | 7 +++
 3 files changed, 10 insertions(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index e8ac308a53..da7fa50522 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,8 @@
 
 ## master (unreleased)
 
+* [#101](https://github.com/bbatsov/crux/pull/101): Add 
`crux-find-current-directory-dir-locals-file`.
+
 ### Bugs fixed
 
 * Create nonexistent parent directories in 
`crux-copy-file-preserve-attributes`.
diff --git a/README.md b/README.md
index 7429a9ca98..787dc35fb1 100644
--- a/README.md
+++ b/README.md
@@ -83,6 +83,7 @@ Command | 
Suggested Keybinding(s)
 `crux-find-user-init-file`  | C-c I | Open 
user's init file.
 `crux-find-user-custom-file`| C-c , | Open 
user's custom file.
 `crux-find-shell-init-file` | C-c S | Open 
shell's init file.
+`crux-find-current-directory-dir-locals-file`   | C-c D | Open 
current directory's `.dir-locals.el` file.
 `crux-top-join-line`| Super-j or 
C-^ | Join lines
 `crux-kill-whole-line`  | Super-k | 
Kill whole line
 `crux-kill-line-backwards`  | C-Backspace | 
Kill line backwards
diff --git a/crux.el b/crux.el
index 63e4e58ab1..b7e0b0b6d9 100644
--- a/crux.el
+++ b/crux.el
@@ -731,6 +731,13 @@ Doesn't mess with special buffers."
 (find-file-other-window (completing-read "Choose shell init file: " 
candidates))
   (find-file-other-window (car candidates)
 
+;;;###autoload
+(defun crux-find-current-directory-dir-locals-file ()
+  "Edit the current directory's `.dir-locals.el' file in another window."
+  (interactive)
+  (find-file-other-window
+   (expand-file-name ".dir-locals.el")))
+
 ;;;###autoload
 (defun crux-upcase-region (beg end)
   "`upcase-region' when `transient-mark-mode' is on and region is active."



[nongnu] elpa/crux 519c2907c3 2/2: Revise how dir-locals is found

2025-02-11 Thread ELPA Syncer
branch: elpa/crux
commit 519c2907c31259cd07b45264a7c2b885881be1d8
Author: Brad Howes 
Commit: Bozhidar Batsov 

Revise how dir-locals is found

Support locating .dir-locals-2.el using prefix arg.
Support MS-DOS (!) by using '_' instead of '.' prefix.
---
 crux.el | 25 -
 1 file changed, 20 insertions(+), 5 deletions(-)

diff --git a/crux.el b/crux.el
index b7e0b0b6d9..9da9407d34 100644
--- a/crux.el
+++ b/crux.el
@@ -732,11 +732,26 @@ Doesn't mess with special buffers."
   (find-file-other-window (car candidates)
 
 ;;;###autoload
-(defun crux-find-current-directory-dir-locals-file ()
-  "Edit the current directory's `.dir-locals.el' file in another window."
-  (interactive)
-  (find-file-other-window
-   (expand-file-name ".dir-locals.el")))
+(defun crux-find-current-directory-dir-locals-file (find-2)
+  "Edit the `.dir-locals.el' file for the current buffer in another window.
+If prefix arg FIND-2 is set then edit the `.dir-locals-2.el' file instead
+of `.dir-locals.el'. Scans parent directories if the file does not exist in
+the default directory of the current buffer. If not found, create a new,
+empty buffer in the current buffer's default directory, or if there is no
+such directory, in the user's home directory."
+  (interactive "P")
+  (let* ((prefix (if (eq system-type 'ms-dos) "_" "."))
+ (file (concat prefix (if find-2 "dir-locals-2" "dir-locals") ".el"))
+ (starting-dir (or (when (and default-directory
+  (file-readable-p default-directory))
+ default-directory)
+   (file-truename "~/")))
+ (found-dir (or (locate-dominating-file starting-dir file) 
starting-dir))
+ (found-file (concat found-dir file)))
+(find-file-other-window found-file)
+(if (file-exists-p found-file)
+(message "Editing existing file %s" found-file)
+  (message "Editing new file %s" found-file
 
 ;;;###autoload
 (defun crux-upcase-region (beg end)



[nongnu] elpa/crux updated (6ed75a69f5 -> 519c2907c3)

2025-02-11 Thread ELPA Syncer
elpasync pushed a change to branch elpa/crux.

  from  6ed75a69f5 Create parent directories in 
crux-copy-file-preserve-attributes
   new  2b71eea8c3 Add crux-find-current-directory-dir-locals-file
   new  519c2907c3 Revise how dir-locals is found


Summary of changes:
 CHANGELOG.md |  2 ++
 README.md|  1 +
 crux.el  | 22 ++
 3 files changed, 25 insertions(+)



[elpa] main d8191aae7c: Add .mailmap file

2025-02-11 Thread Stefan Kangas
branch: main
commit d8191aae7cf9d1a037dd3755a80b648f19ecc330
Author: Stefan Kangas 
Commit: Stefan Kangas 

Add .mailmap file
---
 .mailmap | 14 ++
 1 file changed, 14 insertions(+)

diff --git a/.mailmap b/.mailmap
new file mode 100644
index 00..cfa274cf7b
--- /dev/null
+++ b/.mailmap
@@ -0,0 +1,14 @@
+#
+# This list is used to fix a few misspelled names in various git
+# listings (e.g., "git log").  This can be used to fix incorrect
+# attribution, poor display, or names showing up more than once.
+# It also allows updating an old email addresses to a new one.
+#
+# See "man git-shortlog" for more information on the format.
+#
+# Keep file sorted using `M-x sort-lines'.
+#
+Ian Dunn 
+João Távora 
+Stefan Kangas  
+Stefan Monnier  monnier <>



[nongnu] elpa/markdown-mode 0f6ccf0529 1/3: Don't break inline-code rendering when there's a

2025-02-11 Thread ELPA Syncer
branch: elpa/markdown-mode
commit 0f6ccf0529aba89e55e02ec64ddfac578948dfed
Author: Konstantin Kharlamov 
Commit: Konstantin Kharlamov 

Don't break inline-code rendering when there's a 

A Markdown like `value=` results in `` suddenly
refusing to highlight. This is because the mode recognizes this as an
angle URL. Generally speaking, a URL (even if actual one) is not
expected to be rendered inside inline code-blocks, so this commit adds
a test for whether start or end is in inline block, to avoid breaking
rendering.

A test for this is added as well.

Fixes: https://github.com/jrblevin/markdown-mode/issues/822
---
 markdown-mode.el   | 38 ++
 tests/markdown-test.el | 10 ++
 2 files changed, 32 insertions(+), 16 deletions(-)

diff --git a/markdown-mode.el b/markdown-mode.el
index f99897db4a..e69a94d0a5 100644
--- a/markdown-mode.el
+++ b/markdown-mode.el
@@ -1177,6 +1177,10 @@ escape character (see `markdown-match-escape').")
 If POS is not given, use point instead."
   (get-text-property (or pos (point)) 'markdown-comment))
 
+(defsubst markdown-in-inline-code-p (pos)
+  "Return non-nil if POS is in inline code."
+  (equal (get-text-property pos 'face) '(markdown-inline-code-face)))
+
 (defun markdown--face-p (pos faces)
   "Return non-nil if face of POS contain FACES."
   (let ((face-prop (get-text-property pos 'face)))
@@ -8269,22 +8273,24 @@ Translate filenames using 
`markdown-filename-translate-function'."
 (defun markdown-fontify-angle-uris (last)
   "Add text properties to angle URIs from point to LAST."
   (when (markdown-match-angle-uris last)
-(let* ((url-start (match-beginning 2))
-   (url-end (match-end 2))
-   ;; Markup part
-   (mp (list 'face 'markdown-markup-face
- 'invisible 'markdown-markup
- 'rear-nonsticky t
- 'font-lock-multiline t))
-   ;; URI part
-   (up (list 'keymap markdown-mode-mouse-map
- 'face 'markdown-plain-url-face
- 'mouse-face 'markdown-highlight-face
- 'font-lock-multiline t)))
-  (dolist (g '(1 3))
-(add-text-properties (match-beginning g) (match-end g) mp))
-  (add-text-properties url-start url-end up)
-  t)))
+(let ((url-start (match-beginning 2))
+  (url-end (match-end 2)))
+  (unless (or (markdown-in-inline-code-p url-start)
+  (markdown-in-inline-code-p url-end))
+(let* (;; Markup part
+   (mp (list 'face 'markdown-markup-face
+ 'invisible 'markdown-markup
+ 'rear-nonsticky t
+ 'font-lock-multiline t))
+   ;; URI part
+   (up (list 'keymap markdown-mode-mouse-map
+ 'face 'markdown-plain-url-face
+ 'mouse-face 'markdown-highlight-face
+ 'font-lock-multiline t)))
+  (dolist (g '(1 3))
+(add-text-properties (match-beginning g) (match-end g) mp))
+  (add-text-properties url-start url-end up)
+  t)
 
 (defun markdown-fontify-plain-uris (last)
   "Add text properties to plain URLs from point to LAST."
diff --git a/tests/markdown-test.el b/tests/markdown-test.el
index 83059bf7bc..ff02dd8188 100644
--- a/tests/markdown-test.el
+++ b/tests/markdown-test.el
@@ -2478,6 +2478,16 @@ See GH-275."
 (markdown-test-range-has-face 12 12 'markdown-markup-face)
 (markdown-test-range-has-face 18 18 'markdown-markup-face)))
 
+(ert-deftest test-markdown-font-lock/ignore-uri-in-inline-code ()
+  "Avoid rendering URIs inside inline code."
+  (markdown-test-string
+  "`` t `a  b` ` t ``"
+(markdown-test-range-has-face 2 11 'markdown-inline-code-face)
+(markdown-test-range-has-face 17 30 'markdown-inline-code-face)
+(markdown-test-range-has-face 40 43 'markdown-inline-code-face)
+(markdown-test-range-has-face 49 53 'markdown-inline-code-face)
+(markdown-test-range-has-face 61 66 'markdown-inline-code-face)))
+
 (ert-deftest test-markdown-font-lock/italics-in-reference-definitions ()
   "Test not matching italics in reference definitions across lines."
   (markdown-test-string



[nongnu] elpa/markdown-mode 4948549471 2/3: Update CHANGES

2025-02-11 Thread ELPA Syncer
branch: elpa/markdown-mode
commit 49485494711fb6359efa50355243673db4dc0810
Author: Shohei YOSHIDA 
Commit: Shohei YOSHIDA 

Update CHANGES
---
 CHANGES.md | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/CHANGES.md b/CHANGES.md
index 58748f5ace..5b67b349ee 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -24,6 +24,7 @@
   and `markdown-fontify-code-blocks-natively` together [GH-766][]
 - Fix `markdown-fontify-whole-heading-line` regression [GH-848][]
 - Fix using fundamental-mode issue when editting code block [GH-868][]
+- Fix highlighting URL in angle brackes[GH-822][]
 
 *   Improvements:
 - Apply url-unescape against URL in an inline link [GH-805][]
@@ -40,6 +41,7 @@
   [gh-804]: https://github.com/jrblevin/markdown-mode/issues/804
   [gh-805]: https://github.com/jrblevin/markdown-mode/issues/805
   [gh-817]: https://github.com/jrblevin/markdown-mode/issues/817
+  [gh-822]: https://github.com/jrblevin/markdown-mode/issues/822
   [gh-827]: https://github.com/jrblevin/markdown-mode/issues/827
   [gh-834]: https://github.com/jrblevin/markdown-mode/issues/834
   [gh-838]: https://github.com/jrblevin/markdown-mode/issues/838



[nongnu] elpa/markdown-mode updated (7659bc470d -> 038f0fb978)

2025-02-11 Thread ELPA Syncer
elpasync pushed a change to branch elpa/markdown-mode.

  from  7659bc470d Merge pull request #874 from jrblevin/issue-841
   new  0f6ccf0529 Don't break inline-code rendering when there's a 

   new  4948549471 Update CHANGES
   new  038f0fb978 Merge pull request #878 from 
Hi-Angel/fix-uris-in-inline-code


Summary of changes:
 CHANGES.md |  2 ++
 markdown-mode.el   | 38 ++
 tests/markdown-test.el | 10 ++
 3 files changed, 34 insertions(+), 16 deletions(-)



[nongnu] elpa/markdown-mode 038f0fb978 3/3: Merge pull request #878 from Hi-Angel/fix-uris-in-inline-code

2025-02-11 Thread ELPA Syncer
branch: elpa/markdown-mode
commit 038f0fb9789afafff99b7f23de107862dde113ee
Merge: 7659bc470d 4948549471
Author: Shohei YOSHIDA 
Commit: GitHub 

Merge pull request #878 from Hi-Angel/fix-uris-in-inline-code

Don't break inline-code rendering when there's a 
---
 CHANGES.md |  2 ++
 markdown-mode.el   | 38 ++
 tests/markdown-test.el | 10 ++
 3 files changed, 34 insertions(+), 16 deletions(-)

diff --git a/CHANGES.md b/CHANGES.md
index 58748f5ace..5b67b349ee 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -24,6 +24,7 @@
   and `markdown-fontify-code-blocks-natively` together [GH-766][]
 - Fix `markdown-fontify-whole-heading-line` regression [GH-848][]
 - Fix using fundamental-mode issue when editting code block [GH-868][]
+- Fix highlighting URL in angle brackes[GH-822][]
 
 *   Improvements:
 - Apply url-unescape against URL in an inline link [GH-805][]
@@ -40,6 +41,7 @@
   [gh-804]: https://github.com/jrblevin/markdown-mode/issues/804
   [gh-805]: https://github.com/jrblevin/markdown-mode/issues/805
   [gh-817]: https://github.com/jrblevin/markdown-mode/issues/817
+  [gh-822]: https://github.com/jrblevin/markdown-mode/issues/822
   [gh-827]: https://github.com/jrblevin/markdown-mode/issues/827
   [gh-834]: https://github.com/jrblevin/markdown-mode/issues/834
   [gh-838]: https://github.com/jrblevin/markdown-mode/issues/838
diff --git a/markdown-mode.el b/markdown-mode.el
index f99897db4a..e69a94d0a5 100644
--- a/markdown-mode.el
+++ b/markdown-mode.el
@@ -1177,6 +1177,10 @@ escape character (see `markdown-match-escape').")
 If POS is not given, use point instead."
   (get-text-property (or pos (point)) 'markdown-comment))
 
+(defsubst markdown-in-inline-code-p (pos)
+  "Return non-nil if POS is in inline code."
+  (equal (get-text-property pos 'face) '(markdown-inline-code-face)))
+
 (defun markdown--face-p (pos faces)
   "Return non-nil if face of POS contain FACES."
   (let ((face-prop (get-text-property pos 'face)))
@@ -8269,22 +8273,24 @@ Translate filenames using 
`markdown-filename-translate-function'."
 (defun markdown-fontify-angle-uris (last)
   "Add text properties to angle URIs from point to LAST."
   (when (markdown-match-angle-uris last)
-(let* ((url-start (match-beginning 2))
-   (url-end (match-end 2))
-   ;; Markup part
-   (mp (list 'face 'markdown-markup-face
- 'invisible 'markdown-markup
- 'rear-nonsticky t
- 'font-lock-multiline t))
-   ;; URI part
-   (up (list 'keymap markdown-mode-mouse-map
- 'face 'markdown-plain-url-face
- 'mouse-face 'markdown-highlight-face
- 'font-lock-multiline t)))
-  (dolist (g '(1 3))
-(add-text-properties (match-beginning g) (match-end g) mp))
-  (add-text-properties url-start url-end up)
-  t)))
+(let ((url-start (match-beginning 2))
+  (url-end (match-end 2)))
+  (unless (or (markdown-in-inline-code-p url-start)
+  (markdown-in-inline-code-p url-end))
+(let* (;; Markup part
+   (mp (list 'face 'markdown-markup-face
+ 'invisible 'markdown-markup
+ 'rear-nonsticky t
+ 'font-lock-multiline t))
+   ;; URI part
+   (up (list 'keymap markdown-mode-mouse-map
+ 'face 'markdown-plain-url-face
+ 'mouse-face 'markdown-highlight-face
+ 'font-lock-multiline t)))
+  (dolist (g '(1 3))
+(add-text-properties (match-beginning g) (match-end g) mp))
+  (add-text-properties url-start url-end up)
+  t)
 
 (defun markdown-fontify-plain-uris (last)
   "Add text properties to plain URLs from point to LAST."
diff --git a/tests/markdown-test.el b/tests/markdown-test.el
index 83059bf7bc..ff02dd8188 100644
--- a/tests/markdown-test.el
+++ b/tests/markdown-test.el
@@ -2478,6 +2478,16 @@ See GH-275."
 (markdown-test-range-has-face 12 12 'markdown-markup-face)
 (markdown-test-range-has-face 18 18 'markdown-markup-face)))
 
+(ert-deftest test-markdown-font-lock/ignore-uri-in-inline-code ()
+  "Avoid rendering URIs inside inline code."
+  (markdown-test-string
+  "`` t `a  b` ` t ``"
+(markdown-test-range-has-face 2 11 'markdown-inline-code-face)
+(markdown-test-range-has-face 17 30 'markdown-inline-code-face)
+(markdown-test-range-has-face 40 43 'markdown-inline-code-face)
+(markdown-test-range-has-face 49 53 'markdown-inline-code-face)
+(markdown-test-range-has-face 61 66 'markdown-inline-code-face)))
+
 (ert-deftest test-markdown-font-lock/italics-in-reference-definitions ()
   "Test not matching italics in reference definitions across lines."
   (markdown-test-string



[nongnu] elpa/inf-ruby b8076aad10: Bump new version

2025-02-11 Thread ELPA Syncer
branch: elpa/inf-ruby
commit b8076aad10dfb0ba1e3a8b0d39c2b370dbe96ab0
Author: Dmitry Gutov 
Commit: Dmitry Gutov 

Bump new version
---
 inf-ruby.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/inf-ruby.el b/inf-ruby.el
index 7b863c7d19..c22ebc00a3 100755
--- a/inf-ruby.el
+++ b/inf-ruby.el
@@ -11,7 +11,7 @@
 ;; URL: http://github.com/nonsequitur/inf-ruby
 ;; Created: 8 April 1998
 ;; Keywords: languages ruby
-;; Version: 2.8.1
+;; Version: 2.9.0
 ;; Package-Requires: ((emacs "26.1"))
 
 ;; This program is free software: you can redistribute it and/or modify



[elpa] externals/colorful-mode ed32abcca4 1/2: Support for css @define_color variables, allow change color in..

2025-02-11 Thread ELPA Syncer
branch: externals/colorful-mode
commit ed32abcca4a3fdb2cbf8e99c9aae833389792ad4
Author: Elijah Gabe P. 
Commit: Elijah Gabe P. 

Support for css @define_color variables, allow change color in..

region, Remove coloring in comments, Refactoring.

* colorful-mode.el (colorful-base): Add bold face and clarify
documentation.

(colorful-html-colors-alist): Add missing HTML/CSS color names
and use down-case.

(colorful-extra-color-keyword-functions):
Add colorful-extra-color-keyword-functions.

(colorful-exclude-colors): Replace `#def' with `#define'.

(colorful-short-hex-conversions): Use boolean type and update
documentation string.

(colorful--latex-rgb-to-hex, colorful--latex-gray-to-hex):
Delete functions.

(colorful--rgb-to-hex, colorful--hsl-to-hex, colorful--name-to-hex)
(colorful--find-overlay, colorful-convert-and-copy-color)
(colorful--percentage-to-absolute, colorful-rgb-font-lock-keywords):
(colorful-hsl-font-lock-keywords)
Refactorize.

(colorful-convert-and-change-color): Refactorize and allow use in region.

(colorful-change-or-copy-color, colorful-add-hex-colors)
(colorful-add-rgb-colors, colorful-add-hsl-colors)
(colorful-add-hsl-colors, colorful-add-latex-colors):
Clarify documentation string.

(colorful--change-color): Remove function, move prompt to ...
(colorful--prompt-converter):  ... this new function...
(colorful--converter): ... and move converter to this new function.

(colorful--colorize): Avoid coloring if color is inside a comment.
(colorful--colorize-match): Add alpha value and color value tags.

(colorful-add-color-names): Enable font-lock case insensitive for
color names.

(colorful-css-variables-keywords): New variable.
(colorful-add-css-variables-colors): New function.

(colorful--font-lock-case-old-value): New use-internal variable.

(colorful--turn-on): Save buffer font lock case fold value in
`colorful--font-lock-case-old-value'.

(colorful--turn-off): Restore buffer font lock case fold value and
clear `colorful-color-keywords' list.

* test/css.css:
Add new color tests

* test/emacs-colors.el:
Add new color tests

* README.org: Update file to recent changes.
---
 README.org   |  74 ++--
 colorful-mode.el | 939 ++-
 test/css.css | 177 +-
 test/emacs-colors.el |   3 +-
 4 files changed, 772 insertions(+), 421 deletions(-)

diff --git a/README.org b/README.org
index ab96dc02ee..455b89d805 100644
--- a/README.org
+++ b/README.org
@@ -1,3 +1,4 @@
+#+OPTIONS: _:nil
 #+title: colorful-mode
 #+subtitle: Preview any color in your buffer in real time.
 #+author: Elias G. Perez
@@ -5,7 +6,7 @@
 #+export_file_name: colorful-mode.texi
 #+texinfo_dir_category: Emacs misc features
 #+texinfo_dir_title: colorful-mode: (colorful-mode).
-#+texinfo_dir_desc: Preview color hexs in your buffer
+#+texinfo_dir_desc: Preview any color in your buffer in real time.
 
 
[[https://raw.githubusercontent.com/DevelopmentCool2449/colorful-mode/main/assets/colorful-mode-logo.svg]]
 
@@ -25,14 +26,19 @@ in real time and in a user friendly way based/inspired on 
🌈[[https://elpa.gnu
 
 * Features ✨
 - Real time color highlight.
-- Supports hexadecimal (#RRGGBB, #RGB, #RRGGBBAA, #RGBA), color names, 
rgb(a)/hsl(a)
-  and LaTex colors (gray, rbg, RGB, HTML)
-- Convert current color at point to other formats such as hexadecimal
-  or color names(only available for some colors)
+- Supports:
+  - Hexadecimal (#RRGGBB, #RGB, #RRGGBBAA, #RGBA).
+  - Color names (Emacs, HTML, CSS).
+  - CSS rgb/rgba, hsl/hsla and user-defined colors variables:
+- @define_color
+- var() (WIP)
+  - LaTex colors (gray, rbg, RGB, HTML)
+- Convert current color at point or in region to other formats
+  such as hexadecimal or color names *(only available for some colors)*
   with mouse click support.
-- Optionally use a prefix/suffix string instead highlight.
-- Optionally highlight colors only inside in strings.
-- Omitting color keywords from being highlighted.
+- Prefix/suffix string instead highlight /(Optional)/.
+- Highlight only in strings /(Optional)/.
+- Blacklist color keywords from being highlighted.
 
 * Screenshots and animated GIFs 📷
 
[[https://raw.githubusercontent.com/DevelopmentCool2449/colorful-mode/main/assets/gif1.gif]]
@@ -64,11 +70,14 @@ THIS MAY INTERFERE WITH COLORFUL PREFIX, YOU CAN DISABLE 
THIS SETTING
   Only relevant if `colorful-use-prefix' is non-nil.
 - =colorful-extra-color-keyword-functions=
   default:
-  '((emacs-lisp-mode . colorful-add-color-names)
-((mhtml-mode html-ts-mode css-mode css-ts-mode)
-. (colorful-add-rgb-colors colorful-add-hsl-colors 
colorful-add-color-names))
-(latex-mode . colorful-add-latex-colors)
-colorful-add-hex-colors)
+  '(colorful-add

[elpa] externals/org-gnosis 19332dfd45 2/5: insert-tags: Add support for inserting tags for headings.

2025-02-11 Thread ELPA Syncer
branch: externals/org-gnosis
commit 19332dfd4551c616bd19c5bbb77307938c1a7a4c
Author: Thanos Apollo 
Commit: Thanos Apollo 

insert-tags: Add support for inserting tags for headings.

* Insert a tag or a filetag, with provided completions for tags found
  in gnosis db.

* Rename org-gnosis-insert-tag to org-gnosis-insert-filetag as it is
  only used to insert a filetag
---
 org-gnosis.el | 31 ++-
 1 file changed, 18 insertions(+), 13 deletions(-)

diff --git a/org-gnosis.el b/org-gnosis.el
index 86787ae72c..c9caabb9a7 100644
--- a/org-gnosis.el
+++ b/org-gnosis.el
@@ -465,29 +465,34 @@ If JOURNAL-P is non-nil, retrieve/create node as a 
journal entry."
  (t (org-insert-link nil id node)
 
 
-(defun org-gnosis-insert-tag (&optional tag)
+(defun org-gnosis-insert-filetag (&optional tag)
   "Insert TAG as filetag."
   (interactive)
   (let* ((filetags (org-gnosis-select 'tag 'tags '1=1 t))
  (tag (or tag (funcall org-gnosis-completing-read-func "Select tag: " 
filetags
 (save-excursion
-  (goto-char (point-min))
-  (if (re-search-forward "^#\\+FILETAGS:" nil t)
+  (if (org-at-heading-p)
+ (org-set-tags tag)
+   (goto-char (point-min))
+   (if (re-search-forward "^#\\+FILETAGS:" nil t)
+(progn
+  (end-of-line)
+  (insert (if (looking-back ":" nil) "" ":") tag ":"))
   (progn
-(end-of-line)
-(insert (if (looking-back ":" nil) "" ":") tag ":"))
-(progn
-  (insert "#+FILETAGS: :" tag ":")
-  (newline))
+(insert "#+FILETAGS: :" tag ":")
+(newline)))
 
 ;;;###autoload
 (defun org-gnosis-insert-tags (tags)
   "Insert TAGS as filetags."
-  (interactive (list (completing-read-multiple
- "Select tags (seperated by ,): "
- (org-gnosis-select 'tag 'tags '1=1 t
-  (dolist (tag tags)
-(org-gnosis-insert-tag tag)))
+  (interactive
+   (list (completing-read-multiple
+ "Select tags (separated by ,): "
+ (org-gnosis-select 'tag 'tags '1=1 t
+  (if (org-before-first-heading-p)
+  (mapc #'org-gnosis-insert-filetag tags)
+(org-back-to-heading)
+(org-set-tags tags)))
 
 ;;;###autoload
 (defun org-gnosis-journal-find (&optional title)



[elpa] externals/org-gnosis updated (f949378ce7 -> ab0ea270a9)

2025-02-11 Thread ELPA Syncer
elpasync pushed a change to branch externals/org-gnosis.

  from  f949378ce7 db-delete-tables: do not hardcode table names.
   new  8588f66e84 [Feature] Add create-as-gpg
   new  19332dfd45 insert-tags: Add support for inserting tags for headings.
   new  740b14a12f style & docstring adjustments
   new  f79bc6cea3 Add NEWS to track version history
   new  ab0ea270a9 version bump: 0.0.3


Summary of changes:
 NEWS  |  6 +
 org-gnosis.el | 78 ++-
 2 files changed, 51 insertions(+), 33 deletions(-)
 create mode 100644 NEWS



[elpa] externals/org-gnosis 740b14a12f 3/5: style & docstring adjustments

2025-02-11 Thread ELPA Syncer
branch: externals/org-gnosis
commit 740b14a12f406f15b8c312e470f79b414b63bfc1
Author: Thanos Apollo 
Commit: Thanos Apollo 

style & docstring adjustments
---
 org-gnosis.el | 38 --
 1 file changed, 20 insertions(+), 18 deletions(-)

diff --git a/org-gnosis.el b/org-gnosis.el
index c9caabb9a7..a730956429 100644
--- a/org-gnosis.el
+++ b/org-gnosis.el
@@ -98,7 +98,7 @@
   "Select VALUE from TABLE, optionally with RESTRICTIONS.
 
 Optional argument FLATTEN, when non-nil, flattens the result."
-  (org-gnosis-db-init-if-needed)
+  (org-gnosis-db-init-if-needed) ;; Init database if needed
   (let ((output (emacsql org-gnosis-db
 `[:select ,value :from ,table :where ,restrictions])))
 (if flatten
@@ -120,7 +120,7 @@ Optional argument FLATTEN, when non-nil, flattens the 
result."
 (defun org-gnosis-adjust-title (input &optional node-id)
   "Adjust the INPUT string to replace id link structures with plain text.
 
-If node TITLE contains an id link, it's inserted as link for NODE-ID
+If node title contains an id link, it's inserted as link for NODE-ID
 in the database."
   (when (stringp input)
 (let* ((id-links '())
@@ -198,7 +198,7 @@ TOPIC-ID: Topic hash id."
 (tags (org-gnosis-get-filetags)))
 (list title tags id)))
 
-;; This one is used mostly for topic
+;; This one is used for topics
 (defun org-gnosis-get-filetags (&optional parsed-data)
   "Return the filetags of the buffer's PARSED-DATA as a comma-separated 
string."
   (let* ((parsed-data (or parsed-data (org-element-parse-buffer)))
@@ -704,32 +704,34 @@ ENTRY: Journal entry linked under the heading."
 
 (defun org-gnosis-db-sync--journal ()
   "Sync journal entries in databse."
-  (cl-loop for file in (cl-remove-if-not (lambda (file)
-  (and
-   (string-match-p "^[0-9]"
-   
(file-name-nondirectory file))
-   (not (file-directory-p file
-(directory-files 
org-gnosis-journal-dir t nil t))
+  (cl-loop for file in (cl-remove-if-not
+   (lambda (file)
+ (and
+  (string-match-p "^[0-9]"
+  (file-name-nondirectory file))
+  (not (file-directory-p file
+   (directory-files org-gnosis-journal-dir t nil t))
   do (org-gnosis-update-file file)))
 
 ;;;###autoload
 (defun org-gnosis-db-sync ()
-  "Sync `org-gnosis-db'.
-
-If called with ARG do not initialize the database."
+  "Sync `org-gnosis-db'."
   (interactive)
   (org-gnosis-db-init)
-  (let ((files (cl-remove-if-not (lambda (file)
-  (and (string-match-p "^[0-9]"
-   (file-name-nondirectory 
file))
-   (not (file-directory-p file
-(directory-files org-gnosis-dir t nil t
+  (let ((files (cl-remove-if-not
+   (lambda (file)
+ (and (string-match-p "^[0-9]"
+  (file-name-nondirectory file))
+  (not (file-directory-p file
+   (directory-files org-gnosis-dir t nil t
 (cl-loop for file in files
 do (org-gnosis-update-file file)))
   (org-gnosis-db-sync--journal))
 
 (defun org-gnosis-db-init ()
-  "Initialize database DB with the correct schema and user version."
+  "Initialize database.
+
+If database tables exist, delete them & recreate the db."
   (setf org-gnosis-db (emacsql-sqlite-open (locate-user-emacs-file 
"org-gnosis.db")))
   (org-gnosis-db-delete-tables)
   (when (length< (emacsql org-gnosis-db



[elpa] externals/org-gnosis 8588f66e84 1/5: [Feature] Add create-as-gpg

2025-02-11 Thread ELPA Syncer
branch: externals/org-gnosis
commit 8588f66e848419701b835efc532dd18f4ea4797c
Author: Thanos Apollo 
Commit: Thanos Apollo 

[Feature] Add create-as-gpg

* When org-gnosis-create-as-gpg is non-nil file will be created with a
  .gpg suffix, adding support for gpg encryption.
---
 org-gnosis.el | 7 ++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/org-gnosis.el b/org-gnosis.el
index d30e1a8f94..86787ae72c 100644
--- a/org-gnosis.el
+++ b/org-gnosis.el
@@ -67,6 +67,10 @@
   "Timestring used for the creation of file."
   :type 'string)
 
+(defcustom org-gnosis-create-as-gpg nil
+  "When non-nil, create notes with a .gpg suffix."
+  :type 'boolean)
+
 (defcustom org-gnosis-todo-files org-agenda-files
   "TODO files used for the journal entries."
   :type '(repeat string))
@@ -341,7 +345,8 @@ TIMESTRING defaults to `org-gnosis-timestring'"
   (let ((timestring (or timestring org-gnosis-timestring))
(filename (replace-regexp-in-string "#" ""
(replace-regexp-in-string " " "_" 
title
-(format "%s--%s.org" (format-time-string timestring) filename)))
+(format "%s--%s.org%s" (format-time-string timestring) filename
+   (if org-gnosis-create-as-gpg ".gpg" ""
 
 (defun org-gnosis--create-file (title &optional directory extras)
   "Create a node FILE for TITLE.



[elpa] externals/org-gnosis ab0ea270a9 5/5: version bump: 0.0.3

2025-02-11 Thread ELPA Syncer
branch: externals/org-gnosis
commit ab0ea270a99fc2a10592792e242812e46a6f37b5
Author: Thanos Apollo 
Commit: Thanos Apollo 

version bump: 0.0.3

* Add gpg encryption support.
* Improve support for inserting heading tags & filetags, using
  completions.
* Minor improvements in error handling.
---
 org-gnosis.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/org-gnosis.el b/org-gnosis.el
index a730956429..9923914a80 100644
--- a/org-gnosis.el
+++ b/org-gnosis.el
@@ -5,7 +5,7 @@
 ;; Author: Thanos Apollo 
 ;; Keywords: extensions
 ;; URL: https://thanosapollo.org/projects/org-gnosis/
-;; Version: 0.0.2
+;; Version: 0.0.3
 
 ;; Package-Requires: ((emacs "27.2") (emacsql "4.0.0") (compat "29.1.4.2"))
 



[elpa] externals/colorful-mode 2767f253e9 2/2: Add support for CSS var() colors

2025-02-11 Thread ELPA Syncer
branch: externals/colorful-mode
commit 2767f253e9ddf5e5701b50c9f9ea54b1fad5b9da
Author: Elijah Gabe P. 
Commit: Elijah Gabe P. 

Add support for CSS var() colors

* README.org: Remove `(WIP)' from var() in Features header.

* colorful-mode.el (colorful-convert-and-change-color):
Use mark-active instead `beg' and `end' variables

(colorful--get-css-variable-color): New macro.

(colorful--colorize): Use new macro.

(colorful-css-variables-keywords): Add var() regexp,

* test/css.css (foo): Add var() tests.

* test/latex.tex: Formatting.
---
 README.org   |   2 +-
 colorful-mode.el |  59 +++
 test/css.css | 307 ---
 test/latex.tex   |   9 +-
 4 files changed, 194 insertions(+), 183 deletions(-)

diff --git a/README.org b/README.org
index 455b89d805..800d9ee77d 100644
--- a/README.org
+++ b/README.org
@@ -31,7 +31,7 @@ in real time and in a user friendly way based/inspired on 
🌈[[https://elpa.gnu
   - Color names (Emacs, HTML, CSS).
   - CSS rgb/rgba, hsl/hsla and user-defined colors variables:
 - @define_color
-- var() (WIP)
+- var()
   - LaTex colors (gray, rbg, RGB, HTML)
 - Convert current color at point or in region to other formats
   such as hexadecimal or color names *(only available for some colors)*
diff --git a/colorful-mode.el b/colorful-mode.el
index 72dae1e2c2..9fdce09728 100644
--- a/colorful-mode.el
+++ b/colorful-mode.el
@@ -470,7 +470,7 @@ BEG is the position to check for the overlay."
   "Convert color to other format and replace color at point or active mark.
 If mark is active, convert colors in mark."
   (interactive "*r")
-  (if (and beg end)
+  (if mark-active
   (let* ((choices '(("Hexadecimal color format" . hex)
 ("Emacs color name" . name)))
  ;; Start prompt.
@@ -670,6 +670,21 @@ from `readable-foreground-color'."
  (:background ,color)
  (:inherit colorful-base)))
 
+(defmacro colorful--get-css-variable-color (regexp)
+  "Get color value from CSS variable REGEXP.
+REGEXP must have a group that contains the color value."
+  (declare (indent 0))
+  `(save-excursion
+ (goto-char (point-max))
+ (when (re-search-backward ,regexp nil t)
+   ;; Get color value from colorful overlay.
+   ;; if not color value found, use the one from REGEXP 1st group.
+   (setq color (or (ignore-errors
+ (overlay-get (colorful--find-overlay
+   (match-beginning 1))
+  'colorful--overlay-color))
+   (match-string-no-properties 1))
+
 (defun colorful--colorize (kind &optional match)
   "Helper function for Colorize each KIND of MATCH with itself."
 
@@ -733,24 +748,22 @@ from `readable-foreground-color'."
   ;; Otherwise, just pass it.
   (t (string-replace "0x" "#" color)
 
-((and 'css-color-variable
-  (guard (not (string= match-1 "define_color"
- ;; Find whole buffer for last @define-color match-1 found
- ;; and get its color value.
- (save-excursion
-   (goto-char (point-max))
-   (when (re-search-backward
-  (rx (seq "@define_color"
-   (one-or-more space)
-   (literal match-1)
-   (one-or-more space)
-   (group (opt "#") (one-or-more (any "0-9A-Za-z")
-  nil t)
- ;; Get color value from colorful overlay.
- (setq color (ignore-errors ; nil if no overlay found
-   (overlay-get (colorful--find-overlay
- (match-beginning 1))
-'colorful--overlay-color)))
+('css-color-variable
+ (cond
+  ((and (string= match-1 "@")
+(not (string= match-2 "define_color")))
+   ;; Find whole buffer for last @define-color match-1 found
+   ;; and get its color value.
+   (colorful--get-css-variable-color
+(rx (seq "@define_color"
+ (one-or-more space)
+ (literal match-2)
+ (one-or-more space)
+ (group (opt "#") (one-or-more (any "0-9A-Za-z")))
+  ((string= match-1 "var")
+   (colorful--get-css-variable-color
+(rx (seq (literal match-2) ":" (zero-or-more space)
+ (group (opt "#") (one-or-more (any "0-9A-Za-z"))
 
   ;; Ensure that string is a valid color and that string is non-nil
   (if (and color (color-defined-p color))
@@ -829,8 +842,12 @@ This is intended to be used with 
`colorful-extra-color-keyword-functions'."
 (cl-pushnew colors colorful-color-keywords)))
 
 (defvar col

[elpa] externals/colorful-mode updated (c57656d937 -> 2767f253e9)

2025-02-11 Thread ELPA Syncer
elpasync pushed a change to branch externals/colorful-mode.

  from  c57656d937 Refactorize code
   new  ed32abcca4 Support for css @define_color variables, allow change 
color in..
   new  2767f253e9 Add support for CSS var() colors


Summary of changes:
 README.org   |  74 ++--
 colorful-mode.el | 956 ++-
 test/css.css | 178 +-
 test/emacs-colors.el |   3 +-
 test/latex.tex   |   9 +-
 5 files changed, 791 insertions(+), 429 deletions(-)



[elpa] externals/org-gnosis f79bc6cea3 4/5: Add NEWS to track version history

2025-02-11 Thread ELPA Syncer
branch: externals/org-gnosis
commit f79bc6cea3945f8d0bdebd2d23ed1f4ffb29869f
Author: Thanos Apollo 
Commit: Thanos Apollo 

Add NEWS to track version history

* Helps users and maintainers track important changes.
---
 NEWS | 6 ++
 1 file changed, 6 insertions(+)

diff --git a/NEWS b/NEWS
new file mode 100644
index 00..751d385ce6
--- /dev/null
+++ b/NEWS
@@ -0,0 +1,6 @@
+-*- mode: org -*-
+
+* 0.0.3
++ Add gpg encryption support.
++ Add inserting tags for headings (from tags found in the db).
++ Minor improvements in error messages & error handling.



[elpa] externals/auth-source-xoauth2-plugin fbbc366bf1 6/7: Move implementation details to the last section

2025-02-11 Thread ELPA Syncer
branch: externals/auth-source-xoauth2-plugin
commit fbbc366bf16bfae640989b2dd52498e072576793
Author: Xiyue Deng 
Commit: Xiyue Deng 

Move implementation details to the last section

Also try to clarify some of the details.
---
 README.org | 45 -
 1 file changed, 24 insertions(+), 21 deletions(-)

diff --git a/README.org b/README.org
index 97a3b0d568..0d3483aaa1 100644
--- a/README.org
+++ b/README.org
@@ -53,14 +53,6 @@ the following:
 To disable, just toggle the minor mode off by calling `M-x
 auth-source-xoauth2-plugin-mode' again.
 
-auth-source uses the `secret' field in auth-source file as password
-for authentication, including xoauth2.  To decide which
-authentication method to use (e.g. plain password vs xoauth2), it
-inspects the `auth' field from the auth-source entry, and if the
-value is `xoauth2', it will try to gather data and get the access
-token for use of xoauth2 authentication; otherwise, it will fallback
-to the default authentication method.
-
 When xoauth2 authentication is enabled, it will try to get the
 following data from the auth-source entry: `auth-url', `token-url',
 `scope', `client-id', `client-secret', `redirect-uri', and optionally
@@ -88,14 +80,9 @@ settings):
   ]
 #+END_SRC
 
-These information will be used by oauth2 to retrieve the access-token.
-This package uses an advice to switch the auth-source search result
-from the `password' to the `access-token' it got, which in turn will
-be used to construct the xoauth2 authentication string, currently in
-nnimap-login and smtpmail-try-auth-method.  To really enable xoauth2
-in smtpmail, it will add \'xoauth2 to \'smtpmail-auth-supported (if it
-is not already in the list) using `add-to-list' so that xoauth2 is
-tried first.
+It will then use `oauth2.el' to retrieve the access-token with those
+information, use it to construct the oauth2 authentication string, and
+let `auth-source' do the rest.
 
 * Comparison with other xoauth2 implementations
 
@@ -136,8 +123,24 @@ entities.
 
 * Notes on Implementation
 
-Currently the auth-source requires the searched entry must have
-`secret' field set in the entry, which is not necessary when using
-xoauth2.  Therefore in the advice it temporarily disables checking
-for ~:secret~ if set and perform the search, and check the result
-before returning.
+`auth-source' uses the `secret' field in auth-source file as password
+for authentication, including xoauth2.  To decide which authentication
+method to use (e.g. plain password vs xoauth2), this plugin inspects
+the `auth' field from the auth-source entry, and if the value is
+`xoauth2', it will try to gather data and get the access token for use
+of xoauth2 authentication; otherwise, it will fallback to the default
+authentication method.
+
+This package uses an advice to switch the auth-source search result
+from the `password' to the `access-token' it got, which in turn will
+be used to construct the xoauth2 authentication string, currently in
+nnimap-login and smtpmail-try-auth-method.  To enable xoauth2 support
+in smtpmail, it adds \'xoauth2 to \'smtpmail-auth-supported (if it is
+not already in the list) using `add-to-list' so that xoauth2 is tried
+first.
+
+Note that currently `auth-source' requires the searched entry must
+have `secret' field set in the entry, which is not necessarily true
+when using xoauth2.  Therefore in the advice it temporarily disables
+checking for `:secret' perform the search in the backend, and ensure
+that `secret' contains the generated access-token before returning.



[elpa] externals/auth-source-xoauth2-plugin 21b3618392 7/7: Tag version 0.1.1

2025-02-11 Thread ELPA Syncer
branch: externals/auth-source-xoauth2-plugin
commit 21b361839286b174698bae4258ec893dc5f5c27d
Author: Xiyue Deng 
Commit: Xiyue Deng 

Tag version 0.1.1
---
 auth-source-xoauth2-plugin.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/auth-source-xoauth2-plugin.el b/auth-source-xoauth2-plugin.el
index 37ab859394..beee9d4c5e 100644
--- a/auth-source-xoauth2-plugin.el
+++ b/auth-source-xoauth2-plugin.el
@@ -3,7 +3,7 @@
 ;; Copyright (C) 2024-2025  Free Software Foundation, Inc.
 
 ;; Author: Xiyue Deng 
-;; Version: 0.1
+;; Version: 0.1.1
 ;; Package-Requires: ((emacs "28.1") (oauth2 "0.17"))
 
 ;; This file is not part of GNU Emacs.



[elpa] externals/auth-source-xoauth2-plugin 44c6f97abc 5/7: Add a section for debugging

2025-02-11 Thread ELPA Syncer
branch: externals/auth-source-xoauth2-plugin
commit 44c6f97abced1780eaa92f028ac8d9a88f89dbb2
Author: Xiyue Deng 
Commit: Xiyue Deng 

Add a section for debugging
---
 README.org | 23 +++
 1 file changed, 23 insertions(+)

diff --git a/README.org b/README.org
index 7af818583e..97a3b0d568 100644
--- a/README.org
+++ b/README.org
@@ -111,6 +111,29 @@ reimplemented most of the required functions itself.
 storage for storing temporary/ephemeral data tokens, where
 `auth-source-xoauth2' implemented its own storage.
 
+* Debugging
+
+In case you encounter any issues, you may consider enabling verbose
+messages to help debugging.  `auth-source-xoauth2-plugin' uses the
+same convention as `auth-source' for outputing verbose messages.  You
+may do the following:
+
+#+BEGIN_SRC emacs-lisp
+  (setq auth-source-debug t)
+#+END_SRC
+
+and check the =*Message*= buffer for logs.  You can enable even more
+verbose log by the following:
+
+#+BEGIN_SRC emacs-lisp
+  (setq auth-source-debug 'trivia)
+#+END_SRC
+
+NOTE: \'trivia will include your tokens for authentication in your
+=*Message*= buffer so be careful not to share the log with untrusted
+entities.
+
+
 * Notes on Implementation
 
 Currently the auth-source requires the searched entry must have



[elpa] externals/auth-source-xoauth2-plugin 2d042f1b3b 2/7: Add instructions for installation from GNU ELPA

2025-02-11 Thread ELPA Syncer
branch: externals/auth-source-xoauth2-plugin
commit 2d042f1b3bf16768fdb31ff9b9ad3e201c733954
Author: Xiyue Deng 
Commit: Xiyue Deng 

Add instructions for installation from GNU ELPA
---
 README.org | 11 ---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/README.org b/README.org
index b756cd1569..a83431b40d 100644
--- a/README.org
+++ b/README.org
@@ -14,10 +14,15 @@ extend the OAuth 2.0 Authentication Protocol and the JSON 
Web Token
 (JWT) to enable server-to-server authentication.  More info please
 check out [[https://stackoverflow.com/a/76389679/2337550][this stackoverflow 
answer]].
 
-* Setup
+* Installation
 
-To set up, please put this file in the `load-path' of Emacs, and add
-the following lines in your Emacs configuration:
+`auth-source-xoauth2-plugin' is on 
[[https://elpa.gnu.org/packages/auth-source-xoauth2-plugin.html][GNU ELPA]], 
and you can install it
+with `package-install' (see also 
[[https://www.gnu.org/software/emacs/manual/html_node/emacs/Package-Installation.html][the
 Emacs document on how to use
+package-install]]).  Or you can clone the repository or simply download
+the ~auth-source-xoauth2-plugin.el~ file and put it anywhere in your
+Emacs' `load-path'.
+
+Then add the following lines in your Emacs configuration:
 
 #+BEGIN_SRC emacs-lisp
   (require 'auth-source-xoauth2-plugin)



[elpa] externals/auth-source-xoauth2-plugin 05b6cad348 1/7: Add ELPA badge

2025-02-11 Thread ELPA Syncer
branch: externals/auth-source-xoauth2-plugin
commit 05b6cad3486b894441c36b3bdfc86764cc37fbb9
Author: Xiyue Deng 
Commit: Xiyue Deng 

Add ELPA badge
---
 README.org | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/README.org b/README.org
index e98dd76a5d..b756cd1569 100644
--- a/README.org
+++ b/README.org
@@ -1,6 +1,8 @@
 #+TITLE: Auth-source xoauth2 plugin
 #+DATE: 2024-11-08
 
+#+html: https://elpa.gnu.org/packages/auth-source-xoauth2-plugin.html";>https://elpa.gnu.org/packages/auth-source-xoauth2-plugin.svg"/>
+
 * Introduction
 
 This package provides a global minor mode for enabling support for



[elpa] externals/auth-source-xoauth2-plugin ed2fc59d04 3/7: Fix heading levels

2025-02-11 Thread ELPA Syncer
branch: externals/auth-source-xoauth2-plugin
commit ed2fc59d047ccc8ae53b43216098f219d3fcc190
Author: Xiyue Deng 
Commit: Xiyue Deng 

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

diff --git a/README.org b/README.org
index a83431b40d..f17a6405eb 100644
--- a/README.org
+++ b/README.org
@@ -97,9 +97,9 @@ in smtpmail, it will add \'xoauth2 to 
\'smtpmail-auth-supported (if it
 is not already in the list) using `add-to-list' so that xoauth2 is
 tried first.
 
-** Comparison with other xoauth2 implementations
+* Comparison with other xoauth2 implementations
 
-*** [[https://github.com/ccrusius/auth-source-xoauth2][auth-source-xoauth2]]
+** [[https://github.com/ccrusius/auth-source-xoauth2][auth-source-xoauth2]]
 
 This plugin takes inspirations from auth-source-xoauth2 to advice the
 auth-source-search backends to add xoauth2 access-token for
@@ -111,7 +111,7 @@ reimplemented most of the required functions itself.
 storage for storing temporary/ephemeral data tokens, where
 `auth-source-xoauth2' implemented its own storage.
 
-** Notes
+* Notes on Implementation
 
 Currently the auth-source requires the searched entry must have
 `secret' field set in the entry, which is not necessary when using



[elpa] externals/auth-source-xoauth2-plugin updated (991ef1751a -> 21b3618392)

2025-02-11 Thread ELPA Syncer
elpasync pushed a change to branch externals/auth-source-xoauth2-plugin.

  from  991ef1751a Update auth-source json example to be part of a list
   new  05b6cad348 Add ELPA badge
   new  2d042f1b3b Add instructions for installation from GNU ELPA
   new  ed2fc59d04 Fix heading levels
   new  3f637a2f42 Use link to auth-source-xoauth2 in the text instead of 
in the heading
   new  44c6f97abc Add a section for debugging
   new  fbbc366bf1 Move implementation details to the last section
   new  21b3618392 Tag version 0.1.1


Summary of changes:
 README.org| 89 +--
 auth-source-xoauth2-plugin.el |  2 +-
 2 files changed, 62 insertions(+), 29 deletions(-)



[elpa] externals/auth-source-xoauth2-plugin 3f637a2f42 4/7: Use link to auth-source-xoauth2 in the text instead of in the heading

2025-02-11 Thread ELPA Syncer
branch: externals/auth-source-xoauth2-plugin
commit 3f637a2f42bd2ba3bf4a825303e1fa8579014bbe
Author: Xiyue Deng 
Commit: Xiyue Deng 

Use link to auth-source-xoauth2 in the text instead of in the heading
---
 README.org | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/README.org b/README.org
index f17a6405eb..7af818583e 100644
--- a/README.org
+++ b/README.org
@@ -99,9 +99,9 @@ tried first.
 
 * Comparison with other xoauth2 implementations
 
-** [[https://github.com/ccrusius/auth-source-xoauth2][auth-source-xoauth2]]
+** auth-source-xoauth2
 
-This plugin takes inspirations from auth-source-xoauth2 to advice the
+This plugin takes inspirations from 
[[https://github.com/ccrusius/auth-source-xoauth2][auth-source-xoauth2]] to 
advice the
 auth-source-search backends to add xoauth2 access-token for
 authentication.  The implementation is independent and reuses many
 existing facilities in `auth-source.el', where auth-source-xoauth2



[elpa] main 66b69a2a9e 1/2: Fix some CSS issues

2025-02-11 Thread Stefan Kangas
branch: main
commit 66b69a2a9efd4e16300666d96fbaeb0e5f62575e
Author: john muhl 
Commit: Stefan Kangas 

Fix some CSS issues

* html/layout.css (footer): Remove fixed height so the background
expands to encompass all footer content.
(table): Make packages table always use full page width.
---
 html/layout.css | 10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/html/layout.css b/html/layout.css
index 5819fe547a..847ab65395 100644
--- a/html/layout.css
+++ b/html/layout.css
@@ -72,7 +72,7 @@ html, body {
   height: 100%;
   margin: 0 auto -50px; /* the bottom margin is the negative value of the 
footer's height */
 }
-footer, .push, .footer {
+.push {
   height: 90px; /* .push must be the same height as .footer */
 }
 
@@ -295,6 +295,10 @@ footer p, .footer p {
   line-height: 1.4em;
 }
 
+table {
+  width: 100%;
+}
+
 @media screen and (max-width: 999px) {
   .container {
 width: 600px;
@@ -306,10 +310,6 @@ footer p, .footer p {
 font-size: 1em;
   }
 
-  table {
-width: 100%;
-  }
-  
   .container {
 width: 90%;
 padding: 40px 5%;



[elpa] main 9755509c45 2/2: Show rank instead of version on narrow displays

2025-02-11 Thread Stefan Kangas
branch: main
commit 9755509c459eb71038fcb99ea825894f54383640
Author: john muhl 
Commit: Stefan Kangas 

Show rank instead of version on narrow displays

* html/layout.css (td):
(th): Hide version and right align rank column.
---
 html/layout.css | 7 ++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/html/layout.css b/html/layout.css
index 847ab65395..ac10ef9b99 100644
--- a/html/layout.css
+++ b/html/layout.css
@@ -276,6 +276,11 @@ td {
   border-bottom: 1px solid #ddd;
 }
 
+td:last-child,
+th:last-child {
+  text-align: right;
+}
+
 footer, .footer {
   border-top: 1px solid #999;
   text-align:center;
@@ -323,7 +328,7 @@ table {
 width: 300px;
   }
 
-  td:last-child, th:last-child {
+  td:nth-child(2), th:nth-child(2) {
 display: none;
   }
 



[elpa] main updated (d8191aae7c -> 9755509c45)

2025-02-11 Thread Stefan Kangas
skangas pushed a change to branch main.

  from  d8191aae7c Add .mailmap file
   new  66b69a2a9e Fix some CSS issues
   new  9755509c45 Show rank instead of version on narrow displays


Summary of changes:
 html/layout.css | 17 +++--
 1 file changed, 11 insertions(+), 6 deletions(-)