Important
While this was made with an aim to be thorough, you should always double-check the WezTerm Lua Reference for any missing or unclear types.
Credits | Roadmap | Discussions
This project aims to provide LuaCATS-like Lua Language Server type annotations for your WezTerm config.
Example in Neovim
wezterm_types.mp4
Example in VSCodium/VSCode
wezterm-types_code.mp4
- LuaCATS-like type annotations
- Built-in colorschemes included (
config.color_scheme) - Up-to-date descriptions
- Function overrides (e.g.
wezterm.on()) - Neovim support through
folke/lazydev.nvim - VSCode/VSCodium support by cloning this into
~/.config/wezterm, and editing your config in that directory
For Neovim users, we recommend using
folke/lazy.nvim as a package manager, to be used with folke/lazydev.nvim:
{
'folke/lazydev.nvim',
ft = 'lua',
dependencies = {
{
'DrKJeff16/wezterm-types',
lazy = true,
version = false, -- Get the latest version
},
},
opts = {
library = {
-- Other library configs...
{ path = 'wezterm-types', mods = { 'wezterm' } },
},
},
}Tip
If you download this repo under a diferent name, you can use the following instead:
{
'folke/lazydev.nvim',
ft = 'lua',
dependencies = {
{
'DrKJeff16/wezterm-types',
lazy = true,
name = '<my_custom_name>', -- CUSTOM DIRECTORY NAME
version = false, -- Get the latest version
},
},
opts = {
library = {
-- Other library configs...
{ path = '<my_custom_name>', mods = { 'wezterm' } }, -- MAKE SURE TO MATCH THE PLUGIN DIRECTORY'S NAME
},
},
}You can now install this with LuaRocks:
luarocks install wezterm-types # Global install
luarocks install --local wezterm-types # Local installAfter installing the types, add the type annotations to wezterm and config respectively
when running require("wezterm") in your configuration.
A useful example:
local wezterm = require("wezterm") ---@type Wezterm
local config = wezterm.config_builder() ---@type Config
config.window_decorations = "RESIZE|MACOS_FORCE_DISABLE_SHADOW"
return configThese annotations enable the Lua Language Server to provide proper type checking and autocompletion for WezTerm configuration options.