274 lines
7.2 KiB
JSON
274 lines
7.2 KiB
JSON
{
|
|
"name": "wrnexus",
|
|
"displayName": "WRNexus Language Support",
|
|
"description": "Complete language support for WRNexus .wrn files, including highlighting, formatting, diagnostics, snippets, lifecycle hooks, state watchers, component functions, completions, and definition navigation.",
|
|
"version": "0.2.11",
|
|
"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",
|
|
"wire",
|
|
"wirejs",
|
|
"language support",
|
|
"formatter",
|
|
"diagnostics",
|
|
"syntax highlighting",
|
|
"autocomplete",
|
|
"snippets",
|
|
"lifecycle",
|
|
"state watcher",
|
|
"components",
|
|
"full-stack",
|
|
"ssr",
|
|
"csr",
|
|
"bun"
|
|
],
|
|
"main": "./src/extension.js",
|
|
"activationEvents": [
|
|
"onLanguage:wrn",
|
|
"workspaceContains:**/*.wrn",
|
|
"onStartupFinished"
|
|
],
|
|
"contributes": {
|
|
"languages": [
|
|
{
|
|
"id": "wrn",
|
|
"aliases": [
|
|
"WRNexus",
|
|
"WRN",
|
|
"wrn"
|
|
],
|
|
"extensions": [
|
|
".wrn"
|
|
],
|
|
"firstLine": "^\\s*(?: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.format.enable": {
|
|
"type": "boolean",
|
|
"default": true,
|
|
"scope": "resource",
|
|
"description": "Enable the built-in WRNexus formatter for .wrn files."
|
|
},
|
|
"wrnexus.formatting.printWidth": {
|
|
"type": "number",
|
|
"default": 100,
|
|
"minimum": 60,
|
|
"maximum": 240,
|
|
"scope": "resource",
|
|
"description": "Preferred maximum line width used by the WRNexus formatter."
|
|
}
|
|
}
|
|
},
|
|
"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": "bun build ../../packages/compiler/src/index.ts --target=node --format=cjs --outfile=src/compiler.cjs",
|
|
"build": "bun run build:compiler",
|
|
"test": "node --test test/*.test.js",
|
|
"validate": "node test/validate.mjs",
|
|
"check": "bun run build && bun run test && bun run validate",
|
|
"vscode:prepublish": "bun run check",
|
|
"package": "vsce package --no-dependencies",
|
|
"publish": "vsce publish --no-dependencies",
|
|
"publish:azure": "vsce publish --no-dependencies --azure-credential"
|
|
},
|
|
"devDependencies": {
|
|
"@vscode/vsce": "^3.9.2"
|
|
}
|
|
}
|