[elpa] externals/company 0a0cdad605 2/3: Fix byte-compilation warning
branch: externals/company commit 0a0cdad605fcd0f985cc7818734a174fb8d07d2c Author: Dmitry Gutov Commit: Dmitry Gutov Fix byte-compilation warning --- company.el | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/company.el b/company.el index f471fcc6e0..56dd0a9129 100644 --- a/company.el +++ b/company.el @@ -3647,7 +3647,8 @@ If SHOW-VERSION is non-nil, show the version in the echo area." (mapcar (lambda (c) (cons c (company-call-backend 'annotation c))) cc) - current-capf (car company-capf--current-completion-data)) + current-capf (car (bound-and-true-p + company-capf--current-completion-data))) (error (setq annotations 'error) (pop-to-buffer (get-buffer-create "*company-diag*")) (setq buffer-read-only nil)
[nongnu] elpa/gptel 3fdcb2256a 1/2: README: Restructure FAQ
branch: elpa/gptel commit 3fdcb2256a0365f4608be0c1bf8406619c53938e Author: Karthik Chikmagalur Commit: Karthik Chikmagalur README: Restructure FAQ * README.org (FAQ): Restructure and add headers. Add FAQ item on transient menu spawning extra windows (#583, #656). --- README.org | 65 +++--- 1 file changed, 41 insertions(+), 24 deletions(-) diff --git a/README.org b/README.org index b5f8bb7f79..e156647a42 100644 --- a/README.org +++ b/README.org @@ -121,14 +121,18 @@ gptel uses Curl if available, but falls back to the built-in url-retrieve to wor - [[#rewrite-refactor-or-fill-in-a-region][Rewrite, refactor or fill in a region]] - [[#extra-org-mode-conveniences][Extra Org mode conveniences]] - [[#faq][FAQ]] - - [[#i-want-to-use-gptel-in-a-way-thats-not-supported-by-gptel-send-or-the-options-menu][I want to use gptel in a way that's not supported by =gptel-send= or the options menu]] +- [[#chat-buffer-ui][Chat buffer UI]] - [[#i-want-the-window-to-scroll-automatically-as-the-response-is-inserted][I want the window to scroll automatically as the response is inserted]] - [[#i-want-the-cursor-to-move-to-the-next-prompt-after-the-response-is-inserted][I want the cursor to move to the next prompt after the response is inserted]] - [[#i-want-to-change-the-formatting-of-the-prompt-and-llm-response][I want to change the formatting of the prompt and LLM response]] + - [[#how-does-gptel-distinguish-between-user-prompts-and-llm-responses][How does gptel distinguish between user prompts and LLM responses?]] +- [[#transient-menu-behavior][Transient menu behavior]] - [[#i-want-the-transient-menu-options-to-be-saved-so-i-only-need-to-set-them-once][I want the transient menu options to be saved so I only need to set them once]] + - [[#using-the-transient-menu-leaves-behind-extra-windows][Using the transient menu leaves behind extra windows]] - [[#can-i-change-the-transient-menu-key-bindings][Can I change the transient menu key bindings?]] - - [[#how-does-gptel-distinguish-between-user-prompts-and-llm-responses][How does gptel distinguish between user prompts and LLM responses?]] - [[#doom-emacs-sending-a-query-from-the-gptel-menu-fails-because-of-a-key-conflict-with-org-mode][(Doom Emacs) Sending a query from the gptel menu fails because of a key conflict with Org mode]] +- [[#miscellaneous][Miscellaneous]] + - [[#i-want-to-use-gptel-in-a-way-thats-not-supported-by-gptel-send-or-the-options-menu][I want to use gptel in a way that's not supported by =gptel-send= or the options menu]] - [[#chatgpt-i-get-the-error-http2-429-you-exceeded-your-current-quota][(ChatGPT) I get the error "(HTTP/2 429) You exceeded your current quota"]] - [[#why-another-llm-client][Why another LLM client?]] - [[#additional-configuration][Additional Configuration]] @@ -1124,15 +1128,7 @@ You can declare the gptel model, backend, temperature, system message and other ** FAQ #+html: - I want to use gptel in a way that's not supported by =gptel-send= or the options menu -#+html: - -gptel's default usage pattern is simple, and will stay this way: Read input in any buffer and insert the response below it. Some custom behavior is possible with the transient menu (=C-u M-x gptel-send=). - -For more programmable usage, gptel provides a general =gptel-request= function that accepts a custom prompt and a callback to act on the response. You can use this to build custom workflows not supported by =gptel-send=. See the documentation of =gptel-request=, and the [[https://github.com/karthink/gptel/wiki/Defining-custom-gptel-commands][wiki]] for examples. - -#+html: -#+html: +*** Chat buffer UI I want the window to scroll automatically as the response is inserted #+html: @@ -1155,7 +1151,6 @@ To be minimally annoying, gptel does not move the cursor by default. Add the fo You can also call =gptel-end-of-response= as a command at any time. - #+html: #+html: I want to change the formatting of the prompt and LLM response @@ -1167,6 +1162,18 @@ Anywhere in Emacs: Use =gptel-pre-response-hook= and =gptel-post-response-functi #+html: #+html: + How does gptel distinguish between user prompts and LLM responses? +#+html: + +gptel uses [[https://www.gnu.org/software/emacs/manual/html_node/elisp/Text-Properties.html][text-properties]] to watermark LLM responses. Thus this text is interpreted as a response even if you copy it into another buffer. In regular buffers (buffers without =gptel-mode= enabled), you can turn off this tracking by unsetting =gptel-track-response=. + +When restoring a chat state from a file on disk, gptel will apply these properties from saved metadata in the file when you turn on =gptel-mode=. + +gptel does /not/ use any prefix or semantic/syntax element in the buffer (such as
[nongnu] elpa/gptel updated (5d5610dfb6 -> aa62573ee7)
elpasync pushed a change to branch elpa/gptel. from 5d5610dfb6 gptel-rewrite: Appease byte-compiler new 3fdcb2256a README: Restructure FAQ new aa62573ee7 README: Restructure FAQ (fix typo) Summary of changes: README.org | 65 +++--- 1 file changed, 41 insertions(+), 24 deletions(-)
[nongnu] elpa/gptel aa62573ee7 2/2: README: Restructure FAQ (fix typo)
branch: elpa/gptel commit aa62573ee7b14830ffa1cdb3709e588b8fa64f2e Author: Karthik Chikmagalur Commit: Karthik Chikmagalur README: Restructure FAQ (fix typo) * README.org (FAQ): Fix typo in previous commit. --- README.org | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.org b/README.org index e156647a42..b4f50d26b0 100644 --- a/README.org +++ b/README.org @@ -1127,8 +1127,8 @@ Note: using this option requires Org 9.7 or higher to be available. The [[https You can declare the gptel model, backend, temperature, system message and other parameters as Org properties with the command =gptel-org-set-properties=. gptel queries under the corresponding heading will always use these settings, allowing you to create mostly reproducible LLM chat notebooks, and to have simultaneous chats with different models, model settings and directives under different Org headings. ** FAQ -#+html: *** Chat buffer UI +#+html: I want the window to scroll automatically as the response is inserted #+html:
[nongnu] elpa/helm updated (969f80fa66 -> 4ccdefb7d0)
elpasync pushed a change to branch elpa/helm. from 969f80fa66 Remove helm-locate-override-inheritor (#2710) new b425d885ef Remove helm-browse-project-override-inheritor no more needed new 4ccdefb7d0 Remove helm-bookmark-override-inheritor no more needed Summary of changes: helm-bookmark.el | 10 ++ helm-files.el| 7 ++- 2 files changed, 4 insertions(+), 13 deletions(-)
[elpa] externals/company 5bb6f6d3d4 3/3: Fix one more warning
branch: externals/company commit 5bb6f6d3d44ed919378e6968a06feed442165545 Author: Dmitry Gutov Commit: Dmitry Gutov Fix one more warning --- company.el | 1 + 1 file changed, 1 insertion(+) diff --git a/company.el b/company.el index 56dd0a9129..1646e1fcd2 100644 --- a/company.el +++ b/company.el @@ -3607,6 +3607,7 @@ Example: \(company-begin-with \\='\(\"foo\" \"foobar\" \"foobarbaz\"\)\)" (declare-function find-library-name "find-func") (declare-function lm-version "lisp-mnt") +(declare-function lm-header "lisp-mnt") (defun company-version (&optional show-version) "Get the Company version as string.
[elpa] externals/company 64e86efc38 1/3: Adapt company-version to the MELPA change
branch: externals/company commit 64e86efc386317bbc2974c15830a164f26284990 Author: Dmitry Gutov Commit: Dmitry Gutov Adapt company-version to the MELPA change Fixes #1508 --- company.el | 9 ++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/company.el b/company.el index 2f99d30593..f471fcc6e0 100644 --- a/company.el +++ b/company.el @@ -3617,9 +3617,12 @@ If SHOW-VERSION is non-nil, show the version in the echo area." (require 'find-func) (insert-file-contents (find-library-name "company")) (require 'lisp-mnt) -(if show-version -(message "Company version: %s" (lm-version)) - (lm-version +;; `lm-package-version' was added in 2025. +(let ((version (or (or (lm-header "package-version") + (lm-version) + (if show-version + (message "Company version: %s" version) +version (defun company-diag () "Pop a buffer with information about completions at point."
[nongnu] elpa/helm b425d885ef 1/2: Remove helm-browse-project-override-inheritor no more needed
branch: elpa/helm commit b425d885ef3a28c4d0c4803c57c4e01236b7a0d8 Author: Thierry Volpiatto Commit: Thierry Volpiatto Remove helm-browse-project-override-inheritor no more needed --- helm-files.el | 7 ++- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/helm-files.el b/helm-files.el index 39c135bc33..8a0be0790e 100644 --- a/helm-files.el +++ b/helm-files.el @@ -6864,10 +6864,7 @@ Use FD as backend." "Run `helm-grep' AG from `helm-browse-project'." 'helm-browse-project-ag) -(defclass helm-browse-project-override-inheritor (helm-type-file) ()) - -(defclass helm-browse-project-source (helm-source-in-buffer - helm-browse-project-override-inheritor) +(defclass helm-browse-project-source (helm-source-in-buffer helm-type-file) ((root-dir :initarg :root-dir :initform nil :custom 'file) @@ -6887,7 +6884,7 @@ Use FD as backend." "Class to define a source in `helm-browse-project' handling non VC handled directories.") -(cl-defmethod helm--setup-source :after ((source helm-browse-project-override-inheritor)) +(cl-defmethod helm--setup-source :after ((source helm-browse-project-source)) (let ((actions (slot-value source 'action))) (setf (slot-value source 'action) (helm-append-at-nth
[elpa] externals/popper 91b71955db: popper: Bump version to 0.4.8
branch: externals/popper commit 91b71955db19014d7139191660272c736458d87d Author: Karthik Chikmagalur Commit: Karthik Chikmagalur popper: Bump version to 0.4.8 * popper.el: Tag version 0.4.8 * popper-echo.el: Tag version 0.4.8 --- popper-echo.el | 2 +- popper.el | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/popper-echo.el b/popper-echo.el index cbb82d8c71..6fbbc41b65 100644 --- a/popper-echo.el +++ b/popper-echo.el @@ -3,7 +3,7 @@ ;; Copyright (C) 2023 Free Software Foundation, Inc. ;; Author: Karthik Chikmagalur -;; Version: 0.45 +;; Version: 0.4.8 ;; Package-Requires: ((emacs "26.1")) ;; Keywords: convenience ;; URL: https://github.com/karthink/popper diff --git a/popper.el b/popper.el index 2b16e269b9..42a6fdf3ec 100644 --- a/popper.el +++ b/popper.el @@ -3,7 +3,7 @@ ;; Copyright (C) 2023 Free Software Foundation, Inc. ;; Author: Karthik Chikmagalur -;; Version: 0.4.6 +;; Version: 0.4.8 ;; Package-Requires: ((emacs "26.1")) ;; Keywords: convenience ;; URL: https://github.com/karthink/popper
[elpa] externals/bicep-ts-mode 5ca1392096 2/2: Replace recursionc with named-let.
branch: externals/bicep-ts-mode commit 5ca1392096a827d5faebc17330c4a43cbeb35e08 Author: Jostein Kjønigsen Commit: Jostein Kjønigsen Replace recursionc with named-let. Does TCO and is better for performance. --- bicep-ts-mode.el | 26 -- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/bicep-ts-mode.el b/bicep-ts-mode.el index d19aee6255..06017e5ad4 100644 --- a/bicep-ts-mode.el +++ b/bicep-ts-mode.el @@ -160,23 +160,21 @@ Return nil if there is no name or if NODE is not a defun node." (treesit-node-child defun-node 1) t +;; required due to named-let. +(eval-when-compile (require 'subr-x)) (defun bicep-ts-mode--find-declaration-node (node) "Search up the tree from NODE for a node whose type contains `declaration'. Return the first matching node, or nil if none is found." - (when node -(if (string-match-p "declaration" (treesit-node-type node)) -node - ;; FIXME: Recursion is elegant, but ELisp's implementation handles - ;; it rather poorly, so it's best avoided when not too hard. - ;; Maybe use `named-let', which does TCO? - ;; - ;;(named-let loop ((node node)) - ;; (if (string-match-p "declaration" (treesit-node-type node)) - ;; node - ;;(loop (treesit-node-parent node - ;; - ;; [ Needs (eval-when-compile (require 'subr-x)) ] - (bicep-ts-mode--find-declaration-node (treesit-node-parent node) + + ;; Recursion is elegant, but ELisp's implementation handles + ;; it rather poorly, so it's best avoided when not too hard. + ;; Instead use `named-let', which does TCO? + ;; NOTE: requires subr-x. + (named-let loop ((node node)) +(when node + (if (string-match-p "declaration" (treesit-node-type node)) + node +(loop (treesit-node-parent node)) ;;;###autoload (define-derived-mode bicep-ts-mode prog-mode "Bicep"
[elpa] externals/bicep-ts-mode updated (34939118c3 -> 5ca1392096)
elpasync pushed a change to branch externals/bicep-ts-mode. from 34939118c3 Provide more detailed installation instructions. new 654a00647b Apply fixes suggested by Stefan Monnier. new 5ca1392096 Replace recursionc with named-let. Summary of changes: bicep-ts-mode.el | 44 ++-- 1 file changed, 26 insertions(+), 18 deletions(-)
[elpa] externals/dape c41ee1c259 09/11: Fixing build warnings from usage of when-let and if-let
branch: externals/dape commit c41ee1c2596a520262ef82b9ee3e12a348e20df1 Author: Daniel Pettersson Commit: Daniel Pettersson Fixing build warnings from usage of when-let and if-let --- dape.el | 250 1 file changed, 125 insertions(+), 125 deletions(-) diff --git a/dape.el b/dape.el index 8eeffe6a29..97100dbd8f 100644 --- a/dape.el +++ b/dape.el @@ -242,8 +242,8 @@ ,@(let ((js-debug `( ensure ,(lambda (config) (dape-ensure-command config) - (when-let ((runtime-executable - (dape-config-get config :runtimeExecutable))) + (when-let* ((runtime-executable + (dape-config-get config :runtimeExecutable))) (dape--ensure-executable runtime-executable)) (let ((dap-debug-server-path (car (plist-get config 'command-args @@ -307,9 +307,9 @@ command-args ["--interpreter=vscode"] :request "launch" :cwd dape-cwd - :program (if-let ((dlls -(file-expand-wildcards - (file-name-concat "bin" "Debug" "*" "*.dll" + :program (if-let* ((dlls + (file-expand-wildcards + (file-name-concat "bin" "Debug" "*" "*.dll" (file-relative-name (file-relative-name (car dlls))) ".dll") :stopAtEntry nil) @@ -357,7 +357,7 @@ fn (lambda (config) (with-current-buffer (find-file-noselect (dape-config-get config :filePath)) -(if-let ((server (eglot-current-server))) +(if-let* ((server (eglot-current-server))) (pcase-let ((`[,module-paths ,class-paths] (eglot-execute-command server "vscode.java.resolveClasspath" @@ -961,7 +961,7 @@ by `dape--threads-make-update-handle'." (defun dape--thread-id-object (conn) "Construct a thread id object for CONN." - (when-let ((thread-id (dape--thread-id conn))) + (when-let* ((thread-id (dape--thread-id conn))) (list :threadId thread-id))) (defun dape--stopped-threads (conn) @@ -1034,28 +1034,28 @@ See `dape--path-1'." "Return marker created from PLIST and CONN config. Marker is created from PLIST keys :source and :line. Note requires `dape--source-ensure' if source is by reference." - (when-let ((source (plist-get plist :source)) - (line (or (plist-get plist :line) 1)) - (buffer (or - ;; Take buffer by source reference - (when-let* ((reference (plist-get source :sourceReference)) - (buffer (plist-get dape--source-buffers reference)) - ((buffer-live-p buffer))) -buffer) - ;; Take buffer by path - (when-let* ((remote-path (plist-get source :path)) - (path (dape--path-local conn remote-path)) - ((file-exists-p path))) -(find-file-noselect path t) + (when-let* ((source (plist-get plist :source)) + (line (or (plist-get plist :line) 1)) + (buffer (or + ;; Take buffer by source reference + (when-let* ((reference (plist-get source :sourceReference)) + (buffer (plist-get dape--source-buffers reference)) + ((buffer-live-p buffer))) + buffer) + ;; Take buffer by path + (when-let* ((remote-path (plist-get source :path)) + (path (dape--path-local conn remote-path)) + ((file-exists-p path))) + (find-file-noselect path t) (dape--with-line buffer line - (when-let ((column (plist-get plist :column))) + (when-let* ((column (plist-get plist :column))) (when (> column 0) (forward-char (1- column (point-marker (defun dape--default-cwd () "Try to guess current project absolute file path with `project'." - (or (when-let ((project (project-current))) + (or (when-let* ((project (project-current))) (expand-file-name (project-root project))) default-directory)) @@ -1104,9 +1104,9 @@ the value of config key `port'." ((eq arg :autoport) port-string) ((stringp arg) (string-replace ":autoport" port-string arg)) (t arg) -(when-let ((command-args (plist-get config 'command-args))) +(when-let* ((command-args (plis
[elpa] externals/dape f89b1610ed 10/11: Small disassembly fixups
branch: externals/dape commit f89b1610edbec2598d568a7a1ae73b12b0006063 Author: Daniel Pettersson Commit: Daniel Pettersson Small disassembly fixups --- dape.el | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/dape.el b/dape.el index 97100dbd8f..d3fbe90b99 100644 --- a/dape.el +++ b/dape.el @@ -2897,8 +2897,7 @@ of memory read." :instructionCount ,count :offset 0 :instructionOffset ,(- (/ count 2) count) - :resolveSymbols t - )) + :resolveSymbols t)) (with-current-buffer (get-buffer-create "*dape-disassemble*") (dape-disassemble-mode) (erase-buffer) @@ -2931,7 +2930,7 @@ of memory read." (plist-get instruction :address) (plist-get instruction :instruction)) 'line-prefix - (when (and current-line-p (not current-instruction-p)) + (when current-line-p (dape--indicator "|" 'vertical-bar nil)) 'dape--disassemble-instruction instruction))) (setq-local revert-buffer-function
[elpa] externals/dape 626ed5b3fc 06/11: Small fixups
branch: externals/dape commit 626ed5b3fc7b1027111b298455dabf5080d13c4f Author: Daniel Pettersson Commit: Daniel Pettersson Small fixups --- dape.el | 9 - 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/dape.el b/dape.el index cc75de7e25..eecff1f746 100644 --- a/dape.el +++ b/dape.el @@ -2827,7 +2827,7 @@ When BACKWARD is non nil move backward instead." "Revert all `dape-memory-mode' buffers." (dape--with-debounce dape--memory-debounce-timer dape-ui-debounce-time (cl-loop for buffer in (buffer-list) - when (eq (with-current-buffer buffer major-mode) 'dape-memory-mode) + when (eq (buffer-local-value 'major-mode buffer) 'dape-memory-mode) do (with-current-buffer buffer (revert-buffer) (defun dape-read-memory (address &optional reuse-buffer) @@ -2962,7 +2962,7 @@ of memory read." #'dape--breakpoint-find-file-hook))) (defun dape--breakpoint-find-file-hook () - "Convert cons breakpoints into overlay breakpoints. + "Convert PATH-LINE breakpoints into overlay breakpoints. Used as an hook on `find-file-hook'." (when (buffer-file-name (current-buffer)) (cl-loop with breakpoints-in-buffer = @@ -3057,8 +3057,7 @@ If there are breakpoints at current line remove those breakpoints from Handling restoring margin if necessary." (let ((buffer (dape--breakpoint-buffer breakpoint))) (with-slots (overlay) breakpoint - (when overlay -(delete-overlay overlay)) + (when overlay (delete-overlay overlay)) (setf overlay nil)) (when (and ;; Buffer margin has been touched @@ -3268,7 +3267,7 @@ Helper for `dape--stack-frame-display'." dape-display-source-buffer-action))) ;; Change selected window if not `dape-repl' buffer is selected (unless (with-current-buffer (window-buffer) -(memq major-mode '(dape-repl-mode))) +(memq major-mode '(dape-repl-mode dape-disassemble-mode))) (select-window window)) (with-selected-window window ;; XXX We are running within timer context, which does not
[elpa] externals/dape updated (00761f5614 -> 8670837cbb)
elpasync pushed a change to branch externals/dape. from 00761f5614 Apply comint filter before echoing shell to repl new 05adad637c Clarify repl no input message new e80e4c8b12 Improce custom docs new f79ef67201 Use inlay hints by default new 106d9d22d1 Add disabling/enabling of source breakpoints new 2edca597d2 Clarify memory address in dape-memory-mode new 626ed5b3fc Small fixups new 353e9e1055 Add missing docstring new 878f78e1cb Add disassemble viewer new c41ee1c259 Fixing build warnings from usage of when-let and if-let new f89b1610ed Small disassembly fixups new 8670837cbb Clarify REPL using last input Summary of changes: dape.el | 584 +--- 1 file changed, 335 insertions(+), 249 deletions(-)
[elpa] externals/dape f79ef67201 03/11: Use inlay hints by default
branch: externals/dape commit f79ef67201cb3c427b5f4c50ad1d90f0c49d17d3 Author: Daniel Pettersson Commit: Daniel Pettersson Use inlay hints by default --- dape.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dape.el b/dape.el index 63669c8296..d412dfdd3a 100644 --- a/dape.el +++ b/dape.el @@ -648,7 +648,7 @@ left-to-right display order of the properties." "Max length of file name in dape info buffers." :type 'integer) -(defcustom dape-inlay-hints nil +(defcustom dape-inlay-hints t "Inlay variable hints." :type '(choice (const :tag "No inlay hints." nil) (const :tag "Inlay current line and previous line (same as 2)." t)
[elpa] externals/dape 05adad637c 01/11: Clarify repl no input message
branch: externals/dape commit 05adad637c0b3a9e70a35bba13625ca5208cf6c7 Author: Daniel Pettersson Commit: Daniel Pettersson Clarify repl no input message --- dape.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dape.el b/dape.el index 531f1257fb..e15d1448f8 100644 --- a/dape.el +++ b/dape.el @@ -4484,7 +4484,7 @@ Called by `comint-input-sender' in `dape-repl-mode'." ((and (string-empty-p input) (not (string-empty-p (car (ring-elements comint-input-ring) (when-let ((last (car (ring-elements comint-input-ring - (message "Using last command %s" last) + (message "Repeating last input `%s'" last) (dape--repl-input-sender dummy-process last))) ;; Run command from `dape-named-commands' ((pcase-let* ((`(,cmd . ,args)
[elpa] externals/dape e80e4c8b12 02/11: Improce custom docs
branch: externals/dape commit e80e4c8b124ef03f74ad66d44c20adfc191a4b25 Author: Daniel Pettersson Commit: Daniel Pettersson Improce custom docs --- dape.el | 39 --- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/dape.el b/dape.el index e15d1448f8..63669c8296 100644 --- a/dape.el +++ b/dape.el @@ -648,6 +648,16 @@ left-to-right display order of the properties." "Max length of file name in dape info buffers." :type 'integer) +(defcustom dape-inlay-hints nil + "Inlay variable hints." + :type '(choice (const :tag "No inlay hints." nil) + (const :tag "Inlay current line and previous line (same as 2)." t) + (natnum :tag "Number of lines with hints."))) + +(defcustom dape-inlay-hints-variable-name-max 25 + "Max length of variable name in inlay hints." + :type 'integer) + (defcustom dape-repl-echo-shell-output nil "Echo dape shell output in repl." :type 'boolean) @@ -710,26 +720,27 @@ The hook is run with one argument, the compilation buffer when compilation is successful." :type 'hook) +(defcustom dape-minibuffer-hint t + "Show `dape-configs' hints in minibuffer." + :type 'boolean) + (defcustom dape-minibuffer-hint-ignore-properties '( ensure fn modes command command-args command-env command-insert-stderr defer-launch-attach :type :request) - "Properties to be hidden in `dape--minibuffer-hint'." + "Properties to be ignored in minibuffer \"Run adapter\" hints. +See `dape-minibuffer-hint'." :type '(repeat symbol)) -(defcustom dape-minibuffer-hint t - "Show `dape-configs' hints in minibuffer." - :type 'boolean) - (defcustom dape-history-add 'input "How to push configuration options onto `dape-history'. - input: Store input as is read from minibuffer. - evaled: Input is evaluated then checked against base configuration in `dape-configs'. Each options that differ from base are stored. -- dash-form: Like evaled but stores options in dash form if possible. - With dash form characters after - are interpret in sh like format - with ENV PROGRAM ARGS. This is useful for adapters which accepts - :env, :program and :args as launch options. +- evaled-dash-form: Like evaled but stores options in dash form if + possible. With dash form characters after - are interpret in sh + like format with ENV PROGRAM ARGS. This is useful for adapters + which accepts :env, :program and :args as launch options. Example: \"launch - ENV=value program arg1 arg2\"" :type '(choice (const :tag "Input" input) (const :tag "Evaluated input" evaled) @@ -4695,16 +4706,6 @@ Empty input will rerun last command.\n\n" ;;; Inlay hints -(defcustom dape-inlay-hints nil - "Inlay variable hints." - :type '(choice (const :tag "No inlay hints." nil) - (const :tag "Inlay current line and previous line (same as 2)." t) - (natnum :tag "Number of lines with hints."))) - -(defcustom dape-inlay-hints-variable-name-max 25 - "Max length of variable name in inlay hints." - :type 'integer) - (defface dape-inlay-hint-face '((t (:height 0.8 :inherit shadow))) "Face used for inlay-hint overlays.")
[elpa] externals/dape 8670837cbb 11/11: Clarify REPL using last input
branch: externals/dape commit 8670837cbbb96384577b38470efa13118994f6b1 Author: Daniel Pettersson Commit: Daniel Pettersson Clarify REPL using last input --- dape.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dape.el b/dape.el index d3fbe90b99..7784d29bb9 100644 --- a/dape.el +++ b/dape.el @@ -4579,7 +4579,7 @@ Called by `comint-input-sender' in `dape-repl-mode'." ((and (string-empty-p input) (not (string-empty-p (car (ring-elements comint-input-ring) (when-let* ((last (car (ring-elements comint-input-ring - (message "Repeating last input `%s'" last) + (message "Using last input `%s'" last) (dape--repl-input-sender dummy-process last))) ;; Run command from `dape-named-commands' ((pcase-let* ((`(,cmd . ,args)
[elpa] externals/dape 878f78e1cb 08/11: Add disassemble viewer
branch: externals/dape commit 878f78e1cbb5f92d87cf8492668658073a71ce8b Author: Daniel Pettersson Commit: Daniel Pettersson Add disassemble viewer --- dape.el | 93 - 1 file changed, 92 insertions(+), 1 deletion(-) diff --git a/dape.el b/dape.el index 34e5b0e68e..8eeffe6a29 100644 --- a/dape.el +++ b/dape.el @@ -562,7 +562,8 @@ variable should be expanded by default." :type 'hook) (define-obsolete-variable-alias 'dape-on-stopped-hooks 'dape-stopped-hook "0.13.0") -(defcustom dape-stopped-hook '(dape-memory-revert dape--emacs-grab-focus) +(defcustom dape-stopped-hook '( dape-memory-revert dape-disassemble-revert +dape--emacs-grab-focus) "Called when session stopped." :type 'hook) @@ -2853,6 +2854,95 @@ of memory read." (setq dape--memory-address address) (revert-buffer)) (select-window (display-buffer buffer) + + +;;; Disassemble viewer + +(defvar-local dape--disassemble-overlay-arrow nil) + +(add-to-list 'overlay-arrow-variable-list 'dape--disassemble-overlay-arrow) + +(define-derived-mode dape-disassemble-mode asm-mode "Disassemble" + :interactive nil + (setq-local dape--disassemble-overlay-arrow (make-marker) + dape-stepping-granularity 'instruction)) + +(defvar dape--disassemble-debounce-timer (timer-create) + "Debounce context for `dape-disassemble-revert'.") + +(defun dape-disassemble-revert () + "Revert all `dape-disassemble-mode' buffers." + (dape--with-debounce dape--disassemble-debounce-timer dape-ui-debounce-time +(cl-loop for buffer in (buffer-list) + when (eq (buffer-local-value 'major-mode buffer) + 'dape-disassemble-mode) + do (with-current-buffer buffer (revert-buffer) + +(defun dape-disassemble (memory-reference count) + "Disassemble COUNT instructions around MEMORY-REFERENCE." + (interactive + (list +(string-trim + (read-string "Address: " nil nil + (when-let ((number (thing-at-point 'number))) +(format "0x%08x" number +100)) + (if-let* ((conn (dape--live-connection 'stopped)) +((not (dape--capable-p conn :supportsDisassembleRequest + (user-error "Adapter does not support disassemble") +(dape--with-request-bind +((&key ((:instructions instructions)) &allow-other-keys) _) +(dape-request conn 'disassemble + `( :memoryReference ,memory-reference + :instructionCount ,count + :offset 0 + :instructionOffset ,(- (/ count 2) count) + :resolveSymbols t + )) + (with-current-buffer (get-buffer-create "*dape-disassemble*") +(dape-disassemble-mode) +(erase-buffer) +(cl-loop + with last-symbol + with ps = (plist-get (dape--current-stack-frame conn) + :instructionPointerReference) + with source = (plist-get (dape--current-stack-frame conn) :source) + with line = (plist-get (dape--current-stack-frame conn) :line) + for instruction across instructions + for adress = (plist-get instruction :address) + for current-instruction-p = (equal adress ps) + for current-line-p = + (and (equal (plist-get instruction :location) source) + (equal (plist-get instruction :line) line)) + do + (when-let* ((symbol (plist-get instruction :symbol)) + ((not (equal last-symbol symbol + (insert +(concat "; " (setq last-symbol symbol) " of " +(thread-first instruction + (plist-get :location) + (plist-get :name))) +":\n")) + (when current-instruction-p + (move-marker dape--disassemble-overlay-arrow (point))) + (insert + (propertize + (format "%s:\t%s\n" + (plist-get instruction :address) + (plist-get instruction :instruction)) + 'line-prefix + (when (and current-line-p (not current-instruction-p)) + (dape--indicator "|" 'vertical-bar nil)) + 'dape--disassemble-instruction instruction))) +(setq-local revert-buffer-function +(lambda (&rest _) + (dape-disassemble memory-reference count))) +(with-selected-window (display-buffer (current-buffer)) + (goto-char + (or (marker-position dape--disassemble-overlay-arrow) + (point-min))) + (run-hooks 'dape-display-source-hook)) + ;;; Breakpoints @@ -5401,6 +5491,7 @@ mouse-1: Display minor mode menu" (define-key map "i" #'dape-info) (define-key map "R" #'dape-repl) (define-key map "m" #'dape-read-memory)
[elpa] externals/dape 106d9d22d1 04/11: Add disabling/enabling of source breakpoints
branch: externals/dape commit 106d9d22d19dd183df74ca79a60c0aba0a919c00 Author: Daniel Pettersson Commit: Daniel Pettersson Add disabling/enabling of source breakpoints By with additional breakpoint struct field source breakpoints possible to be disabled/enabled. --- dape.el | 192 +++- 1 file changed, 93 insertions(+), 99 deletions(-) diff --git a/dape.el b/dape.el index d412dfdd3a..61c0115b1a 100644 --- a/dape.el +++ b/dape.el @@ -1401,7 +1401,7 @@ See `dape--connection-selected'." (cl-defstruct (dape--breakpoint (:constructor dape--breakpoint-make)) "Breakpoint object storing location and state." - overlay path-line type value hits verified id) + overlay path-line type value disabled hits verified id) (cl-defmethod jsonrpc-convert-to-endpoint ((conn dape-connection) message subtype) @@ -1568,34 +1568,34 @@ timeout period is configurable with `dape-request-timeout'" "Set breakpoints in SOURCE for adapter CONN. SOURCE is expected to be buffer or name of file. See `dape-request' for expected CB signature." - (cl-loop with breakpoints = (thread-last dape--breakpoints - (seq-group-by #'dape--breakpoint-source) - (assoc source) - (cdr)) + (cl-loop with breakpoints = + (alist-get source (seq-group-by #'dape--breakpoint-source + dape--breakpoints)) for breakpoint in breakpoints for line = (dape--breakpoint-line breakpoint) - collect breakpoint into response-breakpoints - collect (dape--breakpoint-line breakpoint) into lines - collect (let ((source-breakpoint `(:line ,line))) - (pcase (dape--breakpoint-type breakpoint) - ('log -(if (dape--capable-p conn :supportsLogPoints) -(plist-put source-breakpoint - :logMessage (dape--breakpoint-value breakpoint)) - (dape--warn "Adapter does not support `dape-breakpoint-log'"))) - ('expression -(if (dape--capable-p conn :supportsConditionalBreakpoints) -(plist-put source-breakpoint - :condition (dape--breakpoint-value breakpoint)) - (dape--warn "Adapter does not support `dape-breakpoint-expression'"))) - ('hits -(if (dape--capable-p conn :supportsHitConditionalBreakpoints) -(plist-put source-breakpoint - :hitCondition (dape--breakpoint-value breakpoint)) - (dape--warn "Adapter does not support `dape-breakpoint-hits'" - source-breakpoint) - into source-breakpoints - finally do + unless (dape--breakpoint-disabled breakpoint) + collect breakpoint into request-breakpoints and + collect line into lines and + collect + (let ((source-breakpoint `(:line ,line))) + (pcase (dape--breakpoint-type breakpoint) + ('log +(if (dape--capable-p conn :supportsLogPoints) +(plist-put source-breakpoint + :logMessage (dape--breakpoint-value breakpoint)) + (dape--warn "Adapter does not support `dape-breakpoint-log'"))) + ('expression +(if (dape--capable-p conn :supportsConditionalBreakpoints) +(plist-put source-breakpoint + :condition (dape--breakpoint-value breakpoint)) + (dape--warn "Adapter does not support `dape-breakpoint-expression'"))) + ('hits +(if (dape--capable-p conn :supportsHitConditionalBreakpoints) +(plist-put source-breakpoint + :hitCondition (dape--breakpoint-value breakpoint)) + (dape--warn "Adapter does not support `dape-breakpoint-hits'" + source-breakpoint) + into source-breakpoints finally do (dape--with-request-bind ((&key ((:breakpoints updates)) &allow-other-keys) error) (dape-request @@ -1616,7 +1616,7 @@ See `dape-request' for expected CB signature." (if error (dape--warn "Failed to set breakpoints in %s; %s" source error) (cl-loop for update across updates -for breakpoint in response-breakpoints do +for breakpoint in request-breakpoints do (dape--breakpoint-update conn breakpoint update))
[elpa] externals/hiddenquote 8e22eaea70: New command: hiddenquote-delete-char
branch: externals/hiddenquote commit 8e22eaea70bae693c3e86fb9d16769534b549a61 Author: Mauro Aranda Commit: Mauro Aranda New command: hiddenquote-delete-char This change improves the management of characters in the hiddenquote-character widget, so its size stays consistently at 1 space. * lisp/hiddenquote.el (hiddenquote-delete-char): New command. (hiddenquote-character-map): Bind it to C-d. --- hiddenquote.el | 9 + 1 file changed, 9 insertions(+) diff --git a/hiddenquote.el b/hiddenquote.el index 534d12e85a..49b16a920b 100644 --- a/hiddenquote.el +++ b/hiddenquote.el @@ -315,6 +315,7 @@ allow running the command after exiting Isearch." (define-key map [end] #'hiddenquote-move-end-of-word) (define-key map "\C-j" #'hiddenquote-next) ;; Editing. +(define-key map "\C-d" #'hiddenquote-delete-char) (define-key map "\C-k" #'hiddenquote-kill-word) (define-key map [(control shift backspace)] #'hiddenquote-kill-whole-word) (define-key map [backspace] #'hiddenquote-delete-backward-char) @@ -1422,6 +1423,14 @@ Character cell bindings: (setq-local tool-bar-map hiddenquote-tool-bar-map))) ;; Commands. +(defun hiddenquote-delete-char () + "Replacement for `delete-char' inside `hiddenquote-character' widgets. + +Doesn't really delete the character, rather it changes it for an empty space." + (interactive) + (let ((w (widget-at))) +(widget-value-set w " "))) + (defun hiddenquote-kill-word () "Starting at point, delete the rest of the characters of the current word." (interactive)
[elpa] externals/dape 353e9e1055 07/11: Add missing docstring
branch: externals/dape commit 353e9e105580635b73ff8bf48d2d38d043ba160f Author: Daniel Pettersson Commit: Daniel Pettersson Add missing docstring --- dape.el | 8 +--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/dape.el b/dape.el index eecff1f746..34e5b0e68e 100644 --- a/dape.el +++ b/dape.el @@ -2916,8 +2916,8 @@ of memory read." "edit break hit condition" #'dape-mouse-breakpoint-hits)) (_ (overlay-put ov 'before-string -(dape--icon dape-breakpoint-margin-string 'breakpoint -(or disabled-face 'dape-breakpoint-face) +(dape--indicator dape-breakpoint-margin-string 'breakpoint + (or disabled-face 'dape-breakpoint-face) (setf overlay ov) (dape--mouse-command dape-mouse-breakpoint-toggle @@ -2980,7 +2980,9 @@ Used as an hook on `find-file-hook'." (defvar dape--original-margin nil "Bookkeeping for buffer margin width.") -(defun dape--icon (string bitmap face) +(defun dape--indicator (string bitmap face) + "Return indicator string in margin (STRING) or fringe (BITMAP). +The indicator is `propertize'd with with FACE." (if (and (window-system) (not (eql (frame-parameter (selected-frame) 'left-fringe) 0))) (propertize " " 'display `(left-fringe ,bitmap ,face))
[elpa] externals/bicep-ts-mode 654a00647b 1/2: Apply fixes suggested by Stefan Monnier.
branch: externals/bicep-ts-mode commit 654a00647bb51c7b96b6491d09aa7456ed9a7da5 Author: Jostein Kjønigsen Commit: Jostein Kjønigsen Apply fixes suggested by Stefan Monnier. Fix paren-balance issue while at it :) --- bicep-ts-mode.el | 38 -- 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/bicep-ts-mode.el b/bicep-ts-mode.el index 2aa8f535c0..d19aee6255 100644 --- a/bicep-ts-mode.el +++ b/bicep-ts-mode.el @@ -1,6 +1,6 @@ ;;; bicep-ts-mode.el --- tree-sitter support for Bicep -*- lexical-binding: t; -*- -;; Copyright (C) 2023-2024 Free Software Foundation, Inc. +;; Copyright (C) 2023-2025 Free Software Foundation, Inc. ;; Author : Jostein Kjønigsen ;; Maintainer : Jostein Kjønigsen @@ -45,13 +45,13 @@ (defcustom bicep-ts-mode-indent-offset 2 "Number of spaces for each indentation step in `bicep-ts-mode'." :type 'natnum - :safe 'natnump - :group 'bicep) + :safe #'natnump) (defcustom bicep-ts-mode-default-langserver-path "$HOME/.vscode/extensions/ms-azuretools.vscode-bicep-*/bicepLanguageServer/Bicep.LangServer.dll" - "Default expression used to locate Bicep Languageserver. If found, added to eglot." - :type 'string - :group 'bicep) + ;; FIXME: Document the ability to use $ENV vars and glob patterns? + "Default expression used to locate Bicep Languageserver. +If found, added to eglot." + :type 'string) (defvar bicep-ts-mode-syntax-table (let ((table (make-syntax-table))) @@ -147,6 +147,7 @@ "Font-lock settings for BICEP.") (defun bicep-langserver-path () + ;; Note: In GNU land, we call this a file name, not a path. (car (file-expand-wildcards (substitute-in-file-name bicep-ts-mode-default-langserver-path @@ -157,20 +158,29 @@ Return nil if there is no name or if NODE is not a defun node." (when defun-node (treesit-node-text (treesit-node-child defun-node 1) - t) + t (defun bicep-ts-mode--find-declaration-node (node) - "Recursively search up the tree from NODE for a node whose type contains 'declaration'. + "Search up the tree from NODE for a node whose type contains `declaration'. Return the first matching node, or nil if none is found." (when node (if (string-match-p "declaration" (treesit-node-type node)) node + ;; FIXME: Recursion is elegant, but ELisp's implementation handles + ;; it rather poorly, so it's best avoided when not too hard. + ;; Maybe use `named-let', which does TCO? + ;; + ;;(named-let loop ((node node)) + ;; (if (string-match-p "declaration" (treesit-node-type node)) + ;; node + ;;(loop (treesit-node-parent node + ;; + ;; [ Needs (eval-when-compile (require 'subr-x)) ] (bicep-ts-mode--find-declaration-node (treesit-node-parent node) ;;;###autoload (define-derived-mode bicep-ts-mode prog-mode "Bicep" "Major mode for editing BICEP, powered by tree-sitter." - :group 'bicep-mode (if (not (treesit-ready-p 'bicep)) (message "Please run `M-x treesit-install-language-grammar RET bicep'") @@ -222,11 +232,11 @@ Return the first matching node, or nil if none is found." . bicep-ts-mode ;;;###autoload -(eval-after-load 'eglot - '(and (file-exists-p (bicep-langserver-path)) -(progn - (add-to-list 'eglot-server-programs - `(bicep-ts-mode . ("dotnet" ,(bicep-langserver-path))) +(with-eval-after-load 'eglot + (defvar eglot-server-programs) + (and (file-exists-p (bicep-langserver-path)) + (add-to-list 'eglot-server-programs +`(bicep-ts-mode . ("dotnet" ,(bicep-langserver-path)) (provide 'bicep-ts-mode)
[elpa] externals/dape 2edca597d2 05/11: Clarify memory address in dape-memory-mode
branch: externals/dape commit 2edca597d2a14bc15b0973a049f7d135601164f2 Author: Daniel Pettersson Commit: Daniel Pettersson Clarify memory address in dape-memory-mode --- dape.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dape.el b/dape.el index 61c0115b1a..cc75de7e25 100644 --- a/dape.el +++ b/dape.el @@ -2803,7 +2803,7 @@ Using BUFFER and STR." :interactive nil (setq revert-buffer-function #'dape--memory-revert mode-line-buffer-identification -(append mode-line-buffer-identification '(" " dape--memory-address)) +(append mode-line-buffer-identification '(" {" dape--memory-address "}")) eldoc-documentation-functions nil)) (define-key dape-memory-mode-map "\C-x]" #'dape-memory-next-page)
[elpa] externals/dape 03f4fc2fd2 1/2: Disassemle change to int comparisons for addresses
branch: externals/dape commit 03f4fc2fd28e4028cb20e41120e9f35ed73e1e30 Author: Daniel Pettersson Commit: Daniel Pettersson Disassemle change to int comparisons for addresses --- dape.el | 91 +++-- 1 file changed, 49 insertions(+), 42 deletions(-) diff --git a/dape.el b/dape.el index 7784d29bb9..1ba7dc0072 100644 --- a/dape.el +++ b/dape.el @@ -2898,49 +2898,56 @@ of memory read." :offset 0 :instructionOffset ,(- (/ count 2) count) :resolveSymbols t)) - (with-current-buffer (get-buffer-create "*dape-disassemble*") -(dape-disassemble-mode) -(erase-buffer) -(cl-loop - with last-symbol - with ps = (plist-get (dape--current-stack-frame conn) - :instructionPointerReference) - with source = (plist-get (dape--current-stack-frame conn) :source) - with line = (plist-get (dape--current-stack-frame conn) :line) - for instruction across instructions - for adress = (plist-get instruction :address) - for current-instruction-p = (equal adress ps) - for current-line-p = - (and (equal (plist-get instruction :location) source) - (equal (plist-get instruction :line) line)) - do - (when-let* ((symbol (plist-get instruction :symbol)) - ((not (equal last-symbol symbol + (cl-flet ((address-to-int (address) + (string-to-number (substring address 2) 16))) +(with-current-buffer (get-buffer-create "*dape-disassemble*") + (dape-disassemble-mode) + (erase-buffer) + (cl-loop + with last-symbol with last-location + with ps = + (address-to-int (plist-get (dape--current-stack-frame conn) + :instructionPointerReference)) + with source = (plist-get (dape--current-stack-frame conn) :source) + with line = (plist-get (dape--current-stack-frame conn) :line) + for instruction across instructions + for address = (address-to-int (plist-get instruction :address)) + for current-instruction-p = (equal address ps) + for location = + (setq last-location + ;; Forward fill all location if missing as per spec + (or (plist-get instruction :location) last-location)) + for current-line-p = + (and (equal location source) +(equal (plist-get instruction :line) line)) + do + (when-let* ((symbol (plist-get instruction :symbol)) + ((not (equal last-symbol symbol + (insert + (concat "; " (setq last-symbol symbol) " of " + (thread-first instruction +(plist-get :location) +(plist-get :name))) + ":\n")) + (when current-instruction-p + (move-marker dape--disassemble-overlay-arrow (point))) (insert -(concat "; " (setq last-symbol symbol) " of " -(thread-first instruction - (plist-get :location) - (plist-get :name))) -":\n")) - (when current-instruction-p - (move-marker dape--disassemble-overlay-arrow (point))) - (insert - (propertize - (format "%s:\t%s\n" - (plist-get instruction :address) - (plist-get instruction :instruction)) - 'line-prefix - (when current-line-p - (dape--indicator "|" 'vertical-bar nil)) - 'dape--disassemble-instruction instruction))) -(setq-local revert-buffer-function -(lambda (&rest _) - (dape-disassemble memory-reference count))) -(with-selected-window (display-buffer (current-buffer)) - (goto-char - (or (marker-position dape--disassemble-overlay-arrow) - (point-min))) - (run-hooks 'dape-display-source-hook)) +(propertize + (format "%s:\t%s\n" + (plist-get instruction :address) + (plist-get instruction :instruction)) + 'line-prefix + (when current-line-p + (dape--indicator "|" 'vertical-bar nil)) + 'dape--disassemble-instruction instruction))) + (setq-local revert-buffer-function + (lambda (&rest _) +(dape-disassemble memory-reference count))) + (with-selected-window (display-buffer (current-buffer)) +(goto-char + (or (marker-position dape--disassemble-overlay-arrow) + (point-min))) +(run-hooks 'dape-dis
[elpa] externals/dape updated (8670837cbb -> c0075ef06e)
elpasync pushed a change to branch externals/dape. from 8670837cbb Clarify REPL using last input new 03f4fc2fd2 Disassemle change to int comparisons for addresses new c0075ef06e Improve dape-disassemble and dape-read-memory prompts Summary of changes: dape.el | 95 +++-- 1 file changed, 51 insertions(+), 44 deletions(-)
[elpa] externals/dape c0075ef06e 2/2: Improve dape-disassemble and dape-read-memory prompts
branch: externals/dape commit c0075ef06ec71a2f741dbece1939ec98a264df23 Author: Daniel Pettersson Commit: Daniel Pettersson Improve dape-disassemble and dape-read-memory prompts --- dape.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dape.el b/dape.el index 1ba7dc0072..1ba48c6972 100644 --- a/dape.el +++ b/dape.el @@ -2837,7 +2837,7 @@ If REUSE-BUFFER is non nil reuse the current buffer to display result of memory read." (interactive (list (string-trim - (read-string "Address: " nil nil + (read-string "Read memory from address: " nil nil (when-let* ((number (thing-at-point 'number))) (format "0x%08x" number)) (let ((conn (dape--live-connection 'stopped))) @@ -2883,7 +2883,7 @@ of memory read." (interactive (list (string-trim - (read-string "Address: " nil nil + (read-string "Disassemble around address: " nil nil (when-let* ((number (thing-at-point 'number))) (format "0x%08x" number 100))
[nongnu] elpa/helm updated (9fa856925c -> 969f80fa66)
elpasync pushed a change to branch elpa/helm. from 9fa856925c Add message about EMACS_COMMAND in Make file new fba5f9654f Fix echo call in make file new 969f80fa66 Remove helm-locate-override-inheritor (#2710) Summary of changes: Makefile | 2 +- helm-locate.el | 6 ++ 2 files changed, 3 insertions(+), 5 deletions(-)
[nongnu] elpa/helm fba5f9654f 1/2: Fix echo call in make file
branch: elpa/helm commit fba5f9654f0dab97c3bc845bd7c6fe5bab0fc6cd Author: Thierry Volpiatto Commit: Thierry Volpiatto Fix echo call in make file --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index b0b0a929ff..2429fef13b 100644 --- a/Makefile +++ b/Makefile @@ -79,7 +79,7 @@ compile: $(ELC) # Compile all files at once batch-compile: - echo Compiling helm with $(EMACS_COMMAND) + @echo Compiling helm with $(EMACS_COMMAND) $(EMACS) $(LOADPATH) -f batch-byte-compile $(EL) # Remove all generated files
[nongnu] elpa/helm 969f80fa66 2/2: Remove helm-locate-override-inheritor (#2710)
branch: elpa/helm commit 969f80fa663e94273f780cdfc63df06eb3eb3e33 Author: Thierry Volpiatto Commit: Thierry Volpiatto Remove helm-locate-override-inheritor (#2710) This was needed in all previous Emacs versions, seems it is no more needed on emacs-29, thus it confuse eieio, OTOH emacs-31 is perfectly understanding this. --- helm-locate.el | 6 ++ 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/helm-locate.el b/helm-locate.el index 20142758a3..970a7ded15 100644 --- a/helm-locate.el +++ b/helm-locate.el @@ -377,9 +377,7 @@ See also `helm-locate'." Sort is done on basename of CANDIDATES." (helm-fuzzy-matching-default-sort-fn-1 candidates nil t)) -(defclass helm-locate-override-inheritor (helm-type-file) ()) - -(defclass helm-locate-source (helm-source-async helm-locate-override-inheritor) +(defclass helm-locate-source (helm-source-async helm-type-file) ((init :initform 'helm-locate-initial-setup) (candidates-process :initform 'helm-locate-init) (requires-pattern :initform 3) @@ -389,7 +387,7 @@ Sort is done on basename of CANDIDATES." (redisplay :initform (progn helm-locate-fuzzy-sort-fn ;; Override helm-type-file class keymap. -(cl-defmethod helm--setup-source :after ((source helm-locate-override-inheritor)) +(cl-defmethod helm--setup-source :after ((source helm-locate-source)) (setf (slot-value source 'keymap) helm-locate-map) (setf (slot-value source 'group) 'helm-locate))
[elpa] externals/ellama ea63023cc4 04/14: Remove `ellama-long-lines-length` customization and related usage
branch: externals/ellama commit ea63023cc4f46522c3438ecf819d4ef4a50f7ed1 Author: Sergey Kostyaev Commit: Sergey Kostyaev Remove `ellama-long-lines-length` customization and related usage Removed the custom variable ellama-long-lines-length and its references in the code. This change simplifies the configuration and improves user experience by avoiding potential issues with unexpected behavior. --- README.org | 3 --- ellama.el | 13 ++--- 2 files changed, 2 insertions(+), 14 deletions(-) diff --git a/README.org b/README.org index 1ee2cf5792..456e09202b 100644 --- a/README.org +++ b/README.org @@ -404,9 +404,6 @@ argument generated text string. - ~ellama-sessions-directory~: Directory for saved ellama sessions. - ~ellama-major-mode~: Major mode for ellama commands. Org mode by default. -- ~ellama-long-lines-length~: Long lines length for fill paragraph - call. Too low value can break generated code by splitting long - comment lines. Default value 100. - ~ellama-session-auto-save~: Automatically save ellama sessions if set. Enabled by default. - ~ellama-naming-scheme~: How to name new sessions. diff --git a/ellama.el b/ellama.el index 1413134270..4b5dedd5eb 100644 --- a/ellama.el +++ b/ellama.el @@ -456,12 +456,6 @@ It should be a function with single argument generated text string." :group 'ellama :type 'symbol) -(defcustom ellama-long-lines-length 100 - "Long lines length for fill paragraph call. -Too low value can break generated code by splitting long comment lines." - :group 'ellama - :type 'integer) - (defcustom ellama-translate-italic t "Translate italic during markdown to org transformations." :group 'ellama @@ -530,8 +524,7 @@ Too low value can break generated code by splitting long comment lines." (if ellama-fill-paragraphs (with-temp-buffer (insert (propertize text 'hard t)) - (let ((fill-column ellama-long-lines-length) - (use-hard-newlines t)) + (let ((use-hard-newlines t)) (fill-region (point-min) (point-max) nil t t)) (buffer-substring-no-properties (point-min) (point-max))) text)) @@ -595,8 +588,7 @@ Too low value can break generated code by splitting long comment lines." ;; filling long lines (goto-char beg) (when ellama-fill-paragraphs -(let ((fill-column ellama-long-lines-length) - (use-hard-newlines t)) +(let ((use-hard-newlines t)) (fill-region beg end nil t t (defun ellama--replace-outside-of-code-blocks (text) @@ -1505,7 +1497,6 @@ If EPHEMERAL non nil new session will not be associated with any file." (with-temp-buffer (insert (propertize content 'hard t)) (let ((fill-prefix "> ") - (fill-column ellama-long-lines-length) (use-hard-newlines t) (comment-start ">") (comment-empty-lines t))
[elpa] externals/ellama f74ed2c104 03/14: Add custom faces and properties to ellama context line
branch: externals/ellama commit f74ed2c10470633ff451b933c9e50cdb03d2a68f Author: Sergey Kostyaev Commit: Sergey Kostyaev Add custom faces and properties to ellama context line Added base face `ellama-face` for all ellama things. Defined new face `ellama-context-line-face` for ellama context line. Updated `ellama-context-line` function to return a propertized string with `help-echo`, `mouse-face`, `face`, and custom keymap for managing ellama context. --- ellama.el | 19 --- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/ellama.el b/ellama.el index 55b8fccbc2..1413134270 100644 --- a/ellama.el +++ b/ellama.el @@ -1107,11 +1107,24 @@ If EPHEMERAL non nil new session will not be associated with any file." (posframe-hide ellama--context-buffer))) (ellama-context-update-header-line)) +(defface ellama-face '((t (:inherit shadow))) + "Base face for all ellama things.") + +(defface ellama-context-line-face '((t (:inherit (mode-line-buffer-id ellama-face + "Face for ellama context line.") + (defun ellama-context-line () "Return current global context line." - (with-current-buffer ellama--context-buffer -(buffer-substring-no-properties - (point-min) (point-max + (propertize (with-current-buffer ellama--context-buffer + (buffer-substring-no-properties +(point-min) (point-max))) + 'help-echo "mouse-1: manage ellama context" + 'mouse-face 'header-line-format + 'face 'ellama-context-line-face + 'keymap (let ((m (make-sparse-keymap))) + (define-key m [header-line mouse-1] #'ellama-manage-context) + (define-key m [mode-line mouse-1] #'ellama-manage-context) + m))) ;;;###autoload (define-minor-mode ellama-context-header-line-mode
[nongnu] elpa/dirvish c867162cc9 2/3: feat(subtree): add `dirvish-subtree-icon-scale-factor` option (#185)
branch: elpa/dirvish commit c867162cc9c0764b183fcf16e2db467165942135 Author: Alex Lu Commit: Alex Lu feat(subtree): add `dirvish-subtree-icon-scale-factor` option (#185) The dirvish-subtree-always-show-state now use t as default. Closes #185 --- docs/EXTENSIONS.org | 18 -- extensions/dirvish-subtree.el | 35 +-- 2 files changed, 37 insertions(+), 16 deletions(-) diff --git a/docs/EXTENSIONS.org b/docs/EXTENSIONS.org index 0440e1fcf5..7fa8825cf0 100644 --- a/docs/EXTENSIONS.org +++ b/docs/EXTENSIONS.org @@ -210,13 +210,19 @@ to any directory in the file system using results from =fd= command as completio * Turn Dirvish into a tree browser (dirvish-subtree.el) -This extension gives Dirvish the ability to toggle a directory as subtree -(~dirvish-subtree-toggle~), which can be seen as a stripped-down version of -=dired-subtree=. +This extension enhances Dirvish with the ~dirvish-subtree-toggle~ command, a +streamlined alternative to =dired-subtree= for toggling a directory under the +cursor as a subtree. -You can use ~dirvish-subtree-toggle~ to toggle the directory under the cursor as a -subtree. Add ~subtree-state~ to ~dirvish-attributes~ gives you an indicator about -whether the directory is expanded or not. ++ To visually indicate the expansion state of directories, add ~subtree-state~ to + ~dirvish-attributes~. + ++ Customize the appearance of the expansion indicator using + ~dirvish-subtree-state-style~ and ~dirvish-subtree-icon-scale-factor~ to adjust + its displacement and size. + ++ To hide the indicator when no directories are expanded, set + ~dirvish-subtree-always-show-state~ to nil. * History navigation (dirvish-history.el) diff --git a/extensions/dirvish-subtree.el b/extensions/dirvish-subtree.el index 116df758e8..81f7675c19 100644 --- a/extensions/dirvish-subtree.el +++ b/extensions/dirvish-subtree.el @@ -42,10 +42,17 @@ The prefix is repeated \"depth\" times." (if v (add-hook 'dirvish-after-revert-hook #'dirvish-subtree--revert) (remove-hook 'dirvish-after-revert-hook #'dirvish-subtree--revert -(defcustom dirvish-subtree-always-show-state nil - "Non-nil means always show the subtree state indicator." +(defcustom dirvish-subtree-always-show-state t + "Non-nil means show subtree state indicator even there is no subtrees." :type 'boolean :group 'dirvish) +(defcustom dirvish-subtree-icon-scale-factor '(0.8 . 0.1) + "Scale factor for subtree state indicator. +The value is a cons of \\='(HEIGHT . V-ADJUST) that used as values of +:height and :v-adjust keyword respectively in `all-the-icons' and +`nerd-icons'." + :type '(cons float float) :group 'dirvish) + (defvar dirvish-subtree--state-icons nil) (defcustom dirvish-subtree-state-style 'chevron "Icon/string used for directory expanded state. @@ -66,22 +73,30 @@ The value can be one of: `plus', `arrow', `chevron', `nerd'." (cons (nerd-icons-octicon "nf-oct-chevron_down" - :height (* (or (bound-and-true-p dirvish-nerd-icons-height) 1) 0.8) - :v-adjust 0.1 :face 'dirvish-subtree-state) + :height (* (or (bound-and-true-p dirvish-nerd-icons-height) 1) + (car dirvish-subtree-icon-scale-factor)) + :v-adjust (cdr dirvish-subtree-icon-scale-factor) + :face 'dirvish-subtree-state) (nerd-icons-octicon "nf-oct-chevron_right" - :height (* (or (bound-and-true-p dirvish-nerd-icons-height) 1) 0.8) - :v-adjust 0.1 :face 'dirvish-subtree-state))) + :height (* (or (bound-and-true-p dirvish-nerd-icons-height) 1) + (car dirvish-subtree-icon-scale-factor)) + :v-adjust (cdr dirvish-subtree-icon-scale-factor) + :face 'dirvish-subtree-state))) ('chevron (cons (all-the-icons-octicon "chevron-down" - :height (* (or (bound-and-true-p dirvish-all-the-icons-height) 1) 0.8) - :v-adjust 0.1 :face 'dirvish-subtree-state) + :height (* (or (bound-and-true-p dirvish-all-the-icons-height) 1) + (car dirvish-subtree-icon-scale-factor)) + :v-adjust (cdr dirvish-subtree-icon-scale-factor) + :face 'dirvish-subtree-state) (all-the-icons-octicon "chevron-right" - :height (* (or (bound-and-true-p dirvish-all-the-icons-height) 1) 0.8) - :v-adjust 0.1 :face 'dirvish-subtree-state))) + :height (* (or (bound-and-true-p dirvish-all-the-icons-height) 1) + (car dirvish-subtree-icon-scale-factor)) + :v-adjust (cdr dirvish-subtree-icon-scale-factor) + :face 'dirvish-subtree-state))) (defcustom dirvish-su
[nongnu] elpa/dirvish 79d73c0777 1/3: feat: centralize extrnal deps | remove ffmpegthumbnailer hack
branch: elpa/dirvish commit 79d73c07772088e777f1d99deffee2992c3a261b Author: Alex Lu Commit: Alex Lu feat: centralize extrnal deps | remove ffmpegthumbnailer hack Closes #196 --- dirvish-widgets.el | 104 ++--- 1 file changed, 75 insertions(+), 29 deletions(-) diff --git a/dirvish-widgets.el b/dirvish-widgets.el index b6cc564424..fc65f27819 100644 --- a/dirvish-widgets.el +++ b/dirvish-widgets.el @@ -20,8 +20,8 @@ ;; `file-user', `file-group', `file-time', `file-size', `file-modes', ;; `file-inode-number', `file-device-number' ;; -;; Preview dispatchers (all enabled by default): -;; `image', `gif', `video', `epub', `archive', `pdf' +;; Preview dispatchers: +;; `audio' `image', `gif', `video', `video-mtn', `epub', `archive', `pdf', `pdf-preface' ;;; Code: @@ -40,6 +40,56 @@ The value is a list with 3 elements: - icon for path separators [/]" :group 'dirvish :type '(repeat (string :tag "path separator"))) +(defcustom dirvish-magick-program "magick" + "Absolute or reletive name of the `magick' program. +This is used to generate image thumbnails." + :group 'dirvish :type 'string) + +(defcustom dirvish-ffmpegthumbnailer-program "ffmpegthumbnailer" + "Absolute or reletive name of the `ffmpegthumbnailer' program. +This is used to generate video thumbnails on macOS/Linux." + :group 'dirvish :type 'string) + +(defcustom dirvish-mtn-program "mtn" + "Absolute or reletive name of the `mtn' program. +This is used to generate video thumbnails on Windows." + :group 'dirvish :type 'string) + +(defcustom dirvish-epub-thumbnailer-program "epub-thumbnailer" + "Absolute or reletive name of the `epub-thumbnailer' program. +This is used to generate thumbnail for epub files." + :group 'dirvish :type 'string) + +(defcustom dirvish-mediainfo-program "mediainfo" + "Absolute or reletive name of the `mediainfo' program. +This is used to retrieve metadata for multiple types of media files." + :group 'dirvish :type 'string) + +(defcustom dirvish-pdfinfo-program "pdfinfo" + "Absolute or reletive name of the `pdfinfo' program. +This is used to retrieve pdf metadata." + :group 'dirvish :type 'string) + +(defcustom dirvish-pdftoppm-program "pdftoppm" + "Absolute or reletive name of the `pdftoppm' program. +This is used to generate thumbnails for pdf files." + :group 'dirvish :type 'string) + +(defcustom dirvish-zipinfo-program "zipinfo" + "Absolute or reletive name of the `zipinfo' program. +This is used to list files and their attributes for .zip archives." + :group 'dirvish :type 'string) + +(defcustom dirvish-tar-program "tar" + "Absolute or reletive name of the `tar' program. +This is used to list files and their attributes for .tar, .gz etc. archives." + :group 'dirvish :type 'string) + +(defcustom dirvish-show-media-properties + (and (executable-find dirvish-mediainfo-program) t) + "Show media properties automatically in preview window." + :group 'dirvish :type 'boolean) + (defvar dirvish-media--cache-pool '()) (defvar dirvish-media--auto-cache-timer nil) (defcustom dirvish-media-auto-cache-threshold '(500 . 4) @@ -60,13 +110,6 @@ variable is nil, the auto caching is disabled." (setq dirvish-media--auto-cache-timer (run-with-timer 0 0.25 #'dirvish-media--autocache) -(defcustom dirvish-show-media-properties - (and (executable-find "mediainfo") t) - "Show media properties automatically in preview window." - :group 'dirvish :type 'boolean) - -(defconst dirvish-media--embedded-video-thumb - (string-match "prefer embedded image" (shell-command-to-string "ffmpegthumbnailer -h"))) (defconst dirvish-media--img-max-width 2400) (defconst dirvish-media--img-scale-h 0.75) (defconst dirvish-media--img-scale-w 0.92) @@ -247,14 +290,15 @@ GROUP-TITLES is a list of group titles." (defun dirvish-media--metadata-from-mediainfo (file) "Return result string from command `mediainfo' for FILE." (read (format "(%s)" (shell-command-to-string -(format "mediainfo --Output='%s' %s" +(format "%s --Output='%s' %s" +dirvish-mediainfo-program dirvish-media--info (shell-quote-argument file)) (defun dirvish-media--metadata-from-pdfinfo (file) "Return result string from command `pdfinfo' for FILE." (cl-loop with out = (shell-command-to-string - (format "pdfinfo %s" (shell-quote-argument file))) + (format "%s %s" dirvish-pdfinfo-program (shell-quote-argument file))) with lines = (remove "" (split-string out "\n")) for line in lines for (title content) = (split-string line ":\s+") @@ -556,23 +600,26 @@ GROUP-TITLES is a list of group titles." (dirvish-define-preview audio (file ext) "Preview audio files by printing its metadata. Require: `mediainfo' (executable)" - :require
[nongnu] elpa/dirvish 973190eb9f 3/3: chore: link #185 issue in docs
branch: elpa/dirvish commit 973190eb9fbc22b3acd7d142819b3426e28a5b07 Author: Alex Lu Commit: Alex Lu chore: link #185 issue in docs --- docs/EXTENSIONS.org | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/EXTENSIONS.org b/docs/EXTENSIONS.org index 7fa8825cf0..8d67d572b9 100644 --- a/docs/EXTENSIONS.org +++ b/docs/EXTENSIONS.org @@ -219,7 +219,7 @@ cursor as a subtree. + Customize the appearance of the expansion indicator using ~dirvish-subtree-state-style~ and ~dirvish-subtree-icon-scale-factor~ to adjust - its displacement and size. + its placement and size. See this [[https://github.com/alexluigit/dirvish/issues/185][related issue]] + To hide the indicator when no directories are expanded, set ~dirvish-subtree-always-show-state~ to nil.
[nongnu] elpa/dirvish updated (b74f0d337d -> 973190eb9f)
elpasync pushed a change to branch elpa/dirvish. from b74f0d337d doc: keybinding issue for evil-mode users (closes #188) new 79d73c0777 feat: centralize extrnal deps | remove ffmpegthumbnailer hack new c867162cc9 feat(subtree): add `dirvish-subtree-icon-scale-factor` option (#185) new 973190eb9f chore: link #185 issue in docs Summary of changes: dirvish-widgets.el| 104 ++ docs/EXTENSIONS.org | 18 +--- extensions/dirvish-subtree.el | 35 ++ 3 files changed, 112 insertions(+), 45 deletions(-)
[elpa] externals/hiddenquote 0ddc04e9b8: Don't set character widgets to the empty string
branch: externals/hiddenquote commit 0ddc04e9b8f578fcd3b30b62c3b98fa8ee13f62a Author: Mauro Aranda Commit: Mauro Aranda Don't set character widgets to the empty string * hiddenquote.el (hiddenquote-kill-word) (hiddenquote-kill-whole-word, hiddenquote-transpose-chars): Set to " ". --- hiddenquote.el | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/hiddenquote.el b/hiddenquote.el index 6f02b34cd6..534d12e85a 100644 --- a/hiddenquote.el +++ b/hiddenquote.el @@ -1429,7 +1429,7 @@ Character cell bindings: (parent (widget-get (widget-at) :parent))) (save-excursion (dolist (w (member child (widget-get parent :children))) -(widget-value-set w "") +(widget-value-set w " ") (defun hiddenquote-kill-whole-word () "Delete each character in a word." @@ -1437,7 +1437,7 @@ Character cell bindings: (let ((parent (widget-get (widget-at) :parent))) (save-excursion (dolist (child (widget-get parent :children)) -(widget-value-set child "") +(widget-value-set child " ") (defun hiddenquote-delete-backward-char () "Delete the previous character." @@ -1465,8 +1465,8 @@ point to the next word." (oval (widget-value ch1)) (nval (widget-value ch2))) ;; Spaces are problematic. -(widget-value-set ch1 (if (char-equal nval ?\s) "" nval)) -(widget-value-set ch2 (if (char-equal oval ?\s) "" oval)) +(widget-value-set ch1 (if (char-equal nval ?\s) " " nval)) +(widget-value-set ch2 (if (char-equal oval ?\s) " " oval)) (hiddenquote-forward))) (defun hiddenquote-forward ()
[nongnu] elpa/gptel 5d5610dfb6: gptel-rewrite: Appease byte-compiler
branch: elpa/gptel commit 5d5610dfb62d218447b210ec8c8f833c6aca262e Author: Karthik Chikmagalur Commit: Karthik Chikmagalur gptel-rewrite: Appease byte-compiler * gptel-rewrite.el (gptel--suffix-rewrite): Appease byte-compiler. Allow `gptel--suffix-rewrite' to be called non-interactively, which is required for dry runs. --- gptel-rewrite.el | 4 1 file changed, 4 insertions(+) diff --git a/gptel-rewrite.el b/gptel-rewrite.el index 5c8fe83e6d..ebc1c2a8dc 100644 --- a/gptel-rewrite.el +++ b/gptel-rewrite.el @@ -30,6 +30,7 @@ (defvar diff-entire-buffers) (declare-function diff-no-select "diff") +(declare-function rmc--add-key-description "rmc") ;; * User options @@ -637,6 +638,9 @@ generated from functions." (when (= (point) (region-end)) (backward-char 1))) (deactivate-mark +;; Allow this to be called non-interactively for dry runs +(put 'gptel--suffix-rewrite 'interactive-only nil) + (transient-define-suffix gptel--suffix-rewrite-diff (&optional switches) "Diff LLM output against buffer." :if (lambda () gptel--rewrite-overlays)
[nongnu] elpa/dirvish updated (973190eb9f -> df4fd5670d)
elpasync pushed a change to branch elpa/dirvish. from 973190eb9f chore: link #185 issue in docs new f6b19df639 fix: incorrect session reuse on `dirvish-side` new df4fd5670d docs: drop `tramp-use-ssh-controlmaster-options`, which causes error Summary of changes: dirvish.el | 24 +++- docs/CUSTOMIZING.org | 25 ++--- extensions/dirvish-fd.el | 3 ++- 3 files changed, 23 insertions(+), 29 deletions(-)
[nongnu] elpa/solarized-theme 5d136736f7: Add option to highlight numbers (#451)
branch: elpa/solarized-theme commit 5d136736f76c85a83fef737d10ecd32af4d493fd Author: Ilgiz Mustafin Commit: GitHub Add option to highlight numbers (#451) --- README.md | 3 +++ solarized-faces.el | 3 ++- solarized.el | 7 +++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index cf6e5ffdef..4636092574 100644 --- a/README.md +++ b/README.md @@ -106,6 +106,9 @@ elisp code: (setq solarized-height-plus-3 1.0) (setq solarized-height-plus-4 1.0) +;; Highlight all numbers +(setq solarized-highlight-numbers t) + ``` Note that these need to be set **before** `load-theme` is invoked for Solarized. diff --git a/solarized-faces.el b/solarized-faces.el index 667400231a..917fa08fbb 100644 --- a/solarized-faces.el +++ b/solarized-faces.el @@ -236,6 +236,7 @@ ((,class (:foreground ,base01 :slant ,s-maybe-italic `(font-lock-comment-face ((,class (:foreground ,base01 `(font-lock-constant-face ((,class (:foreground ,blue :weight bold + `(font-lock-number-face ((,class (:foreground ,(if solarized-highlight-numbers violet 'unspecified) `(font-lock-doc-face ((,class (:foreground ,(if solarized-distinct-doc-face violet cyan) :slant ,s-maybe-italic `(font-lock-function-name-face ((,class (:foreground ,blue @@ -919,7 +920,7 @@ `(highlight-indentation-face ((,class (:background ,base02 `(highlight-indentation-current-column-face((,class (:background ,base02 ; highlight-numbers - `(highlight-numbers-number ((,class (:foreground ,violet :bold nil + `(highlight-numbers-number ((,class (:inherit font-lock-number-face ; highlight-symbol `(highlight-symbol-face ((,class (:foreground ,magenta ; hl-line-mode diff --git a/solarized.el b/solarized.el index f0ed078f02..ddd796ac2f 100644 --- a/solarized.el +++ b/solarized.el @@ -52,6 +52,13 @@ Related discussion: https://github.com/bbatsov/solarized-emacs/issues/158"; :type 'boolean :group 'solarized) +(defcustom solarized-highlight-numbers nil + "Highlight all numbers. +Applies color to `font-lock-number-face' and `highlight-numbers' mode. +Many tree-sitter based modes use `font-lock-number-face'." + :type 'boolean + :group 'solarized) + (defcustom solarized-use-variable-pitch t "Use variable pitch face for some headings and titles." :type 'boolean
[nongnu] elpa/dirvish f6b19df639 1/2: fix: incorrect session reuse on `dirvish-side`
branch: elpa/dirvish commit f6b19df63954b615ae4860bd43528cbad30526df Author: Alex Lu Commit: Alex Lu fix: incorrect session reuse on `dirvish-side` --- dirvish.el | 24 +++- extensions/dirvish-fd.el | 3 ++- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/dirvish.el b/dirvish.el index 5aefd70072..d08f0a0d5d 100644 --- a/dirvish.el +++ b/dirvish.el @@ -504,7 +504,7 @@ Set process's SENTINEL and PUTS accordingly." (cl-defstruct (dirvish (:conc-name dv-)) "Define dirvish session (`DV' for short) struct." (id (format-time-string "%D|%T"):documentation "is the created time stamp of DV, used as its unique id.") - (type ():documentation "is the type of DV.") + (type 'default :documentation "is the type of DV.") (root-window () :documentation "is the root/main window of DV.") (dedicated () :documentation "passes to `set-window-dedicated-p' for ROOT-WINDOW.") (size-fixed () :documentation "passes to `window-size-fixed' for ROOT-WINDOW.") @@ -532,21 +532,19 @@ ARGS is a list of keyword arguments for `dirvish' struct." (dirvish--check-deps) (dirvish--create-root-window new) new)) -(defun dirvish--get-session (&optional key val) +(defun dirvish--get-session (key val) "Return the first matched session has KEY of VAL." (cl-loop for dv being the hash-values of dirvish--session-hash for b = (cdr (dv-index dv)) when (not (buffer-live-p b)) return dv with (fr tab psp) = (cl-loop for (_ v) on dirvish-scopes by 'cddr collect (and (functionp v) (funcall v))) - when (and (eq (with-current-buffer b (dirvish-prop :tab)) tab) - (eq (with-current-buffer b (dirvish-prop :frame)) fr) - (eq (with-current-buffer b (dirvish-prop :persp)) psp) - (let* ((fn (and key (intern (format "dv-%s" key -(res (and fn (funcall fn dv - (cond ((not fn) t) - ((eq key 'roots) - (memq val (mapcar #'cdr res))) - (res (eq val res) + if (eq (with-current-buffer b (dirvish-prop :tab)) tab) + if (eq (with-current-buffer b (dirvish-prop :frame)) fr) + if (eq (with-current-buffer b (dirvish-prop :persp)) psp) + if (let* ((fn (intern (format "dv-%s" key))) + (res (and (functionp fn) (funcall fn dv +(if (eq key 'roots) (memq val (mapcar #'cdr res)) + (eq val res))) return dv)) (defun dirvish--clear-session (dv &optional from-quit) @@ -690,7 +688,7 @@ buffer, it defaults to filename under the cursor when it is nil." "Return buffer for DIR-OR-LIST with FLAGS, FN is `dired-noselect'." (let* ((dir (if (consp dir-or-list) (car dir-or-list) dir-or-list)) (key (file-name-as-directory (expand-file-name dir))) - (reuse? (or (dirvish-curr) (dirvish--get-session))) + (reuse? (or (dirvish-curr) (dirvish--get-session 'type 'default))) (dv (or reuse? (dirvish--new))) (bname buffer-file-name) (remote (file-remote-p dir)) @@ -1349,7 +1347,7 @@ INHIBIT-SETUP is non-nil." (defun dirvish--reuse-or-create (path layout) "Find PATH in a dirvish session and set its layout with LAYOUT." (let ((dir (or path default-directory)) -(dv (or (dirvish-curr) (dirvish--get-session +(dv (or (dirvish-curr) (dirvish--get-session 'type 'default (cond (dv (with-selected-window (dirvish--create-root-window dv) (setf (dv-curr-layout dv) (or (dv-curr-layout dv) layout)) (dirvish-find-entry-a diff --git a/extensions/dirvish-fd.el b/extensions/dirvish-fd.el index 27894fab95..4afee2624e 100644 --- a/extensions/dirvish-fd.el +++ b/extensions/dirvish-fd.el @@ -420,7 +420,8 @@ The command run is essentially: (fd-program (dirvish-fd--ensure-fd remote)) (ls-program (or (and remote (dirvish-fd--find-gnu-ls remote)) dirvish-fd-ls-program)) - (dv (or (dirvish-curr) (progn (dirvish dir) (dirvish--get-session + (dv (or (dirvish-curr) + (progn (dirvish dir) (dirvish--get-session 'type 'default (fd-switches (or (dirvish-prop :fd-switches) dirvish-fd-switches "")) (ls-switches (or dired-actual-switches (dv-ls-switches dv))) (buffer (dirvish--util-buffer 'fd dv nil t)))
[nongnu] elpa/dirvish df4fd5670d 2/2: docs: drop `tramp-use-ssh-controlmaster-options`, which causes error
branch: elpa/dirvish commit df4fd5670d0e95036a63a390d956597adc9c1241 Author: Alex Lu Commit: Alex Lu docs: drop `tramp-use-ssh-controlmaster-options`, which causes error --- docs/CUSTOMIZING.org | 25 ++--- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/docs/CUSTOMIZING.org b/docs/CUSTOMIZING.org index e954349558..378ea91dc4 100644 --- a/docs/CUSTOMIZING.org +++ b/docs/CUSTOMIZING.org @@ -357,17 +357,16 @@ your ssh authentication properly to avoid being stuck with a prompt you will not be able to answer to in the child emacs. #+begin_src emacs-lisp - (use-package tramp -:config -;; Enable full-featured Dirvish over TRAMP on certain connections -;; https://www.gnu.org/software/tramp/#Improving-performance-of-asynchronous-remote-processes-1. -(add-to-list 'tramp-connection-properties - (list (regexp-quote "/ssh:YOUR_HOSTNAME:") - "direct-async-process" t)) -;; Tips to speed up connections -(setq tramp-verbose 0) -(setq tramp-chunksize 2000) -(setq tramp-use-ssh-controlmaster-options nil)) +(use-package tramp + :config + ;; Enable full-featured Dirvish over TRAMP on certain connections + ;; https://www.gnu.org/software/tramp/#Improving-performance-of-asynchronous-remote-processes-1. + (add-to-list 'tramp-connection-properties + (list (regexp-quote "/ssh:YOUR_HOSTNAME:") + "direct-async-process" t)) + ;; Tips to speed up connections + (setq tramp-verbose 0) + (setq tramp-chunksize 2000)) #+end_src ** Complementary packages @@ -398,7 +397,3 @@ These packages are only listed here for discoverability. ;; :config ;; (push '("jpg" . "image") vscode-icon-file-alist)) #+end_src - -** Working with Doom Emacs (WIP) - -A [[https://github.com/doomemacs/doomemacs/pull/6760][PR]] to make dirvish as the default file manager in doom-emacs is under review.
[elpa] externals/ellama d21db99de4 09/14: Add ellama-context-mode-line-mode and its global version to readme
branch: externals/ellama commit d21db99de41da5046626185be215e1694b79b969 Author: Sergey Kostyaev Commit: Sergey Kostyaev Add ellama-context-mode-line-mode and its global version to readme --- README.org | 44 ++-- 1 file changed, 38 insertions(+), 6 deletions(-) diff --git a/README.org b/README.org index 456e09202b..48a1661708 100644 --- a/README.org +++ b/README.org @@ -455,9 +455,8 @@ context-specific information. *Usage:* To enable or disable ~ellama-context-header-line-mode~, use the command: -#+BEGIN_SRC emacs-lisp -M-x ellama-context-header-line-mode -#+END_SRC + +M-x ellama-context-header-line-mode When enabled, this mode adds a hook to ~window-state-change-hook~ to update the header line whenever the window state changes. It also calls ~ellama-context-update-header-line~ to initialize the header @@ -474,13 +473,46 @@ Globalized version of ~ellama-context-header-line-mode~. This mode ensures that *Usage:* To enable or disable ~ellama-context-header-line-global-mode~, use the command: -#+BEGIN_SRC emacs-lisp -M-x ellama-context-header-line-global-mode -#+END_SRC + +M-x ellama-context-header-line-global-mode This globalized minor mode provides a convenient way to ensure that context-specific header line information is always available, regardless of the buffer being edited. +*** ellama-context-mode-line-mode + +*Description:* +Toggle the Ellama Context mode line mode. This minor mode updates the mode line +to display context-specific information. + +*Usage:* +To enable or disable ~ellama-context-mode-line-mode~, use the command: + +M-x ellama-context-mode-line-mode + +When enabled, this mode adds a hook to ~window-state-change-hook~ to update the +mode line whenever the window state changes. It also calls +~ellama-context-update-mode-line~ to initialize the mode line with +context-specific information. + +When disabled, it removes the evaluation of ~(:eval (ellama-context-line))~ from +~mode-line-format~. + +*** ellama-context-mode-line-global-mode + +*Description:* +Globalized version of ~ellama-context-mode-line-mode~. This mode ensures that +~ellama-context-mode-line-mode~ is enabled in all buffers. + +*Usage:* +To enable or disable ~ellama-context-mode-line-global-mode~, use the command: + +M-x ellama-context-mode-line-global-mode + +This globalized minor mode provides a convenient way to ensure that +context-specific mode line information is always available, regardless of the +buffer being edited. + ** Acknowledgments Thanks [[https://github.com/jmorganca][Jeffrey Morgan]] for excellent project [[https://github.com/jmorganca/ollama][ollama]]. This project
[elpa] externals/ellama updated (1b71217434 -> 1c52902d4d)
elpasync pushed a change to branch externals/ellama. from 1b71217434 Merge pull request #232 from s-kostyaev/fix-scroll new aad5adadc5 Add ellama context header line mode new 506cc6232b Improve session deletion new f74ed2c104 Add custom faces and properties to ellama context line new ea63023cc4 Remove `ellama-long-lines-length` customization and related usage new 556c015e1c Fix test cases new 88400ce336 Rename session functionality improvements new bfbb0aab6e Adjust fill-column in test for code snippet translation new fabafcccef Add Ellama Context Mode Line Feature new d21db99de4 Add ellama-context-mode-line-mode and its global version to readme new 646513ae5b Update context management new a29da0 Rename `ellama-session-remove` to `ellama-session-delete` new a2d3bdfcf7 Bump version new 22dc59 Add changelog documentation new 1c52902d4d Merge pull request #235 from s-kostyaev/add-context-header-line Summary of changes: NEWS.org | 8 ++ README.org | 215 docs/changelog.org | 3 + ellama.el| 245 +-- tests/test-ellama.el | 61 + 5 files changed, 334 insertions(+), 198 deletions(-) create mode 100644 docs/changelog.org
[elpa] externals/ellama 506cc6232b 02/14: Improve session deletion
branch: externals/ellama commit 506cc6232bed471587ab057eee848af151bc1b53 Author: Sergey Kostyaev Commit: Sergey Kostyaev Improve session deletion Enhanced the `ellama-delete-session` function to conditionally delete files only if they exist, preventing errors when attempting to delete non-existent files. Added checks for `session-file` and `translation-file` before deleting them. This ensures that the function handles cases where the associated files might have already been deleted or not created in the first place. --- ellama.el | 18 ++ 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/ellama.el b/ellama.el index 6ae9b28aab..55b8fccbc2 100644 --- a/ellama.el +++ b/ellama.el @@ -972,19 +972,21 @@ If EPHEMERAL non nil new session will not be associated with any file." (hash-table-keys ellama--active-sessions))) (buffer (ellama-get-session-buffer id)) (file (buffer-file-name buffer)) -(session-file (ellama--get-session-file-name file)) -(translation-file (ellama--get-translation-file-name file))) +(session-file (when file (ellama--get-session-file-name file))) +(translation-file (when file (ellama--get-translation-file-name file (kill-buffer buffer) -(delete-file file t) -(delete-file session-file t) +(when file (delete-file file t)) +(when session-file (delete-file session-file t)) (mapc (lambda (buf) - (when (and (buffer-file-name buf) - (file-equal-p (buffer-file-name buf) - translation-file)) + (when (and + translation-file + (buffer-file-name buf) + (file-equal-p (buffer-file-name buf) + translation-file)) (kill-buffer buf))) (buffer-list)) -(when (file-exists-p translation-file) +(when (and translation-file (file-exists-p translation-file)) (delete-file translation-file t (defun ellama-activate-session (id)
[elpa] externals/ellama bfbb0aab6e 07/14: Adjust fill-column in test for code snippet translation
branch: externals/ellama commit bfbb0aab6e076da17b60de5414a77b3b4b187f76 Author: Sergey Kostyaev Commit: Sergey Kostyaev Adjust fill-column in test for code snippet translation Added fill-column variable set to 70 in the test-ellama-md-to-org-code-snake-case test to ensure a fix for the flaky test. --- tests/test-ellama.el | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/test-ellama.el b/tests/test-ellama.el index b1fb087ded..6b47022191 100644 --- a/tests/test-ellama.el +++ b/tests/test-ellama.el @@ -380,7 +380,8 @@ $P_\\theta$ (should (string-equal result "This" (ert-deftest test-ellama-md-to-org-code-snake-case () - (let ((result (ellama--translate-markdown-to-org-filter "```python + (let* ((fill-column 70) +(result (ellama--translate-markdown-to-org-filter "```python # Example of snake case variables and functions # Variable names using snake_case
[elpa] externals/ellama 1c52902d4d 14/14: Merge pull request #235 from s-kostyaev/add-context-header-line
branch: externals/ellama commit 1c52902d4de4933b61cd3a3bcdd3f74cadd31f9f Merge: 1b71217434 22dc59 Author: Sergey Kostyaev Commit: GitHub Merge pull request #235 from s-kostyaev/add-context-header-line Add ellama context header and mode line modes --- NEWS.org | 8 ++ README.org | 215 docs/changelog.org | 3 + ellama.el| 245 +-- tests/test-ellama.el | 61 + 5 files changed, 334 insertions(+), 198 deletions(-) diff --git a/NEWS.org b/NEWS.org index e7b76e2678..9ec0c38ba8 100644 --- a/NEWS.org +++ b/NEWS.org @@ -1,3 +1,11 @@ +* Version 1.3.0 +- Implemented ellama context header line and mode line features. +- Added ~ellama-context-header-line-mode~, ~ellama-context-mode-line-mode~ and + its global versions. +- Session renaming functionality improvements. +- Improved session deletion. +- Renamed ~ellama-session-remove~ to ~ellama-session-delete~. +- Removed ~ellama-long-lines-length~ customization and related usage * Version 1.2.5 - Fix scroll function. * Version 1.2.4 diff --git a/README.org b/README.org index aa2f5a1580..1bda4fb572 100644 --- a/README.org +++ b/README.org @@ -32,72 +32,74 @@ Without any configuration, the first available ollama model will be used. You can customize ellama configuration like this: #+BEGIN_SRC emacs-lisp -(use-package ellama - :ensure t - :bind ("C-c e" . ellama-transient-main-menu) - :init - ;; setup key bindings - ;; (setopt ellama-keymap-prefix "C-c e") - ;; language you want ellama to translate to - (setopt ellama-language "German") - ;; could be llm-openai for example - (require 'llm-ollama) - (setopt ellama-provider - (make-llm-ollama - ;; this model should be pulled to use it - ;; value should be the same as you print in terminal during pull - :chat-model "llama3:8b-instruct-q8_0" - :embedding-model "nomic-embed-text" - :default-chat-non-standard-params '(("num_ctx" . 8192 - (setopt ellama-summarization-provider - (make-llm-ollama - :chat-model "qwen2.5:3b" - :embedding-model "nomic-embed-text" - :default-chat-non-standard-params '(("num_ctx" . 32768 - (setopt ellama-coding-provider - (make-llm-ollama - :chat-model "qwen2.5-coder:3b" - :embedding-model "nomic-embed-text" - :default-chat-non-standard-params '(("num_ctx" . 32768 - ;; Predefined llm providers for interactive switching. - ;; You shouldn't add ollama providers here - it can be selected interactively - ;; without it. It is just example. - (setopt ellama-providers - '(("zephyr" . (make-llm-ollama -:chat-model "zephyr:7b-beta-q6_K" -:embedding-model "zephyr:7b-beta-q6_K")) - ("mistral" . (make-llm-ollama - :chat-model "mistral:7b-instruct-v0.2-q6_K" - :embedding-model "mistral:7b-instruct-v0.2-q6_K")) - ("mixtral" . (make-llm-ollama - :chat-model "mixtral:8x7b-instruct-v0.1-q3_K_M-4k" - :embedding-model "mixtral:8x7b-instruct-v0.1-q3_K_M-4k" - ;; Naming new sessions with llm - (setopt ellama-naming-provider - (make-llm-ollama - :chat-model "llama3:8b-instruct-q8_0" - :embedding-model "nomic-embed-text" - :default-chat-non-standard-params '(("stop" . ("\n") - (setopt ellama-naming-scheme 'ellama-generate-name-by-llm) - ;; Translation llm provider - (setopt ellama-translation-provider - (make-llm-ollama - :chat-model "qwen2.5:3b" - :embedding-model "nomic-embed-text" - :default-chat-non-standard-params - '(("num_ctx" . 32768 - (setopt ellama-extraction-provider (make-llm-ollama - :chat-model "qwen2.5-coder:7b-instruct-q8_0" - :embedding-model "nomic-embed-text" - :default-chat-non-standard-params - '(("num_ctx" . 32768 - ;; customize display buffer behaviour - ;; see ~(info "(elisp) Buffer Display Action Functions")~ - (setopt ellama-chat-display-action-function #'display-buffer-full-frame) - (setopt ellama-instant-display-action-function #'display-buffer-at-bottom) - :config - ;; send last message in chat buffer with C-c C-c - (add-hook 'org-ctrl-c-ctrl-c-hook #'ellama-chat-send-last-message)) + (use-package ellama +:ensure t +:bind ("C-c e" . ellama-transient-main-menu) +:init +;; setup key bindings +;; (setopt ellama-keymap-prefix "C-c e") +;; language you want ellama to translate to +(setopt ellama-language "German") +;; could be llm-openai for example +(require 'llm-ollama) +(setopt ellama-provider + (make-llm-ollama
[elpa] externals/ellama 88400ce336 06/14: Rename session functionality improvements
branch: externals/ellama commit 88400ce33685971c00ef7d509b247d9a3a1ebefe Author: Sergey Kostyaev Commit: Sergey Kostyaev Rename session functionality improvements Refactored `ellama-session-rename` function to improve variable handling and add auto-save feature. Ensured proper renaming of buffers, files, and session data, with checks for existence before performing file operations. Added condition to save buffer if `ellama-session-auto-save` is enabled. --- ellama.el | 53 + 1 file changed, 29 insertions(+), 24 deletions(-) diff --git a/ellama.el b/ellama.el index 4b5dedd5eb..2250673ce8 100644 --- a/ellama.el +++ b/ellama.el @@ -1001,35 +1001,40 @@ If EPHEMERAL non nil new session will not be associated with any file." (defun ellama-session-rename () "Rename current ellama session." (interactive) - (when-let* ((id (if ellama--current-session - (ellama-session-id ellama--current-session) - ellama--current-session-id)) - (buffer (ellama-get-session-buffer id)) - (session (with-current-buffer buffer -ellama--current-session)) - (file-name (buffer-file-name buffer)) - (file-ext (file-name-extension file-name)) - (dir (file-name-directory file-name)) - (session-file-name (ellama--get-session-file-name file-name)) - (new-id (read-string - "New session name: " - id)) - (new-file-name (file-name-concat - dir - (concat new-id "." file-ext))) - (new-session-file-name - (ellama--get-session-file-name new-file-name))) -(with-current-buffer buffer - (set-visited-file-name new-file-name)) -(when (file-exists-p file-name) + (let* ((id (if ellama--current-session +(ellama-session-id ellama--current-session) + ellama--current-session-id)) +(buffer (when id (ellama-get-session-buffer id))) +(session (when buffer (with-current-buffer buffer +ellama--current-session))) +(file-name (when buffer (buffer-file-name buffer))) +(file-ext (when file-name (file-name-extension file-name))) +(dir (when file-name (file-name-directory file-name))) +(session-file-name (when file-name (ellama--get-session-file-name file-name))) +(new-id (read-string + "New session name: " + id)) +(new-file-name (when dir (file-name-concat + dir + (concat new-id "." file-ext +(new-session-file-name + (when new-file-name (ellama--get-session-file-name new-file-name +(when new-file-name (with-current-buffer buffer + (set-visited-file-name new-file-name))) +(when buffer (with-current-buffer buffer + (rename-buffer (or new-file-name new-id +(when (and file-name (file-exists-p file-name)) (rename-file file-name new-file-name)) -(when (file-exists-p session-file-name) +(when (and session-file-name (file-exists-p session-file-name)) (rename-file session-file-name new-session-file-name)) -(setf (ellama-session-id session) new-id) +(when session (setf (ellama-session-id session) new-id)) (when (equal ellama--current-session-id id) (setq ellama--current-session-id new-id)) (remhash id ellama--active-sessions) -(puthash new-id buffer ellama--active-sessions))) +(puthash new-id buffer ellama--active-sessions) +(when (and buffer ellama-session-auto-save) + (with-current-buffer buffer + (save-buffer) (defvar ellama--context-buffer " *ellama-context*")
[elpa] externals/ellama 646513ae5b 10/14: Update context management
branch: externals/ellama commit 646513ae5b0f244188be30e2fb4f0960a90101d2 Author: Sergey Kostyaev Commit: Sergey Kostyaev Update context management Replaced `ellama-manage-context` with `ellama-transient-context-menu` for header and mode line mouse clicks. This change updates the behavior to use a transient menu for managing contexts. --- ellama.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ellama.el b/ellama.el index 88c15f6e93..1424c9da60 100644 --- a/ellama.el +++ b/ellama.el @@ -1119,8 +1119,8 @@ If EPHEMERAL non nil new session will not be associated with any file." 'mouse-face 'header-line-format 'face 'ellama-context-line-face 'keymap (let ((m (make-sparse-keymap))) - (define-key m [header-line mouse-1] #'ellama-manage-context) - (define-key m [mode-line mouse-1] #'ellama-manage-context) + (define-key m [header-line mouse-1] #'ellama-transient-context-menu) + (define-key m [mode-line mouse-1] #'ellama-transient-context-menu) m))) ;;;###autoload
[elpa] externals/ellama aad5adadc5 01/14: Add ellama context header line mode
branch: externals/ellama commit aad5adadc5b6937c520a8781af5986f5cf5630ea Author: Sergey Kostyaev Commit: Sergey Kostyaev Add ellama context header line mode Added `ellama-context-header-line-mode` and its globalized version `ellama-context-header-line-global-mode` to display context-specific information in the header line. Also, introduced a new configuration option `ellama-spinner-enabled` to enable spinner during text generation. Updated the `README.org` file with details on these changes. Fix #233 --- README.org | 174 + ellama.el | 118 - 2 files changed, 188 insertions(+), 104 deletions(-) diff --git a/README.org b/README.org index aa2f5a1580..1ee2cf5792 100644 --- a/README.org +++ b/README.org @@ -32,72 +32,74 @@ Without any configuration, the first available ollama model will be used. You can customize ellama configuration like this: #+BEGIN_SRC emacs-lisp -(use-package ellama - :ensure t - :bind ("C-c e" . ellama-transient-main-menu) - :init - ;; setup key bindings - ;; (setopt ellama-keymap-prefix "C-c e") - ;; language you want ellama to translate to - (setopt ellama-language "German") - ;; could be llm-openai for example - (require 'llm-ollama) - (setopt ellama-provider - (make-llm-ollama - ;; this model should be pulled to use it - ;; value should be the same as you print in terminal during pull - :chat-model "llama3:8b-instruct-q8_0" - :embedding-model "nomic-embed-text" - :default-chat-non-standard-params '(("num_ctx" . 8192 - (setopt ellama-summarization-provider - (make-llm-ollama - :chat-model "qwen2.5:3b" - :embedding-model "nomic-embed-text" - :default-chat-non-standard-params '(("num_ctx" . 32768 - (setopt ellama-coding-provider - (make-llm-ollama - :chat-model "qwen2.5-coder:3b" - :embedding-model "nomic-embed-text" - :default-chat-non-standard-params '(("num_ctx" . 32768 - ;; Predefined llm providers for interactive switching. - ;; You shouldn't add ollama providers here - it can be selected interactively - ;; without it. It is just example. - (setopt ellama-providers - '(("zephyr" . (make-llm-ollama -:chat-model "zephyr:7b-beta-q6_K" -:embedding-model "zephyr:7b-beta-q6_K")) - ("mistral" . (make-llm-ollama - :chat-model "mistral:7b-instruct-v0.2-q6_K" - :embedding-model "mistral:7b-instruct-v0.2-q6_K")) - ("mixtral" . (make-llm-ollama - :chat-model "mixtral:8x7b-instruct-v0.1-q3_K_M-4k" - :embedding-model "mixtral:8x7b-instruct-v0.1-q3_K_M-4k" - ;; Naming new sessions with llm - (setopt ellama-naming-provider - (make-llm-ollama - :chat-model "llama3:8b-instruct-q8_0" - :embedding-model "nomic-embed-text" - :default-chat-non-standard-params '(("stop" . ("\n") - (setopt ellama-naming-scheme 'ellama-generate-name-by-llm) - ;; Translation llm provider - (setopt ellama-translation-provider - (make-llm-ollama - :chat-model "qwen2.5:3b" - :embedding-model "nomic-embed-text" - :default-chat-non-standard-params - '(("num_ctx" . 32768 - (setopt ellama-extraction-provider (make-llm-ollama - :chat-model "qwen2.5-coder:7b-instruct-q8_0" - :embedding-model "nomic-embed-text" - :default-chat-non-standard-params - '(("num_ctx" . 32768 - ;; customize display buffer behaviour - ;; see ~(info "(elisp) Buffer Display Action Functions")~ - (setopt ellama-chat-display-action-function #'display-buffer-full-frame) - (setopt ellama-instant-display-action-function #'display-buffer-at-bottom) - :config - ;; send last message in chat buffer with C-c C-c - (add-hook 'org-ctrl-c-ctrl-c-hook #'ellama-chat-send-last-message)) + (use-package ellama +:ensure t +:bind ("C-c e" . ellama-transient-main-menu) +:init +;; setup key bindings +;; (setopt ellama-keymap-prefix "C-c e") +;; language you want ellama to translate to +(setopt ellama-language "German") +;; could be llm-openai for example +(require 'llm-ollama) +(setopt ellama-provider + (make-llm-ollama + ;; this model should be pulled to use it + ;; value should be the same as you print in terminal during pull + :chat-model "llama3:8b-instruct-q8_0" + :embedding-model "nomic-embed-text" + :default-chat-non-standard-params '(("num_ctx" . 8192 +(setopt ellama-summarization-provider + (make-llm-ollama + :chat-model "qwen2.5:3b" +
[elpa] externals/ellama fabafcccef 08/14: Add Ellama Context Mode Line Feature
branch: externals/ellama commit fabafcccef0de031f4c6add2bf0d8365257f8c09 Author: Sergey Kostyaev Commit: Sergey Kostyaev Add Ellama Context Mode Line Feature Added new minor mode `ellama-context-mode-line-mode` to display context information in the mode line. Also added globalized version of this mode and a helper function to turn it on for text modes. Added `ellama-context-update-mode-line` to manage mode line updates based on the new mode's state. --- ellama.el | 32 ++-- 1 file changed, 26 insertions(+), 6 deletions(-) diff --git a/ellama.el b/ellama.el index 2250673ce8..88c15f6e93 100644 --- a/ellama.el +++ b/ellama.el @@ -1137,18 +1137,38 @@ If EPHEMERAL non nil new session will not be associated with any file." ellama-context-header-line-mode ellama-context-header-line-mode) -(defun ellama-context-turn-on-header-line-mode () - "Turn on `ellama-context-header-line-mode' if appropriate." - (when (or (eq major-mode 'text-mode) -(derived-mode-p 'text-mode)) -(ellama-context-header-line-mode 1))) - (defun ellama-context-update-header-line () "Update and display context information in the header line." (if (and ellama-context-header-line-mode ellama--global-context) (add-to-list 'header-line-format '(:eval (ellama-context-line)) t) (setq header-line-format (delete '(:eval (ellama-context-line)) header-line-format +;;;###autoload +(define-minor-mode ellama-context-mode-line-mode + "Toggle Ellama Context mode line mode." + :group 'ellama + (add-hook 'window-state-change-hook #'ellama-context-update-mode-line) + (if ellama-context-mode-line-mode + (ellama-context-update-mode-line) +(setq mode-line-format (delete '(:eval (ellama-context-line)) mode-line-format + +;;;###autoload +(define-globalized-minor-mode ellama-context-mode-line-global-mode + ellama-context-mode-line-mode + ellama-context-mode-line-mode) + +(defun ellama-context-turn-on-mode-line-mode () + "Turn on `ellama-context-mode-line-mode' if appropriate." + (when (or (eq major-mode 'text-mode) +(derived-mode-p 'text-mode)) +(ellama-context-mode-line-mode 1))) + +(defun ellama-context-update-mode-line () + "Update and display context information in the mode line." + (if (and ellama-context-mode-line-mode ellama--global-context) + (add-to-list 'mode-line-format '(:eval (ellama-context-line)) t) +(setq mode-line-format (delete '(:eval (ellama-context-line)) mode-line-format + (cl-defmethod ellama-context-element-add ((element ellama-context-element)) "Add the ELEMENT to the Ellama context." (setf ellama--global-context (nreverse ellama--global-context))
[elpa] externals/ellama a2d3bdfcf7 12/14: Bump version
branch: externals/ellama commit a2d3bdfcf7dd0d4ad487a52c4d74fc29e293d11e Author: Sergey Kostyaev Commit: Sergey Kostyaev Bump version --- NEWS.org | 8 ellama.el | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/NEWS.org b/NEWS.org index e7b76e2678..9ec0c38ba8 100644 --- a/NEWS.org +++ b/NEWS.org @@ -1,3 +1,11 @@ +* Version 1.3.0 +- Implemented ellama context header line and mode line features. +- Added ~ellama-context-header-line-mode~, ~ellama-context-mode-line-mode~ and + its global versions. +- Session renaming functionality improvements. +- Improved session deletion. +- Renamed ~ellama-session-remove~ to ~ellama-session-delete~. +- Removed ~ellama-long-lines-length~ customization and related usage * Version 1.2.5 - Fix scroll function. * Version 1.2.4 diff --git a/ellama.el b/ellama.el index be16ba306a..e6171a1922 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") (transient "0.7") (compat "29.1")) -;; Version: 1.2.5 +;; Version: 1.3.0 ;; SPDX-License-Identifier: GPL-3.0-or-later ;; Created: 8th Oct 2023
[elpa] externals-release/org ec72678881: Update version number for the 9.7.23 release
branch: externals-release/org commit ec72678881b73d04f8cf4e574cbb7a470e9155d3 Author: Ihor Radchenko Commit: Ihor Radchenko Update version number for the 9.7.23 release --- lisp/org.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/org.el b/lisp/org.el index 61186f4611..f7dd46f3d9 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -9,7 +9,7 @@ ;; URL: https://orgmode.org ;; Package-Requires: ((emacs "26.1")) -;; Version: 9.7.22 +;; Version: 9.7.23 ;; This file is part of GNU Emacs. ;;
[elpa] externals/org e6fae2e34d: org-store-link: Do not query about store function when INTERACTIVE? is nil
branch: externals/org commit e6fae2e34ddb95b7690313a52b759ee3c2de65b1 Author: Ihor Radchenko Commit: Ihor Radchenko org-store-link: Do not query about store function when INTERACTIVE? is nil * lisp/ol.el (org-link--try-link-store-functions): Do not use interactive query when INTERACTIVE? is nil. * etc/ORG-NEWS (~org-store-link~ no longer asks to select store function when called noninteractively): Announce the breaking change. The original feature prompting the user was introduced in https://list.orgmode.org/orgmode/87haqbbpsc@bernoul.li/ However, always prompting becomes problematic when link is stored for internal purposes and the user does not expect prompts. In the past, such situation was not frequent to cause the trouble, but now, when we moved some internal link types (org-id) to define link via the normal custom link system, clashes between internal and contributed link types become more likely. In future, more internal links will probably use `org-link-set-parameters', so this breaking change is hopefully an overall improvement. Reported-by: Hermann Graf von Westerholt Link: https://orgmode.org/list/27bfa4f7-22bb-42a8-97b4-f3590c015...@rwth-aachen.de --- etc/ORG-NEWS | 10 ++ lisp/ol.el | 10 ++ 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS index cb2c16da88..9eb4f711c1 100644 --- a/etc/ORG-NEWS +++ b/etc/ORG-NEWS @@ -18,6 +18,16 @@ Please send Org bug reports to mailto:emacs-orgm...@gnu.org. # require user action for most Org mode users. # Sorted from most important to least important. +*** ~org-store-link~ no longer asks to select store function when called noninteractively + +Previously, when multiple store functions are available to store link +at point, ~org-store-link~ would aslways ask user which store function +to use. + +Now, when ~org-store-link~ is called noninteractively (~interactive?~ +argument is nil), the first matching store function is used. +Interactively, the previous behaviour is retained. + *** You may need to update =org-protocol= bookmarklets for browsers In Firefox-133, and Firefox-128.5 ESR the previously suggested diff --git a/lisp/ol.el b/lisp/ol.el index 43fac74331..b456f79e69 100644 --- a/lisp/ol.el +++ b/lisp/ol.el @@ -961,10 +961,12 @@ Return t when a link has been stored in `org-link-store-props'." ;; function. (apply #'org-link-store-props (cdr (assoc-string -(completing-read - (format "Store link with (default %s): " name) - (mapcar #'car results-alist) - nil t nil nil (symbol-name name)) +(if (not interactive?) +(car (nth 0 results-alist)) + (completing-read + (format "Store link with (default %s): " name) + (mapcar #'car results-alist) + nil t nil nil (symbol-name name))) results-alist))) t
[elpa] externals/ellama 2222a29da0 11/14: Rename `ellama-session-remove` to `ellama-session-delete`
branch: externals/ellama commit a29da0365e23cd40c7c083a973490b60d575 Author: Sergey Kostyaev Commit: Sergey Kostyaev Rename `ellama-session-remove` to `ellama-session-delete` Updated function name and documentation for better clarity. Also updated keybindings and menu entries accordingly. --- README.org | 6 +++--- ellama.el | 8 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README.org b/README.org index 48a1661708..1bda4fb572 100644 --- a/README.org +++ b/README.org @@ -242,9 +242,9 @@ as a specified format using Ellama. Load ellama session from file. -*** ellama-session-remove +*** ellama-session-delete -Remove ellama session. +Delete ellama session. *** ellama-session-switch @@ -342,7 +342,7 @@ Ellama, using the ~ellama-keymap-prefix~ prefix (not set by default): | "s c" | ellama-summarize-killring | Summarize killring | | "s l" | ellama-load-session | Session Load | | "s r" | ellama-session-rename | Session rename | -| "s d" | ellama-session-remove | Session delete | +| "s d" | ellama-session-delete | Delete delete| | "s a" | ellama-session-switch | Session activate | | "P"| ellama-proofread| Proofread| | "i w" | ellama-improve-wording | Improve wording | diff --git a/ellama.el b/ellama.el index 1424c9da60..be16ba306a 100644 --- a/ellama.el +++ b/ellama.el @@ -147,7 +147,7 @@ Make reasoning models more useful for many cases." ;; session (define-key map (kbd "s l") 'ellama-load-session) (define-key map (kbd "s r") 'ellama-session-rename) -(define-key map (kbd "s d") 'ellama-session-remove) +(define-key map (kbd "s d") 'ellama-session-delete) (define-key map (kbd "s a") 'ellama-session-switch) ;; improve (define-key map (kbd "i w") 'ellama-improve-wording) @@ -956,8 +956,8 @@ If EPHEMERAL non nil new session will not be associated with any file." `((ignore . (,ellama-chat-display-action-function))) ;;;###autoload -(defun ellama-session-remove () - "Remove ellama session." +(defun ellama-session-delete () + "Delete ellama session." (interactive) (let* ((id (completing-read "Select session to remove: " @@ -3021,7 +3021,7 @@ Call CALLBACK on result list of strings. ARGS contains keys for fine control. [["Session Commands" ("l" "Load Session" ellama-load-session) ("r" "Rename Session" ellama-session-rename) -("d" "Remove Session" ellama-session-remove) +("d" "Delete Session" ellama-session-delete) ("a" "Activate Session" ellama-session-switch)] ["Quit" ("q" "Quit" transient-quit-one)]])
[elpa] externals/ellama 22dcffff59 13/14: Add changelog documentation
branch: externals/ellama commit 22dc595f7bc8a358be3ebfb1ca95c17e4a37 Author: Sergey Kostyaev Commit: Sergey Kostyaev Add changelog documentation Added a new changelog file to document changes based on git logs in markdown list format. --- docs/changelog.org | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/changelog.org b/docs/changelog.org new file mode 100644 index 00..a713a2d381 --- /dev/null +++ b/docs/changelog.org @@ -0,0 +1,3 @@ +Based on this git log write short changelog in markdown list format. Do not add +any headings or anknowledgements. Every changelog element should be ended with +full stop.
[elpa] externals/ellama 556c015e1c 05/14: Fix test cases
branch: externals/ellama commit 556c015e1cf2afa48aa40900655455f30027cab8 Author: Sergey Kostyaev Commit: Sergey Kostyaev Fix test cases --- tests/test-ellama.el | 58 +--- 1 file changed, 19 insertions(+), 39 deletions(-) diff --git a/tests/test-ellama.el b/tests/test-ellama.el index b88e2226ce..b1fb087ded 100644 --- a/tests/test-ellama.el +++ b/tests/test-ellama.el @@ -251,70 +251,70 @@ ```tex \\documentclass{article} \\usepackage{tikz} \\begin{document} -\\begin{tikzpicture} \\node[rectangle, draw=blue, fill=blue!20] (mynode) {Text}; +\\begin{tikzpicture} \\node[rectangle, draw=blue] (mynode) {Text}; \\end{tikzpicture} \\end{document} ``` This code will create a rectangle with a blue border and light -blue filling. You can replace \'Text\' with your desired text or other TikZ -elements."))) +blue filling. You can replace \'Text\' with your desired text +or other TikZ elements."))) (should (string-equal result "Here is your TikZ code for a blue rectangle: #+BEGIN_SRC tex \\documentclass{article} \\usepackage{tikz} \\begin{document} -\\begin{tikzpicture} \\node[rectangle, draw=blue, fill=blue!20] (mynode) {Text}; +\\begin{tikzpicture} \\node[rectangle, draw=blue] (mynode) {Text}; \\end{tikzpicture} \\end{document} #+END_SRC This code will create a rectangle with a blue border and light -blue filling. You can replace \'Text\' with your desired text or other TikZ -elements." +blue filling. You can replace \'Text\' with your desired text +or other TikZ elements." (ert-deftest test-ellama-md-to-org-code-hard () (let ((result (ellama--translate-markdown-to-org-filter "Here is your TikZ code for a blue rectangle: ``` \\documentclass{article} \\usepackage{tikz} \\begin{document} -\\begin{tikzpicture} \\node[rectangle, draw=blue, fill=blue!20] (mynode) {Text}; +\\begin{tikzpicture} \\node[rectangle, draw=blue] (mynode) {Text}; \\end{tikzpicture} \\end{document} ``` This code will create a rectangle with a blue border and light -blue filling. You can replace \'Text\' with your desired text or other TikZ -elements."))) +blue filling. You can replace \'Text\' with your desired text or other +TikZ elements."))) (should (string-equal result "Here is your TikZ code for a blue rectangle: #+BEGIN_SRC \\documentclass{article} \\usepackage{tikz} \\begin{document} -\\begin{tikzpicture} \\node[rectangle, draw=blue, fill=blue!20] (mynode) {Text}; +\\begin{tikzpicture} \\node[rectangle, draw=blue] (mynode) {Text}; \\end{tikzpicture} \\end{document} #+END_SRC This code will create a rectangle with a blue border and light -blue filling. You can replace \'Text\' with your desired text or other TikZ -elements." +blue filling. You can replace \'Text\' with your desired text or other +TikZ elements." (ert-deftest test-ellama-md-to-org-code-nightmare () (let ((result (ellama--translate-markdown-to-org-filter "Here is your TikZ code for a blue rectangle: ``` \\documentclass{article} \\usepackage{tikz} \\begin{document} -\\begin{tikzpicture} \\node[rectangle, draw=blue, fill=blue!20] (mynode) {Text}; +\\begin{tikzpicture} \\node[rectangle, draw=blue] (mynode) {Text}; \\end{tikzpicture} \\end{document}```This code will create a rectangle with a blue border and light -blue filling. You can replace \'Text\' with your desired text or other TikZ -elements."))) +blue filling. You can replace \'Text\' with your desired text +or other TikZ elements."))) (should (string-equal result "Here is your TikZ code for a blue rectangle: #+BEGIN_SRC \\documentclass{article} \\usepackage{tikz} \\begin{document} -\\begin{tikzpicture} \\node[rectangle, draw=blue, fill=blue!20] (mynode) {Text}; +\\begin{tikzpicture} \\node[rectangle, draw=blue] (mynode) {Text}; \\end{tikzpicture} \\end{document} #+END_SRC This code will create a rectangle with a blue border and light -blue filling. You can replace \'Text\' with your desired text or other TikZ -elements." +blue filling. You can replace \'Text\' with your desired text +or other TikZ elements." (ert-deftest test-ellama-md-to-org-code-multiple-bad-blocks () (let ((result (ellama--translate-markdown-to-org-filter "Some text: @@ -407,27 +407,7 @@ In this example: - The function name `calculate_average_score` also follows the snake_case convention. Snake case helps improve readability, especially in languages that are sensitive to capitalization like Python."))) -(should (string-equal result "#+BEGIN_SRC python -# Example of snake case variables and functions - -# Variable names using snake_case -student_name = \"Alice Johnson\" -class_name = \"Mathematics\" -grade_level = 10 - -# Function name using snake_case -def calculate_average_score(math_score, science_score, english_score): -average_score = (math_score + science_score + english_score) / 3 -return average_score - -# Using the function -student_math_score = 85 -student_science_score
[elpa] externals/company updated (d43155c31f -> 5bb6f6d3d4)
elpasync pushed a change to branch externals/company. from d43155c31f Print the value of current capf in company-diag as well new 64e86efc38 Adapt company-version to the MELPA change new 0a0cdad605 Fix byte-compilation warning new 5bb6f6d3d4 Fix one more warning Summary of changes: company.el | 13 + 1 file changed, 9 insertions(+), 4 deletions(-)
[nongnu] elpa/helm 4ccdefb7d0 2/2: Remove helm-bookmark-override-inheritor no more needed
branch: elpa/helm commit 4ccdefb7d0f71da930ffdd39c6630c53d2e672e6 Author: Thierry Volpiatto Commit: Thierry Volpiatto Remove helm-bookmark-override-inheritor no more needed --- helm-bookmark.el | 10 ++ 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/helm-bookmark.el b/helm-bookmark.el index 5c9a93a97e..0243fda325 100644 --- a/helm-bookmark.el +++ b/helm-bookmark.el @@ -581,11 +581,9 @@ If `browse-url-browser-function' is set to something else than (define-key map (kbd "C-x C-d") #'helm-bookmark-run-browse-project) map)) -;; Same as `helm-source-filtered-bookmarks' but override actions and keymap -;; specifically for helm-find-files bookmarks. -(defclass helm-bookmark-override-inheritor (helm-source) ()) +(defclass helm-bookmark-find-files-class (helm-source-filtered-bookmarks) ()) -(cl-defmethod helm--setup-source ((source helm-bookmark-override-inheritor)) +(cl-defmethod helm--setup-source ((source helm-bookmark-find-files-class)) ;; Ensure `helm-source-in-buffer' method is called. (cl-call-next-method) (setf (slot-value source 'action) @@ -599,10 +597,6 @@ If `browse-url-browser-function' is set to something else than '(("Browse project" . helm-bookmark-browse-project)) 1)) (setf (slot-value source 'keymap) helm-bookmark-find-files-map)) -(defclass helm-bookmark-find-files-class (helm-source-filtered-bookmarks - helm-bookmark-override-inheritor) - ()) - (defun helm-source-bookmark-helm-find-files-builder () (helm-bookmark-build-source "Bookmark helm-find-files sessions"