This project aims to provide LuaCATS-like Lua Language Server type annotations for your WezTerm config.
NOTE: 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.
Examples can be found in EXAMPLES.md.
config.color_scheme)wezterm.on())folke/lazydev.nvim~/.config/wezterm,
and editing your config in that directoryFor 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' } },
},
},
}
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 = {
-- MAKE SURE TO MATCH THE PLUGIN DIRECTORY'S NAME
{ path = '<my_custom_name>', mods = { 'wezterm' } },
},
},
}
You can now install this with LuaRocks:
luarocks install wezterm-types # Global install
luarocks install --local wezterm-types # Local install
After 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 config
These annotations enable the Lua Language Server to provide proper type checking and autocompletion for WezTerm configuration options.