mirror of
https://github.com/godotengine/godot-vscode-plugin.git
synced 2025-12-31 13:48:24 +03:00
584 lines
15 KiB
JSON
584 lines
15 KiB
JSON
{
|
|
"name": "godot-tools",
|
|
"displayName": "godot-tools",
|
|
"icon": "icon.png",
|
|
"version": "1.3.1",
|
|
"description": "Tools for game development with Godot Engine and GDScript",
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "https://github.com/godotengine/godot-vscode-plugin"
|
|
},
|
|
"bugs": {
|
|
"url": "https://github.com/godotengine/godot-vscode-plugin/issues"
|
|
},
|
|
"license": "MIT",
|
|
"author": "The Godot Engine community",
|
|
"publisher": "geequlim",
|
|
"engines": {
|
|
"vscode": "^1.68.0"
|
|
},
|
|
"categories": [
|
|
"Programming Languages",
|
|
"Linters",
|
|
"Snippets",
|
|
"Debuggers",
|
|
"Other"
|
|
],
|
|
"activationEvents": [
|
|
"workspaceContains:project.godot",
|
|
"onLanguage:gdscript",
|
|
"onLanguage:gdshader",
|
|
"onLanguage:gdresource",
|
|
"onDebugResolve:godot"
|
|
],
|
|
"main": "./out/extension.js",
|
|
"scripts": {
|
|
"compile": "tsc -p ./",
|
|
"lint": "tslint -p ./",
|
|
"watch": "tsc -watch -p ./",
|
|
"package": "vsce package",
|
|
"vscode:prepublish": "npm run esbuild-base -- --minify",
|
|
"esbuild-base": "esbuild ./src/extension.ts --bundle --outfile=out/extension.js --external:vscode --format=cjs --platform=node",
|
|
"esbuild": "npm run esbuild-base -- --sourcemap",
|
|
"esbuild-watch": "npm run esbuild-base -- --sourcemap --watch",
|
|
"generate-icons": "ts-node tools/generate_icons.ts"
|
|
},
|
|
"contributes": {
|
|
"commands": [
|
|
{
|
|
"command": "godot-tool.open_editor",
|
|
"title": "Godot Tools: Open workspace with Godot editor"
|
|
},
|
|
{
|
|
"command": "godot-tool.run_project",
|
|
"title": "Godot Tools: Run workspace as Godot project"
|
|
},
|
|
{
|
|
"command": "godot-tool.run_project_debug",
|
|
"title": "Godot Tools: Run workspace as Godot project with visible collision shapes and navigation meshes"
|
|
},
|
|
{
|
|
"command": "godot-tool.list_native_classes",
|
|
"title": "Godot Tools: List native classes of godot"
|
|
},
|
|
{
|
|
"command": "godot-tool.open_type_documentation",
|
|
"title": "Godot Tools: Open Type Documentation"
|
|
},
|
|
{
|
|
"command": "godot-tool.debugger.inspect_node",
|
|
"title": "Inspect Remote Node",
|
|
"icon": {
|
|
"light": "resources/light/icon_GUI_visibility_visible.svg",
|
|
"dark": "resources/dark/icon_GUI_visibility_visible.svg"
|
|
}
|
|
},
|
|
{
|
|
"command": "godot-tool.debugger.refresh_scene_tree",
|
|
"title": "Refresh",
|
|
"icon": {
|
|
"light": "resources/light/icon_refresh.svg",
|
|
"dark": "resources/dark/icon_refresh.svg"
|
|
}
|
|
},
|
|
{
|
|
"command": "godot-tool.debugger.refresh_inspector",
|
|
"title": "Refresh",
|
|
"icon": {
|
|
"light": "resources/light/icon_refresh.svg",
|
|
"dark": "resources/dark/icon_refresh.svg"
|
|
}
|
|
},
|
|
{
|
|
"command": "godot-tool.debugger.edit_value",
|
|
"title": "Edit value",
|
|
"icon": {
|
|
"light": "resources/light/icon_edit.svg",
|
|
"dark": "resources/dark/icon_edit.svg"
|
|
}
|
|
},
|
|
{
|
|
"command": "godotTools.scenePreview.refresh",
|
|
"title": "Godot Tools: Refresh Scene Preview"
|
|
},
|
|
{
|
|
"command": "godotTools.scenePreview.pin",
|
|
"title": "Pin Scene Preview",
|
|
"icon": "resources/pin_off.svg"
|
|
},
|
|
{
|
|
"command": "godotTools.scenePreview.unpin",
|
|
"title": "Unpin Scene Preview",
|
|
"icon": "resources/pin_on.svg"
|
|
},
|
|
{
|
|
"command": "godotTools.scenePreview.goToDefinition",
|
|
"title": "Go to Definition"
|
|
},
|
|
{
|
|
"command": "godotTools.scenePreview.copyNodePath",
|
|
"title": "Copy Node Path"
|
|
},
|
|
{
|
|
"command": "godotTools.scenePreview.copyResourcePath",
|
|
"title": "Copy Resource Path"
|
|
},
|
|
{
|
|
"command": "godotTools.scenePreview.openScene",
|
|
"title": "Open Scene"
|
|
},
|
|
{
|
|
"command": "godotTools.scenePreview.openScript",
|
|
"title": "Open Script"
|
|
},
|
|
{
|
|
"command": "godotTools.switchSceneScript",
|
|
"title": "Godot Tools: Switch Scene/Script"
|
|
},
|
|
{
|
|
"command": "godot-tool.set_scene_file",
|
|
"title": "Set as Scene File"
|
|
},
|
|
{
|
|
"command": "godot-tool.copy_resource_path_context",
|
|
"title": "Copy Resource Path"
|
|
},
|
|
{
|
|
"command": "godot-tool.copy_resource_path",
|
|
"title": "Godot Tools: Copy Resource Path"
|
|
}
|
|
],
|
|
"keybindings": [
|
|
{
|
|
"command": "godotTools.switchSceneScript",
|
|
"key": "alt+o",
|
|
"when": "editorLangId == 'gdscript' && editorTextFocus || editorLangId == 'gdresource' && editorTextFocus"
|
|
}
|
|
],
|
|
"configuration": {
|
|
"type": "object",
|
|
"title": "Godot Tools configuration",
|
|
"properties": {
|
|
"godot_tools.gdscript_lsp_server_protocol": {
|
|
"type": [
|
|
"string"
|
|
],
|
|
"enum": [
|
|
"ws",
|
|
"tcp"
|
|
],
|
|
"default": "tcp",
|
|
"enumDescriptions": [
|
|
"Using WebSocket protocol to connect to Godot 3.2 and Godot 3.2.1",
|
|
"Using TCP protocol to connect to Godot 3.2.2 and newer versions"
|
|
],
|
|
"description": "The server protocol of the GDScript language server.\nYou have restart VSCode editor after change this value."
|
|
},
|
|
"godot_tools.gdscript_lsp_server_host": {
|
|
"type": "string",
|
|
"default": "127.0.0.1",
|
|
"description": "The server host of the GDScript language server"
|
|
},
|
|
"godot_tools.gdscript_lsp_server_port": {
|
|
"type": "number",
|
|
"default": 6008,
|
|
"description": "The server port of the GDScript language server"
|
|
},
|
|
"godot_tools.editor_path": {
|
|
"type": "string",
|
|
"default": "",
|
|
"description": "The absolute path to the Godot editor executable"
|
|
},
|
|
"godot_tools.scene_file_config": {
|
|
"type": "string",
|
|
"default": "",
|
|
"description": "The scene file to run"
|
|
},
|
|
"godot_tools.reconnect_automatically": {
|
|
"type": "boolean",
|
|
"default": true,
|
|
"description": "Whether the plugin should attempt to reconnect"
|
|
},
|
|
"godot_tools.reconnect_cooldown": {
|
|
"type": "number",
|
|
"default": 3000,
|
|
"description": "The number of milliseconds to wait before attempting to reconnect"
|
|
},
|
|
"godot_tools.reconnect_attempts": {
|
|
"type": "number",
|
|
"default": 10,
|
|
"description": "How many times the client will attempt to reconnect"
|
|
},
|
|
"godot_tools.force_visible_collision_shapes": {
|
|
"type": "boolean",
|
|
"default": false,
|
|
"description": "Force the project to run with visible collision shapes"
|
|
},
|
|
"godot_tools.force_visible_nav_mesh": {
|
|
"type": "boolean",
|
|
"default": false,
|
|
"description": "Force the project to run with visible navigation meshes"
|
|
},
|
|
"godot_tools.native_symbol_placement": {
|
|
"enum": [
|
|
"active",
|
|
"beside"
|
|
],
|
|
"enumDescriptions": [
|
|
"Place the native symbol window in the active tabs group",
|
|
"Place the native symbol window beside the active tabs group"
|
|
],
|
|
"default": "beside",
|
|
"description": "Where to place the native symbol windows"
|
|
},
|
|
"godot_tools.scenePreview.previewRelatedScenes": {
|
|
"enum": [
|
|
"anyFolder",
|
|
"sameFolder",
|
|
"off"
|
|
],
|
|
"enumDescriptions": [
|
|
"Attempt to preview a related scene from anywhere in the workspace.",
|
|
"Attempt to preview a related scene from the same folder.",
|
|
"Do not attempt to preview a related scene."
|
|
],
|
|
"default": "sameFolder",
|
|
"description": "Controls where the Scene Preview will search for related scenes when viewing a script file."
|
|
}
|
|
}
|
|
},
|
|
"languages": [
|
|
{
|
|
"id": "gdscript",
|
|
"aliases": [
|
|
"GDScript",
|
|
"gdscript"
|
|
],
|
|
"extensions": [
|
|
".gd"
|
|
],
|
|
"configuration": "./configurations/gdscript-configuration.json"
|
|
},
|
|
{
|
|
"id": "gdresource",
|
|
"aliases": [
|
|
"GDResource",
|
|
"gdresource"
|
|
],
|
|
"extensions": [
|
|
"godot",
|
|
"tres",
|
|
"tscn",
|
|
"import",
|
|
"gdns",
|
|
"gdnlib"
|
|
],
|
|
"configuration": "./configurations/gdresource-configuration.json"
|
|
},
|
|
{
|
|
"id": "gdshader",
|
|
"aliases": [
|
|
"gdshader"
|
|
],
|
|
"extensions": [
|
|
".gdshader"
|
|
],
|
|
"configuration": "./configurations/gdshader-configuration.json"
|
|
}
|
|
],
|
|
"grammars": [
|
|
{
|
|
"language": "gdscript",
|
|
"scopeName": "source.gdscript",
|
|
"path": "./syntaxes/GDScript.tmLanguage.json"
|
|
},
|
|
{
|
|
"language": "gdresource",
|
|
"scopeName": "source.gdresource",
|
|
"path": "./syntaxes/GDResource.tmLanguage.json"
|
|
},
|
|
{
|
|
"language": "gdshader",
|
|
"scopeName": "source.gdshader",
|
|
"path": "./syntaxes/GDShader.tmLanguage.json"
|
|
}
|
|
],
|
|
"snippets": [
|
|
{
|
|
"language": "gdscript",
|
|
"path": "./configurations/snippets.json"
|
|
}
|
|
],
|
|
"debuggers": [
|
|
{
|
|
"type": "godot",
|
|
"label": "GDScript Godot Debug",
|
|
"program": "./out/debugger/debug_adapter.js",
|
|
"runtime": "node",
|
|
"configurationAttributes": {
|
|
"launch": {
|
|
"required": [
|
|
"project",
|
|
"port",
|
|
"address"
|
|
],
|
|
"properties": {
|
|
"project": {
|
|
"type": "string",
|
|
"description": "Absolute path to a directory with a project.godot file.",
|
|
"default": "${workspaceFolder}"
|
|
},
|
|
"port": {
|
|
"type": "number",
|
|
"description": "The port number for the Godot remote debugger to use.",
|
|
"default": 6007
|
|
},
|
|
"address": {
|
|
"type": "string",
|
|
"description": "The IP address for the Godot remote debugger to use.",
|
|
"default": "127.0.0.1"
|
|
},
|
|
"launch_game_instance": {
|
|
"type": "boolean",
|
|
"description": "Whether to launch an instance of the workspace's game, or wait for a debug session to connect.",
|
|
"default": true
|
|
},
|
|
"launch_scene": {
|
|
"type": "boolean",
|
|
"description": "Whether to launch an instance the currently opened TSCN file, or launch the game project. Only works with launch_game_instance being true.",
|
|
"default": false
|
|
},
|
|
"scene_file": {
|
|
"type": "string",
|
|
"description": "Relative path from the godot.project file to a TSCN file. If launch_scene and launch_game_instance are true, and this file is defined, will launch the specified file instead of looking for an active TSCN file.",
|
|
"default": ""
|
|
},
|
|
"additional_options":{
|
|
"type":"string",
|
|
"description": "Additional command line arguments.",
|
|
"default":""
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"initialConfigurations": [
|
|
{
|
|
"name": "GDScript Godot",
|
|
"type": "godot",
|
|
"request": "launch",
|
|
"project": "${workspaceFolder}",
|
|
"port": 6007,
|
|
"address": "127.0.0.1",
|
|
"launch_game_instance": true,
|
|
"launch_scene": false,
|
|
"additional_options":""
|
|
}
|
|
],
|
|
"configurationSnippets": [
|
|
{
|
|
"label": "GDScript Godot Debug: Launch",
|
|
"description": "A new configuration for debugging a Godot project.",
|
|
"body": {
|
|
"type": "godot",
|
|
"request": "launch",
|
|
"project": "${workspaceFolder}",
|
|
"port": 6007,
|
|
"address": "127.0.0.1",
|
|
"launch_game_instance": true,
|
|
"launch_scene": false,
|
|
"additional_options":""
|
|
}
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"breakpoints": [
|
|
{
|
|
"language": "gdscript"
|
|
}
|
|
],
|
|
"viewsContainers": {
|
|
"activitybar": [
|
|
{
|
|
"id": "godotTools",
|
|
"title": "Godot Tools",
|
|
"icon": "resources/godot_icon.svg"
|
|
}
|
|
]
|
|
},
|
|
"views": {
|
|
"debug": [
|
|
{
|
|
"id": "active-scene-tree",
|
|
"name": "Active Scene Tree",
|
|
"when": "inDebugMode && debugType == 'godot'"
|
|
},
|
|
{
|
|
"id": "inspect-node",
|
|
"name": "Inspector",
|
|
"when": "inDebugMode && debugType == 'godot'"
|
|
}
|
|
],
|
|
"godotTools": [
|
|
{
|
|
"id": "scenePreview",
|
|
"name": "Scene Preview"
|
|
}
|
|
]
|
|
},
|
|
"menus": {
|
|
"commandPalette": [
|
|
{
|
|
"command": "godotTools.scenePreview.refresh",
|
|
"when": "false"
|
|
},
|
|
{
|
|
"command": "godotTools.scenePreview.goToDefinition",
|
|
"when": "false"
|
|
},
|
|
{
|
|
"command": "godotTools.scenePreview.pin",
|
|
"when": "false"
|
|
},
|
|
{
|
|
"command": "godotTools.scenePreview.unpin",
|
|
"when": "false"
|
|
},
|
|
{
|
|
"command": "godotTools.scenePreview.copyNodePath",
|
|
"when": "false"
|
|
},
|
|
{
|
|
"command": "godotTools.scenePreview.copyResourcePath",
|
|
"when": "false"
|
|
},
|
|
{
|
|
"command": "godotTools.scenePreview.openScript",
|
|
"when": "false"
|
|
},
|
|
{
|
|
"command": "godotTools.scenePreview.openScene",
|
|
"when": "false"
|
|
},
|
|
{
|
|
"command": "godot-tool.copy_resource_path_context",
|
|
"when": "false"
|
|
}
|
|
],
|
|
"view/title": [
|
|
{
|
|
"command": "godot-tool.debugger.refresh_scene_tree",
|
|
"when": "view == active-scene-tree",
|
|
"group": "navigation"
|
|
},
|
|
{
|
|
"command": "godot-tool.debugger.refresh_inspector",
|
|
"when": "view == inspect-node",
|
|
"group": "navigation"
|
|
},
|
|
{
|
|
"command": "godotTools.scenePreview.pin",
|
|
"when": "view == scenePreview && !godotTools.context.scenePreviewPinned",
|
|
"group": "navigation"
|
|
},
|
|
{
|
|
"command": "godotTools.scenePreview.unpin",
|
|
"when": "view == scenePreview && godotTools.context.scenePreviewPinned",
|
|
"group": "navigation"
|
|
}
|
|
],
|
|
"view/item/context": [
|
|
{
|
|
"command": "godot-tool.debugger.inspect_node",
|
|
"when": "view == active-scene-tree",
|
|
"group": "inline"
|
|
},
|
|
{
|
|
"command": "godot-tool.debugger.inspect_node",
|
|
"when": "view == inspect-node && viewItem == remote_object",
|
|
"group": "inline"
|
|
},
|
|
{
|
|
"command": "godot-tool.debugger.edit_value",
|
|
"when": "view == inspect-node && viewItem == editable_value",
|
|
"group": "inline"
|
|
},
|
|
{
|
|
"command": "godotTools.scenePreview.goToDefinition",
|
|
"when": "view == scenePreview",
|
|
"group": "1@1"
|
|
},
|
|
{
|
|
"command": "godotTools.scenePreview.copyNodePath",
|
|
"when": "view == scenePreview"
|
|
},
|
|
{
|
|
"command": "godotTools.scenePreview.copyResourcePath",
|
|
"when": "view == scenePreview && viewItem =~ /hasResourcePath/"
|
|
},
|
|
{
|
|
"command": "godotTools.scenePreview.openScene",
|
|
"when": "view == scenePreview && viewItem =~ /openable/",
|
|
"group": "1@2"
|
|
},
|
|
{
|
|
"command": "godotTools.scenePreview.openScript",
|
|
"when": "view == scenePreview && viewItem =~ /hasScript/",
|
|
"group": "1@2"
|
|
}
|
|
],
|
|
"explorer/context": [
|
|
{
|
|
"command": "godot-tool.set_scene_file",
|
|
"group": "2_workspace"
|
|
},
|
|
{
|
|
"command": "godot-tool.copy_resource_path_context",
|
|
"group": "6_copypath"
|
|
}
|
|
],
|
|
"editor/title/context": [
|
|
{
|
|
"command": "godot-tool.copy_resource_path_context",
|
|
"group": "1_godot"
|
|
}
|
|
],
|
|
"editor/context": [
|
|
{
|
|
"command": "godot-tool.open_type_documentation",
|
|
"when": "godotTools.context.connectedToEditor",
|
|
"group": "navigation@9"
|
|
},
|
|
{
|
|
"command": "godotTools.switchSceneScript",
|
|
"when": "editorLangId == 'gdscript' || editorLangId == 'gdresource'",
|
|
"group": "custom1@1"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"devDependencies": {
|
|
"@types/marked": "^0.6.5",
|
|
"@types/mocha": "^9.1.0",
|
|
"@types/node": "^10.12.21",
|
|
"@types/prismjs": "^1.16.8",
|
|
"@types/vscode": "^1.68.0",
|
|
"@types/ws": "^8.2.2",
|
|
"esbuild": "^0.15.2",
|
|
"ts-node": "^10.9.1",
|
|
"tslint": "^5.20.1",
|
|
"typescript": "^3.5.1",
|
|
"vsce": "^2.10.0"
|
|
},
|
|
"dependencies": {
|
|
"await-notify": "^1.0.1",
|
|
"global": "^4.4.0",
|
|
"marked": "^4.0.11",
|
|
"net": "^1.0.2",
|
|
"terminate": "^2.5.0",
|
|
"vscode-debugadapter": "^1.38.0",
|
|
"vscode-languageclient": "^7.0.0",
|
|
"ws": "^8.4.2"
|
|
}
|
|
}
|