[elpa] externals/debbugs updated (af445940e3 -> c2f34b2379)
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*
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
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
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
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
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
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
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
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
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.
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)
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
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)
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
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
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.
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
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)
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)
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.
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
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
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)
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
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
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
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)
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
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
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..
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.
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)
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
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
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
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
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)
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
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
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
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
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
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
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
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)
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
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
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
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)
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(-)