docs(events): Lua types for autocmd event-data #38518

Problem:
  No LuaLS types for event-data fields (ev.data). Types are only
  documented ad hoc in scattered locations.

Solution:
  Add runtime/lua/vim/_meta/events.lua defining vim.event.<name>.data
  classes for events that provide ev.data. Reference the types from
  each event's help in autocmd.txt, lsp.txt, and pack.txt.
This commit is contained in:
Aditya Malik
2026-04-18 22:47:45 +05:30
committed by GitHub
parent 3a4cc5db0b
commit 2cb240319b
5 changed files with 82 additions and 6 deletions

View File

@@ -0,0 +1,56 @@
--- @meta
error('Cannot require a meta file')
--- @class vim.event.lspattach.data
--- @field client_id integer
--- @class vim.event.lspdetach.data
--- @field client_id integer
--- @class vim.event.lspnotify.data
--- @field client_id integer
--- @field method string
--- @field params table
--- @class vim.event.lspprogress.data
--- @field client_id integer
--- @field params lsp.ProgressParams
--- @class vim.event.lsprequest.data
--- @field client_id integer
--- @field request_id integer
--- @field request table
--- @class vim.event.lsptokenupdate.data
--- @field client_id integer
--- @field token table
--- @class vim.event.markset.data
--- @field name string
--- @field line integer
--- @field col integer
--- @class vim.event.packchanged.data
--- @field active boolean
--- @field kind string
--- @field spec vim.pack.Spec
--- @field path string
--- @class vim.event.packchangedpre.data : vim.event.packchanged.data
--- @class vim.event.progress.data
--- @field id any
--- @field text string[]
--- @field data? table
--- @field percent? integer
--- @field source? string
--- @field status? string
--- @field title? string
--- @class vim.event.termrequest.data
--- @field sequence string
--- @field terminator string
--- @field cursor integer[]
--- @class vim.event.termresponse.data
--- @field sequence string

View File

@@ -175,6 +175,8 @@
---- `spec` - plugin's specification with defaults made explicit.
---- `path` - full path to plugin's directory.
---
---See `vim.event.packchanged.data` and `vim.event.packchangedpre.data`.
---
--- These events can be used to execute plugin hooks. For example:
---```lua
---local hooks = function(ev)