Editor Support¶
Each frontend installs the same generated EasyBarKit LuaLS stub into its own data directory:
| Frontend | Stub | Managed modules |
|---|---|---|
| EasyBar | ~/.local/share/easybar/easybar_api.lua |
~/.local/share/easybar/packages/active/shared |
| EasyBar Native | ~/.local/share/easybar-native/easybar_api.lua |
~/.local/share/easybar-native/packages/active/shared |
Use the paths for the frontend whose widgets you are editing.
EasyBar workspace¶
For ~/.config/easybar/widgets/.luarc.json:
{
"$schema": "https://raw.githubusercontent.com/LuaLS/vscode-lua/master/setting/schema.json",
"runtime": {
"version": "Lua 5.5",
"path": ["?.lua", "?/init.lua", "shared/?.lua", "shared/?/init.lua"]
},
"workspace": {
"library": [
"~/.local/share/easybar/easybar_api.lua",
"~/.local/share/easybar/packages/active/shared"
]
},
"diagnostics": {
"globals": ["easybar"]
}
}
EasyBar Native workspace¶
For ~/.config/easybar-native/widgets/.luarc.json, use the Native paths instead:
{
"$schema": "https://raw.githubusercontent.com/LuaLS/vscode-lua/master/setting/schema.json",
"runtime": {
"version": "Lua 5.5",
"path": ["?.lua", "?/init.lua", "shared/?.lua", "shared/?/init.lua"]
},
"workspace": {
"library": [
"~/.local/share/easybar-native/easybar_api.lua",
"~/.local/share/easybar-native/packages/active/shared"
]
},
"diagnostics": {
"globals": ["easybar"]
}
}
The runtime.path entries resolve modules from the open manual-widget workspace. Adding the selected
frontend's managed active/shared directory exposes installed exports such as retry without
turning package entrypoints into manual widgets.
If your editor sees the easybar global but not newly added nested types or properties, start or
restart the selected frontend so it reinstalls the latest generated stub.
Keep reusable-module annotations beside the module implementation. Package-specific LuaLS types can then be discovered through normal module resolution without polluting the global EasyBar API.