aboutsummaryrefslogtreecommitdiff
path: root/runtime
Commit message (Collapse)AuthorAge
* Merge pull request #19830 from lewis6991/hlgroup_namebfredl2022-08-24
|\ | | | | feat(highlight)!: error on invalid names and allow '.' and '@'
| * feat(highlight)!: error on invalid names and allow '.' and '@'Lewis Russell2022-08-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously if a highlight group with a name outside the regexp [a-zA-Z0-9_] was defined, Nvim would emit an "invalid character" warning message. This was annoying for Lua scripts, as it was very hard to debug what line of code was triggering this message since it didn't produce a stack trace. This has now been promoted to an error with the code E5248. Additionally the ASCII character period ('.') and at-sign ('@') have been added to the allowed list of characters of a highlight group name to support the application of defining hierarchical highlight groups, e.g. 'TS.keyword'. Co-authored-by: Christian Clason <christian.clason@uni-due.de>
* | feat(lua): add vim.iconv (#18286)Lewis Russell2022-08-24
| | | | | | Co-authored-by: Justin M. Keyes <justinkz@gmail.com>
* | Merge pull request #19496 from vigoux/ts_internal_langThomas Vigouroux2022-08-24
|\ \ | |/ |/| feat(treesitter): allow customizing language symbol name
| * feat(treesitter): allow customizing language symbol nameThomas Vigouroux2022-08-22
| |
* | fix(inspect): escape identifiers that are lua keywords (#19898)Simon Wachter2022-08-23
| | | | | | A lua keyword is not a valid table identifier
* | vim-patch:8.2.4741: startup test failszeertzjq2022-08-23
| | | | | | | | | | | | | | | | | | Problem: Startup test fails. Solution: Avoid an error for verbose expansion. Fix that the "0verbose" command modifier doesn't work. https://github.com/vim/vim/commit/60895f3e36def9beb7d5463e792e5154ad9a7a0a Most code changes has already been ported.
* | vim-patch:8.2.4740: when expand() fails there is no error messagezeertzjq2022-08-23
| | | | | | | | | | | | Problem: When expand() fails there is no error message. Solution: When 'verbose' is set give an error message. https://github.com/vim/vim/commit/575445200bd35283191ecd7a0d596b37c5b477a4
* | vim-patch:8.2.4726: cannot use expand() to get the script namezeertzjq2022-08-23
| | | | | | | | | | | | | | | | | | Problem: Cannot use expand() to get the script name. Solution: Support expand('<script>'). (closes vim/vim#10121) https://github.com/vim/vim/commit/6013d0045dec7ca7c0068fbe186c42d754a7368b Use `.sn_name` instead of `->sn_name` as v8.2.0154 hasn't been ported. Cherry-pick builtin.txt expand() doc from latest Vim.
* | vim-patch:8.1.{1915,1921,1953} (#19900)zeertzjq2022-08-23
|/ | | | | | | | | | | | | | | | | | | | | | | | vim-patch:8.1.1915: more functions can be used as methods Problem: More functions can be used as methods. Solution: Make various functions usable as a method. https://github.com/vim/vim/commit/1a3a89168d61c2fed91cbca812cf1c6983901b79 Move debugbreak() to the right place. vim-patch:8.1.1921: more functions can be used as methods Problem: More functions can be used as methods. Solution: Make various functions usable as a method. https://github.com/vim/vim/commit/a4208966fb289a505ebdef62bbc37c214069bab4 vim-patch:8.1.1953: more functions can be used as a method Problem: More functions can be used as a method. Solution: Allow more functions to be used as a method. https://github.com/vim/vim/commit/f9f24ce7a0e5988fedf2e2ff751818f9b07510a6 Omit test_termcodes.vim: cannot be used and superseded by later patches. Cherry-pick test_bufline.vim change from patch 8.1.1993.
* vim-patch:8.2.4325: 'wildmenu' only shows few matches (#19876)zeertzjq2022-08-21
| | | | | | | | | | Problem: 'wildmenu' only shows few matches. Solution: Add the "pum" option: use a popup menu to show the matches. (Yegappan Lakshmanan et al., closes vim/vim#9707) https://github.com/vim/vim/commit/3908ef5017a6b4425727013588f72cc7343199b9 Omit p_wmnu check in cmdline_pum_active() as it can cause problems. Omit vim_strchr() flags as that isn't really better than bitmasks. Omit key translations and document it in vim_diff.txt.
* vim-patch:e80086446cc2 (#19848)Christian Clason2022-08-20
| | | | | | | | | * vim-patch:e80086446cc2 Update runtime files https://github.com/vim/vim/commit/e80086446cc20856ed8359bc8dc87c4d430da4c8 Co-authored-by: Sean Dewar <seandewar@users.noreply.github.com>
* vim-patch:8.2.4667: expandcmd() fails on an errorzeertzjq2022-08-20
| | | | | | | Problem: expandcmd() fails on an error. Solution: On failure return the command unmodified. (yegappan Lakshmanan, closes vim/vim#10063) https://github.com/vim/vim/commit/5018a836c030988944a9bbe2fd2e538bf5261a72
* vim-patch:8.2.3619: cannot use a lambda for 'operatorfunc' (#19846)zeertzjq2022-08-20
| | | | | | | | | | Problem: Cannot use a lambda for 'operatorfunc'. Solution: Support using a lambda or partial. (Yegappan Lakshmanan, closes vim/vim#8775) https://github.com/vim/vim/commit/777175b0df8c5ec3cd30d19a2e887e661ac209c8 Omit duplicate docs. It's removed in patch 8.2.3623. Nvim doesn't seem to need callback_set() as it was omitted when patch 8.1.1437 was first ported.
* fix(filetype): only check first 100 and last line of buffer (#19819)Christian Clason2022-08-19
| | | | | | | | fix(filetype): only pass first 100 and last lines to contents check sufficient for current content checks and avoids performance issues for buffers with a large number of lines fixes #19817
* docs(lua): update vim.{g,b,w}o documentation (#19844)Christian Clason2022-08-19
| | | | | | | docs(lua): update vim.{go,bo,wo} documentation * document indexing by buffer/window handle * correct wrapper information (`nvim_buf_{g,s}et_value` now) * make clear what is considered "invalid key" (consistently)
* Merge pull request #19360 from famiu/feat/multibuffer-inccommandbfredl2022-08-19
|\ | | | | feat: multibuffer preview support for inccommand
| * feat: multibuffer preview support for inccommandFamiu Haque2022-08-19
| | | | | | | | | | | | | | | | | | Allows preview callbacks to modify multiple buffers in order to show the preview. Previously, if multiple buffers were modified, only the current buffer would have its state restored. After this change, all buffers have their state restored after preview. Closes #19103.
* | docs(lsp): remove lsp.buf_request from docs (#19738)Mathias Fußenegger2022-08-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This starts a soft phase-out of `buf_request`. `buf_request` is quite error prone: - Positional `params` depend on the client because of the `offset_encoding`. Currently if there is one client using UTF-8 offset encoding and another using UTF-16, the positions in the request are wrong for one of the clients. To solve this the params would need to be created per client instead of once for all of them. - `handler` is called *per* client but many users of it assume it is only called once. This can lead to a "select n + 1" kind of problem, where the handler makes another call to `buf_request`, multiplying the amount of requests. (There are in fact still some places where this happens in core) Or it leads to erratic behavior if called multiple times (E.g. the quicklist list flickering & being overwritten) (See hover or references implementation) `buf_request_all` returns an aggregate of the responses which is more sensible as it avoids this problem. For off-spec extensions it also has the problem that it sends requests to clients which cannot handle a given request. Given that `buf_request` is in use by a lot of plugins this starts a soft-phase out. Planned Steps: - Remove from docs - Provide an alternative, either `buf_request_all`, maybe with extensions (params being a function), or an entirely new method. - Mark as deprecated in 0.9 - Remove in 0.10 To note: - `buf_request_all` currently isn't ideal either because it suffers from the `params` problem as well. - This implies that the `vim.lsp.with` pattern will die, because the global handlers as they are don't fit a multi-client model, as most of the time an aggregate is needed.
* | feat(ui): allow to set the highlight namespace per windowbfredl2022-08-17
| | | | | | | | | | - reimplement 'winhl' in terms of highlight namespaces - check for EOF in screen tests (to indicate a likely crash)
* | feat: allow :wincmd to accept a count (#19815)Famiu Haque2022-08-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Let :wincmd command accept a count like what its documentation suggests. Previously it could only accept a range, which led to some ambiguity on which attribute should be used when executing :wincmd using nvim_cmd. Closes #19662. Also fix a typo in a related Vim test: vim-patch:9.0.0223: typo in diffmode test Problem: Typo in diffmode test. Solution: Fix the typo. (closes vim/vim#10932) https://github.com/vim/vim/commit/5fd6ab820b4a0aaa5c6020852f39d118375fab49
* | docs(lsp): rename on-list-handler to lsp-on-list-handler (#19813)Jonas Strittmatter2022-08-17
| | | | | | | | This makes it easier to find documentation about the on-list-handler when starting the search term with "lsp".
* | vim-patch:e1f3fd1d02e3 (#19796)Christian Clason2022-08-16
| | | | | | | | Update runtime files https://github.com/vim/vim/commit/e1f3fd1d02e3f5fe6d2b6d82687c6846b8e500f8
* | vim-patch:8.2.3888: the argument list may contain duplicates (#19795)zeertzjq2022-08-16
|/ | | | | | | Problem: The argument list may contain duplicates. Solution: Add the :argdedeupe command. (Nir Lichtman, closes vim/vim#6235) https://github.com/vim/vim/commit/73a024209cbfbd5b39a2e974084d807c6131e2ed Use latest index.txt :argdedupe doc from Vim.
* docs: update Vim differences (#19780)Yegappan Lakshmanan2022-08-15
| | | | | Patch 8.2.4594 (https://github.com/vim/vim/commit/36a5b6867bb6c0bd69c8da7d788000ab8a0b0ab0) added support for sourcing a buffer without a name. Patch 8.2.4325 (https://github.com/vim/vim/commit/3908ef5017a6b4425727013588f72cc7343199b9) added support for using a popup menu for wildmode completion.
* vim-patch:8.2.1297: when a test fails it's often not easy to see wherezeertzjq2022-08-15
| | | | | | | | | Problem: When a test fails it's often not easy to see what the call stack is. Solution: Add more entries from the call stack in the exception message. https://github.com/vim/vim/commit/a5d0423fa16f18b4576a2a07e50034e489587a7d Use docs from latest Vim.
* vim-patch:8.2.4249: the timeout limit for spell suggestions is always 5000 ↵zeertzjq2022-08-14
| | | | | | | | (#19769) Problem: The timeout limit for spell suggestions is always 5000 milli seconds. Solution: Add the "timeout" entry to 'spellsuggest'. https://github.com/vim/vim/commit/585ee07cfef307b2fc828537e0d31fdc22d7e79f
* docs(lua): clarify vim.keymap.set() opts (#19761)Antoine Cotten2022-08-14
|
* vim-patch:9.0.0197: astro files are not detected (#19755)Christian Clason2022-08-13
| | | | | Problem: Astro files are not detected. Solution: Add a pattern to match Astro files. (Emilia Zapata, closes vim/vim#10904) https://github.com/vim/vim/commit/6a76e84f555da6d9ee57db80143e1e5eb85535ff
* vim-patch:9.0.0195: metafun files are not recogized (#19746)Christian Clason2022-08-13
| | | | | Problem: Metafun files are not recogized. Solution: Add filetype detection patterns. https://github.com/vim/vim/commit/9032b9ceb6073288d75386dbcbd9d1982fa24080
* fix(charclass): make behavior with empty str match latest Vim (#19749)zeertzjq2022-08-13
| | | | Later Vim patches changed to return 0 for empty string and null string. Also update setcellwidth() docs to match latest Vim.
* vim-patch:8.2.{1536,1540}: charclass() (#19748)zeertzjq2022-08-13
| | | | | | | | | | | | | | | | | | | | | vim-patch:8.2.1536: cannot get the class of a character; emoji widths are wrong Problem: Cannot get the class of a character; emoji widths are wrong in some environments. Solution: Add charclass(). Update some emoji widths. Add script to check emoji widths. https://github.com/vim/vim/commit/4e4473c927167fd24e5c8df90e0e8035080cf2da Use latest charclass() docs from Vim. Rewrite DoIt() in emoji_list.vim in Lua. Omit emoji table updates: - emoji_width update looks wrong as these added ranges are only double-width when followed by 0xFE0F. - Other updates are too old. vim-patch:8.2.1540: the user cannot try out emoji character widths Problem: The user cannot try out emoji character widths. Solution: Move the emoji script to the runtime/tools directory. https://github.com/vim/vim/commit/98945560c1ae6e2ddee820a7de718a36e3f4b6e5
* docs: clarify that cursorline will be disabled before command preview (#19710)Jonas Strittmatter2022-08-12
|
* fix(lsp): fix nil value error in get_group (#19735)Mathias Fußenegger2022-08-12
| | | | | | | | `server_capabilities` can be nil until the server is initialized. Reproduced with: vim.lsp.stop_client(vim.lsp.start_client { cmd = { vim.v.progpath, '-es', '-u', 'NONE', '--headless' }; })
* fix(lsp): handle nil client in onexit callback (#19722)Mathias Fußenegger2022-08-11
| | | Follow up to https://github.com/neovim/neovim/pull/19658
* fix(signs): priority of extmark signs (#19718)Lewis Russell2022-08-11
|
* fix(lsp): avoid pipe leaks if lsp cmd isn't executable (#19717)Mathias Fußenegger2022-08-11
| | | The `onexit` handler isn't called if `uv.spawn` doesn't return a handle.
* fix(lsp): fix some type annotations in lsp.rpc (#19714)Mathias Fußenegger2022-08-11
|
* Merge pull request #19685 from ii14/gen_vimdoc_indentationChristian Clason2022-08-11
|\ | | | | docs: change gen_vimdoc indentation level
| * docs: regenerateii142022-08-11
| |
* | vim-patch:9.0.0182: quarto files are not recognized (#19702)Jonas Strittmatter2022-08-10
| | | | | | | | | | | | Problem: Quarto files are not recognized. Solution: Recognize quarto files by the extension. (Jonas Strittmatter, closes vim/vim#10880) https://github.com/vim/vim/commit/3a9687fb2749cb3da6e3bbf60cb9eaa81f7889ae
* | docs: fix some mistakes and missing docs (#19699)zeertzjq2022-08-10
|/
* fix(lsp): handle multiple clients with incremental sync (#19658)Mathias Fußenegger2022-08-09
| | | | | | | | | | | | | | | The change tracking used a single lines/lines_tmp table to track changes to a buffer. If multiple clients using incremental sync are connected to a buffer, they both made changes to the same lines table. That resulted in an inconsistent state. This commit changes the didChange handling to group clients by synchronization scheme and offset encoding. This avoids computing the diff multiple times for clients using the same scheme and resolves the lines/lines_tmp conflicts. Fixes https://github.com/neovim/neovim/issues/19325
* docs(lua): add luv (`vim.loop`) reference manual (#19679)Christian Clason2022-08-09
| | | | Upstreamed from https://github.com/nanotee/luv-vimdocs with kind permission from @nanotee.
* vim-patch:partial: 48c3f4e0bff7 (#19684)Christian Clason2022-08-09
| | | | | | | | vim-patch:partial:48c3f4e0bff7 Update runtime files https://github.com/vim/vim/commit/48c3f4e0bff7efd289a7001b68c777b6f89a7057 partially skip `options.txt` (needs 9.0.0138)
* docs(lua): add Lua 5.1 reference manual (#19663)dundargoc2022-08-08
| | | | | | | | based on http://www.vim.org/scripts/script.php?script_id=1291 reformatted to match Nvim documentation style; removed irrelevant sections Co-authored-by: dundargoc <gocundar@gmail.com> Co-authored-by: Christian Clason <c.clason@uni-graz.at> Co-authored-by: Lewis Russell <lewis6991@gmail.com>
* feat(lsp): set formatexpr by default (#19677)Mathias Fußenegger2022-08-08
| | | Follow up to https://github.com/neovim/neovim/pull/19003
* vim-patch:8.2.3545: setcellwidths() may make 'listchars' or 'fillchars' invalidzeertzjq2022-08-08
| | | | | | | | | Problem: setcellwidths() may make 'listchars' or 'fillchars' invalid. Solution: Check the value and give an error. (closes vim/vim#9024) https://github.com/vim/vim/commit/94358a1e6e640ca5ebeb295efdddd4e92b700673 Cherry-pick f_setcellwidths() change from patch 9.0.0036. Cherry-pick 'ambiwidth' docs update from runtime update 079ba76ae7a7.
* vim-patch:8.2.1535: it is not possible to specify cell widths of characterszeertzjq2022-08-08
| | | | | | | | Problem: It is not possible to specify cell widths of characters. Solution: Add setcellwidths(). https://github.com/vim/vim/commit/08aac3c6192f0103cb87e280270a32b50e653be1 Co-Authored-By: delphinus <me@delphinus.dev>
* fix(lsp): set end_col in formatexpr (#19676)Mathias Fußenegger2022-08-08
| | | | The last line was excluded from formatting via formatexpr because the character in the params was set to 0 instead of the end of line.