{
  "name": "rlsp-yaml",
  "displayName": "rlsp-yaml",
  "description": "YAML language support powered by rlsp-yaml",
  "publisher": "chrisski",
  "version": "0.1.0",
  "license": "MIT",
  "icon": "rlsp-yaml-logo-small.png",
  "packageManager": "pnpm@10.33.2",
  "engines": {
    "vscode": "^1.116.0"
  },
  "categories": [
    "Programming Languages",
    "Linters",
    "Formatters"
  ],
  "activationEvents": [
    "onLanguage:yaml"
  ],
  "main": "./out/main.js",
  "extensionKind": [
    "workspace"
  ],
  "capabilities": {
    "untrustedWorkspaces": {
      "supported": "limited",
      "description": "The rlsp-yaml.server.path setting is ignored in untrusted workspaces. Only the bundled server binary is used.",
      "restrictedConfigurations": [
        "rlsp-yaml.server.path"
      ]
    }
  },
  "contributes": {
    "configuration": {
      "type": "object",
      "title": "rlsp-yaml",
      "properties": {
        "rlsp-yaml.server.path": {
          "type": "string",
          "default": "",
          "description": "Custom path to rlsp-yaml binary"
        },
        "rlsp-yaml.customTags": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "default": [],
          "description": "Custom YAML tags to recognize. Each entry is a tag name (e.g. \"!include\") or a tag name followed by a type annotation (e.g. \"!include scalar\", \"!Ref mapping\", \"!Sub sequence\"). Tags with a type annotation emit a tagTypeMismatch warning when the node structure does not match."
        },
        "rlsp-yaml.keyOrdering": {
          "type": "boolean",
          "default": false,
          "description": "Enforce alphabetical key ordering"
        },
        "rlsp-yaml.kubernetesVersion": {
          "type": "string",
          "default": "master",
          "description": "Kubernetes schema version to use"
        },
        "rlsp-yaml.schemaStore": {
          "type": "boolean",
          "default": true,
          "description": "Enable SchemaStore.org integration"
        },
        "rlsp-yaml.formatValidation": {
          "type": "boolean",
          "default": true,
          "description": "Run validation on format"
        },
        "rlsp-yaml.formatPrintWidth": {
          "type": "number",
          "default": 80,
          "description": "Print width for formatting"
        },
        "rlsp-yaml.formatSingleQuote": {
          "type": "boolean",
          "default": false,
          "description": "Use single quotes in formatted output"
        },
        "rlsp-yaml.formatPreserveQuotes": {
          "type": "boolean",
          "default": false,
          "description": "Preserve the source quote style of scalar values during formatting"
        },
        "rlsp-yaml.formatBracketSpacing": {
          "type": "boolean",
          "default": true,
          "description": "Add spaces inside flow braces: { a: 1 } vs {a: 1}. Default true."
        },
        "rlsp-yaml.formatEnforceBlockStyle": {
          "type": "boolean",
          "default": false,
          "description": "Convert all flow-style collections ([...], {...}) to block style when formatting. When false (default), the formatter preserves the original style."
        },
        "rlsp-yaml.flowStyle": {
          "type": "string",
          "enum": [
            "off",
            "warning",
            "error"
          ],
          "default": "warning",
          "description": "Severity of flow-style diagnostics (flowMap/flowSeq). 'off' disables them, 'warning' shows a warning squiggle, 'error' marks them as errors."
        },
        "rlsp-yaml.duplicateKeys": {
          "type": "string",
          "enum": [
            "off",
            "warning",
            "error"
          ],
          "default": "error",
          "description": "Severity of duplicate key diagnostics. 'off' disables detection, 'warning' shows a warning, 'error' (default) marks as errors."
        },
        "rlsp-yaml.formatRemoveDuplicateKeys": {
          "type": "boolean",
          "default": false,
          "description": "Remove duplicate mapping keys when formatting. Keeps the last occurrence (YAML spec behavior). When false (default), duplicate keys are preserved."
        },
        "rlsp-yaml.formatIndentSequences": {
          "type": "boolean",
          "default": true,
          "description": "Indent block sequences under mapping keys. When true (default), sequences are indented: `key:\\n  - item`. When false, sequences start at the key's indent level: `key:\\n- item`."
        },
        "rlsp-yaml.httpProxy": {
          "type": "string",
          "default": "",
          "description": "HTTP proxy URL for schema fetching"
        },
        "rlsp-yaml.colorDecorators": {
          "type": "boolean",
          "default": true,
          "description": "Show color decorators for CSS color values"
        },
        "rlsp-yaml.schemas": {
          "type": "object",
          "default": {},
          "description": "Maps schema URLs to glob patterns for schema assignment"
        },
        "rlsp-yaml.yamlVersion": {
          "type": "string",
          "enum": [
            "1.1",
            "1.2"
          ],
          "default": "1.2",
          "description": "YAML specification version. Affects formatting quoting rules and YAML 1.1 compatibility diagnostics. When set to 1.1, diagnostics for YAML 1.1 boolean and octal values are suppressed."
        },
        "rlsp-yaml.validate": {
          "type": "boolean",
          "default": true,
          "description": "Enable or disable all YAML diagnostics."
        }
      }
    },
    "commands": [
      {
        "command": "rlsp-yaml.restartServer",
        "title": "Restart Server",
        "category": "rlsp-yaml"
      },
      {
        "command": "rlsp-yaml.showOutput",
        "title": "Show Output",
        "category": "rlsp-yaml"
      },
      {
        "command": "rlsp-yaml.showVersion",
        "title": "Show Version",
        "category": "rlsp-yaml"
      }
    ]
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/chdalski/rlsp"
  },
  "scripts": {
    "build": "esbuild src/main.ts --bundle --outdir=out --external:vscode --format=cjs --platform=node",
    "watch": "esbuild src/main.ts --bundle --outdir=out --external:vscode --format=cjs --platform=node --watch",
    "package": "vsce package --no-dependencies",
    "test": "vitest run",
    "test:coverage": "vitest run --coverage",
    "test:integration": "tsc && vscode-test",
    "lint": "eslint src/",
    "format": "prettier --check 'src/**/*.ts'",
    "format:fix": "prettier --write 'src/**/*.ts'"
  },
  "dependencies": {
    "vscode-languageclient": "^9.0.1"
  },
  "pnpm": {
    "overrides": {
      "lodash": ">=4.18.0"
    }
  },
  "devDependencies": {
    "@tsconfig/strictest": "^2.0.8",
    "@types/mocha": "^10.0.10",
    "@types/node": "^25.6.0",
    "@types/vscode": "^1.116.0",
    "@vitest/coverage-v8": "^4.1.5",
    "@vscode/test-cli": "^0.0.12",
    "@vscode/test-electron": "^2.5.2",
    "@vscode/vsce": "^3.9.1",
    "esbuild": "^0.28.0",
    "eslint": "^10.2.1",
    "prettier": "^3.8.3",
    "typescript": "^6.0.3",
    "typescript-eslint": "^8.59.0",
    "vite": "^8.0.10",
    "vitest": "^4.1.5"
  }
}
