Commit message (Collapse) | Author | Age | ||
---|---|---|---|---|
... | ||||
| * | | | Refactor(tests): mkdir_p in startup/init.lua test | shadmansaleh | 2021-07-01 | |
| | | | | ||||
| * | | | Refactor(tests): Use os commands in mkdir_p helper | shadmansaleh | 2021-06-30 | |
| | | | | ||||
* | | | | Tests(clipboard): Add test for block paste | shadmansaleh | 2021-07-01 | |
| | | | | ||||
* | | | | vim-patch:8.2.1905: the wininfo list may contain stale entries (#14884) | Daniel Steinberg | 2021-06-30 | |
|/ / / | | | | | | | | | | | | | | | | Problem: The wininfo list may contain stale entries. Solution: When closing a window remove any other entry where the window pointer is NULL. https://github.com/vim/vim/commit/4882d983397057ea91c584c5a54aaccf15016d18 | |||
* | | | Merge pull request #14779 from tjdevries/tjdevries/vim_opt_fixes | TJ DeVries | 2021-06-29 | |
|\ \ \ | | | | | | | | | An assortment of various vim.opt fixups. | |||
| * | | | fix(vim.opt): Fix #14828 with empty values being incorrectly inserted | TJ DeVries | 2021-06-29 | |
| | | | | ||||
| * | | | fix(vim.opt): Fix #14668 Now correctly handles unescaped commas in isfname style | TJ DeVries | 2021-06-29 | |
| | | | | ||||
| * | | | fix(vim.opt): Fix #14669 whichwrap now acts as expected | TJ DeVries | 2021-06-29 | |
| | | | | ||||
| * | | | fix(vim.opt): Add basic error handling | David Zhang | 2021-06-29 | |
| | | | | ||||
| * | | | fix(vim.opt): Get window options before setting. | ckipp01 | 2021-06-29 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This closes #14677, but I also am a little unsure if there are times where this may not be correct. However, this just changes the behavior that even if `was_set` was false, we still get for `nvim_win_get_option`. | |||
| * | | | fix(vim.opt): #14708 Now lets you put duplicate values in wildmode | TJ DeVries | 2021-06-29 | |
| | | | | ||||
* | | | | Merge pull request #14335 from chentau/extmark_delbytes | Björn Linse | 2021-06-29 | |
|\ \ \ \ | |/ / / |/| | | | Extmarks: manually zero out `curbuf->deleted_bytes2` on substitute and join | |||
| * | | | Manually zero out deleted_bytes2 when substituting and joining lines | chentau | 2021-06-29 | |
| | |/ | |/| | ||||
* | | | fix(doc): remove reference to vim.lsp.callbacks (#14576) | Matthieu Coudron | 2021-06-28 | |
| | | | | | | | | | | | | too old now, can be confusing | |||
* | | | [RDY] Add buffer information to tabline_update (#12481) | John Gehrig | 2021-06-27 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add buffer information to tabline_update Most terminal implementations of the tabline display buffer and tab information. Many neovim-qt users disable GuiTabline because it lacks functionality provided in the terminal implementation. The tabline_update event should include buffer information too, so client GUIs can display rich useful tabs. | |||
* | | | vim-patch:8.1.0897: can modify a:000 when using a reference (#14902) | Jan Edmund Lazo | 2021-06-26 | |
| | | | | | | | | | | | | | | | | | | Problem: Can modify a:000 when using a reference. Solution: Make check for locked variable stricter. (Ozaki Kiichi, closes vim/vim#3930) https://github.com/vim/vim/commit/05c00c038bc16e862e17f9e5c8d5a72af6cf7788 | |||
* | | | Fix `<afile>` getting prepended with a slash on WinClosed (#14515) | Ghjuvan Lacambre | 2021-06-26 | |
| | | | | | | | | | | | | | | | | | | It is wrong to assume that you can't shorten a path if it's in `/`: you can always shorten it by removing the forward slash. Closes #14512 | |||
* | | | fix(lsp): do not convert vim.NIL to nil in lists | Akin Sowemimo | 2021-06-24 | |
| | | | ||||
* | | | Merge pull request #14868 from shadmansaleh/patch_verbose_for_lua | Björn Linse | 2021-06-23 | |
|\ \ \ | | | | | | | | | fix(runtime): Fix bugs regarding lua runtime files | |||
| * | | | fix(source): Source giving E484 & parsing error at line 1 for lua files | shadmansaleh | 2021-06-21 | |
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | It's happening because do_source is only expected to return FAIL when it was unable to open file . But `nlua_exec_file` returns fail for parsing and execution error too . Those errors are emitted through `nlua_error`. So now return value of nlua_exec_file is ignored like do_cmdline. It now only returns fail when it was unable to open file that check is done before calling nlua_exec_file or do_cmdline. Errors in nlua_exec_file are still directly emitted through nlua_error like before. | |||
* | | | Merge pull request #14719 from snezhniylis/marktree_delete_node_iter_fix | Björn Linse | 2021-06-22 | |
|\ \ \ | | | | | | | | | Fix deletable nodes in MarkTree sometimes getting skipped | |||
| * | | | extmark: fix deletable nodes in MarkTree sometimes getting skipped | snezhniylis | 2021-06-22 | |
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As per #14236, performing extmark cleanup in a certain namespace does not guarantee removing all the extmarks inside given namespace. The issue resides within the tree node removal method and results in a couple of rare edge cases. To demonstrate what causes this bug, I'll give an example covering one of the edge cases. === AN EXAMPLE === (A) (B) (C) (D) (E) --------- --------- --------- --------- --------- <0, 1> <0, 1> <0, 1> <0, 1> <0, 1> <0, 2> <0, 2> <0, 2> <0, 2> <0, 2> <0, 3> <0, 3> <0, 3> <0, 3> <0, 3> <0, 4> <0, 4> <0, 4> <0, 4> <0, 4> <0, 5> <0, 5> <0, 5> <0, 5> <0, 5> <0, 6> <0, 6> <0, 6> <0, 6> <0, 6> <0, 7> <0, 7> <0, 7> <0, 7> <0, 7> <0, 8> <0, 8> <0, 8> <0, 8> <0, 8> <0, 9> <0, 9> * * <0, 9> * <0, 9> [0, 10] * [0, 10] <0, 9> [0, 11] [0, 11] [0, 11] [0, 11] [0, 11] [0, 12] [0, 12] * [0, 12] [0, 12] [0, 12] [0, 13] [0, 13] [0, 13] [0, 13] [0, 13] [0, 14] [0, 14] [0, 14] [0, 14] [0, 14] [0, 15] [0, 15] [0, 15] [0, 15] [0, 15] [0, 16] [0, 16] [0, 16] [0, 16] [0, 16] [0, 17] [0, 17] [0, 17] [0, 17] [0, 17] [0, 18] [0, 18] [0, 18] [0, 18] [0, 18] [0, 19] [0, 19] [0, 19] [0, 19] [0, 19] [0, 20] [0, 20] [0, 20] [0, 20] [0, 20] DIAGRAM EXPLANATION * Every column is a state of the marktree at a certain stage. * To make it simple, I don't draw the whole tree. What you see are 2 leftmost parent nodes ([0, 10], [0, 20]) and their children placed in order `MarkTreeIter` would iterate through. From top to bottom. * Numbers on this diagram represent extmark coordinates. Relative positioning and actual mark IDs used by the marktree are avoided for simplicity. * 2 types of brackets around coordinates represent 2 different extmark namespaces (`ns_id`s). * '*' shows iterator position. ACTUAL EXPLANATION Let's assume, we have two sets of extmarks from 2 different plugins: * Plugin1: <0, 1-9> * Plugin2: [0, 10-20] 1. Plugin2 calls `vim.api.nvim_buf_clear_namespace(buf_handle, ns_id, 0, -1)` to clear all its extmarks which results in `extmark_clear` call. 2. The iteration process goes on ignoring extmarks with irrelevant `ns_id` from Plugin1, until it reaches [0, 10], entering state (A). 3. At the end of cleaning up process, `marktree_del_itr` gets called. This function is supposed to remove given node and, if necessary, restructure the tree. Also, move the iterator to the next node. The bug occurs in this function. 4. The iterator goes backwards to the node's last child, to put it in the place of its deleted parent later. (B) 5. The parent node is deleted and replaced with its child node. (C) 6. Since now this node has 8 children, which is less than `MT_BRANCH_FACTOR - 1`, it get's merged with the next node. (D) 7. Finally, since at (B) the iterator went backward, it goes forward twice, skipping [0, 11] node, causing this extmark to persist, causing the bug. (E) ANALYSIS AND SOLUTION The algorithm works perfectly when the parent node gets replaced by its child, but no merging occurs. I.e. the exact same diagram, but without the (D) stage. If not for (D), it would iterate to <0, 9> and then to [0, 11]. So, iterating twice makes sense. The actual problem is in (C) stage, because the iterator index isn't adjusted and still pointing to no longer existent node. So my solution is to adjust iterator index after removing the child node. More info: https://github.com/neovim/neovim/pull/14719 | |||
* / / | fixup! vim-patch:8.2.3020: unreachable code (#14866) | Matthieu Coudron | 2021-06-22 | |
|/ / | ||||
* | | Merge pull request #13165 from mfussenegger/codelens | Michael Lingelbach | 2021-06-14 | |
|\ \ | | | | | | | feat(lsp): Add codelens support | |||
| * | | feat(lsp): Add codelens support | Mathias Fussenegger | 2021-06-14 | |
| | | | ||||
* | | | feat(float): add rounded borders preset | Christian Clason | 2021-06-14 | |
|/ / | | | | | | | | | | | | | | | Add `borders = "rounded"` preset for `nvim_open_win`, equivalent to border = {"╭", "─", "╮", "│", "╯", "─", "╰", "│"} Also add undocumented "solid" preset to docs. | |||
* | | Merge pull request #14788 from shadmansaleh/fix/lua_runtime1 | Björn Linse | 2021-06-13 | |
|\ \ | | | | | | | fixup(runtime): Fix lua runtime files not listed in :scriptnames | |||
| * | | fixup(runtime): Fix lua runtime files not listed | shadmansaleh | 2021-06-13 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | lua runtime files weren't listed in :scriptname & profiler. This fixes that. * Add tests * Small doc tweeks | |||
* | | | vim-patch:8.2.0038: spell suggestions insufficiently tested | Jan Edmund Lazo | 2021-06-12 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Spell suggestions insufficiently tested. Solution: Add spell suggestion tests. (Dominique Pelle, closes vim/vim#5398) https://github.com/vim/vim/commit/e9a8d1f9adaf4599b5a7923f8db8e207ed6e7eca Requires latest en.utf-8.spl from https://ftp.nluug.nl/pub/vim/runtime/spell/. Include the following patch because patch v8.2.0946 was merged: vim-patch:8.2.0948: spell test fails Problem: Spell test fails. Solution: Adjust expected text of the prompt. https://github.com/vim/vim/commit/d281b7c227bc4c78813fdc297ccee4b2cad7e605 | |||
* | | | vim-patch:8.1.1838: there is :spellwrong and :spellgood but not :spellrare | Jan Edmund Lazo | 2021-06-12 | |
|/ / | | | | | | | | | | | Problem: There is :spellwrong and :spellgood but not :spellrare. Solution: Add :spellrare. (Martin Tournoij, closes vim/vim#4291) https://github.com/vim/vim/commit/08cc374dabd2a02785129fa1c0100f7745c244ad | |||
* | | test: clear $GZIP, use nvim's system() (#14791) | Jan Edmund Lazo | 2021-06-12 | |
| | | ||||
* | | fix(ui): Fix pum incorrect position in multigrid mode | Serg Tereshchenko | 2021-06-12 | |
| | | | | | | | | Refs #12985 | |||
* | | refactor(source): Move lua file detection to do_source | shadmansaleh | 2021-06-11 | |
| | | | | | | | | | | | | So now :source can run lua files too :) * feat: Add support for :[ranged]source for lua files | |||
* | | refactor(tests): Simplify tests at functional/lua/runtime_spec | shadmansaleh | 2021-06-11 | |
| | | ||||
* | | feat(runtime): Allow lua to be used in syntax | shadmansaleh | 2021-06-11 | |
| | | ||||
* | | feat(runtime): Allow lua to be used in ftdetect | shadmansaleh | 2021-06-11 | |
| | | ||||
* | | feat(runtime): Allow lua to be used in indent | shadmansaleh | 2021-06-11 | |
| | | ||||
* | | feat(runtime): Allow lua to be used in ftplugin | shadmansaleh | 2021-06-11 | |
| | | ||||
* | | feat(runtime): Allow lua to be used in compiler | shadmansaleh | 2021-06-11 | |
| | | ||||
* | | feat(runtime): Allow lua to be used in colorschemes | shadmansaleh | 2021-06-11 | |
| | | | | | | | | * tests(runtime): move runtime/plugin tests to functional/lua/runtime_spec | |||
* | | feat(startup): Source runtime/plugin/**/*.lua at startup | shadmansaleh | 2021-06-11 | |
|/ | | | | | | For opt plugins these files are sourced on `:packadd` * `:runtime` Now can exexute lua files | |||
* | api: include border in nvim_win_get_config | Corey Williamson | 2021-06-10 | |
| | ||||
* | api: add nvim_win_call | notomo | 2021-06-10 | |
| | ||||
* | add tests in buffer_updates | jbyuki | 2021-06-09 | |
| | ||||
* | feat(lsp): Split out a `diagnostics_to_items` function from set_loclist | Mathias Fussenegger | 2021-06-07 | |
| | | | | | Makes it easier to re-use the logic to populate the quickfix list instead of the location list. | |||
* | fixup! tests: fix system_spec when run with clipboard manager (#10956) | Jan Edmund Lazo | 2021-06-05 | |
| | | | | | | uv_process_options_t "args" member was set to a local array from stack. when uv_process_options_t variable is outside the function. https://pvs-studio.com/en/docs/warnings/v507/ | |||
* | clang/API: reject null string in timer_start() | Jan Edmund Lazo | 2021-06-02 | |
| | ||||
* | api(nvim_open_win): add "noautocmd" option | Sean Dewar | 2021-06-01 | |
| | | | | | | This option, when set, stops nvim_open_win() from potentially firing buffer-related autocmd events (BufEnter, BufLeave and BufWinEnter in the case of nvim_open_win()). | |||
* | lua: Add vim.opt and fix scopes of vim.o (#13479) | TJ DeVries | 2021-05-28 | |
| | | | | | | | | | | | | | * lua: Add vim.opt * fixup: cleaning * fixup: comments * ty clason * fixup: comments * this is the last commit. period. | |||
* | Merge pull request #14607 from glacambre/fix_get_all_options_info_crash | James McCoy | 2021-05-26 | |
|\ | | | | | [RDY] Generate PARAM_COUNT macro |