aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/auevents.lua
blob: a9b63b0b17c2de27a28517382b00adba260f21aa (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
return {
  --- @type table<string,boolean>
  --- Keys are events names.
  --- Values are boolean indicating whether the event is window-local.
  events = {
    BufAdd = true, -- after adding a buffer to the buffer list
    BufDelete = true, -- deleting a buffer from the buffer list
    BufEnter = true, -- after entering a buffer
    BufFilePost = true, -- after renaming a buffer
    BufFilePre = true, -- before renaming a buffer
    BufHidden = true, -- just after buffer becomes hidden
    BufLeave = true, -- before leaving a buffer
    BufModifiedSet = true, -- after the 'modified' state of a buffer changes
    BufNew = true, -- after creating any buffer
    BufNewFile = true, -- when creating a buffer for a new file
    BufReadCmd = true, -- read buffer using command
    BufReadPost = true, -- after reading a buffer
    BufReadPre = true, -- before reading a buffer
    BufUnload = true, -- just before unloading a buffer
    BufWinEnter = true, -- after showing a buffer in a window
    BufWinLeave = true, -- just after buffer removed from window
    BufWipeout = true, -- just before really deleting a buffer
    BufWriteCmd = true, -- write buffer using command
    BufWritePost = true, -- after writing a buffer
    BufWritePre = true, -- before writing a buffer
    ChanInfo = false, -- info was received about channel
    ChanOpen = false, -- channel was opened
    CmdUndefined = false, -- command undefined
    CmdlineChanged = false, -- command line was modified
    CmdlineEnter = false, -- after entering cmdline mode
    CmdlineLeave = false, -- before leaving cmdline mode
    CmdwinEnter = false, -- after entering the cmdline window
    CmdwinLeave = false, -- before leaving the cmdline window
    ColorScheme = false, -- after loading a colorscheme
    ColorSchemePre = false, -- before loading a colorscheme
    CompleteChanged = false, -- after popup menu changed
    CompleteDone = false, -- after finishing insert complete
    CompleteDonePre = false, -- idem, before clearing info
    CursorHold = true, -- cursor in same position for a while
    CursorHoldI = true, -- idem, in Insert mode
    CursorMoved = true, -- cursor was moved
    CursorMovedC = true, -- cursor was moved in Cmdline mode
    CursorMovedI = true, -- cursor was moved in Insert mode
    DiagnosticChanged = false, -- diagnostics in a buffer were modified
    DiffUpdated = false, -- diffs have been updated
    DirChanged = false, -- directory changed
    DirChangedPre = false, -- directory is going to change
    EncodingChanged = false, -- after changing the 'encoding' option
    ExitPre = false, -- before exiting
    FileAppendCmd = true, -- append to a file using command
    FileAppendPost = true, -- after appending to a file
    FileAppendPre = true, -- before appending to a file
    FileChangedRO = true, -- before first change to read-only file
    FileChangedShell = true, -- after shell command that changed file
    FileChangedShellPost = true, -- after (not) reloading changed file
    FileReadCmd = true, -- read from a file using command
    FileReadPost = true, -- after reading a file
    FileReadPre = true, -- before reading a file
    FileType = true, -- new file type detected (user defined)
    FileWriteCmd = true, -- write to a file using command
    FileWritePost = true, -- after writing a file
    FileWritePre = true, -- before writing a file
    FilterReadPost = true, -- after reading from a filter
    FilterReadPre = true, -- before reading from a filter
    FilterWritePost = true, -- after writing to a filter
    FilterWritePre = true, -- before writing to a filter
    FocusGained = false, -- got the focus
    FocusLost = false, -- lost the focus to another app
    FuncUndefined = false, -- if calling a function which doesn't exist
    GUIEnter = false, -- after starting the GUI
    GUIFailed = false, -- after starting the GUI failed
    InsertChange = true, -- when changing Insert/Replace mode
    InsertCharPre = true, -- before inserting a char
    InsertEnter = true, -- when entering Insert mode
    InsertLeave = true, -- just after leaving Insert mode
    InsertLeavePre = true, -- just before leaving Insert mode
    LspAttach = false, -- after an LSP client attaches to a buffer
    LspDetach = false, -- after an LSP client detaches from a buffer
    LspNotify = false, -- after an LSP notice has been sent to the server
    LspProgress = false, -- after a LSP progress update
    LspRequest = false, -- after an LSP request is started, canceled, or completed
    LspTokenUpdate = false, -- after a visible LSP token is updated
    MenuPopup = false, -- just before popup menu is displayed
    ModeChanged = false, -- after changing the mode
    OptionSet = false, -- after setting any option
    QuickFixCmdPost = false, -- after :make, :grep etc.
    QuickFixCmdPre = false, -- before :make, :grep etc.
    QuitPre = false, -- before :quit
    RecordingEnter = true, -- when starting to record a macro
    RecordingLeave = true, -- just before a macro stops recording
    RemoteReply = false, -- upon string reception from a remote vim
    SafeState = false, -- going to wait for a character
    SearchWrapped = true, -- after the search wrapped around
    SessionLoadPost = false, -- after loading a session file
    SessionWritePost = false, -- after writing a session file
    ShellCmdPost = false, -- after ":!cmd"
    ShellFilterPost = true, -- after ":1,2!cmd", ":w !cmd", ":r !cmd".
    Signal = false, -- after nvim process received a signal
    SourceCmd = false, -- sourcing a Vim script using command
    SourcePost = false, -- after sourcing a Vim script
    SourcePre = false, -- before sourcing a Vim script
    SpellFileMissing = false, -- spell file missing
    StdinReadPost = false, -- after reading from stdin
    StdinReadPre = false, -- before reading from stdin
    SwapExists = false, -- found existing swap file
    Syntax = false, -- syntax selected
    TabClosed = false, -- a tab has closed
    TabEnter = false, -- after entering a tab page
    TabLeave = false, -- before leaving a tab page
    TabNew = false, -- when creating a new tab
    TabNewEntered = false, -- after entering a new tab
    TermChanged = false, -- after changing 'term'
    TermClose = false, -- after the process exits
    TermEnter = false, -- after entering Terminal mode
    TermLeave = false, -- after leaving Terminal mode
    TermOpen = false, -- after opening a terminal buffer
    TermRequest = false, -- after an unhandled OSC sequence is emitted
    TermResponse = false, -- after setting "v:termresponse"
    TextChanged = true, -- text was modified
    TextChangedI = true, -- text was modified in Insert mode(no popup)
    TextChangedP = true, -- text was modified in Insert mode(popup)
    TextChangedT = true, -- text was modified in Terminal mode
    TextYankPost = true, -- after a yank or delete was done (y, d, c)
    UIEnter = false, -- after UI attaches
    UILeave = false, -- after UI detaches
    User = false, -- user defined autocommand
    VimEnter = false, -- after starting Vim
    VimLeave = false, -- before exiting Vim
    VimLeavePre = false, -- before exiting Vim and writing ShaDa file
    VimResized = false, -- after Vim window was resized
    VimResume = false, -- after Nvim is resumed
    VimSuspend = false, -- before Nvim is suspended
    WinClosed = true, -- after closing a window
    WinEnter = true, -- after entering a window
    WinLeave = true, -- before leaving a window
    WinNew = false, -- when entering a new window
    WinResized = true, -- after a window was resized
    WinScrolled = true, -- after a window was scrolled or resized
  },
  --- @type table<string,string>
  --- Keys are event aliases.
  --- Values are the names in the `events` table above.
  aliases = {
    BufCreate = 'BufAdd',
    BufRead = 'BufReadPost',
    BufWrite = 'BufWritePre',
    FileEncoding = 'EncodingChanged',
  },
  --- @type table<string,true>
  --- List of Nvim-specific events or aliases for generating syntax file.
  nvim_specific = {
    BufModifiedSet = true,
    DiagnosticChanged = true,
    LspAttach = true,
    LspDetach = true,
    LspNotify = true,
    LspProgress = true,
    LspRequest = true,
    LspTokenUpdate = true,
    RecordingEnter = true,
    RecordingLeave = true,
    Signal = true,
    TabNewEntered = true,
    TermClose = true,
    TermOpen = true,
    TermRequest = true,
    UIEnter = true,
    UILeave = true,
  },
}