{
  "typescript.tsdk": "node_modules/typescript/lib",

  // Disable the default formatter
  "prettier.enable": false,
  "editor.formatOnSave": false,

  // Auto fix
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": "explicit",
    "source.fixAll.stylelint": "explicit",
    "source.organizeImports": "never"
  },

  "editor.gotoLocation.multipleDefinitions": "goto",

  "eslint.runtime": "node",

  // Silent the stylistic rules in your IDE, but still auto fix them
  "eslint.rules.customizations": [
    { "rule": "style/*", "severity": "off" },
    { "rule": "*-indent", "severity": "off" },
    { "rule": "*-spacing", "severity": "off" },
    { "rule": "*-spaces", "severity": "off" },
    { "rule": "*-order", "severity": "off" },
    { "rule": "*-dangle", "severity": "off" },
    { "rule": "*-newline", "severity": "off" },
    { "rule": "*quotes", "severity": "off" },
    { "rule": "*semi", "severity": "off" }
  ],

  "eslint.validate": [
    "javascript",
    "typescript",
    "vue",
    "html",
    "css",
    "scss",
    "markdown",
    "json",
    "jsonc",
    "yaml"
  ],

  "css.validate": false,
  "scss.validate": false,

  "stylelint.validate": [
    "css",
    "scss",
    "vue"
  ],

  "javascript.format.semicolons": "remove",
  "typescript.format.semicolons": "remove",

  "vue.inlayHints.inlineHandlerLeading": true,
  "vue.inlayHints.missingProps": true,

  // i18n Ally
  "i18n-ally.enabledFrameworks": ["vue"],
  "i18n-ally.keystyle": "nested",
  "i18n-ally.localesPaths": [
    "frontend/src/locales"
  ]
}
