Skip to content

Settings

Ketho edited this page Aug 9, 2025 · 46 revisions
  • Workspace settings only affect the workspace.
  • User settings are set globally and affect all your workspaces/projects, if there is not a workspace setting.

The extension provides a "Configuration Scope" setting to automatically configure certain LuaLS settings in Workspace or User settings.

image

Precedence

Workspace settings have precedence over User settings, this means that any settings in the workspace will override the respective user setting.

Note

  • Workspace and user settings are not merged; either a specific workspace setting gets used (if it exists), or the user setting.
  • Even empty arrays like "Lua.workspace.library": [] will override the user setting.

settings.json

Besides opening the settings UI, you can also edit the settings.json file via the Command Palette.

Mixing projects

If you're using User settings, but you also have projects that need to use Workspace settings, then they need to explicitly have "wowAPI.luals.configurationScope": "Workspace" defined in the workspace.

(Otherwise the extension assumes you want User settings in all of your projects and you will keep losing most workspace settings.)

  • How the settings should look like for a project with Workspace settings:
image
  • And in the workspace/user settings.json:
image

Dev Mode

If you require full control of these configurations for e.g. the following reasons:

  • You want to choose which (sub)folders are added to Lua.workspace.library
  • You have other Lua code and do not want to be restricted to the WoW version of Lua 5.1

By manually adding the "wowAPI.devMode": true configuration setting in either the Workspace or User settings.json this will tell the extension not to touch any configuration settings. The drawback is you will have to keep the extension version in the paths manually updated.

Reference examples

The default configuration: The Lua runtime is replaced with our own version, and all folders in Annotations/Core are loaded.

    "Lua.runtime.version": "Lua 5.1",
    "Lua.runtime.builtin": {
        "basic": "disable",
        "debug": "disable",
        "io": "disable",
        "math": "disable",
        "os": "disable",
        "package": "disable",
        "string": "disable",
        "table": "disable",
        "utf8": "disable"
    },
    "Lua.workspace.library": [
        "~\\.vscode\\extensions\\ketho.wow-api-0.20.4\\Annotations\\Core",
    ],

Dev Mode is enabled, the Lua runtime is not replaced and the Annotations/Core/Lua and Annotations/Core/FrameXML folders are excluded.

    "wowAPI.devMode": true,
    "Lua.workspace.library": [
        "~\\.vscode\\extensions\\ketho.wow-api-0.20.4\\Annotations\\Core\\Blizzard_APIDocumentationGenerated",
        "~\\.vscode\\extensions\\ketho.wow-api-0.20.4\\Annotations\\Core\\Data",
        "~\\.vscode\\extensions\\ketho.wow-api-0.20.4\\Annotations\\Core\\Libraries",
        "~\\.vscode\\extensions\\ketho.wow-api-0.20.4\\Annotations\\Core\\Type",
        "~\\.vscode\\extensions\\ketho.wow-api-0.20.4\\Annotations\\Core\\Widget",
    ],

Multi-root Workspaces

Multi-root Workspaces are currently untested.

Clone this wiki locally