{
  "name": "wrnexus",
  "displayName": "WRNexus Language Support",
  "description": "Complete WRNexus v0.8.3 language support for typed imports, props, state, outputs, runtime functions, stores, diagnostics, formatting, navigation, and migration assistance.",
  "version": "0.8.8",
  "publisher": "wrnexus",
  "private": true,
  "license": "SEE LICENSE IN LICENSE",
  "icon": "icons/wrn.png",
  "repository": {
    "type": "git",
    "url": "https://git.workroot.in/WorkRoot/WRNexusJS.git",
    "directory": "editors/vscode"
  },
  "bugs": {
    "url": "https://git.workroot.in/WorkRoot/WRNexusJS/issues"
  },
  "homepage": "https://wrnexusjs.dev",
  "qna": "https://git.workroot.in/WorkRoot/WRNexusJS/issues",
  "galleryBanner": {
    "color": "#0b1021",
    "theme": "dark"
  },
  "pricing": "Free",
  "engines": {
    "vscode": "^1.75.0"
  },
  "categories": [
    "Programming Languages",
    "Snippets",
    "Linters",
    "Formatters"
  ],
  "keywords": [
    "wrnexus",
    "wrn",
    "wrn",
    "wrnexus",
    "language support",
    "formatter",
    "diagnostics",
    "syntax highlighting",
    "autocomplete",
    "snippets",
    "lifecycle",
    "state watcher",
    "components",
    "full-stack",
    "ssr",
    "csr",
    "bun"
  ],
  "main": "./src/extension.bundle.cjs",
  "activationEvents": [
    "onLanguage:wrn"
  ],
  "contributes": {
    "languages": [
      {
        "id": "wrn",
        "aliases": [
          "WRNexus",
          "WRN",
          "wrn"
        ],
        "extensions": [
          ".wrn"
        ],
        "firstLine": "^\\s*(?:(?:import\\b[^;\\n]*(?:;|\\n)\\s*)*)(?:(?:global|page)\\s+store|page|component|layout)\\s+[A-Za-z_$][A-Za-z0-9_$]*\\s*\\{",
        "configuration": "./language-configuration.json",
        "icon": {
          "light": "./icons/wrn.png",
          "dark": "./icons/wrn.png"
        }
      }
    ],
    "grammars": [
      {
        "language": "wrn",
        "scopeName": "source.wrn",
        "path": "./syntaxes/wrn.tmLanguage.json",
        "embeddedLanguages": {
          "meta.embedded.block.html": "html",
          "meta.embedded.block.css": "css",
          "meta.embedded.block.ts": "typescript",
          "meta.embedded.expr.wrn": "typescript"
        }
      },
      {
        "scopeName": "wrn.attributes.injection",
        "path": "./syntaxes/wrn.injection.tmLanguage.json",
        "injectTo": [
          "source.wrn"
        ]
      }
    ],
    "snippets": [
      {
        "language": "wrn",
        "path": "./snippets/wrn.json"
      }
    ],
    "configuration": {
      "title": "WRNexus",
      "properties": {
        "wrnexus.diagnostics.enable": {
          "type": "boolean",
          "default": true,
          "scope": "resource",
          "description": "Enable WRNexus editor and compiler diagnostics for .wrn files."
        },
        "wrnexus.languageServer.enable": {
          "type": "boolean",
          "default": true,
          "scope": "window",
          "description": "Use the shared WRNexus Language Server for diagnostics, formatting, completion, navigation, rename, and quick fixes."
        },
        "wrnexus.format.enable": {
          "type": "boolean",
          "default": true,
          "scope": "resource",
          "description": "Enable the built-in WRNexus formatter for .wrn files."
        },
        "wrnexus.formatting.multilineAttributes": {
          "type": "boolean",
          "default": true,
          "scope": "resource",
          "description": "Place opening-tag attributes on separate lines, with the closing delimiter on its own line."
        },
        "wrnexus.formatting.printWidth": {
          "type": "number",
          "default": 100,
          "minimum": 60,
          "maximum": 240,
          "scope": "resource",
          "description": "Preferred WRNexus formatter line width before long tags are expanded."
        }
      }
    },
    "configurationDefaults": {
      "files.associations": {
        "*.wrn": "wrn"
      },
      "[wrn]": {
        "editor.defaultFormatter": "wrnexus.wrnexus",
        "editor.formatOnSave": false,
        "editor.tabSize": 4,
        "editor.insertSpaces": true,
        "editor.autoClosingBrackets": "always",
        "editor.autoClosingQuotes": "always",
        "editor.suggest.showSnippets": true,
        "editor.snippetSuggestions": "top"
      },
      "editor.tokenColorCustomizations": {
        "textMateRules": [
          {
            "scope": "storage.type.wrn",
            "settings": {
              "foreground": "#c084fc",
              "fontStyle": "bold"
            }
          },
          {
            "scope": "entity.name.type.wrn",
            "settings": {
              "foreground": "#67e8f9"
            }
          },
          {
            "scope": "entity.name.function.wrn",
            "settings": {
              "foreground": "#a7f3d0"
            }
          },
          {
            "scope": "entity.name.function.lifecycle.wrn",
            "settings": {
              "foreground": "#fbbf24",
              "fontStyle": "bold"
            }
          },
          {
            "scope": "variable.other.readwrite.wrn",
            "settings": {
              "foreground": "#93c5fd"
            }
          },
          {
            "scope": "variable.language.wrn",
            "settings": {
              "foreground": "#f0abfc",
              "fontStyle": "italic"
            }
          },
          {
            "scope": "entity.other.attribute-name.wrn.directive",
            "settings": {
              "foreground": "#5eead4",
              "fontStyle": "bold"
            }
          },
          {
            "scope": "entity.other.attribute-name.wrn.event",
            "settings": {
              "foreground": "#f472b6",
              "fontStyle": "bold"
            }
          },
          {
            "scope": "entity.other.attribute-name.event.wrn",
            "settings": {
              "foreground": "#f472b6",
              "fontStyle": "bold"
            }
          },
          {
            "scope": "punctuation.definition.keyword.wrn",
            "settings": {
              "foreground": "#f472b6"
            }
          },
          {
            "scope": "keyword.control.i18n.wrn",
            "settings": {
              "foreground": "#f472b6",
              "fontStyle": "bold"
            }
          },
          {
            "scope": "string.other.i18n-key.wrn",
            "settings": {
              "foreground": "#5eead4"
            }
          },
          {
            "scope": "constant.language.http-method.wrn",
            "settings": {
              "foreground": "#f472b6",
              "fontStyle": "bold"
            }
          }
        ]
      }
    },
    "semanticTokenScopes": [
      {
        "language": "wrn",
        "scopes": {
          "variable.declaration": [
            "variable.other.readwrite.wrn",
            "variable.other.readwrite.declaration.wrn"
          ],
          "variable": [
            "variable.other.readwrite.wrn"
          ],
          "parameter": [
            "variable.parameter.wrn"
          ],
          "function": [
            "entity.name.function.wrn"
          ],
          "property": [
            "variable.other.property.wrn"
          ]
        }
      }
    ]
  },
  "scripts": {
    "build:compiler": "node ../../scripts/build-editor-compiler.mjs",
    "build:language-server": "node ../../scripts/build-editor-language-server.mjs",
    "build:extension": "node ../../scripts/build-editor-extension.mjs",
    "build": "bun run build:compiler && bun run build:language-server && bun run build:extension",
    "test": "node --test test/*.test.js",
    "validate": "node test/validate.mjs && node ../../scripts/build-editor-compiler.mjs --check && node ../../scripts/build-editor-language-server.mjs --check && node ../../scripts/build-editor-extension.mjs --check",
    "check": "bun run build && bun run test && bun run validate",
    "vscode:prepublish": "bun run check",
    "package": "vsce package --no-dependencies --no-rewrite-relative-links",
    "publish": "vsce publish --no-dependencies --no-rewrite-relative-links",
    "publish:azure": "vsce publish --no-dependencies --no-rewrite-relative-links --azure-credential"
  },
  "devDependencies": {
    "@vscode/vsce": "^3.9.2"
  },
  "dependencies": {
    "vscode-languageclient": "^10.1.0"
  }
}
