{
"name": "summer-rs",
"displayName": "Summer RS",
"description": "Language Server Protocol support and application management for summer-rs framework",
"version": "0.5.0",
"publisher": "summer-rs",
"license": "MIT OR Apache-2.0",
"icon": "resources/logo.png",
"repository": {
"type": "git",
"url": "https://github.com/summer-rs/summer-lsp"
},
"bugs": {
"url": "https://github.com/summer-rs/summer-lsp/issues"
},
"homepage": "https://github.com/summer-rs/summer-lsp",
"engines": {
"vscode": "^1.75.0"
},
"categories": [
"Programming Languages",
"Linters",
"Other"
],
"keywords": [
"summer-rs",
"summer",
"rust",
"toml",
"language-server",
"lsp",
"framework"
],
"activationEvents": [
"workspaceContains:**/.summer-lsp.toml",
"workspaceContains:**/config/app.toml",
"workspaceContains:**/config/app-*.toml",
"workspaceContains:**/Cargo.toml",
"onLanguage:toml",
"onLanguage:rust"
],
"main": "./dist/extension.js",
"contributes": {
"viewsContainers": {
"activitybar": [
{
"id": "summer-rs",
"title": "Summer RS",
"icon": "resources/logo-sidebar.svg"
}
]
},
"views": {
"summer-rs": [
{
"id": "summer.apps",
"name": "Apps",
"contextualTitle": "Summer RS Apps"
},
{
"id": "summer.configurations",
"name": "Configurations",
"contextualTitle": "Summer RS Configurations"
},
{
"id": "summer.components",
"name": "Components",
"contextualTitle": "Summer RS Components"
},
{
"id": "summer.routes",
"name": "Routes",
"contextualTitle": "Summer RS Routes"
},
{
"id": "summer.jobs",
"name": "Jobs",
"contextualTitle": "Summer RS Jobs"
},
{
"id": "summer.plugins",
"name": "Plugins",
"contextualTitle": "Summer RS Plugins"
}
]
},
"commands": [
{
"command": "summer-rs.refresh",
"title": "Refresh Apps",
"category": "Summer RS",
"icon": "$(refresh)"
},
{
"command": "summer-rs.app.run",
"title": "Run",
"category": "Summer RS",
"icon": "$(play)"
},
{
"command": "summer-rs.app.debug",
"title": "Debug",
"category": "Summer RS",
"icon": "$(debug-alt-small)"
},
{
"command": "summer-rs.app.stop",
"title": "Stop",
"category": "Summer RS",
"icon": "$(debug-stop)"
},
{
"command": "summer-rs.app.open",
"title": "Open in Browser",
"category": "Summer RS",
"icon": "$(globe)"
},
{
"command": "summer-rs.app.runWithProfile",
"title": "Run with Profile...",
"category": "Summer RS"
},
{
"command": "summer-rs.app.debugWithProfile",
"title": "Debug with Profile...",
"category": "Summer RS"
},
{
"command": "summer-rs.app.runMultiple",
"title": "Run Multiple Apps...",
"category": "Summer RS",
"icon": "$(run-all)"
},
{
"command": "summer-rs.app.stopMultiple",
"title": "Stop Multiple Apps...",
"category": "Summer RS",
"icon": "$(stop-circle)"
},
{
"command": "summer.component.navigate",
"title": "Go to Definition",
"category": "Summer RS",
"icon": "$(go-to-file)"
},
{
"command": "summer.component.showDependencies",
"title": "Show Dependencies",
"category": "Summer RS",
"icon": "$(type-hierarchy-sub)"
},
{
"command": "summer.route.navigate",
"title": "Go to Handler",
"category": "Summer RS",
"icon": "$(go-to-file)"
},
{
"command": "summer.route.open",
"title": "Open in Browser",
"category": "Summer RS",
"icon": "$(globe)"
},
{
"command": "summer.job.navigate",
"title": "Go to Definition",
"category": "Summer RS",
"icon": "$(go-to-file)"
},
{
"command": "summer.plugin.navigate",
"title": "Go to Definition",
"category": "Summer RS",
"icon": "$(go-to-file)"
},
{
"command": "summer-rs.showWelcome",
"title": "Show Welcome Page",
"category": "Summer RS"
},
{
"command": "summer-rs.openDocumentation",
"title": "Open Documentation",
"category": "Summer RS",
"icon": "$(book)"
},
{
"command": "summer.configuration.refresh",
"title": "Refresh Configurations",
"category": "Summer RS",
"icon": "$(refresh)"
},
{
"command": "summer.configuration.navigate",
"title": "Go to Definition",
"category": "Summer RS",
"icon": "$(go-to-file)"
},
{
"command": "summer.configuration.copyExample",
"title": "Copy Config Example",
"category": "Summer RS",
"icon": "$(copy)"
},
{
"command": "summer.components.selectViewMode",
"title": "Select View Mode...",
"category": "Summer RS",
"icon": "$(list-selection)"
},
{
"command": "summer.components.toggleViewMode",
"title": "Switch to Tree View",
"category": "Summer RS",
"icon": "$(list-tree)"
},
{
"command": "summer.components.switchToListView",
"title": "Switch to List View",
"category": "Summer RS",
"icon": "$(list-flat)"
},
{
"command": "summer.routes.selectViewMode",
"title": "Select View Mode...",
"category": "Summer RS",
"icon": "$(list-selection)"
},
{
"command": "summer.routes.toggleViewMode",
"title": "Switch to Tree View",
"category": "Summer RS",
"icon": "$(list-tree)"
},
{
"command": "summer.routes.switchToListView",
"title": "Switch to List View",
"category": "Summer RS",
"icon": "$(list-flat)"
},
{
"command": "summer.configurations.selectViewMode",
"title": "Select View Mode...",
"category": "Summer RS",
"icon": "$(list-selection)"
},
{
"command": "summer.configurations.toggleViewMode",
"title": "Switch to Tree View",
"category": "Summer RS",
"icon": "$(list-tree)"
},
{
"command": "summer.configurations.switchToListView",
"title": "Switch to List View",
"category": "Summer RS",
"icon": "$(list-flat)"
}
],
"menus": {
"view/title": [
{
"command": "summer-rs.refresh",
"when": "view == summer.apps",
"group": "navigation@5"
},
{
"command": "summer-rs.app.runMultiple",
"when": "view == summer.apps",
"group": "navigation@2"
},
{
"command": "summer-rs.app.stopMultiple",
"when": "view == summer.apps",
"group": "navigation@3"
},
{
"command": "summer.configuration.refresh",
"when": "view == summer.configurations",
"group": "navigation@5"
},
{
"command": "summer.components.toggleViewMode",
"when": "view == summer.components && config.summer-lsp.componentsViewMode == list",
"group": "navigation@1"
},
{
"command": "summer.components.switchToListView",
"when": "view == summer.components && config.summer-lsp.componentsViewMode == tree",
"group": "navigation@1"
},
{
"command": "summer.routes.toggleViewMode",
"when": "view == summer.routes && config.summer-lsp.routesViewMode == list",
"group": "navigation@1"
},
{
"command": "summer.routes.switchToListView",
"when": "view == summer.routes && config.summer-lsp.routesViewMode == tree",
"group": "navigation@1"
},
{
"command": "summer.configurations.toggleViewMode",
"when": "view == summer.configurations && config.summer-lsp.configurationsViewMode == list",
"group": "navigation@1"
},
{
"command": "summer.configurations.switchToListView",
"when": "view == summer.configurations && config.summer-lsp.configurationsViewMode == tree",
"group": "navigation@1"
}
],
"view/item/context": [
{
"command": "summer-rs.app.run",
"when": "view == summer.apps && viewItem == SummerApp_inactive",
"group": "inline@5"
},
{
"command": "summer-rs.app.debug",
"when": "view == summer.apps && viewItem == SummerApp_inactive",
"group": "inline@6"
},
{
"command": "summer-rs.app.stop",
"when": "view == summer.apps && viewItem == SummerApp_running",
"group": "inline@8"
},
{
"command": "summer-rs.app.open",
"when": "view == summer.apps && viewItem == SummerApp_running",
"group": "inline@a"
},
{
"command": "summer-rs.app.runWithProfile",
"when": "view == summer.apps && viewItem == SummerApp_inactive",
"group": "action@7"
},
{
"command": "summer-rs.app.debugWithProfile",
"when": "view == summer.apps && viewItem == SummerApp_inactive",
"group": "action@8"
},
{
"command": "summer.component.navigate",
"when": "view == summer.components && viewItem =~ /summer:component/",
"group": "inline@5"
},
{
"command": "summer.component.showDependencies",
"when": "view == summer.components && viewItem =~ /summer:component/",
"group": "action@5"
},
{
"command": "summer.route.navigate",
"when": "view == summer.routes && viewItem == summer:route",
"group": "inline@5"
},
{
"command": "summer.route.open",
"when": "view == summer.routes && viewItem =~ /summer:route.*\\+GET/",
"group": "inline@6"
},
{
"command": "summer.job.navigate",
"when": "view == summer.jobs && viewItem == summer:job",
"group": "inline@5"
},
{
"command": "summer.plugin.navigate",
"when": "view == summer.plugins && viewItem == summer:plugin",
"group": "inline@5"
},
{
"command": "summer.configuration.navigate",
"when": "view == summer.configurations && viewItem == summer:configStruct",
"group": "inline@5"
},
{
"command": "summer.configuration.copyExample",
"when": "view == summer.configurations && viewItem == summer:configStruct",
"group": "action@5"
}
],
"commandPalette": [
{
"command": "summer-rs.app.run",
"when": "false"
},
{
"command": "summer-rs.app.debug",
"when": "false"
},
{
"command": "summer-rs.app.stop",
"when": "false"
},
{
"command": "summer-rs.app.open",
"when": "false"
},
{
"command": "summer-rs.app.runWithProfile",
"when": "false"
},
{
"command": "summer-rs.app.debugWithProfile",
"when": "false"
},
{
"command": "summer.component.navigate",
"when": "false"
},
{
"command": "summer.component.showDependencies",
"when": "false"
},
{
"command": "summer.route.navigate",
"when": "false"
},
{
"command": "summer.route.open",
"when": "false"
},
{
"command": "summer.job.navigate",
"when": "false"
},
{
"command": "summer.plugin.navigate",
"when": "false"
},
{
"command": "summer.configuration.refresh",
"when": "false"
},
{
"command": "summer.configuration.navigate",
"when": "false"
},
{
"command": "summer.configuration.copyExample",
"when": "false"
}
]
},
"configuration": {
"type": "object",
"title": "Summer RS",
"properties": {
"summer-rs.serverPath": {
"type": "string",
"default": "",
"description": "Path to summer-lsp executable (leave empty to use bundled version or system PATH)"
},
"summer-rs.openWith": {
"type": "string",
"enum": [
"integrated",
"external"
],
"default": "integrated",
"description": "Which browser to use when opening apps"
},
"summer-rs.openUrl": {
"type": "string",
"default": "http://localhost:{port}{contextPath}",
"description": "URL template for opening apps. Use {port} and {contextPath} as placeholders"
},
"summer-rs.enableGutter": {
"type": "string",
"enum": [
"on",
"off"
],
"default": "on",
"description": "Show gutter icons in editors for components, routes, and jobs"
},
"summer-rs.env": {
"type": "object",
"default": {},
"description": "Environment variables to set when running apps",
"additionalProperties": {
"type": "string"
}
},
"summer-rs.trace.server": {
"type": "string",
"enum": [
"off",
"messages",
"verbose"
],
"default": "off",
"description": "Traces the communication between VS Code and the language server"
},
"summer-lsp.componentsViewMode": {
"type": "string",
"enum": [
"list",
"tree"
],
"default": "list",
"enumDescriptions": [
"Flat list view - show all components directly",
"Tree view - group components by file"
],
"description": "View mode for Components view"
},
"summer-lsp.routesViewMode": {
"type": "string",
"enum": [
"list",
"tree"
],
"default": "list",
"enumDescriptions": [
"List view - group routes by HTTP method",
"Tree view - group routes by file"
],
"description": "View mode for Routes view"
},
"summer-lsp.configurationsViewMode": {
"type": "string",
"enum": [
"list",
"tree"
],
"default": "list",
"enumDescriptions": [
"List view - group configurations by section",
"Tree view - group configurations by file"
],
"description": "View mode for Configurations view"
}
}
},
"languages": [
{
"id": "toml",
"extensions": [
".toml"
],
"filenames": [
".summer-lsp.toml"
]
}
]
},
"scripts": {
"vscode:prepublish": "webpack --mode production",
"compile": "webpack",
"watch": "webpack --watch",
"package": "bash scripts/package-extension.sh",
"compile-tsc": "tsc -p ./",
"watch-tsc": "tsc -watch -p ./",
"pretest": "npm run compile && npm run compile-tests",
"compile-tests": "tsc -p ./test/tsconfig.json",
"test": "node ./out/test/runTest.js",
"lint": "eslint src test --ext ts",
"lint:fix": "eslint src test --ext ts --fix",
"format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
"format:check": "prettier --check \"src/**/*.ts\" \"test/**/*.ts\"",
"clean": "bash scripts/clean.sh",
"rebuild": "npm run clean && npm run compile",
"verify": "node scripts/verify.js",
"build:server": "bash scripts/build-server.sh",
"build:server:current": "bash scripts/build-server-current.sh",
"package:quick": "vsce package"
},
"devDependencies": {
"@types/glob": "^8.1.0",
"@types/mocha": "^10.0.0",
"@types/node": "^18.0.0",
"@types/vscode": "^1.75.0",
"@typescript-eslint/eslint-plugin": "^6.0.0",
"@typescript-eslint/parser": "^6.0.0",
"@vscode/test-electron": "^2.3.0",
"@vscode/vsce": "^2.22.0",
"eslint": "^8.0.0",
"eslint-config-prettier": "^9.0.0",
"eslint-plugin-prettier": "^5.0.0",
"glob": "^10.3.0",
"mocha": "^10.2.0",
"prettier": "^3.0.0",
"ts-loader": "^9.5.4",
"typescript": "^5.0.0",
"webpack": "^5.105.0",
"webpack-cli": "^5.1.4"
},
"dependencies": {
"@iarna/toml": "^2.2.5",
"vscode-languageclient": "^9.0.1"
}
}