| Commit message (Collapse) | Author | Age |
... | |
|
|
|
|
|
|
|
|
|
|
| |
Problem: Not enough characters accepted for 'spellfile'.
Solution: Add vim_is_fname_char() and use it for 'spellfile'.
https://github.com/vim/vim/commit/bc49c5f48f89c2d6f4d88ee77f44a11d68293be3
Cherry-pick related doc update from Vim runtime.
Co-authored-by: Bram Moolenaar <Bram@vim.org>
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
Problem: Divide by zero with 'smoothscroll' set and a narrow window.
Solution: Bail out when the window is too narrow.
https://github.com/vim/vim/commit/870219c58c0804bdc55419b2e455c06ac715a835
Co-authored-by: Bram Moolenaar <Bram@vim.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: Cannot scroll by screen line if a line wraps.
Solution: Add the 'smoothscroll' option. Only works for CTRL-E and CTRL-Y
so far.
https://github.com/vim/vim/commit/f6196f424474e2a9c160f2a995fc2691f82b58f9
vim-patch:9.0.0641: missing part of the new option code
Problem: Missing part of the new option code.
Solution: Add missing WV_SMS.
https://github.com/vim/vim/commit/bbbda8fd81f6d720962b67ae885825bad9be4456
Co-authored-by: Bram Moolenaar <Bram@vim.org>
|
|
|
| |
Fixes #23423
|
|
|
| |
Some small general fixes found working on developing async parsing.
|
|
|
|
|
|
|
|
| |
Problem: Luau files are not recognized.
Solution: Add a patter for Luau files. (Amaan Qureshi, closes vim/vim#12317)
https://github.com/vim/vim/commit/2dcfe9ae1df61e1249520ed435dd8cf60e157103
Co-authored-by: Amaan Qureshi <amaanq12@gmail.com>
|
|
|
|
| |
The module is used internally and not intended to be used by plugins or
users.
|
|
|
|
| |
5ms (#23375)
|
|
|
|
|
|
| |
When injections are added or removed make sure to:
- invoke 'changedtree' callbacks for when new trees are added.
- invoke 'changedtree' callbacks for when trees are invalidated
- redraw regions when languagetree children are removed
|
| |
|
| |
|
|
|
| |
and set by default in `ftplugin/query.lua`
|
|\
| |
| | |
Add vim.iter benchmark to benchmark test suite
|
| |
| |
| |
| |
| |
| |
| |
| | |
Packing and unpacking return values impairs performance considerably.
In an attempt to avoid creating tables as much as possible we can
instead pass return values between functions (which does not require
knowing the number of values a function might return). This makes the
code more complex, but improves benchmark numbers non-trivially.
|
| |
| |
| |
| | |
Co-authored-by: clason <clason@users.noreply.github.com>
Co-authored-by: lewis6991 <lewis6991@users.noreply.github.com>
|
|/
|
|
|
|
|
|
| |
Problem: Heredoc for interfaces does not support "trim".
Solution: Update the script heredoc support to be same as the :let command.
(Yegappan Lakshmanan, closes vim/vim#5916)
https://github.com/vim/vim/commit/6c2b7b8055b96463f78abb70f58c4c6d6d4b9d55
|
|
|
|
|
|
|
|
|
| |
Problem: Undo file is not synced. (Sami Farin)
Solution: Sync the undo file if 'fsync' is set. (Christian Brabandt,
closes vim/vim#8879, closes vim/vim#8920)
https://github.com/vim/vim/commit/340dd0fbe462a15a9678cfba02085b4adcc45f02
Co-authored-by: Bram Moolenaar <Bram@vim.org>
|
|
|
|
|
|
|
|
|
|
| |
fix(extmarks): disallow removing extmarks in on_lines callbacks
decor_redraw_start (which runs before decor_providers_invoke_lines) gets
references for the extmarks on a specific line. If these extmarks are
deleted in on_lines callbacks then this results in a heap-use-after-free
error.
Fixes #22801
|
|
|
|
| |
This example is made obsolete by the addition of `vim.lsp.start()` and
`vim.fs` (whose use is already documented in `:h lsp-quickstart`).
|
| |
|
|
|
|
|
|
|
|
|
| |
Problem: no functions for converting from/to UTF-16 index.
Solution: Add UTF-16 flag to existing funtions and add strutf16len() and
utf16idx(). (Yegappan Lakshmanan, closes vim/vim#12216)
https://github.com/vim/vim/commit/67672ef097dd708244ff042a8364994da2b91e75
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
|
|
|
|
|
|
|
|
|
|
| |
(#23317)
Problem: Behavior of exists() in a :def function is unpredictable.
Solution: Add exists_compiled().
https://github.com/vim/vim/commit/267359902c8792fed13543ddeb56c6df0ae74957
Co-authored-by: Bram Moolenaar <Bram@vim.org>
|
|\
| |
| | |
Create iter_spec and vim.iter module
|
| |
| |
| |
| | |
vim.iter is now both a function and a module (similar to vim.version).
|
| |
| |
| |
| |
| |
| | |
Using nvim_replace_termcodes is too verbose, add vim.keycode for
translating keycodes.
Co-authored-by: ii14 <ii14@users.noreply.github.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Problem: Cannot get the first screen column of a character.
Solution: Let virtcol() optionally return a list. (closes vim/vim#10482,
closes vim/vim#7964)
https://github.com/vim/vim/commit/0f7a3e1de6f71e8e1423fe594890d6aa7f94e132
Co-authored-by: LemonBoy <thatlemon@gmail.com>
|
|/
|
|
|
|
|
|
|
|
|
|
| |
(#23309)
Problem: Checks for Dictionary argument often give a vague error message.
Solution: Give a useful error message. (Yegappan Lakshmanan, closes vim/vim#11009)
https://github.com/vim/vim/commit/04c4c5746e15884768d2cb41370c3276a196cd4c
Cherry-pick removal of E922 from docs from patch 9.0.1403.
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
|
|
|
|
|
|
|
| |
Update runtime files
https://github.com/vim/vim/commit/71badf9547e8f89571b9a095183671cbb333d528
Co-authored-by: Bram Moolenaar <Bram@vim.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
* vim-patch:9.0.1478: filetypes for *.v files not detected properly
Problem: Filetypes for *.v files not detected properly.
Solution: Use the file contents to detect the filetype. (Turiiya,
closes vim/vim#12281)
https://github.com/vim/vim/commit/80406c26188219f3773b2e9c49160caeeb386ee2
Co-authored-by: Turiiya <34311583+tobealive@users.noreply.github.com>
Co-authored-by: Jonas Strittmatter <40792180+smjonas@users.noreply.github.com>
|
|
|
|
|
|
|
| |
Problem: Busted configuration files are not recognized.
Solution: Recognize busted configuration files as Lua. (Craig MacEachern,
closes vim/vim#12209)
Co-authored-by: C.D. MacEachern <craig.daniel.maceachern@gmail.com>
|
|
|
|
|
|
|
| |
Problem: Tee-Object does not create a file if it does not receive input
for example when :grep does not find matches.
and so nvim tries to open a nonexistent errorfile causing an error.
Solution: use tee.exe instead of Tee-Object
|
| |
|
|
|
|
|
| |
This is a more robust method for tagging a packed table as it completely
eliminates the possibility of mistaking an actual table key as the
packed table tag.
|
|
|
|
|
|
|
|
|
|
| |
This one generates a runtime/ file instead of a source file.
But otherwise it works the same like all other generators.
It has the same prerequisites (shared and mpack modules, etc), and,
importantly, it uses results from the source generators.
The odd location makes it easy to overlook when refactoring generators
(like I did last time, lol)
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Problem:
`vim.split('a:::', ':', {trimempty=true})` trims inner empty items.
Regression from 9c49c1047079427ff0a2356cb37302934845108e
Solution:
Set `empty_start=false` when first non-empty item is found.
close #23212
|
|
|
|
|
|
|
| |
(#23209)
fix(treesitter playground): wrong range of a node displayed in playground
The call parameters order of the function `get_range_str` is flipped for the last two arguments compared to the declaration.
|
|\
| |
| | |
refactor(build): use vendored versions of mpack and luabitop
|
| | |
|
|\ \
| |/
|/| |
fix(iter): allow table values in iterator pipelines
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This was originally meant as a convenience but prevents possible
functionality. For example:
-- Get the keys of the table with even values
local t = { a = 1, b = 2, c = 3, d = 4 }
vim.iter(t):map(function(k, v)
if v % 2 == 0 then return k end
end):totable()
The example above would not work, because the map() function returns
only a single value, and cannot be converted back into a table (there
are many such examples like this).
Instead, to convert an iterator into a map-like table, users can use
fold():
vim.iter(t):fold({}, function(t, k, v)
t[k] = v
return t
end)
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If pack() is called with a single value, it does not create a table; it
simply returns the value it is passed. When unpack is called with a
table argument, it interprets that table as a list of values that were
packed together into a table.
This causes a problem when the single value being packed is _itself_ a
table. pack() will not place it into another table, but unpack() sees
the table argument and tries to unpack it.
To fix this, we add a simple "tag" to packed table values so that
unpack() only attempts to unpack tables that have this tag. Other tables
are left alone. The tag is simply the length of the table.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Problem: Jenkinsfiles are not recognized as groovy.
Solution: Add a pattern for Jenkinsfiles. (closes vim/vim#12236)
https://github.com/vim/vim/commit/142ffb024dd5123090c2fd02f55702e76520f1df
Co-authored-by: dundargoc <gocdundar@gmail.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Problem: Strace filetype detection is expensive.
Solution: Match with a cheap pattern first. (Federico Mengozzi,
closes vim/vim#12220)
https://github.com/vim/vim/commit/6e5a9f948221b52caaaf106079cb3430c4dd7c77
Co-authored-by: Federico Mengozzi <19249682+fedemengo@users.noreply.github.com>
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: There is no way to get a list of swap file names.
Solution: Add the swapfilelist() function. Use it in the test script to
clean up. Remove deleting individual swap files.
https://github.com/vim/vim/commit/c216a7a21a25a701b84b79abc1ba6ab0baa3a311
vim-patch:9.0.1005: a failed test may leave a swap file behind
Problem: A failed test may leave a swap file behind.
Solution: Delete the swap file to avoid another test to fail. Use another
file name.
https://github.com/vim/vim/commit/d0f8d39d20f8d42f7451f781f7be0bcd20e06741
Cherry-pick test_window_cmd.vim changes from patch 8.2.1593.
Remove FUNC_ATTR_UNUSED from eval functions as fptr is always unused.
Co-authored-by: Bram Moolenaar <Bram@vim.org>
|
|
|
|
|
| |
vim.iter wraps a table or iterator function into an `Iter` object with
methods such as `filter`, `map`, and `fold` which can be chained to
produce iterator pipelines that do not create new tables at each step.
|
| |
|