<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rneovim.git/src/nvim/tui, branch fix_semantic_tokens</title>
<subtitle>Neovim fork with Rahm's personal hacks.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/'/>
<entry>
<title>fix(tui): do not invoke loop recursively for pad()</title>
<updated>2023-01-06T10:01:02+00:00</updated>
<author>
<name>bfredl</name>
<email>bjorn.linse@gmail.com</email>
</author>
<published>2023-01-06T09:40:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=b303ab9a7d5f695e53c3f261b000e0e748ed8654'/>
<id>b303ab9a7d5f695e53c3f261b000e0e748ed8654</id>
<content type='text'>
fixes #21610
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
fixes #21610
</pre>
</div>
</content>
</entry>
<entry>
<title>refactor(ui): devirtualize the ui layer</title>
<updated>2023-01-05T08:48:26+00:00</updated>
<author>
<name>bfredl</name>
<email>bjorn.linse@gmail.com</email>
</author>
<published>2022-12-30T21:17:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=47ba78f89a1f0bba8168b4408bc55a3024d5ab97'/>
<id>47ba78f89a1f0bba8168b4408bc55a3024d5ab97</id>
<content type='text'>
- The defined interface for the UI is only the RPC protocol. The original
  UI interface as an array of function pointers fill no function.
- On the server, all the UI:s are all RPC channels.
  - ui.c is only used on the server.
  - The compositor is a preprocessing step for single-grid UI:s
- on the client, ui_client and tui talk directly to each other
  - we still do module separation, as ui_client.c could form the basis
    of a libnvim client module later.

Items for later PR:s
- vim.ui_attach is still an unhappy child, reconsider based on plugin experience.
- the flags in ui_events.in.h are still a mess. Can be simplified now.
- UX for remote attachment needs more work.
- startup for client can be simplified further (think of the millisecs we can save)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- The defined interface for the UI is only the RPC protocol. The original
  UI interface as an array of function pointers fill no function.
- On the server, all the UI:s are all RPC channels.
  - ui.c is only used on the server.
  - The compositor is a preprocessing step for single-grid UI:s
- on the client, ui_client and tui talk directly to each other
  - we still do module separation, as ui_client.c could form the basis
    of a libnvim client module later.

Items for later PR:s
- vim.ui_attach is still an unhappy child, reconsider based on plugin experience.
- the flags in ui_events.in.h are still a mess. Can be simplified now.
- UX for remote attachment needs more work.
- startup for client can be simplified further (think of the millisecs we can save)
</pre>
</div>
</content>
</entry>
<entry>
<title>fix(tui): make a copy of data-&gt;params before unibi_format() (#21643)</title>
<updated>2023-01-04T16:25:25+00:00</updated>
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<published>2023-01-04T16:25:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=89232b8b4890824f93121483626af582f13758fe'/>
<id>89232b8b4890824f93121483626af582f13758fe</id>
<content type='text'>
Problem:    When unibi_format() modifies params and data-&gt;buf overflows,
            unibi_format() is called again, causing the params to be
            modified twice. This can happen for escapes sequences that
            use the %i terminfo format specifier (e.g. cursor_address),
            which makes unibi_format() increase the param by 1.
Solution:   Make a copy of data-&gt;params before calling unibi_format().</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:    When unibi_format() modifies params and data-&gt;buf overflows,
            unibi_format() is called again, causing the params to be
            modified twice. This can happen for escapes sequences that
            use the %i terminfo format specifier (e.g. cursor_address),
            which makes unibi_format() increase the param by 1.
Solution:   Make a copy of data-&gt;params before calling unibi_format().</pre>
</div>
</content>
</entry>
<entry>
<title>refactor(api): do not allocate temporaries for internal events</title>
<updated>2023-01-03T16:31:54+00:00</updated>
<author>
<name>bfredl</name>
<email>bjorn.linse@gmail.com</email>
</author>
<published>2023-01-03T14:24:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=b2295ac4ec80e141628cea33ebee81c96e168989'/>
<id>b2295ac4ec80e141628cea33ebee81c96e168989</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>fix(tui): do not set ui_client_termname if it is already set (#21607)</title>
<updated>2023-01-01T15:18:19+00:00</updated>
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<published>2023-01-01T15:18:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=c590641febf4d03e89c46f8e7ef4c3fb2a455520'/>
<id>c590641febf4d03e89c46f8e7ef4c3fb2a455520</id>
<content type='text'>
It is fine to initialize ui_client_termname to NULL as it is only used
after tui_start().</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It is fine to initialize ui_client_termname to NULL as it is only used
after tui_start().</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #18375 from bfredl/tui_rework</title>
<updated>2022-12-31T13:23:24+00:00</updated>
<author>
<name>bfredl</name>
<email>bjorn.linse@gmail.com</email>
</author>
<published>2022-12-31T13:23:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=cce736218f465511194465410e1ba23b5530e46f'/>
<id>cce736218f465511194465410e1ba23b5530e46f</id>
<content type='text'>
feat(ui): refactor TUI from thread to separate process</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
feat(ui): refactor TUI from thread to separate process</pre>
</div>
</content>
</entry>
<entry>
<title>fix(tui): more work in the TUI</title>
<updated>2022-12-31T12:25:26+00:00</updated>
<author>
<name>bfredl</name>
<email>bjorn.linse@gmail.com</email>
</author>
<published>2022-05-02T19:10:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=43e8ec92de9e0850e7d202cb7ff9051bc408447e'/>
<id>43e8ec92de9e0850e7d202cb7ff9051bc408447e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>feat(tui): run TUI as external process</title>
<updated>2022-12-31T09:43:28+00:00</updated>
<author>
<name>hlpr98</name>
<email>hlpr98@gmail.com</email>
</author>
<published>2019-05-27T16:34:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=24488169564c39a506c235bf6a33b8e23a8cb528'/>
<id>24488169564c39a506c235bf6a33b8e23a8cb528</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>refactor(sleep): simplify rube goldberg implementation of :sleep</title>
<updated>2022-12-30T18:56:11+00:00</updated>
<author>
<name>bfredl</name>
<email>bjorn.linse@gmail.com</email>
</author>
<published>2022-12-30T18:49:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=09370eae7756b07bb8f1f116b690b22aec7ec563'/>
<id>09370eae7756b07bb8f1f116b690b22aec7ec563</id>
<content type='text'>
As neovim does have event handling, we are checking for CTRL-C
all the time, not once per second.

Also, do_sleep() reimplements the same loop as
LOOP_PROCESS_EVENTS_UNTIL() already contains internally. Fix the latter
to use the right integer type, so we do not need the extra indirection.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
As neovim does have event handling, we are checking for CTRL-C
all the time, not once per second.

Also, do_sleep() reimplements the same loop as
LOOP_PROCESS_EVENTS_UNTIL() already contains internally. Fix the latter
to use the right integer type, so we do not need the extra indirection.
</pre>
</div>
</content>
</entry>
<entry>
<title>refactor(tui): use nvim_echo() for verbose terminfo</title>
<updated>2022-12-20T20:43:42+00:00</updated>
<author>
<name>bfredl</name>
<email>bjorn.linse@gmail.com</email>
</author>
<published>2022-12-16T12:50:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=b42d8a43b9f1b3316e73108ebefc4850b1a2c65b'/>
<id>b42d8a43b9f1b3316e73108ebefc4850b1a2c65b</id>
<content type='text'>
This is needed for #18375 for the obvious reasons.
note: verbose_terminfo_event is only temporarily needed
until the full TUI process refactor is merged.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is needed for #18375 for the obvious reasons.
note: verbose_terminfo_event is only temporarily needed
until the full TUI process refactor is merged.
</pre>
</div>
</content>
</entry>
</feed>
