| Commit message (Collapse) | Author | Age |
... | |
|
|
|
| |
This example is made obsolete by the addition of `vim.lsp.start()` and
`vim.fs` (whose use is already documented in `:h lsp-quickstart`).
|
|\
| |
| | |
refactor(build): include lpeg as a library
|
| | |
|
| |
| |
| | |
Discovered using --shuffle argument of busted.
|
| |
| |
| | |
BUSTED_PRG is no longer used by RunTests.cmake.
|
| |
| |
| | |
This is to force a rebuild each time a file is changed.
|
| |
| |
| |
| |
| |
| | |
Problem: Wrong scrolling with ls=0 and :botright split.
Solution: Add statusline before calling frame_new_height(). (closes vim/vim#12299)
https://github.com/vim/vim/commit/fbf2071ac9ef08302a1df86c15f3d4ddbe871243
|
| |
| |
| |
| | |
Notable changes: replace all infinite loops to `while(true)` and remove
`int` from `unsigned int`.
|
| |
| |
| |
| |
| |
| | |
Cirrus ci automatically pushes/caches docker images, which makes
containerization much simpler to handle. Moving this job to cirrus ci
shortens the job by a minute, and reduces github actions CI usage by two
minutes per PR.
|
| | |
|
| | |
|
| |
| |
| | |
`sre_compile` is deprecated in python 11, and gives warning when is used.
|
|\ \
| |/
|/| |
fix(normal): fix repeated trigger modechanged for scheduled callback
|
| | |
|
|/
|
|
|
|
|
|
| |
Problem: The ModeChanged event may be triggered too often.
Solution: Only trigger ModeChanged when no operator is pending.
(closes vim/vim#12298)
https://github.com/vim/vim/commit/73916bac5ac2a054a0c71adfe8d742691cdfd95c
|
|\
| |
| | |
refactor(fs): IT'S TIME: get rid of fs_loop and fs_loop_mutex
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Here's the headline: when run in sync mode (last argument cb=NULL),
these functions don't actually use the uv_loop_t.
An earlier version of this patch instead replaced fs_loop with
using main_loop.uv on the main thread and luv_loop() on luv worker
threads. However this made the code more complicated for no reason.
Also arbitrarily, half of these functions would attempt to handle
UV_ENOMEM by try_to_free_memory(). This would mostly happen
on windows because it needs to allocate a converted WCHAR buffer.
This should be a quite rare situation. Your system is pretty
much hosed already if you cannot allocate like 50 WCHAR:s.
Therefore, take the liberty of simply removing this fallback.
In addition, we tried to "recover" from ENOMEM in read()/readv()
this way which doesn't make any sense. The read buffer(s) are already
allocated at this point.
This would also be an issue when using these functions on a worker
thread, as try_to_free_memory() is not thread-safe. Currently
os_file_is_readable() and os_is_dir() is used by worker threads
(as part of nvim__get_runtime(), to implement require from 'rtp' in
threads).
In the end, these changes makes _all_ os/fs.c functions thread-safe,
and we thus don't need to document and maintain a thread-safe subset.
|
| |
| |
| | |
Revert the permission changes in 794d2744f33562326172801ddd729853e7135347.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Problem: Functions for string manipulation are spread out.
Solution: Move string related functions to a new source file. (Yegappan
Lakshmanan, closes vim/vim#8470)
https://github.com/vim/vim/commit/a2438132a675be4dde3acbdf03ba1fdb2f09427c
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
specific (#23315)
Problem: Error message for wrong argument type is not specific.
Solution: Include more information in the error. (Yegappan Lakshmanan,
closes vim/vim#11037)
https://github.com/vim/vim/commit/8deb2b30c77035bb682ccf80b781455ac1d6038b
Skip reduce() and deepcopy() changes because of missing patches.
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
(#23314)
Problem: Using freed memory when executing delfunc at the more prompt.
Solution: Check function list not changed in another place. (closes vim/vim#11437)
https://github.com/vim/vim/commit/398a26f7fcd58fbc6e2329f892edbb7479a971bb
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>
|
|\ \ \
| | | |
| | | | |
vim-patch:8.2.{3768,3772}
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Problem: Timer info test fails on slow machine.
Solution: Use WaitForAssert().
https://github.com/vim/vim/commit/ff39a650b2bd31e30d1bb8766e8560f9a14a7137
Co-authored-by: Bram Moolenaar <Bram@vim.org>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Problem: timer_info() has the wrong repeat value in a timer callback.
Solution: Do not add one to the repeat value when in the callback.
(closes vim/vim#9294)
https://github.com/vim/vim/commit/95b2dd0c008f0977ebb3cbe233a5064001a332e1
Co-authored-by: Bram Moolenaar <Bram@vim.org>
|
|/ / / |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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>
|
| |/
|/|
| |
| | |
This height change is wrong, and the height will be overwritten later by
another height change.
|
|\ \
| | |
| | | |
refactor(time): refactor delay with input checking
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Previously, there were three low-level delay entry points
- os_delay(ms, ignoreinput=true): sleep for ms, only break on got_int
- os_delay(ms, ignoreinput=false): sleep for ms, break on any key input
os_microdelay(us, false): equivalent, but in μs (not directly called)
- os_microdelay(us, true): sleep for μs, never break.
The implementation of the latter two both used uv_cond_timedwait()
This could have been for two reasons:
1. allow another thread to "interrupt" the wait
2. uv_cond_timedwait() has higher resolution than uv_sleep()
However we (1) never used the first, even when TUI was a thread, and
(2) nowhere in the codebase are we using μs resolution, it is always a ms
multiplied with 1000.
In addition, os_delay(ms, false) would completely block the thread for
100ms intervals and in between check for input. This is not how event handling
is done alound here.
Therefore:
Replace the implementation of os_delay(ms, false) to use
LOOP_PROCESS_EVENTS_UNTIL which does a proper epoll wait with a timeout,
instead of the 100ms timer panic.
Replace os_microdelay(us, false) with a direct wrapper of uv_sleep.
|
| |/
|/|
| |
| |
| | |
Problem: The 'statusline'-format ui elements do not receive right
click events when "mousemodel" is "popup*"
Solution: Do not draw popupmenu and handle click event instead.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Problem: 'statuscolumn' width may be reset after it has been drawn
when multiple windows contain the same buffer. This results
in an offset for the drawn cursor position.
Solution: Loop over all windows (twice) prior to drawing them to
reset the 'statuscolumn' width and validate the sign
column when necessary.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
`cmake --preset ci`
is equivalent to
`cmake -B build -G Ninja -D CI_BUILD=ON`
Also remove build presets as they're not very useful without workflow
presets, which are only available in schema versions 6 and above.
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
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: Crash when recovering from corrupted swap file.
Solution: Check for a valid page count. (closes vim/vim#12275)
https://github.com/vim/vim/commit/b67ba03d3ef2e6c5f207d508e85fc6906f938028
Co-authored-by: Bram Moolenaar <Bram@vim.org>
|
|
|
|
|
|
|
|
|
|
| |
files (#23272)
Problem: Small source file problems; outdated list of distributed files.
Solution: Small updates to source files and list of distributed files.
https://github.com/vim/vim/commit/f39d9e9dca443e42920066be3a98fd9780e4ed33
Co-authored-by: Bram Moolenaar <Bram@vim.org>
|
|
|
|
| |
Add screen:expect() calls after insert() to make sure the screen has
been drawn before we assert the state of the semantic tokens table
|
| |
|