Problem:
has('gui_running') is still common in the wild and our answer has
changed over time, causing frustration.
95a6ccbe9f
Solution:
Use stdin_tty/stdout_tty to decide if a UI is (not) a GUI.
Problem: Vim9: it is not possible to extend a dictionary with different
item types.
Solution: Add extendnew(). (closesvim/vim#7666)
b0e6b51364
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: Code and help for indexof() is not ideal.
Solution: Refactor the code, improve the help. (Yegappan Lakshmanan,
closesvim/vim#10908)
3fbf6cd355
Skip CHECK_LIST_MATERIALIZE and set_vim_var_type().
Use tv_list_uidx() instead of lv_idx.
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Problem: Finding value in list may require a for loop.
Solution: Add indexof(). (Yegappan Lakshmanan, closesvim/vim#10903)
b218655d5a
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Problem: Cannot cancel "gr" with Esc.
Solution: Make "gr<Esc>" do nothing. (closesvim/vim#12064)
4f026ea9f1
N/A patches for version.c:
vim-patch:9.0.1347: "gr CTRL-O" stays in Insert mode
Problem: "gr CTRL-O" stays in Insert mode. (Pierre Ganty)
Solution: Do not set restart_edit when "cmdchar" is 'v'. (closesvim/vim#12045)
2824d1ee32
vim-patch:9.0.1349: "gr" with a count fails
Problem: "gr" with a count fails.
Solution: Break out of the loop only after using the count.
3ddb1182b7
Neovim expects character encoding to be UTF-8, and deviation from this
causes bugs such as lua files not being recognized for non-ascii paths.
This changes the behavior of fopen, which defaults to using the
currently active codepage.
Closes: https://github.com/neovim/neovim/issues/18122
https://github.com/neovim/neovim/pull/22398 broke the job because there
is no `build/bin/nvim`
This keeps the preference for `build/bin/nvim` but adds back `nvim` as
fallback if it doesn't exist.
Problem: flattennew() makes a deep copy unnecessarily.
Solution: Use a shallow copy. (issue vim/vim#10012)
c6c1ec4da5
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: flatten() does not use maxdepth correctly.
Solution: Use a recursive implementation. (closesvim/vim#10020)
acf7d73a7f
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: Vim9: flatten() always changes the list type.
Solution: Disallow using flatten() and add flattennew().
3b69006973
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: Various comment and indent mistakes, returning wrong zero.
Solution: Fix the mistakes. Return NULL instead of FAIL.
54969f4ef5
N/A patches for version.c:
vim-patch:8.2.3781: the option window script is outdated
Problem: The option window script is outdated.
Solution: Add several changes.
a416861c64
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem:
Treesitter injections are slow because all injected trees are invalidated on every change.
Solution:
Implement smarter invalidation to avoid reparsing injected regions.
- In on_bytes, try and update self._regions as best we can. This PR just offsets any regions after the change.
- Add valid flags for each region in self._regions.
- Call on_bytes recursively for all children.
- We still need to run the query every time for the top level tree. I don't know how to avoid this. However, if the new injection ranges don't change, then we re-use the old trees and avoid reparsing children.
This should result in roughly a 2-3x reduction in tree parsing when the comment injections are enabled.