Justin M. Keyes
3169fc54a1
refactor(treesitter): rename x_position => x_pos
...
"pos" has a long precedent as "position" in vim, and there is no reason
to use a verbose name here.
2022-09-25 13:46:15 +02:00
Louis Sven Goulet
2a3cb0893b
feat: ":write!" skips "file changed" warning #18665
...
Problem:
Cannot opt-out of "WARNING: The file has been changed since reading
it!!!", even with ":write!".
Solution:
Change ":write!" to skip the warning.
closes #7270
2022-09-24 18:57:10 -07:00
zeertzjq
8317b9199e
fix(input): use click number of last click for mouse drag ( #20300 )
2022-09-24 22:28:41 +08:00
zeertzjq
291a649632
fix(mapset): remove existing abbreviation of same lhs ( #20320 )
2022-09-24 21:07:18 +08:00
shaunsingh
caf5738fa9
fix(lsp): create missing directory before creating file ( #19835 )
...
Co-authored-by: Mathias Fussenegger <f.mathias@zignar.net>
2022-09-24 12:46:21 +02:00
zeertzjq
7a70e9587c
test(tabpage_spec): actually test for nvim_win_hide
2022-09-23 10:17:44 +08:00
zeertzjq
d7052e8e1f
test: add tests for #13549 #20285 #20290
2022-09-23 07:38:22 +08:00
Justin M. Keyes
a867aa45f7
Merge #11967 generate :help HTML with treesitter
2022-09-22 10:03:38 -04:00
Justin M. Keyes
09b64d75bd
feat(docs): gen_help_html.lua
...
Problem:
The :help docs HTML generated is driven by an old awk script
`runtime/doc/makehtml.awk` that is hard to maintain (ad hoc parser and
no one has touched it in decades) and has bugs like:
- https://github.com/neovim/neovim.github.io/issues/96
- https://github.com/neovim/neovim.github.io/issues/97
Solution:
Use Lua + treesitter (https://github.com/vigoux/tree-sitter-vimdoc ) to
generate :help docs HTML. Also validates tag links.
fix https://github.com/neovim/neovim.github.io/issues/96
fix https://github.com/neovim/neovim.github.io/issues/97
TODO:
- delete doc_html build task
- delete runtime/doc/Makefile
- delete makehtml.awk
- delete maketags.awk
OUTPUT:
$ nvim -V1 -es --clean +"lua require('scripts.gen_help_html')"
output dir: /…/neovim.github.io/_site/doc/
generated (207 errors): api.txt => api.html
generated (122 errors): arabic.txt => arabic.html
generated (285 errors): autocmd.txt => autocmd.html
generated (641 errors): builtin.txt => builtin.html
generated (623 errors): change.txt => change.html
generated (65 errors): channel.txt => channel.html
generated (353 errors): cmdline.txt => cmdline.html
generated (3 errors): debug.txt => debug.html
generated (28 errors): deprecated.txt => deprecated.html
generated (193 errors): dev_style.txt => dev_style.html
generated (460 errors): develop.txt => develop.html
generated (19 errors): diagnostic.txt => diagnostic.html
generated (57 errors): diff.txt => diff.html
generated (818 errors): digraph.txt => digraph.html
generated (330 errors): editing.txt => editing.html
generated (368 errors): eval.txt => eval.html
generated (184 errors): fold.txt => fold.html
generated (61 errors): ft_ada.txt => ft_ada.html
generated (0 errors): ft_ps1.txt => ft_ps1.html
generated (20 errors): ft_raku.txt => ft_raku.html
generated (5 errors): ft_rust.txt => ft_rust.html
generated (41 errors): ft_sql.txt => ft_sql.html
generated (110 errors): gui.txt => gui.html
generated (79 errors): hebrew.txt => hebrew.html
generated (17 errors): help.txt => index.html
generated (104 errors): helphelp.txt => helphelp.html
generated (0 errors): if_cscop.txt => if_cscop.html
generated (23 errors): if_perl.txt => if_perl.html
generated (16 errors): if_pyth.txt => if_pyth.html
generated (9 errors): if_ruby.txt => if_ruby.html
generated (216 errors): indent.txt => indent.html
generated (634 errors): index.txt => vimindex.html
generated (320 errors): insert.txt => insert.html
generated (265 errors): intro.txt => intro.html
generated (9 errors): job_control.txt => job_control.html
generated (0 errors): lsp-extension.txt => lsp-extension.html
generated (214 errors): lsp.txt => lsp.html
generated (311 errors): lua.txt => lua.html
generated (592 errors): luaref.txt => luaref.html
generated (798 errors): luvref.txt => luvref.html
generated (663 errors): map.txt => map.html
generated (228 errors): mbyte.txt => mbyte.html
generated (228 errors): message.txt => message.html
generated (0 errors): mlang.txt => mlang.html
generated (761 errors): motion.txt => motion.html
generated (4 errors): nvim.txt => nvim.html
generated (226 errors): nvim_terminal_emulator.txt => nvim_terminal_emulator.html
generated (988 errors): options.txt => options.html
generated (567 errors): pattern.txt => pattern.html
generated (15 errors): pi_gzip.txt => pi_gzip.html
generated (10 errors): pi_health.txt => pi_health.html
generated (27 errors): pi_msgpack.txt => pi_msgpack.html
generated (2177 errors): pi_netrw.txt => pi_netrw.html
generated (41 errors): pi_paren.txt => pi_paren.html
generated (9 errors): pi_spec.txt => pi_spec.html
generated (218 errors): pi_tar.txt => pi_tar.html
generated (0 errors): pi_tutor.txt => pi_tutor.html
generated (235 errors): pi_zip.txt => pi_zip.html
generated (265 errors): print.txt => print.html
generated (31 errors): provider.txt => provider.html
generated (335 errors): quickfix.txt => quickfix.html
generated (572 errors): quickref.txt => quickref.html
generated (109 errors): recover.txt => recover.html
generated (14 errors): remote.txt => remote.html
generated (14 errors): remote_plugin.txt => remote_plugin.html
generated (351 errors): repeat.txt => repeat.html
generated (23 errors): rileft.txt => rileft.html
generated (12 errors): russian.txt => russian.html
generated (6 errors): scroll.txt => scroll.html
generated (106 errors): sign.txt => sign.html
generated (347 errors): spell.txt => spell.html
generated (784 errors): starting.txt => starting.html
generated (1499 errors): syntax.txt => syntax.html
generated (23 errors): tabpage.txt => tabpage.html
generated (257 errors): tagsrch.txt => tagsrch.html
generated (31 errors): term.txt => term.html
generated (0 errors): testing.txt => testing.html
generated (96 errors): tips.txt => tips.html
generated (57 errors): treesitter.txt => treesitter.html
generated (71 errors): uganda.txt => uganda.html
generated (74 errors): ui.txt => ui.html
generated (87 errors): undo.txt => undo.html
generated (17 errors): userfunc.txt => userfunc.html
generated (1 errors): usr_01.txt => usr_01.html
generated (89 errors): usr_02.txt => usr_02.html
generated (293 errors): usr_03.txt => usr_03.html
generated (46 errors): usr_04.txt => usr_04.html
generated (96 errors): usr_05.txt => usr_05.html
generated (54 errors): usr_06.txt => usr_06.html
generated (20 errors): usr_07.txt => usr_07.html
generated (241 errors): usr_08.txt => usr_08.html
generated (130 errors): usr_09.txt => usr_09.html
generated (50 errors): usr_10.txt => usr_10.html
generated (33 errors): usr_11.txt => usr_11.html
generated (32 errors): usr_12.txt => usr_12.html
generated (22 errors): usr_20.txt => usr_20.html
generated (75 errors): usr_21.txt => usr_21.html
generated (8 errors): usr_22.txt => usr_22.html
generated (3 errors): usr_23.txt => usr_23.html
generated (163 errors): usr_25.txt => usr_25.html
generated (13 errors): usr_26.txt => usr_26.html
generated (84 errors): usr_27.txt => usr_27.html
generated (173 errors): usr_28.txt => usr_28.html
generated (285 errors): usr_29.txt => usr_29.html
generated (280 errors): usr_30.txt => usr_30.html
generated (11 errors): usr_31.txt => usr_31.html
generated (13 errors): usr_32.txt => usr_32.html
generated (156 errors): usr_40.txt => usr_40.html
generated (134 errors): usr_41.txt => usr_41.html
generated (35 errors): usr_42.txt => usr_42.html
generated (19 errors): usr_43.txt => usr_43.html
generated (60 errors): usr_44.txt => usr_44.html
generated (13 errors): usr_45.txt => usr_45.html
generated (1 errors): usr_toc.txt => usr_toc.html
generated (69 errors): various.txt => various.html
generated (68 errors): vi_diff.txt => vi_diff.html
generated (437 errors): vim_diff.txt => vim_diff.html
generated (296 errors): visual.txt => visual.html
generated (181 errors): windows.txt => windows.html
generated 119 html pages
total errors: 23862
invalid tags: 537
2022-09-22 15:36:27 +02:00
Lewis Russell
679f3072f6
Merge pull request #20103 from lewis6991/refactor/vim_opt
2022-09-22 13:59:04 +01:00
zeertzjq
2083c1771a
fix(window): close floats first when closing buffer in other tab ( #20284 )
2022-09-22 20:25:34 +08:00
bfredl
02f8ca59a8
fix(tests): indicate in test logs when nvim exit times out
...
When it happens it wastes 2 seconds which is NOT included in the
normal busted timing info. It is hard to correct this, but we
can at least print a warning when this happens.
2022-09-22 10:38:11 +02:00
bfredl
93b30582db
fix(redraw): make redrawdebug=nodelta handle all the cases
...
Before only win_line lines were considered. this applies nodelta
to all screen elements. Causes some failures, which might indeed
indicate excessive redraws.
2022-09-22 10:38:10 +02:00
bfredl
00cfc1dceb
fix(redraw): avoid unnecessary redraws and glitches with floats+messages
...
fixes #20106
fixes #20229
2022-09-22 10:36:23 +02:00
zeertzjq
71e70d0c99
vim-patch:9.0.0537: the do_set() function is much too long ( #20274 )
...
Problem: The do_set() function is much too long.
Solution: Move setting of a string option to a separate function.
4740394f23
Cherry-pick some tests from Vim patch 8.2.0540.
2022-09-22 09:43:37 +08:00
zeertzjq
ad1f353fe1
vim-patch:9.0.0517: when at the command line :redrawstatus does not work well ( #20266 )
...
Problem: When at the command line :redrawstatus does not work well.
Solution: Only update the statuslines instead of the screen. (closes vim/vim#11180 )
320d910064
2022-09-21 06:47:29 +08:00
ofwinterpassed
ec94014cd1
fix(lsp): out of bounds error in lsp.util.apply_text_edits ( #20137 )
...
Co-authored-by: Jonas Strittmatter <40792180+smjonas@users.noreply.github.com>
2022-09-20 22:14:58 +02:00
zeertzjq
cfdc93e8ac
vim-patch:9.0.0511: unnecessary scrolling for message of only one line ( #20261 )
...
Problem: Unnecessary scrolling for message of only one line.
Solution: Only set msg_scroll when needed. (closes vim/vim#11178 )
bdedd2bcce
2022-09-20 21:58:39 +08:00
zeertzjq
2e4532bea5
vim-patch:9.0.0512: cannot redraw the status lines when editing a command
...
Problem: Cannot redraw the status lines when editing a command.
Solution: Only postpone the redraw when messages have scrolled.
(closes vim/vim#11170 )
c14bfc31d9
2022-09-20 21:01:00 +08:00
zeertzjq
9413f7544b
vim-patch:9.0.0507: cmdline cleared when using :redrawstatus in CmdlineChanged
...
Problem: Command line cleared when using :redrawstatus in CmdlineChanged
autocommand event.
Solution: Postpone the redraw. (closes vim/vim#11162 )
bcd6924245
Cherry-pick Test_redraw_in_autocmd() from Vim patch 8.2.4789.
2022-09-20 21:00:45 +08:00
Mathias Fußenegger
10196f1b46
fix(lsp): support false
result in handlers ( #20252 )
...
Closes https://github.com/neovim/neovim/issues/20111
2022-09-20 09:28:23 +02:00
zeertzjq
7bd4c8e8ee
fix(inccommand): avoid unnecessary redraw when not showing ( #20244 )
2022-09-19 12:37:25 +08:00
zeertzjq
647da34bbd
fix: assert failure when changing 'ut' while waiting for CursorHold ( #20241 )
2022-09-18 22:55:30 +08:00
Christian Clason
67df3347fd
vim-patch:9712ff1288f9 ( #20240 )
...
Update runtime files
9712ff1288
2022-09-18 15:20:20 +02:00
bfredl
e63538f21c
Merge pull request #20198 from zeertzjq/cursorhold
...
fix(events): make CursorHold behave as documented
2022-09-18 11:37:22 +02:00
dundargoc
6d557e324f
vim-patch:8.1.0941: macros for MS-Windows are inconsistent ( #20215 )
...
Problem: Macros for MS-Windows are inconsistent, using "32", "3264 and
others.
Solution: Use MSWIN for all MS-Windows builds. Use FEAT_GUI_MSWIN for the
GUI build. (Hirohito Higashi, closes vim/vim#3932 )
4f97475d32
2022-09-18 09:17:15 +08:00
zeertzjq
644a3f48b1
fix(events): make CursorHold behave as documented
2022-09-17 21:48:44 +08:00
zeertzjq
3c3f3e7353
test(remote_spec): reduce flakiness in waiting for client exit ( #20230 )
...
It is less likely for client to exit between jobstart() and jobwait() if
they are invoked in the same RPC request instead of two separate ones.
2022-09-17 16:17:51 +08:00
zeertzjq
6b2f0f43b5
fix(eval)!: make Lua Funcref work as method and in substitute() ( #20217 )
...
BREAKING CHANGE: When using a Funcref converted from a Lua function as
a method in Vim script, the result of the base expression is now passed
as the first argument instead of being ignored.
vim-patch:8.2.5117: crash when calling a Lua callback from a :def function
Problem: Crash when calling a Lua callback from a :def function. (Bohdan
Makohin)
Solution: Handle FC_CFUNC in call_user_func_check(). (closes vim/vim#10587 )
7d149f899d
2022-09-16 23:09:26 +08:00
notomo
754822a066
fix(lua): free vim.ui_attach callback before lua close ( #20205 )
2022-09-16 11:06:37 +02:00
bfredl
b616458af9
fix(messages): do not crash on cmdheight=0 and g< redisplay
...
fixes #20153
2022-09-16 10:33:12 +02:00
bfredl
0b7a3c173c
Merge pull request #20188 from bfredl/zerocmdline
...
feat(ui): use msg_grid based implementation for cmdheight=0
2022-09-16 10:07:50 +02:00
Christian Clason
9ec4b20be6
fix(treesitter): return full metadata for get_captures_at_position ( #20203 )
...
fix(treesitter): get_captures_at_position returns metadata
Return the full `metadata` table for the capture instead of just the
priority.
Further cleanup of related docs.
2022-09-16 09:05:05 +02:00
bfredl
708bd68651
feat(ui): use msg_grid based implementation for cmdheight=0
2022-09-15 12:13:43 +02:00
bfredl
1e5daed676
Merge pull request #20164 from bfredl/luanull
...
fix(lua): make vim.str_utfindex and vim.str_byteindex handle NUL bytes
2022-09-13 23:17:11 +02:00
bfredl
25e4af439f
fix(lua): make vim.str_utfindex and vim.str_byteindex handle NUL bytes
...
fixes #16290
2022-09-13 22:50:22 +02:00
Mathias Fußenegger
a8c9e721d9
feat(fs): extend fs.find to accept predicate ( #20193 )
...
Makes it possible to use `vim.fs.find` to find files where only a
substring is known.
This is useful for `vim.lsp.start` to get the `root_dir` for languages
where the project-file is only known by its extension, not by the full
name.
For example in .NET projects there is usually a `<projectname>.csproj`
file in the project root.
Example:
vim.fs.find(function(x) return vim.endswith(x, '.csproj') end, { upward = true })
2022-09-13 14:16:20 -06:00
Gregory Anders
1970d2ac43
feat(diagnostic): pass diagnostics as data to DiagnosticChanged autocmd ( #20173 )
2022-09-13 08:33:39 -06:00
zeertzjq
f19e91acd8
vim-patch:9.0.0457: substitute prompt does not highlight an empty match ( #20186 )
...
Problem: Substitute prompt does not highlight an empty match.
Solution: Highlight at least one character.
a04f457a6c
2022-09-13 22:08:01 +08:00
zeertzjq
91a150d0a9
test(lsp): call clear() before bufwipe test ( #20170 )
...
Otherwise this test cannot be run alone, and fails frequently on CI.
2022-09-13 06:01:35 +08:00
zeertzjq
38059b4f31
vim-patch:8.2.2646: Vim9: error for not using string doesn't mention argument
...
Problem: Vim9: error for not using string doesn't mention argument.
Solution: Add argument number.
f28f2ac425
2022-09-12 14:56:42 +08:00
Lewis Russell
7533ceec13
refactor(vim.opt): unify vim.bo/wo building
2022-09-09 09:54:53 +01:00
dundargoc
2d6735d8ce
ci: move BSD jobs from sourcehut to Cirrus CI #19616
...
dispatch.sr.ht is being deprecated, meaning that using sourcehut CI
won't be possible (see https://github.com/neovim/neovim/issues/19609 ).
Since Github Actions doesn't provide any BSD runners an external service
is required and Cirrus CI seems like a good replacement for sourcehut.
Initially experimented with using FreeBSD and OpenBSD virtual machines
in GitHub Actions, but Cirrus has been a much better fit with better
performance, logs and overall experience.
Failing tests are automatically skipped on FreeBSD regardless if it's on
CI or not. Ideally these tests should only be skipped in CI with the
help of `isCI` helper function. Unfortunately, the tests don't recognize
the environment variable CIRRUS_CI even if it's set manually. This
workaround is good enough for the time being, but we might want to only
skip tests when using the CI (or even better, fix the failing tests).
Closes: https://github.com/neovim/neovim/issues/19609
2022-09-08 15:12:42 -07:00
Raphael
30ca6d23a9
fix(lsp): when buffer detach remove buffer from client attached buffers ( #20081 )
...
Co-authored-by: Mathias Fussenegger <f.mathias@zignar.net>
2022-09-08 17:09:32 +02:00
Mathias Fußenegger
11167ab6d5
feat(lsp): add range option to lsp.buf.format ( #19998 )
2022-09-08 11:33:04 +02:00
ii14
4a67f9d386
vim-patch:9.0.0409: #{g:x} was seen as a curly-braces expression
...
Problem: #{g:x} was seen as a curly-braces expression.
Solution: Do never see #{} as a curly-braces expression. (closes vim/vim#11075 )
7c7e1e9b98
2022-09-08 08:17:30 +08:00
ii14
4dc4cf3467
fix(options): mark winhighlight
as list style ( #19477 )
...
Also add missing fcs, lcs and winhighlight to list of key-value options for `vim.opt`.
Co-authored-by: ii14 <ii14@users.noreply.github.com>
2022-09-07 17:59:27 +02:00
Thomas Vigouroux
fd1595514b
Use weak tables in tree-sitter code ( #17117 )
...
feat(treesitter): use weak tables when possible
Also add the defaulttable function to create a table whose values are created when a key is missing.
2022-09-07 08:39:56 +02:00
Sean Dewar
f32fd19f1e
fix(diagnostic): remove buf from cache on BufWipeout
( #20099 )
...
Doing so on `BufDelete` has issues:
- `BufDelete` is also fired for listed buffers that are made unlisted.
- `BufDelete` is not fired for unlisted buffers that are deleted.
This means that diagnostics will be lost for a buffer that becomes unlisted.
It also means that if an entry exists for an unlisted buffer, deleting that
buffer later will not remove its entry from the cache (and you may see "Invalid
buffer id" errors when using diagnostic functions if it was wiped).
Instead, remove a buffer from the cache if it is wiped out.
This means simply `:bd`ing a buffer will not clear its diagnostics now.
2022-09-06 20:55:03 -06:00
Andreas Schneider
b76e33b598
fix(terminal): adopt altscreen test for libvterm 0.2 changes
...
Due to a rewrite of the resize handling logic in libvterm, the behavior
changed. It's actually fixing a bug.
16b8574575
2022-09-06 21:48:22 +02:00