{
  "name": "@ripple-ts/vscode-plugin",
  "displayName": "Ripple TS for VS Code",
  "publisher": "ripple-ts",
  "description": "Ripple JavaScript/TypeScript language support",
  "version": "0.0.46",
  "author": "Dominic Gannaway",
  "license": "MIT",
  "engines": {
    "vscode": "^1.97.0"
  },
  "homepage": "https://ripplejs.com",
  "categories": [
    "Programming Languages"
  ],
  "main": "src/extension.js",
  "icon": "icons/logo.png",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/Ripple-TS/ripple.git",
    "directory": "vscode-plugin"
  },
  "dependencies": {
    "@volar/language-core": "~2.4.23",
    "@volar/language-server": "~2.4.23",
    "@volar/typescript": "~2.4.23",
    "@volar/vscode": "~2.4.23",
    "volar-service-typescript": "0.0.65",
    "vscode-languageclient": "^9.0.1",
    "vscode-uri": "^3.1.0",
    "@ripple-ts/language-server": "0.2.156",
    "@ripple-ts/typescript-plugin": "0.2.156"
  },
  "peerDependencies": {
    "typescript": "^5.9.2",
    "ripple": "0.2.156"
  },
  "devDependencies": {
    "tsdown": "^0.15.4",
    "@vscode/vsce": "^3.6.2",
    "adm-zip": "^0.5.16"
  },
  "contributes": {
    "commands": [
      {
        "command": "ripple.goToSourceDefinition",
        "title": "Go to Source Definition",
        "category": "Ripple"
      }
    ],
    "languages": [
      {
        "id": "ripple",
        "aliases": [
          "Ripple",
          "ripple"
        ],
        "extensions": [
          ".ripple"
        ],
        "icon": {
          "light": "icons/logo.png",
          "dark": "icons/logo.png"
        },
        "configuration": "./language-configuration.json"
      }
    ],
    "configuration": {
      "title": "Ripple",
      "properties": {
        "ripple.format.enable": {
          "type": "boolean",
          "default": true,
          "description": "Enable/disable default Ripple formatter"
        }
      }
    },
    "grammars": [
      {
        "language": "ripple",
        "scopeName": "source.ripple",
        "path": "./syntaxes/ripple.tmLanguage.json",
        "embeddedLanguages": {
          "meta.tag.js": "jsx-tags",
          "meta.tag.without-attributes.js": "jsx-tags",
          "meta.tag.attributes.js.jsx": "javascriptreact",
          "meta.embedded.expression.js": "javascriptreact",
          "source.js.embedded.ripple": "javascript",
          "source.js.embedded.jsx-children.ripple": "javascript",
          "source.js.embedded.ripple-isolated": "javascript",
          "source.css": "css"
        }
      }
    ],
    "typescriptServerPlugins": [
      {
        "name": "@ripple-ts/typescript-plugin",
        "enableForWorkspaceTypeScriptVersions": true,
        "languages": []
      }
    ],
    "menus": {
      "editor/context": [
        {
          "command": "ripple.goToSourceDefinition",
          "when": "tsSupportsSourceDefinition && resourceLangId == ripple",
          "group": "navigation@9"
        }
      ],
      "explorer/context": [
        {
          "command": "typescript.findAllFileReferences",
          "when": "tsSupportsFileReferences && resourceLangId == ripple",
          "group": "4_search"
        }
      ],
      "editor/title/context": [
        {
          "command": "typescript.findAllFileReferences",
          "when": "tsSupportsFileReferences && resourceLangId == ripple"
        }
      ],
      "commandPalette": [
        {
          "command": "typescript.reloadProjects",
          "when": "editorLangId == ripple && typescript.isManagedFile"
        },
        {
          "command": "typescript.goToProjectConfig",
          "when": "editorLangId == ripple && typescript.isManagedFile"
        },
        {
          "command": "typescript.sortImports",
          "when": "supportedCodeAction =~ /(\\s|^)source\\.sortImports\\b/ && editorLangId =~ /^ripple$/"
        },
        {
          "command": "typescript.removeUnusedImports",
          "when": "supportedCodeAction =~ /(\\s|^)source\\.removeUnusedImports\\b/ && editorLangId =~ /^ripple$/"
        }
      ]
    }
  },
  "scripts": {
    "copy-ripple": "mkdir -p dist/node_modules && rsync -aL --del --exclude=node_modules/ripple --exclude=node_modules/typescript --exclude=.ignored* node_modules/ripple/ dist/node_modules/ripple/",
    "copy-ts": "mkdir -p dist/node_modules && rsync -aL --del node_modules/typescript/ dist/node_modules/typescript/",
    "copy-ts-plugin": "mkdir -p dist/node_modules/@ripple-ts && rsync -aL --del --exclude=node_modules --exclude=src node_modules/@ripple-ts/typescript-plugin/ dist/node_modules/@ripple-ts/typescript-plugin/",
    "build": "tsdown",
    "build-ts-plugin": "pnpm --filter typescript-plugin build",
    "dist-ts-plugin": "pnpm --filter typescript-plugin dist",
    "src-ts-plugin": "pnpm --filter typescript-plugin src",
    "dist": "perl -pi -e 's/\"main\": \"src\\/extension.js\"/\"main\": \"dist\\/extension.js\"/; s/\"name\": \"\\@ripple-ts\\/vscode-plugin\"/\"name\": \"ripple-ts-vscode-plugin\"/' package.json",
    "src": "perl -pi -e 's/\"main\": \"dist\\/extension.js\"/\"main\": \"src\\/extension.js\"/; s/\"name\": \"ripple-ts-vscode-plugin\"/\"name\": \"\\@ripple-ts\\/vscode-plugin\"/' package.json",
    "repack-vsix": "node scripts/repack-vsix.js",
    "delete-unpacked": "rm -rf vscode-plugin",
    "package": "pnpm delete-unpacked && pnpm dist-ts-plugin && pnpm build-ts-plugin && pnpm dist && pnpm copy-ts && pnpm copy-ripple && pnpm copy-ts-plugin && vsce package --no-dependencies --out=vscode-plugin.vsix && pnpm src-ts-plugin && pnpm src && pnpm repack-vsix || pnpm src-ts-plugin && pnpm src",
    "install-package": "code --install-extension vscode-plugin.vsix",
    "build-and-package": "pnpm build && pnpm package",
    "build-package-and-install": "pnpm build && pnpm package && pnpm install-package",
    "build-package-install-and-run": "pnpm build && pnpm package && pnpm install-package && code"
  }
}