| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
* lisp/subr.el: (string-common-prefix): New function.
* etc/NEWS:
* doc/lispref/strings.texi:
* doc/lispref/minibuf.texi:
* lisp/emacs-lisp/shortdoc.el:
Documentation.
|
| |
|
|
|
|
| |
* lisp/window-x.el (window-get-split-combination, split-frame):
* lisp/tab-bar.el (tab-bar-split-tab):
Rename 'window--get-split-combination' to 'window-get-split-combination'.
|
| | |
|
| |
|
|
|
| |
* lisp/textmodes/yaml-ts-mode.el (yaml-ts-mode-yamllint-options):
Fix :type and doc string.
|
| |
|
|
|
| |
Manicure pcase patterns to avoid performance-sapping internal functions
and switch-breaking gaps, resulting in smaller code and less allocation.
|
| |
|
|
|
| |
* lisp/simple.el (goto-line): Use 'buffer' arg only when
'interactive' is non-nil (bug#80150). Update docstring.
|
| |
|
|
|
|
|
|
| |
See https://github.com/joaotavora/eglot/issues/1569.
* lisp/progmodes/eglot.el (eglot--managed-mode): Tweak.
* etc/EGLOT-NEWS: Tweak.
|
| |
|
|
|
|
| |
* lisp/progmodes/eglot.el (eglot--format-server-message): New helper.
(eglot-handle-notification<window/showMessage>)
(eglot-handle-request<window/showMessageRequest>): Use it.
|
| | |
|
| |
|
|
|
|
|
|
| |
* lisp/progmodes/python.el (python-ts-mode):
Set 'treesit-sexp-thing-down-list' to 'list' to override
sexp navigation with list navigation (bug#72478).
* lisp/emacs-lisp/lisp.el (up-list): Mention 'up-list-function' in docstring.
|
| |
|
|
|
|
|
|
|
| |
* etc/NEWS: Announce the new customization option (bug#80215).
* lisp/textmodes/yaml-ts-mode.el (yaml-ts-mode): New customization group.
(yaml-ts-mode-yamllint-options): New customization option.
(yaml-ts-mode--flymake-process): New variable that stores the reference
to the flymake process.
(yaml-ts-mode-flymake): New function that implements support for Flymake.
|
| |
|
|
|
|
|
|
|
|
|
| |
* lisp/progmodes/json-ts-mode.el (json-ts--get-path-at-node)
(json-ts--path-to-jq, json-ts--path-to-python): New functions.
(json-ts-jq-path-at-point): New command for getting JSON path at point.
* test/lisp/progmodes/json-ts-mode-tests.el: New file.
Add tests for the utility command.
* etc/NEWS: Announce new command 'json-ts-jq-path-at-point' (bug#80190).
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
The doc string of 'frame-or-buffer-changed-p' says not to call it
with the nil argument, but term.el did. Since "M-x term" puts
'term--update-term-menu' on the 'menu-bar-update-hook' ahead of
'menu-bar-update-buffers', it caused the latter decide that there
was no change in buffers, because the internal state variable
used by 'frame-or-buffer-changed-p' when called with the nil
argument was reset by 'term--update-term-menu'. Fix that by using
a non-nil state variable.
* lisp/term.el (term--buffers-changed): New variable.
(term--update-term-menu): Use it when calling
'frame-or-buffer-changed-p'. (Bug#80231)
|
| |
|
|
|
|
|
|
|
|
|
| |
Can't send prepareRename requests willy-nilly.
See https://github.com/joaotavora/eglot/issues/1554.
* lisp/progmodes/eglot.el (eglot--rename-interactive): Fix.
(eglot-client-capabilities): Advertise "prepareSupport".
* etc/EGLOT-NEWS: Mention change.
|
| |
|
|
|
|
|
|
|
|
| |
See https://github.com/joaotavora/eglot/issues/1569.
* lisp/progmodes/eglot.el (eglot--managed-mode): Stomp on
imenu-create-index-function conditionally.
(eglot-imenu): Don't check eglot-server-capable here.
* etc/EGLOT-NEWS: Mention change.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Some language servers request file watching for a very large number of
directories (e.g. Python virtualenvs), which can exhaust system
resources and cause slow startup.
https://github.com/joaotavora/eglot/issues/1568
* lisp/progmodes/eglot.el (eglot-max-file-watches): New variable.
(eglot--count-file-watches): New function.
(eglot--watch-globs): Use them to limit watches. Signal jsonrpc-error
when limit is reached.
(eglot-watch-files-outside-project-root): Fix docstring punctuation.
* etc/EGLOT-NEWS: Mention change.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Advertise support for file resource operations in workspace edits.
Implement create, rename, and delete file operations. Rework
confirmation UI to handle mixed operation types.
* lisp/progmodes/eglot.el (eglot--lsp-interface-alist): Add
CreateFile, RenameFile, DeleteFile interfaces.
(eglot-client-capabilities): Advertise resourceOperations and
failureHandling.
(eglot-handle-request<workspace/applyEdit>): Return failureReason.
(eglot--apply-text-edits): Tweak error message.
(eglot--propose-changes-as-diff): Adjust for new prepared format.
Return buffer.
(eglot--apply-workspace-edit): Rework. Handle file operations.
* etc/EGLOT-NEWS: Mention change.
|
| |
|
|
|
|
|
|
|
| |
Now also accepts file operation kinds as keys in the alist form.
* lisp/progmodes/eglot.el (eglot-confirm-server-edits): Rework
default value, docstring and defcustom type.
(eglot--confirm-server-edits): Also check for operation-kind-based
entries.
|
| |
|
|
|
|
|
|
|
|
|
| |
The current 2026 landscape suggests servers (especially gopls
and ocamllsp) take advantage of this, so let's give it to them
by default.
* lisp/progmodes/eglot.el (eglot-advertise-cancellation):
Default to t.
* etc/EGLOT-NEWS: Mention change.
|
| |
|
|
|
|
|
| |
If the user simply C-g's signal a 'jsonrpc-error' with code 32000 to
mean "no error", provide an LSP :failureReason and keep server chill.
* lisp/progmodes/eglot.el (eglot-handle-request<workspace/applyEdit>>):
|
| |
|
|
|
|
|
|
| |
Else, if the server asks us a question, the user has just 10
seconds to ponder, which is a bit silly.
* lisp/progmodes/eglot.el (eglot-execute): Pass timeout=nil to
eglot--request.
|
| |
|
|
|
|
|
|
| |
Previously, the default answer pre-filled in the minibuffer was
obscuring the other possible answers.
* lisp/progmodes/eglot.el
(eglot-handle-request<window/showMessageRequest>): Rework.
|
| |
|
|
|
| |
* lisp/progmodes/eglot.el (eglot--request): Pass CANCEL-ON-QUIT
to jsonrpc-request.
|
| |
|
|
|
|
|
|
|
|
| |
It was completely broken, with a cancel being set for every sent (and
probably already received) async request, and no actual discarding
of the response of a cancelled request.
* lisp/progmodes/eglot.el (eglot--async-request): Fix cancellation
of async requests.
(eglot--semtok-request): Don't need 'buf' &aux anymore.
|
| |
|
|
|
| |
* lisp/progmodes/eglot.el (eglot--request): Shoosh code=0 errors.
(eglot-mode-line-error): Check for code=0.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Previously, 'quit' could cause remote endpoints to never get a
reply and thus sometimes hang. Ensure we always reply. Also,
give the application a chance to signal jsonrpc-error with the
served code=32000, meaning "no error".
* doc/lispref/text.texi (JSONRPC Overview): Rework section on
request dispatchers.
* lisp/jsonrpc.el (jsonrpc-connection-receive): Rework.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This allows clients such as Eglot to act on the user
C-g's/quits out of a blocking jsonrpc-request call. It also
fixes the TIMEOUT=nil passed to jsonrpc-request. An infinite
timeout in that case (for a long-running request, for example)
and it was not being transmitted to the lower
jsonrpc-async-request.
* lisp/jsonrpc.el (jsonrpc-request): Add CANCEL-ON-QUIT. Rework
docstring.
|
| |
|
|
|
|
|
|
|
| |
* lisp/window.el (quit-restore-window): Try to restore the
previously selected window only if WINDOW is either the selected
window or BURY-OR-KILL is neither 'burying' nor 'killing'.
Otherwise, this might deliberately change the selected window,
for example, when 'kill-buffer-quit-windows' is non-nil and WINDOW
shows the buffer to kill.
|
| |
|
|
|
|
|
|
| |
Using 'user-error' in 'hs-minor-mode', prevents the major-mode
from initializing correctly when hideshow is not supported in
that mode, using 'message' instead fixes this.
* lisp/progmodes/hideshow.el (hs-minor-mode): Tweak.
|
| |
|
|
|
|
|
|
| |
In async mode, the workaround for the old Terminal.app collides
with the binding we install for the primary DA. Just drop it.
* lisp/term/xterm.el (xterm--init): Remove workaround for very old
macOS `Terminal.app`.
|
| |
|
|
| |
(split-tab): Alias for 'tab-bar-split-tab'.
|
| | |
|
| |
|
|
|
| |
* lisp/net/tramp-message.el (tramp-debug-message):
Change selection for `trace-function-background'.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This is in order to apply `browse-url-transform-alist'.
* lisp/net/browse-url.el (browse-url-with-browser-kind)
(browse-url-button-open, browse-url-button-open-url):
* lisp/net/shr.el (shr-browse-url):
* lisp/net/eww.el (eww-browse-with-external-browser):
* lisp/gnus/gnus-sum.el (gnus-summary-browse-url):
* lisp/emacs-lisp/package.el (package-browse-url): Let-bind
`browse-url-browser-function' and call `browse-url'.
|
| |
|
|
|
| |
* lisp/window-x.el (window--get-split-combination): New function.
(split-frame): Call it.
|
| |
|
|
|
|
| |
* lisp/simple.el (goto-line, goto-line-relative): Add new arg 'interactive'.
Remove 'declare' with 'interactive-only'. Don't push the mark when called
non-interactively.
|
| |
|
|
|
| |
* lisp/minibuffer.el (minibuffer--completions-visible):
Return 'window' even when 'completion-reference-buffer' is nil (bug#80064).
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* lisp/net/tramp-adb.el:
* lisp/net/tramp-androidsu.el:
* lisp/net/tramp-integration.el:
* lisp/net/tramp-smb.el: Do not delay
`connection-local-set-profiles' until after loading `shell'.
* lisp/net/tramp-integration.el: Add the local profile for all
hosts listed in `tramp-local-host-names'.
* lisp/net/tramp.el (tramp-local-host-names): New defvar.
(tramp-local-host-regexp): Use it.
* test/lisp/net/tramp-tests.el (tramp-test03-file-name-defaults):
Adapt test.
|
| |
|
|
|
|
|
| |
* lisp/emacs-lisp/package.el (package-find-news-file): Abort
early if the package is built-in.
(describe-package-1): Do not invoke 'package-find-news-file' if
missing a package descriptor.
|
| |
|
|
|
|
|
| |
* lisp/emacs-lisp/package.el (describe-package-1): Pass the
package descriptor instead of a symbol to 'package-find-news-file'.
(Bug#80220)
|
| |
|
|
|
|
| |
* lisp/emacs-lisp/package.el (package-review-diff-command): Use
'shell-quote-argument' to quote arguments instead of assuming a
POSIX shell.
|
| |
|
|
|
|
| |
* lisp/emacs-lisp/package.el (package-review-policy): Move tags
to the cons-cell level, so that the labels are displayed in the
menu when inserting a new item.
|
| |
|
|
|
| |
* lisp/progmodes/verilog-mode.el (verilog-auto-inst-port): Fix
parameter replacements in AUTOINST (#1903).
|
| |
|
|
|
| |
* lisp/man.el (Man-getpage-in-background): Fix message in
synchronous case.
|
| |
|
|
|
| |
* lisp/man.el (Man-shell-file-name): Fix for MS Windows.
(Bug#80212)
|
| |
|
|
|
|
|
| |
* lisp/emacs-lisp/package.el (package-review)
(describe-package-1): Use new function.
(package-find-news-file): Add new function that also checks for
the "NEWS-elpa" file name.
|
| |
|
|
|
| |
* lisp/emacs-lisp/package.el (package-delete): Add autoload
cookie. (Bug#80178)
|
| |
|
|
|
| |
* lisp/emacs-lisp/package.el (package-browse-url): Add autoload
cookie. (Bug#80178)
|
| |
|
|
|
|
| |
* lisp/emacs-lisp/package.el (package-browse-url)
(package-report-bug): Do not restrict these commands to
'package-menu-mode'. (Bug#80178)
|
| |
|
|
|
|
|
|
|
| |
These were in the wrong order anyway, so they never had any
effect.
* lisp/net/rcirc.el (rcirc-set-decode-coding-system)
(rcirc-set-encode-coding-system): Remove obsoletion aliases.
(Bug#80145)
|