<feed xmlns='http://www.w3.org/2005/Atom'>
<title>emacs/etc, branch scratch/string-common-prefix</title>
<subtitle>Emacs is the extensible, customizable, self-documenting real-time display editor. 
</subtitle>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/'/>
<entry>
<title>Add function `string-common-prefix'</title>
<updated>2026-01-23T13:03:31+00:00</updated>
<author>
<name>Phil Sainty</name>
</author>
<published>2025-06-01T02:59:38+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=0f1963b2cc0ebda15b3581eec9bfef5215e0c6b6'/>
<id>0f1963b2cc0ebda15b3581eec9bfef5215e0c6b6</id>
<content type='text'>
* lisp/subr.el: (string-common-prefix): New function.

* etc/NEWS:
* doc/lispref/strings.texi:
* doc/lispref/minibuf.texi:
* lisp/emacs-lisp/shortdoc.el:
Documentation.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* lisp/subr.el: (string-common-prefix): New function.

* etc/NEWS:
* doc/lispref/strings.texi:
* doc/lispref/minibuf.texi:
* lisp/emacs-lisp/shortdoc.el:
Documentation.
</pre>
</div>
</content>
</entry>
<entry>
<title>Eglot: simplify Imenu setup again</title>
<updated>2026-01-21T23:09:19+00:00</updated>
<author>
<name>João Távora</name>
</author>
<published>2026-01-21T23:01:00+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=f2250ba24400c71040fbfb6e9c2f90b1f87dbb59'/>
<id>f2250ba24400c71040fbfb6e9c2f90b1f87dbb59</id>
<content type='text'>
See https://github.com/joaotavora/eglot/issues/1569.

* lisp/progmodes/eglot.el (eglot--managed-mode): Tweak.

* etc/EGLOT-NEWS: Tweak.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
See https://github.com/joaotavora/eglot/issues/1569.

* lisp/progmodes/eglot.el (eglot--managed-mode): Tweak.

* etc/EGLOT-NEWS: Tweak.
</pre>
</div>
</content>
</entry>
<entry>
<title>Flymake support for yaml-ts-mode.</title>
<updated>2026-01-21T17:41:40+00:00</updated>
<author>
<name>Vincenzo Pupillo</name>
</author>
<published>2026-01-15T20:16:52+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=15d3cc3f65e8ea3bc1e1a4c766f439bcad012150'/>
<id>15d3cc3f65e8ea3bc1e1a4c766f439bcad012150</id>
<content type='text'>
* 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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 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.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add JSON path utility command to json-ts-mode</title>
<updated>2026-01-21T17:27:03+00:00</updated>
<author>
<name>Binbin Ye</name>
</author>
<published>2026-01-13T13:40:24+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=8ea6f6da7739adb054871da80a073672f6c706d7'/>
<id>8ea6f6da7739adb054871da80a073672f6c706d7</id>
<content type='text'>
* 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).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 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).
</pre>
</div>
</content>
</entry>
<entry>
<title>Eglot: fix textDocument/prepareRename support</title>
<updated>2026-01-21T12:26:24+00:00</updated>
<author>
<name>João Távora</name>
</author>
<published>2026-01-21T11:57:38+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=9d8e1af6f41bf11704c00cc5f6fdbc5eb52ed2d3'/>
<id>9d8e1af6f41bf11704c00cc5f6fdbc5eb52ed2d3</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>Eglot: set imenu-create-index-function without advice</title>
<updated>2026-01-21T12:26:24+00:00</updated>
<author>
<name>João Távora</name>
</author>
<published>2026-01-19T23:57:59+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=f643ad53c766764270752b782f1d4ce47305dac3'/>
<id>f643ad53c766764270752b782f1d4ce47305dac3</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>Eglot: limit the number of file watches</title>
<updated>2026-01-21T12:26:24+00:00</updated>
<author>
<name>João Távora</name>
</author>
<published>2026-01-16T00:52:49+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=d3548aea9683736ed17ff49f144df6a8a7a8c56f'/>
<id>d3548aea9683736ed17ff49f144df6a8a7a8c56f</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>Eglot: support more complex workspace edits (create/rename/delete)</title>
<updated>2026-01-21T12:26:24+00:00</updated>
<author>
<name>João Távora</name>
</author>
<published>2026-01-15T10:38:53+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=a3ea65a984ff8b27b3698045a682d51ddcf20fbc'/>
<id>a3ea65a984ff8b27b3698045a682d51ddcf20fbc</id>
<content type='text'>
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&lt;workspace/applyEdit&gt;): 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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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&lt;workspace/applyEdit&gt;): 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.
</pre>
</div>
</content>
</entry>
<entry>
<title>Eglot: default eglot-advertise-cancellation to t</title>
<updated>2026-01-21T12:26:24+00:00</updated>
<author>
<name>João Távora</name>
</author>
<published>2026-01-14T11:09:47+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=b40e89e52355c35046fff4be227ac8b9791bbdf1'/>
<id>b40e89e52355c35046fff4be227ac8b9791bbdf1</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>(garbage-collect-heapsize): New function</title>
<updated>2026-01-20T21:09:22+00:00</updated>
<author>
<name>Stefan Monnier</name>
</author>
<published>2026-01-13T18:41:55+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=4150c2e22e93ca6bdf682b0067d430e412db3688'/>
<id>4150c2e22e93ca6bdf682b0067d430e412db3688</id>
<content type='text'>
The info returned from `garbage-collect` is really handy to
track the evolution of the heap size, but sadly it's available only
at the cost of running a full GC, which has two big downsides:
it's slow, it affects what we're measuring, and it can't be used
in `post-gc-hook`.
So, this patch makes it available without running the GC.

* src/alloc.c (Fgarbage_collect_heapsize): New function, extracted from
`Fgarbage_collect`.
(Fgarbage_collect): Use it.
(syms_of_alloc): defsubr it.

* doc/lispref/internals.texi (Garbage Collection): Extract
documentation for it from that of `garbage-collect`.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The info returned from `garbage-collect` is really handy to
track the evolution of the heap size, but sadly it's available only
at the cost of running a full GC, which has two big downsides:
it's slow, it affects what we're measuring, and it can't be used
in `post-gc-hook`.
So, this patch makes it available without running the GC.

* src/alloc.c (Fgarbage_collect_heapsize): New function, extracted from
`Fgarbage_collect`.
(Fgarbage_collect): Use it.
(syms_of_alloc): defsubr it.

* doc/lispref/internals.texi (Garbage Collection): Extract
documentation for it from that of `garbage-collect`.
</pre>
</div>
</content>
</entry>
</feed>
