| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
| |
Problem: Plugins cannot track text scrolling.
Solution: Add the WinScrolled event. (closes vim/vim#10102)
https://github.com/vim/vim/commit/0937182d49fa8db50cec42785f22f1031760a0bd
Skip User event in autocmd.txt, not needed unless #10689 is reverted.
|
|
|
|
|
|
|
|
|
| |
Problem: The ModeChanged autocmd event is inefficient.
Solution: Avoid allocating memory. (closes vim/vim#10134) Rename
trigger_modechanged() to may_trigger_modechanged().
https://github.com/vim/vim/commit/2bf52dd065495cbf28e28792f2c2d50d44546d9f
Make v:event readonly for ModeChanged.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
- nvim_del_augroup_* now works with pcall
- nvim_del_autocmd now errors for invalid ids
|
| |
|
|
|
|
| |
This copies the semantics of nvim_buf_attach callbacks, and is a
convenient way to create oneshot autocommands gated by some condition.
|
|
|
| |
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* fix(coverity/349942): structurally dead code
* fix(coverity/331396): operands don't affect result
* fix(coverity/331393): operands don't affect result
* fix(coverity/331392): operands don't affect result
* fix(coverity/331384): operands don't affect result
* fix(coverity/331374): operands don't affect result
* fix(coverity/331372): operands don't affect result
* fix(coverity/331371): operands don't affect result
* fix(coverity/331364): operands don't affect result
* fix(coverity/105585): operands don't affect result
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* feat(api): `group` can be either string or int
This affects the following API functions:
- `vim.api.nvim_create_autocmd`
- `vim.api.nvim_get_autocmds`
- `vim.api.nvim_do_autocmd`
closes #17552
* refactor: add two maps for fast lookups
* fix: delete augroup info from id->name map
When in "stupid_legacy_mode", the value in name->id map would be updated
to `AUGROUP_DELETED`, but the entry would still remain in id->name. This
would create a problem in `augroup_name` function which would return the
name of the augroup instead of `--DELETED--`.
The id->name map is only used for fast loopup in `augroup_name` function
so there's no point in keeping the entry of deleted augroup in it.
Co-authored-by: TJ DeVries <devries.timothyj@gmail.com>
|
| |
|
| |
|
|
|
|
| |
When a callback is freed the type is always set to kCallbackNone.
|
| |
|
|\
| |
| | |
feat(lua): add :verbose support for lua config
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
`:verbose` didn't work properly with lua configs (For example:
options or keymaps are set from lua, just say that they were set
from lua, doesn't say where they were set at.
This fixes that issue. Now `:verbose` will provide filename and line no
when option/keymap is set from lua.
Changes:
- compiles lua/vim/keymap.lua as vim/keymap.lua
- When souring a lua file current_sctx.sc_sid is set to SID_LUA
- Moved finding scripts SID out of `do_source()` to `get_current_script_id()`.
So it can be reused for lua files.
- Added new function `nlua_get_sctx` that extracts current lua scripts
name and line no with debug library. And creates a sctx for it.
NOTE: This function ignores C functions and blacklist which
currently contains only vim/_meta.lua so vim.o/opt wrappers aren't
targeted.
- Added function `nlua_set_sctx` that changes provided sctx to current
lua scripts sctx if a lua file is being executed.
- Added tests in tests/functional/lua/verbose_spec.lua
- add primary support for additional types (:autocmd, :function, :syntax) to lua verbose
Note: These can't yet be directly set from lua but once that's possible
:verbose should work for them hopefully :D
- add :verbose support for nvim_exec & nvim_command within lua
Currently auto commands/commands/functions ... can only be defined
by nvim_exec/nvim_command this adds support for them. Means if those
Are defined within lua with vim.cmd/nvim_exec :verbose will show their
location . Though note it'll show the line no on which nvim_exec call was made.
|
| | |
|
|/
|
|
| |
Note: some of these changes are breaking, like change of API signatures
|
| |
|
|
|
|
|
|
| |
Problem: <amatch> is expanded like a file name for DirChangedPre.
Solution: Do not expand <amatch>. (closes vim/vim#9742) Also for the User event.
https://github.com/vim/vim/commit/f6246f51e3d85a982a899b4a8fd9045a5e23016f
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In Nvim, like DirChanged, this also triggers when switching windows.
This marks Vim patch 8.2.4335 as ported.
vim-patch:8.2.4335: no autocommand event triggered before changing directory
Problem: No autocommand event triggered before changing directory. (Ronnie
Magatti)
Solution: Add DirChangedPre. (closes vim/vim#9721)
https://github.com/vim/vim/commit/28e8f73ae2d90009fd62cd60f97c2643ba44de68
|
| |
|
|
|
|
|
|
|
|
| |
Problem: ml_get error with :doautoall and Visual area. (Sean Dewar)
Solution: Disable Visual mode while executing autocommands.
https://github.com/vim/vim/commit/cb1956d6f2aece8ad93e19e5d4c7e0b5e405f056
This should also fix #16937 for nvim_buf_call, so test for it.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Closes https://github.com/neovim/neovim/issues/16625 https://github.com/neovim/neovim/issues/12923
The first defined CursorMoved autocommand will immediately
fire if the cursor has previously moved upon definition
of the autocommand.
Plugins add dummy autocommands such as:
```lua
autocmd CursorMoved * execute ''
```
to avoid this behavior.
Instead, when defining a new CursorHold autocommand, force
update the last cursor position.
See https://github.com/vim/vim/issues/2053
|
|
|
|
|
| |
Possibly dialog code is messages.c could be moved here as well.
misc1.c is now empty, so delete it.
|
| |
|
|
|
|
|
|
|
|
|
| |
Problem: Try-catch test fails.
Solution: Don't call win_enter(), only call enterering_window().
https://github.com/vim/vim/commit/bdf931c25b4fe78877106ca529baee7899d0f6a4
v8.2.1781 caused Test_reload_in_try_catch() from v8.2.0004 to fail in Vim, but
it has not been ported yet.
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: Writing to prompt buffer interferes with insert mode.
Solution: Use win_enter() instead of just setting "curwin". (Ben Jackson,
closes vim/vim#7035)
https://github.com/vim/vim/commit/4537bcc88956f86267c25edf8008e0dbde598652
Vim test will be skipped, so add a Lua test.
The problem boils down to the use of aucmd_restbuf in a callback, so just test
that (via nvim_buf_set_lines).
|
|
|
|
|
|
| |
Problem: ModeChanged is not triggered on every mode change.
Solution: Also trigger on minor mode changes. (Maguns Gross, closes vim/vim#8999)
https://github.com/vim/vim/commit/25def2c8b8bd7b0c3d5f020207c717a880b05d50
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: No generic way to trigger an autocommand on mode change.
Solution: Add the ModeChanged autocommand event. (Magnus Gross, closes vim/vim#8856)
https://github.com/vim/vim/commit/f1e8876fa2359b572d262772747405d3616db670
N/A patches for version.c:
vim-patch:8.2.3434: function prototype for trigger_modechanged() is incomplete
Problem: Function prototype for trigger_modechanged() is incomplete.
Solution: Add "void".
https://github.com/vim/vim/commit/28e591dd5080bbcd0f468f9d9597cedb716e28c9
Fixes #4399.
Fixes #7416.
|
|
|
|
|
|
| |
Problem: Argument for message functions is inconsistent.
Solution: Make first argument to msg() "char *".
https://github.com/vim/vim/commit/32526b3c1846025f0e655f41efd4e5428da16b6c
|
|
|
|
|
|
|
|
|
| |
Problem: Giving error messages is not flexible.
Solution: Add semsg(). Change argument from "char_u *" to "char *", also
for msg() and get rid of most MSG macros. (Ozaki Kiichi, closes
vim/vim#3302) Also make emsg() accept a "char *" argument. Get rid of
an enormous number of type casts.
https://github.com/vim/vim/commit/f9e3e09fdc93be9f0d47afbc6c7df1188c2a5a0d
|
|
|
|
|
| |
Problem: Some type casts are not needed.
Solution: Remove unnecessary type casts. (closes vim/vim#8934)
https://github.com/vim/vim/commit/dfa5e464d459f84200a73d178f1ecefe75bbe511
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* refactor: format with uncrustify
* fixup(dundar): fix functions comments
* fixup(dundar): remove space between variable and ++/--
* fixup(dundar): better workaround for macro attributes
This is done to be able to better use uncrustify rules for macros
* fixup(justin): make preprocessors follow neovim style guide
|
|
|
| |
* fixup: force exactly one whitespace between type and variable
|
| |
|
|
|
|
|
| |
These things are just maps to pointers, no need to perform
a huge song and dance around it.
|
|
|
|
| |
Logic got swapped in 7574918dc7b823c4a22eeb4949acfb9381446eab.
We didn't notice it since v:termresponse isn't really used yet. #6279
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: Cursor position reset with nested autocommands.
Solution: Only check and reset line numbers for not nested autocommands.
(closes vim/vim#5820)
https://github.com/vim/vim/commit/1e6bbfb5607c82d872070219c26e2aae20db68ed
N/A patches for version.c:
vim-patch:8.2.2700: nested autocmd test fails sometimes
Problem: Nested autocmd test fails sometimes.
Solution: Wait for the job to finish.
https://github.com/vim/vim/commit/6437475ffb421d6ac35572aa779ff24b70c5206b
vim-patch:8.2.2701: order of removing FORTIFY_SOURCE is wrong
Problem: Order of removing FORTIFY_SOURCE is wrong.
Solution: Use the more specific pattern first.
https://github.com/vim/vim/commit/26f201345dadef2a048db5aea804f6c1b54f1a0b
|
| |
|
|
|
|
|
|
| |
Problem: :doautocmd may confuse scripts listening to WinEnter.
Solution: Do the current buffer last. (closes vim/vim#7958)
https://github.com/vim/vim/commit/41cd80335cf318c15c8b0139f53ab5e8a02561ef
|
|
|
|
|
|
|
| |
"name" param was cast to (const char *).
All calls to set_string_option_direct() cast 1st arg
from (char *) to (char_u *).
Remove these useless casts.
|
|
|
|
|
|
|
|
|
| |
Problem: Too many problems with using all autocommand events.
Solution: Disallow defining an autocommand for all events.
https://github.com/vim/vim/commit/9a046fd08bcae319d39a4dbde2be81decee19013
Delete Test_wipe_cbuffer().
Commit dc5f4a3cc2f7f02e1ff4ec2f67eda4fb73e7d89c should have removed it.
|
|
|
|
|
|
|
|
| |
Problem: Popup becomes current window after closing a terminal window.
Solution: When restoring the window after executing autocommands, check that
the window ID is still the same. (Naruhiko Nishino,
closes vim/vim#7272)
https://github.com/vim/vim/commit/cbcd9cbd77acc8cc97c0d44683d96c01d3dd0fa7
|
|
|
|
|
|
|
|
|
| |
triggered
Problem: When Vim exits because of a signal, VimLeave is not triggered.
(Daniel Hahler)
Solution: Unblock autocommands when triggering VimLeave. (closes vim/vim#4818)
https://github.com/vim/vim/commit/c7226684c82dde7eb6601e067ee2e9387e447903
|
|
|