.glua.json and .gluafmtrc.json are read from the workspace root as soon as they exist, so a checkout has the same rules the last person to touch them did.
Creating config files
Both files can be seeded from the settings currently in your editor. Open the Command Palette and run one of:GLua: Create Linter Config File(creates.glua.json)GLua: Create Formatter Config File(creates.gluafmtrc.json)
Linter config (.glua.json)
Declared globals, diagnostic severity, and per-path overrides.
globals: declare addon names or libraries that are available at runtime but not defined in your workspace.diagnostics: set any rule to"error","warning","information","hint"or"off". See the rule reference for the key names.overrides: an array of{ "files": [...], "diagnostics": {...} }, applied in order so later entries win. In the example, vendored files underlua/vendor/**do not report unused locals.
workspace, completion, inlayHints and hover.
Formatter config (.gluafmtrc.json)
Indentation, line width, quote style, block collapsing.
useTabs: indent with tabs instead of spaces.indentSize: spaces per indent level. Still used whenuseTabsis true, as the assumed display width of a tab when measuring line length.maxLineWidth: soft wrap target for long lines.quoteStyle:"double"or"single"for string literals.keepSingleLineBlocks: preserve one-lineifblocks instead of forcing expansion.overrides: an array of{ "files": [...], "options": {...} }, applied in order. In the example, files underlua/config/**use two-space indentation.
gluafmtrc.schema.json reference for every property, including operatorStyle, commentStyle and endOfLine.
Both
.glua.json and .gluafmtrc.json are generated with a $schema pointing at glua.bluejutzu.dev/schemas, so you get IntelliSense and validation while editing them — no node_modules required.