Skip to content

Configuration Reference ​

Verter's linting engine can be configured through project-level config files, VS Code settings, or ESLint migration. This page covers all configuration options, their priority, and how they interact.

Configuration Priority ​

When multiple configuration sources exist, they are resolved in this order (highest priority first):

  1. .verterrc.json -- project-level config file (checked into version control)
  2. VS Code settings -- user or workspace settings.json
  3. ESLint config -- auto-detected from .eslintrc.* / eslint.config.*

A higher-priority source overrides lower-priority sources. For example, a rule set to "off" in .verterrc.json will be off even if the VS Code setting enables it.

Default Behavior ​

Without any explicit configuration, Verter shows only error-severity diagnostics from the Essential preset. This means you get protection against common Vue errors out of the box, without any setup required.

.verterrc.json ​

Place a .verterrc.json file in your project root (next to package.json). The LSP and MCP servers automatically detect it.

Schema ​

json
{
  "lint": {
    "enabled": true,
    "preset": "recommended",
    "rules": {
      "no-v-html": "error",
      "unused-css-selector": "off",
      "no-deprecated-destroyed-lifecycle": ["error", {}]
    }
  }
}

Fields ​

FieldTypeDefaultDescription
lint.enabledbooleantrueEnable or disable linting entirely
lint.presetstring"essential"Base preset to apply (see Presets)
lint.rulesobject{}Per-rule overrides that extend or modify the preset

Rule Severity Values ​

Each rule can be set to one of these severity values:

ValueAliasMeaning
"off"0Disable the rule
"warn"1Report as a warning (yellow squiggle, does not block CI)
"error"2Report as an error (red squiggle, blocks CI if checked)

Rules can also use the array form to pass options:

json
{
  "lint": {
    "rules": {
      "html-self-closing": ["warn", { "html": { "void": "always" } }],
      "attribute-order": ["error", {}]
    }
  }
}

The first element is the severity, and the second is a rule-specific options object.

VS Code Settings ​

These settings are available in VS Code's settings.json (user or workspace level):

SettingTypeDefaultDescription
verter.lint.enabledbooleanfalseEnable Verter's built-in linting
verter.lint.presetenum"essential"Preset to use: "essential", "recommended", "all", "performance", "a11y", "strict"

VS Code settings are overridden by .verterrc.json if both exist. This lets teams enforce project-level config while individual developers can use VS Code settings for personal projects.

Presets ​

Presets are curated collections of rules grouped by purpose:

PresetDescriptionIncludes
EssentialPrevents common errors and invalid syntaxvalid-v-*, no-reserved-*, require-component-is, and other error-preventing rules
RecommendedDefault preset; Essential + strongly recommended rulesEssential + attribute-order, html-self-closing, v-bind-style, component-*, and more
AllEvery available rule at its default severityAll ~163 rules
PerformancePerformance-focused rulesRules that detect patterns causing unnecessary re-renders or expensive operations
A11yAccessibility rulesaria-props, role-has-required-aria-props, media-has-caption, interactive-supports-focus, and more
StrictRecommended + all deprecation + all style rulesRecommended + no-deprecated-*, strict style enforcement

Preset + Rule Overrides ​

The rules object in .verterrc.json extends the chosen preset. This lets you start from a preset and tweak individual rules:

json
{
  "lint": {
    "preset": "recommended",
    "rules": {
      "no-v-html": "off",
      "unused-css-selector": "error"
    }
  }
}

This applies the Recommended preset, then disables no-v-html and promotes unused-css-selector to error severity.

ESLint Migration ​

If your project uses eslint-plugin-vue, Verter can auto-detect and map your ESLint configuration. See Migrating from ESLint for the full mapping guide.

The key points:

  • extends: ["plugin:vue/vue3-essential"] maps to the Essential preset
  • extends: ["plugin:vue/vue3-recommended"] maps to the Recommended preset
  • Individual vue/* rule overrides are mapped by dropping the vue/ prefix
  • ESLint severity 0/"off" maps to "off", 1/"warn" maps to "warn", 2/"error" maps to "error"

ESLint config is the lowest priority source -- .verterrc.json and VS Code settings both override it.

Released under the MIT License.