aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/autocmd.c
Commit message (Collapse)AuthorAge
* vim-patch:8.2.4713: plugins cannot track text scrollingzeertzjq2022-04-12
| | | | | | | | 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.
* vim-patch:8.2.4723: the ModeChanged autocmd event is inefficientzeertzjq2022-04-10
| | | | | | | | | 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.
* feat(api)!: pass args table to autocommand callbacksGregory Anders2022-04-08
|
* fix(autocmd): restore autocmd showing behaviorzeertzjq2022-04-06
|
* fix(api): delete all autocmds with the same IDLewis Russell2022-04-01
|
* fix(api): improve autocmd error handlingLewis Russell2022-03-31
| | | | | - nvim_del_augroup_* now works with pcall - nvim_del_autocmd now errors for invalid ids
* fix: set nested before executing callback (#17801)TJ DeVries2022-03-30
|
* feat(api): remove Lua autocommand callbacks when they return true (#17784)Gregory Anders2022-03-19
| | | | This copies the semantics of nvim_buf_attach callbacks, and is a convenient way to create oneshot autocommands gated by some condition.
* chore: fix typos (#17670)dundargoc2022-03-17
| | | Co-authored-by: zeertzjq <zeertzjq@outlook.com>
* refactor: minimize variable scope and eliminate empty declarationsDundar Göc2022-03-13
|
* fix(coverity): dead code and operands don't affect result #17662dundargoc2022-03-11
| | | | | | | | | | | | | | | | | | | | | * 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): autocmd `group` can be either name or id (#17559)Dhruv Manilawala2022-03-07
| | | | | | | | | | | | | | | | | | | | | | | | * 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>
* chore(autocmd): move comment to the right placezeertzjq2022-03-04
|
* fix(autocmd): clean up autocmds only when needed (#17593)Jaehwang Jung2022-03-04
|
* refactor(autocmd): simplify check for freed callbackbfredl2022-03-03
| | | | When a callback is freed the type is always set to kCallbackNone.
* refactor(clang): dead assignment buflocal_nr = 0zeertzjq2022-03-02
|
* Merge pull request #15079 from shadmansaleh/feat/verbose_luabfredl2022-03-01
|\ | | | | feat(lua): add :verbose support for lua config
| * feat(lua): show proper verbose output for lua configurationshadmansaleh2022-02-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `: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.
* | fix(api): include event in get_autocmds (#17553)Christian Clason2022-03-01
| |
* | feat(lua): add missing changes to autocmds lost in the rebaseTJ DeVries2022-02-28
|/ | | | Note: some of these changes are breaking, like change of API signatures
* feat(lua): add api and lua autocmdsTJ DeVries2022-02-27
|
* vim-patch:8.2.4345: <amatch> is expanded like a file name for DirChangedPrezeertzjq2022-02-17
| | | | | | 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
* feat(events): add DirChangedPrezeertzjq2022-02-11
| | | | | | | | | | | | | 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
* refactor(PVS/V547): expression is always true/falseDundar Göc2022-02-08
|
* vim-patch:8.2.4028: ml_get error with :doautoall and Visual areaSean Dewar2022-02-03
| | | | | | | | 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.
* fix: set RedrawingDisabled before entering aucmd_winzeertzjq2022-01-25
|
* fix: update last cursor on first CursorMoved (#16698)Michael Lingelbach2021-12-18
| | | | | | | | | | | | | | | | | | | | 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
* refactor(misc1): move out high-level input functions to a new file: input.cBjörn Linse2021-12-10
| | | | | Possibly dialog code is messages.c could be moved here as well. misc1.c is now empty, so delete it.
* refactor(misc1): move line_breakcheck family of functions to os/input.cBjörn Linse2021-12-09
|
* vim-patch:8.2.1783: try-catch test failsSean Dewar2021-12-07
| | | | | | | | | 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.
* vim-patch:8.2.1781: writing to prompt buffer interferes with insert modeSean Dewar2021-12-07
| | | | | | | | | | | 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).
* vim-patch:8.2.3555: ModeChanged is not triggered on every mode changeMagnus Groß2021-11-18
| | | | | | 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
* vim-patch:8.2.3430: no generic way to trigger an autocommand on mode changeMagnus Groß2021-11-18
| | | | | | | | | | | | | | | | | 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.
* vim-patch:8.1.0779: argument for message functions is inconsistentJames McCoy2021-11-01
| | | | | | Problem: Argument for message functions is inconsistent. Solution: Make first argument to msg() "char *". https://github.com/vim/vim/commit/32526b3c1846025f0e655f41efd4e5428da16b6c
* vim-patch:8.1.0743: giving error messages is not flexibleJames McCoy2021-11-01
| | | | | | | | | 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
* vim-patch:8.2.3460: some type casts are not needed #15868dundargoc2021-10-02
| | | | | Problem: Some type casts are not needed. Solution: Remove unnecessary type casts. (closes vim/vim#8934) https://github.com/vim/vim/commit/dfa5e464d459f84200a73d178f1ecefe75bbe511
* Refactor/uncrustify (#15790)dundargoc2021-09-29
| | | | | | | | | | | | | * 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
* refactor: format with uncrustify #15778dundargoc2021-09-25
| | | * fixup: force exactly one whitespace between type and variable
* refactor: format with uncrustify #15722dundargoc2021-09-19
|
* refactor(api): remove unneccesary indirection around handlesBjörn Linse2021-08-22
| | | | | These things are just maps to pointers, no need to perform a huge song and dance around it.
* fix(autocmd.c): fix conditions in block_autocmds, unblock_autocmds #15372gmntroll2021-08-16
| | | | Logic got swapped in 7574918dc7b823c4a22eeb4949acfb9381446eab. We didn't notice it since v:termresponse isn't really used yet. #6279
* vim-patch:8.2.2695: cursor position reset with nested autocommandsJan Edmund Lazo2021-04-03
| | | | | | | | | | | | | | | | | | | | | 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
* w_grid_alloc: baseline implBjörn Linse2021-03-22
|
* vim-patch:8.2.2596: :doautocmd may confuse scripts listening to WinEnterJan Edmund Lazo2021-03-14
| | | | | | 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
* option: use char* for set_string_option_direct()Jan Edmund Lazo2021-02-07
| | | | | | | "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.
* vim-patch:8.2.2420: too many problems with using all autocommand eventsJan Edmund Lazo2021-01-28
| | | | | | | | | 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.
* vim-patch:8.2.1966: popup becomes current window after closing a terminal windowJan Edmund Lazo2020-12-20
| | | | | | | | 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
* vim-patch:8.1.1872: when Vim exits because of a signal, VimLeave is not ↵Jan Edmund Lazo2020-12-20
| | | | | | | | | 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
* vim-patch:8.1.0825: code for autocommands is mixed with file I/O code (#13305)TJ DeVries2020-11-24