aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/auevents.lua
Commit message (Collapse)AuthorAge
* Merge remote-tracking branch 'upstream/master' into aucmd_textputpostaucmd_textputpostJosh Rahm2023-11-30
|\
| * vim-patch:8.1.2044: no easy way to process postponed workzeertzjq2023-08-21
| | | | | | | | | | | | | | | | | | Problem: No easy way to process postponed work. (Paul Jolly) Solution: Add the SafeState autocommand event. https://github.com/vim/vim/commit/8aeec40207b5adcd3a155277dc4f29189343b963 Co-authored-by: Bram Moolenaar <Bram@vim.org>
| * feat(lsp): implement textDocument/diagnostic (#24128)Chris AtLee2023-07-20
| |
| * feat(lsp)!: add vim.lsp.status, client.progress and promote ↵Mathias Fußenegger2023-06-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | LspProgressUpdate (#23958) `client.messages` could grow unbounded because the default handler only added new messages, never removing them. A user either had to consume the messages by calling `vim.lsp.util.get_progress_messages` or by manually removing them from `client.messages.progress`. If they didn't do that, using LSP effectively leaked memory. To fix this, this deprecates the `messages` property and instead adds a `progress` ring buffer that only keeps at most 50 messages. In addition it deprecates `vim.lsp.util.get_progress_messages` in favour of a new `vim.lsp.status()` and also promotes the `LspProgressUpdate` user autocmd to a regular autocmd to allow users to pattern match on the progress kind. Also closes https://github.com/neovim/neovim/pull/20327
| * feat(lsp)!: promote LspRequest to a full autocmd and enrich with additional ↵jdrouhard2023-05-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | data (#23694) BREAKING CHANGE: LspRequest is no longer a User autocmd but is now a first class citizen. LspRequest as a User autocmd had limited functionality. Namely, the only thing you could do was use the notification to do a lookup on all the clients' requests tables to figure out what changed. Promoting the autocmd to a full autocmd lets us set the buffer the request was initiated on (so people can set buffer-local autocmds for listening to these events). Additionally, when used from Lua, we can pass additional metadata about the request along with the notification, including the client ID, the request ID, and the actual request object stored on the client's requests table. Users can now listen for these events and act on them proactively instead of polling all of the requests tables and looking for changes.
| * feat(lsp)!: add rule-based sem token highlighting (#22022)swarn2023-03-06
| | | | | | | | | | | | | | | | | | | | | | | | | | feat(lsp)!: change semantic token highlighting Change the default highlights used, and add more highlights per token. Add an LspTokenUpdate event and a highlight_token function. :Inspect now shows any highlights applied by token highlighting rules, default or user-defined. BREAKING CHANGE: change the default highlight groups used by semantic token highlighting.
* | feat(TextPutPost): add TextPutPost autocommandJosh Rahm2023-02-02
|/ | | | | | | | | Adds a new autocommand, TextPutPost. This autocommand fires when the user puts text with p or P. The motivating feature for this change was to implement a plugin that "carries" Java imports between files. I.e. yanking from one java file and pasting into another would automatically add the imports required.
* build: make generated source files reproducible #21586Arnout Engelen2023-01-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Build is not reproducible, because generated source files (.c/.h/) are not deterministic, mostly because Lua pairs() is unordered by design (for security). https://github.com/LuaJIT/LuaJIT/issues/626#issuecomment-707005671 https://www.lua.org/manual/5.1/manual.html#pdf-next > The order in which the indices are enumerated is not specified [...] > >> The hardening of the VM deliberately randomizes string hashes. This in >> turn randomizes the iteration order of tables with string keys. Solution: - Update the code generation scripts to be deterministic. - That is only a partial solution: the exported function (funcs_metadata.generated.h) and ui event (ui_events_metadata.generated.h) metadata have some mpack'ed tables, which are not serialized deterministically. - As a workaround, introduce `PRG_GEN_LUA` cmake setting, so you can inject a modified build of luajit (with LUAJIT_SECURITY_PRN=0) that preserves table order. - Longer-term we should change the mpack'ed data structure so it no longer uses tables keyed by strings. Closes #20124 Co-Authored-By: dundargoc <gocdundar@gmail.com> Co-Authored-By: Arnout Engelen <arnout@bzzt.net>
* vim-patch:partial:9.0.0917: the WinScrolled autocommand event is not enough ↵zeertzjq2022-11-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | (#21161) Problem: The WinScrolled autocommand event is not enough. Solution: Add WinResized and provide information about what changed. (closes vim/vim#11576) https://github.com/vim/vim/commit/35fc61cb5b5eba8bbb9d8f0700332fbab38f40ca Omit "func_name" comment in tv_dict_extend(): Vim9 script only. Skip layout locking and E1312. Skip list_alloc_with_items() and list_set_item(). Since this overrides remaining changes in patch 9.0.0913, that patch can now be marked as fully ported: vim-patch:9.0.0913: only change in current window triggers the WinScrolled event N/A patches for version.c: vim-patch:9.0.0919: build failure with tiny features Problem: Build failure with tiny features. Solution: Adjust #ifdef's. https://github.com/vim/vim/commit/9c5b7cb4cf67c64648a324e9dfd1e17d793335a4 Co-authored-by: Bram Moolenaar <Bram@vim.org>
* vim-patch:9.0.0756 #20680Shougo2022-11-06
| | | | | | Problem: No autocmd event for changing text in a terminal window. Solution: Add TextChangedT. (Shougo Matsushita, closes vim/vim#11366) https://github.com/vim/vim/commit/4ccaedfcd7526983f4b6b3b06b0bfb54f333f1f3
* feat(lsp): add LspAttach and LspDetach autocommandsGregory Anders2022-05-18
| | | | | | | | | | | | | | | | | | | | | | | | | The current approach of using `on_attach` callbacks for configuring buffers for LSP is suboptimal: 1. It does not use the standard Nvim interface for driving and hooking into events (i.e. autocommands) 2. There is no way for "third parties" (e.g. plugins) to hook into the event. This means that *all* buffer configuration must go into the user-supplied on_attach callback. This also makes it impossible for these configurations to be modular, since it all must happen in the same place. 3. There is currently no way to do something when a client detaches from a buffer (there is no `on_detach` callback). The solution is to use the traditional method of event handling in Nvim: autocommands. When a LSP client is attached to a buffer, fire a `LspAttach`. Likewise, when a client detaches from a buffer fire a `LspDetach` event. This enables plugins to easily add LSP-specific configuration to buffers as well as enabling users to make their own configurations more modular (e.g. by creating multiple LspAttach autocommands that each do something unique).
* 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.
* 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
* docs(autocmd): update docs to match implementationThomas Vigouroux2021-12-18
| | | | | | | | | | | | | | | | | | | | | | docs(reg_recorded): add links to relevant docs docs(Recording): update docs to match implementation docs(Q) update references of Q to be gQ docs(autocmd) add description about state of reg_record{ing,ed} for RecordingLeave docs(vim_diff) add Recording{Enter,Leave} to features docs(index) removed duplicate gQ docs(options) removed line about gQ erroring in visual mode Update runtime/doc/vim_diff.txt Co-authored-by: zeertzjq <zeertzjq@outlook.com> docs(vim_diff) removed double mention of Q
* feat(autocmd): add Recording autocmdsThomas Vigouroux2021-12-18
| | | | | | | | | | | | | | feat(eval): add reg_recorded() This function is used the get the last recorded register. style(Recording): rename handler to match suggestions fix(RecordingLeave): send autocommand earlier This makes the autocommand fire just before setting reg_recorded to reg_recording, this way we clearly show that we are actually just before actually quitting the recording mode.
* feat: add autocommand event when search wraps around (#8487)Alejandro Exojo2021-12-10
|
* Merge pull request #15840 from vimpostor/vim-8.2.3430Jan Edmund Lazo2021-11-30
|\ | | | | vim-patch:8.2.{3430,3434,3462,3463,3555,3609,3610}: ModeChanged autocmd
| * 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.
* | feat(diagnostic)!: make DiagnosticChanged a first class autocmd (#16098)Gregory Anders2021-11-25
|/ | | | | | | This allows users to hook into diagnostic events with finer granularity (e.g. per-buffer or file). BREAKING CHANGE: DiagnosticsChanged and LspDiagnosticsChanged user autocommands are removed.
* fix: finish renaming to BufModifiedSetRom Grk2020-11-07
|
* feat: implement BufModified autocmdRom Grk2020-11-07
|
* Merge branch 'master' into add-scroll-eventsRom Grk2020-11-03
|\
| * vim-patch:8.2.1874: can't do something just before leaving Insert modeJan Edmund Lazo2020-10-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Can't do something just before leaving Insert mode. Solution: Add the InsertLeavePre autocommand event. (closes vim/vim#7177) https://github.com/vim/vim/commit/b53e13a91ab2fc9d52bd044715daa84972f4ce47 N/A patches for version.c: vim-patch:8.1.1877: graduated features scattered Problem: Graduated features scattered. Solution: Put graduated and obsolete features together. https://github.com/vim/vim/commit/ffc0716af8e448ef8a2a3249edfd0260546933df vim-patch:8.2.1875: warning when building GTK gui Problem: Warning when building GTK gui. Solution: Add missing function parameter. https://github.com/vim/vim/commit/3da855c8e28140d9f02b1572e445f8d4f977cf64 vim-patch:8.2.1877: test for function list fails Problem: Test for function list fails. Solution: Move "obsolete" comments one line up. https://github.com/vim/vim/commit/b8f519e5382f9876ae7f8bc64d9814d07a8ef972 vim-patch:8.2.1878: GTK: error for redefining function Problem: GTK: error for redefining function. (Tony Mechelynck) Solution: Remove "gtk_" prefix from local functions and prepend "gui_" to global functions. https://github.com/vim/vim/commit/8a99e66b4f7616d9b0b9cefe742f82f9122087d5 vim-patch:8.2.1881: cannot build with GTK3 Problem: Cannot build with GTK3. Solution: Adjust form functions. https://github.com/vim/vim/commit/692d1a51e74fea2db3c7e9ae7c7c6c3a1a1945ee vim-patch:8.2.1883: compiler warnings when using Python Problem: Compiler warnings when using Python. Solution: Adjust PyCFunction to also have the second argument. Use "int" return type for some functions. Insert "(void *)" to get rid of the remaining warnings. https://github.com/vim/vim/commit/4ce5fe4c87820c7d22964d6e91d7b07e96640e6f
* | feat: implement a working WinScrolled autocmdRom Grk2020-10-28
| |
* | implement scroll autocommandRom Grk2020-10-21
|/
* vim-patch:8.2.0158: triggering CompleteDone earlier is not backwards compatibleJan Edmund Lazo2020-01-26
| | | | | | | Problem: Triggering CompleteDone earlier is not backwards compatible. (Daniel Hahler) Solution: Add CompleteDonePre instead. https://github.com/vim/vim/commit/3f169ce17e8b779d105c96138a8b4246f2d270b9
* WinClosed: sort auevents.lua; improve testsJustin M. Keyes2020-01-18
| | | | | - test: reduce verbosity, condense redundancy, improve readability - auevents.lua: keep events sorted by name. ref afd1d412fa91
* autocmd: add WinClosed eventMarcos ALMEIDA2020-01-18
| | | | | | - only fire once, just before freeing mem - trigger when on a different buffer - avoid recursive calls in another tab
* autocmd: Fix event name casing #11332lacygoill2019-11-04
| | | Affects getcompletion()
* autocmds: TermEnter, TermLeave #8550Usama Hameed2019-09-14
| | | fix #8428
* rename: UIAttach/UIDetach => UIEnter/UILeaveJustin M. Keyes2019-09-12
| | | | | "enter"/"leave" is more conventional for Vim events, and "attach"/"detach" distinction does not gain much.
* UIAttach, UIDetachRui Abreu Ferreira2019-09-12
|
* vim-patch:8.1.0729: there is a SourcePre autocommand event but not a SourcePostJan Edmund Lazo2019-07-17
| | | | | | Problem: There is a SourcePre autocommand event but not a SourcePost. Solution: Add the SourcePost autocommand event. (closes vim/vim#3739) https://github.com/vim/vim/commit/2b6185287adf53343ed5f49e967ae402c64063e4
* doc [ci skip]Justin M. Keyes2019-04-08
| | | | - README.md: Removed waffle.io because that service is shutting down.
* autocmd: rename MenuPopupChanged to CompleteChanged #9819Qiming zhao2019-03-31
|
* autocmd: add MenuPopupChanged autocmdchemzqm2019-03-15
| | | | | | Update src/nvim/auevents.lua Co-Authored-By: chemzqm <chemzqm@gmail.com>
* events: add "Signal" event #9564Marco Hinz2019-02-04
| | | | | ..which gets triggered when SIGUSR1 is sent to the nvim process. Closes #9562
* vim-patch:8.0.1445: cannot act on edits in the command lineBjörn Linse2018-12-12
| | | | | | | | Problem: Cannot act on edits in the command line. Solution: Add the CmdlineChanged autocommand event. (xtal8, closes vim/vim#2603, closes vim/vim#2524) https://github.com/vim/vim/commit/153b704e20f9c269450a7d3ea8cafcf942579ab7
* vim-patch:8.1.0397: no event triggered after updating diffsAnatolii Sakhnik2018-12-09
| | | | | | | Problem: No event triggered after updating diffs. Solution: Add the DiffUpdated event. https://github.com/vim/vim/commit/e8fa05b5bc2d6d76bf5af50176a63655d00d1110
* auevents.lua: keep events in alphabetical orderJustin M. Keyes2018-10-22
|
* vim-patch:8.0.1777: cannot cleanup before loading another colorscheme (#9104)Jan Edmund Lazo2018-10-11
| | | | | Problem: Cannot cleanup before loading another colorscheme. Solution: Add the ColorSchemePre autocommand event. https://github.com/vim/vim/commit/60a68362aa73f4a6cb534688978f9dc2b16e60fe
* vim-patch:8.0.1595: no autocommand triggered before exitingJan Edmund Lazo2018-09-04
| | | | | | Problem: No autocommand triggered before exiting. Solution: Add the ExitPre autocommand event. https://github.com/vim/vim/commit/12a96de430779b88795fac87a2be666d9f661d1e
* api: list information about all channels/jobs.Björn Linse2018-05-23
| | | | | Fire autocmd when channel opens or its info changes. Add a way for API clients can describe themselves.
* vim-patch:8.0.1494: no autocmd triggered in Insert mode with visible popup menuShougo Matsushita2018-05-14
| | | | | | | | | | Problem: No autocmd triggered in Insert mode with visible popup menu. Solution: Add TextChangedP. (Prabir Shrestha, Christian Brabandt, closes vim/vim#2372, closes vim/vim#1691) Fix that the TextChanged autocommands are not always triggered when sourcing a script. https://github.com/vim/vim/commit/5a093437199001a0d60d8e18e2b9539b99a7757c
* events: VimSuspend, VimResume #8280geekodour2018-04-15
| | | | | closes #3648 ref #5959
* cmdline: CmdlineEnter and CmdlineLeave autocommands (#7422)Björn Linse2017-11-22
| | | | | | | | | | vim-patch:fafcf0dd59fd patch 8.0.1206: no autocmd for entering or leaving the command line Problem: No autocmd for entering or leaving the command line. Solution: Add CmdlineEnter and CmdlineLeave. https://github.com/vim/vim/commit/fafcf0dd59fd9c4ef743bb333ae40d1d322b6079
* Merge #5928 'New event: DirChanged'Marco Hinz2017-01-16
|\
| * New event: DirChangedMarco Hinz2017-01-13
| |
* | vim-patch:7.4.2075rover2017-01-08
|/ | | | | | | Problem: No autocommand event to initialize a window or tab page. Solution: Add WinNew and TabNew events. (partly by Felipe Morales) https://github.com/vim/vim/commit/c917da4b3e8801a255dbefea8e4ed19c1c716dd8
* TextYankPost: add information to v:event and update testsBjörn Linse2016-02-29
|