<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rneovim.git/runtime/plugin/osc52.lua, branch master</title>
<subtitle>Neovim fork with Rahm's personal hacks.</subtitle>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/'/>
<entry>
<title>refactor(tty): tty.request() #39489</title>
<updated>2026-04-30T11:26:40+00:00</updated>
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<published>2026-04-30T11:26:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=d9ed4c8566c5d77a1e2a2edfe21259e6f68f62ae'/>
<id>d9ed4c8566c5d77a1e2a2edfe21259e6f68f62ae</id>
<content type='text'>
Problem:
- Various `TermRequest` handlers which all do similar things.
- `tty.query` is specific to `XTGETTCAP DCS`, can't be reused for other kinds of terminal queries.

Solution:
Provide `tty.request()`.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
- Various `TermRequest` handlers which all do similar things.
- `tty.query` is specific to `XTGETTCAP DCS`, can't be reused for other kinds of terminal queries.

Solution:
Provide `tty.request()`.</pre>
</div>
</content>
</entry>
<entry>
<title>refactor: rename termcap.lua -&gt; tty.lua #38437</title>
<updated>2026-03-23T14:14:48+00:00</updated>
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<published>2026-03-23T14:14:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=3a3c6f0907445754a1d26ffc84788bbc88e038c5'/>
<id>3a3c6f0907445754a1d26ffc84788bbc88e038c5</id>
<content type='text'>
Problem:
The `termcap.lua` module is too narrowly named. We may need a place for
tty-related functionality in the future.
https://github.com/neovim/neovim/pull/31399#discussion_r1882598297

Solution:
This isn't a public/documented interface, so just rename it.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
The `termcap.lua` module is too narrowly named. We may need a place for
tty-related functionality in the future.
https://github.com/neovim/neovim/pull/31399#discussion_r1882598297

Solution:
This isn't a public/documented interface, so just rename it.</pre>
</div>
</content>
</entry>
<entry>
<title>docs: use "ev" convention in event-handlers</title>
<updated>2026-03-12T10:12:56+00:00</updated>
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<published>2026-03-11T13:25:12+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=7ea148a1dc1518bc8a6835c0329894a590135937'/>
<id>7ea148a1dc1518bc8a6835c0329894a590135937</id>
<content type='text'>
Problem:
In autocmd examples, using "args" as the event-object name is vague and
may be confused with a user-command.

Solution:
Use "ev" as the conventional event-object name.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
In autocmd examples, using "args" as the event-object name is vague and
may be confused with a user-command.

Solution:
Use "ev" as the conventional event-object name.
</pre>
</div>
</content>
</entry>
<entry>
<title>feat(tui): add nvim_ui_send (#35406)</title>
<updated>2025-08-22T20:05:43+00:00</updated>
<author>
<name>Gregory Anders</name>
<email>greg@gpanders.com</email>
</author>
<published>2025-08-22T20:05:43+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=586b1b2d9bcfdbc2a58a7a9c90e8f90e638173e7'/>
<id>586b1b2d9bcfdbc2a58a7a9c90e8f90e638173e7</id>
<content type='text'>
This function allows the Nvim core to write arbitrary data to a TTY
connected to a UI's stdout.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This function allows the Nvim core to write arbitrary data to a TTY
connected to a UI's stdout.</pre>
</div>
</content>
</entry>
<entry>
<title>feat(tui): use DA1 response to determine OSC 52 support</title>
<updated>2025-07-09T19:03:03+00:00</updated>
<author>
<name>Gregory Anders</name>
<email>greg@gpanders.com</email>
</author>
<published>2025-07-09T17:23:19+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=977e91b424f4cf6b9eacfa21d491d312f585dd6f'/>
<id>977e91b424f4cf6b9eacfa21d491d312f585dd6f</id>
<content type='text'>
Many terminals now include support for OSC 52 in their Primary Device
Attributes (DA1) response. This is preferable to using XTGETTCAP because
DA1 is _much_ more broadly supported.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Many terminals now include support for OSC 52 in their Primary Device
Attributes (DA1) response. This is preferable to using XTGETTCAP because
DA1 is _much_ more broadly supported.
</pre>
</div>
</content>
</entry>
<entry>
<title>fix: update osc52 termfeatures flag on UIEnter/UILeave (#32756)</title>
<updated>2025-03-12T13:11:19+00:00</updated>
<author>
<name>Gregory Anders</name>
<email>greg@gpanders.com</email>
</author>
<published>2025-03-12T13:11:19+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=04181070746a51d2f11ce5fc96d2696ea267ff70'/>
<id>04181070746a51d2f11ce5fc96d2696ea267ff70</id>
<content type='text'>
Problem:

Nvim tries to use OSC 52 even when no TUIs are attached.

Solution:

On each UIEnter/UILeave event, check that there is a TUI client connected to Nvim's stdout.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:

Nvim tries to use OSC 52 even when no TUIs are attached.

Solution:

On each UIEnter/UILeave event, check that there is a TUI client connected to Nvim's stdout.</pre>
</div>
</content>
</entry>
<entry>
<title>feat(clipboard)!: use OSC 52 as fallback clipboard provider (#31730)</title>
<updated>2024-12-31T15:59:03+00:00</updated>
<author>
<name>Gregory Anders</name>
<email>greg@gpanders.com</email>
</author>
<published>2024-12-31T15:59:03+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=a389dc2f950ef89492dfc2d8334e421d2252cddf'/>
<id>a389dc2f950ef89492dfc2d8334e421d2252cddf</id>
<content type='text'>
We currently enable the OSC 52 clipboard provider by setting g:clipboard
when a list of conditions are met, one of which is that $SSH_TTY must be
set. We include this condition because often OSC 52 is not the best
clipboard provider, so if there are "local" providers available Nvim
should prefer those over OSC 52.

However, if no other providers are available, Nvim should use OSC 52
even when $SSH_TTY is not set. When a user is in an SSH session then the
checks for the other clipboard providers will still (typically) fail, so
OSC 52 continues to be enabled by default in SSH sessions.

This is marked as a breaking change because there are some cases where
OSC 52 wasn't enabled before and is now (or vice versa).</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We currently enable the OSC 52 clipboard provider by setting g:clipboard
when a list of conditions are met, one of which is that $SSH_TTY must be
set. We include this condition because often OSC 52 is not the best
clipboard provider, so if there are "local" providers available Nvim
should prefer those over OSC 52.

However, if no other providers are available, Nvim should use OSC 52
even when $SSH_TTY is not set. When a user is in an SSH session then the
checks for the other clipboard providers will still (typically) fail, so
OSC 52 continues to be enabled by default in SSH sessions.

This is marked as a breaking change because there are some cases where
OSC 52 wasn't enabled before and is now (or vice versa).</pre>
</div>
</content>
</entry>
<entry>
<title>fix(osc52): do not use 'vim.iter' (#27218)</title>
<updated>2024-01-26T18:06:13+00:00</updated>
<author>
<name>Evgeni Chasnovski</name>
<email>evgeni.chasnovski@gmail.com</email>
</author>
<published>2024-01-26T18:06:13+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=a9df0c5ce6caa5e623c3140a80baf4b3c1ce07db'/>
<id>a9df0c5ce6caa5e623c3140a80baf4b3c1ce07db</id>
<content type='text'>
Problem: Using 'vim.iter' loads it during startup.

Solution: Do not use 'vim.iter'.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem: Using 'vim.iter' loads it during startup.

Solution: Do not use 'vim.iter'.</pre>
</div>
</content>
</entry>
<entry>
<title>feat(defaults): enable 'termguicolors' by default when supported by terminal</title>
<updated>2023-12-06T15:57:09+00:00</updated>
<author>
<name>Gregory Anders</name>
<email>greg@gpanders.com</email>
</author>
<published>2023-12-05T18:01:32+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=2613ba5000d4c0d9b15e2eec2d2b97615575925e'/>
<id>2613ba5000d4c0d9b15e2eec2d2b97615575925e</id>
<content type='text'>
Enable 'termguicolors' automatically when Nvim can detect that truecolor
is supported by the host terminal.

If $COLORTERM is set to "truecolor" or "24bit", or the terminal's
terminfo entry contains capabilities for Tc, RGB, or setrgbf and
setrgbb, then we assume that the terminal supports truecolor. Otherwise,
the terminal is queried (using both XTGETTCAP and SGR + DECRQSS). If the
terminal's response to these queries (if any) indicates that it supports
truecolor, then 'termguicolors' is enabled.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Enable 'termguicolors' automatically when Nvim can detect that truecolor
is supported by the host terminal.

If $COLORTERM is set to "truecolor" or "24bit", or the terminal's
terminfo entry contains capabilities for Tc, RGB, or setrgbf and
setrgbb, then we assume that the terminal supports truecolor. Otherwise,
the terminal is queried (using both XTGETTCAP and SGR + DECRQSS). If the
terminal's response to these queries (if any) indicates that it supports
truecolor, then 'termguicolors' is enabled.
</pre>
</div>
</content>
</entry>
<entry>
<title>fix(osc52): enable OSC 52 by default in tmux sessions (#26072)</title>
<updated>2023-11-16T19:56:05+00:00</updated>
<author>
<name>Gregory Anders</name>
<email>8965202+gpanders@users.noreply.github.com</email>
</author>
<published>2023-11-16T19:56:05+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=5d75d9aef2b69036328501820df770b29d57a308'/>
<id>5d75d9aef2b69036328501820df770b29d57a308</id>
<content type='text'>
tmux has a set-clipboard option which, when set to 'on', allows
applications to set the system clipboard using the usual OSC 52 escape
sequence.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
tmux has a set-clipboard option which, when set to 'on', allows
applications to set the system clipboard using the usual OSC 52 escape
sequence.</pre>
</div>
</content>
</entry>
</feed>
