Mist Linter
Mist Linter is an extension for VS Code that adds editor diagnostics for Fields of Mistria cutscene files. It validates both .mist cutscene files and .c.toml dialogue/conversation files so common mistakes are caught immediately while editing. It doesn't have any features specific to the various non-cutscene files, but it also shouldn't show errors in them. And yes, development was heavily supported by AI (I'm more of a weekend cutscene writer than a passionate linter dev).
You can get the extension directly from the Visual Studio Marketplace, or build it locally if you think I'm trying to hack your computer. Building locally will depend on your setup but will look something like:
git clone https://github.com/AxemGreen/mist-linter.git
cd mist-linter
npm install
npm install vsce
vsce package // builds mist-linter-<whatever version>.vsix
code --install-extension mist-linter-<whatever version>.vsix
Features
- Validates
.mist files for malformed statements, invalid actors, invalid bark identifiers, and missing/incorrect formatting rules
- Validates
.c.toml sections and properties for known keys, duplicate entries, invalid speaker/effect references, and invalid portrait assignments
- Supports custom modded values through VS Code settings so your project can extend the built-in valid identifier lists
- Runs automatically as you open or edit supported files
Supported file types
This extension lints:
*.mist for cutscene scripting
*.c.toml for cutscene and dialogue editing
Custom values in settings
If your mod adds custom speakers, barks, effects, or portraits, configure them in the extension settings so they are accepted by the validator.
Open VS Code Settings and search for Mist Linter, or add JSON like this to your workspace or user settings:
{
"mistLinter.customSpeakers": [
"george",
"arianna"
],
"mistLinter.customBarks": [
"refute",
"laser_beam"
],
"mistLinter.customEffects": [
"explode_magnificently"
],
"mistLinter.customPortraits": {
"adeline": [
"flex",
"fingernail_stab"
],
"george": [
"weep"
]
}
}
Available settings
mistLinter.customSpeakers: Additional valid speaker/actor identifiers
mistLinter.customBarks: Additional valid bark identifiers
mistLinter.customEffects: Additional valid effect names
mistLinter.customPortraits: Valid portrait names keyed by speaker name
These settings are merged with the extension’s built-in valid values, allowing you to tailor the validator to your mod or project without turning off the built-in checks.
Requirements
- VS Code 1.125 or newer
- A workspace containing Fields of Mistria
.mist and/or .c.toml files
Known issues
This extension is focused on linting syntax and identifier validity for supported Fields of Mistria files. It does not replace a full game data compiler or parser.
Release notes
1.0.0
Initial release with .mist and .c.toml validation support and configurable custom value settings.