blob: b1d0d5ae19e010a2b9fad188c8913b46d428e2a8 [file] [log] [blame]
{
"name": "vscode-fuchsia",
"displayName": "Fuchsia",
"description": "Fuchsia developer extension.",
"license": "SEE LICENSE IN LICENSE",
"publisher": "fuchsia-authors",
"typings": "dist/types",
"repository": {
"type": "git",
"url": "https://fuchsia.googlesource.com/vscode-plugins"
},
"bugs": {
"url": "https://bugs.fuchsia.dev/p/fuchsia/issues/entry?template=Fuchsia+Editor+Tooling"
},
"version": "1.2022110.0",
"engines": {
"vscode": "^1.63.0"
},
"categories": [
"Other"
],
"activationEvents": [
"onLanguage:fidl",
"onLanguage:cml",
"workspaceContains:.jiri_root/bin/ffx",
"workspaceContains:tools/ffx",
"onView:vscode-fuchsia.loggingView",
"onDebugResolve:zxdb",
"onCommand:fuchsia.target.select",
"onCommand:fuchsia.target.show",
"onCommand:fuchsia.sendFeedback",
"onCommand:fuchsia.viewLogs"
],
"main": "./dist/extension",
"contributes": {
"breakpoints": [
{
"language": "c"
},
{
"language": "cpp"
},
{
"language": "rust"
}
],
"debuggers": [
{
"type": "zxdb",
"label": "zxdb",
"languages": [
"cpp",
"c",
"rust"
],
"configurationAttributes": {
"launch": {
"required": [
"launchCommand",
"process"
],
"properties": {
"launchCommand": {
"type": "string",
"description": "Command to launch the debuggee, e.g., fx test hello-world-test",
"default": "${command:EnterLaunchCommand}"
},
"process": {
"type": "string",
"description": "Name of the process that will be launched by the command. For components, its usually the component name\ne.g, hello-world-test.\nPartial names are also valid e.g., hello-world.",
"default": "${command:PickProcess}"
}
}
},
"attach": {
"required": [
"process"
],
"properties": {
"process": {
"type": "string",
"description": "Name of the process to debug. For components, its usually the component name\ne.g., hello-world-test.\nPartial names are also valid e.g., hello-world.",
"default": "${command:PickProcess}"
}
}
}
},
"initialConfigurations": [
{
"name": "Launch(zxdb) <TODO: give a custom name>",
"type": "zxdb",
"request": "launch",
"launchCommand": "<TODO: Add a shell command to launch debuggee e.g., fx test hello-world-test>",
"process": "<TODO: Debugging process name. For components, it's usually the component name. e.g., hello-world-test>"
}
],
"configurationSnippets": [
{
"label": "zxdb: Launch",
"description": "Launch an executable on target.",
"body": {
"name": "Launch(zxdb) <TODO: give a custom name>",
"type": "zxdb",
"request": "launch",
"launchCommand": "<TODO: update this e.g., fx test hello-world-test>",
"process": "<TODO: update this e.g., hello-world-test>"
}
},
{
"label": "zxdb: Launch (input based)",
"description": "Launch an executable on target. Input box will appear for launch command and process name while debugging.",
"body": {
"name": "Launch(zxdb) input based",
"type": "zxdb",
"request": "launch",
"launchCommand": "^\"\\${command:EnterLaunchCommand}\"",
"process": "^\"\\${command:PickProcess}\""
}
},
{
"label": "zxdb: Launch example",
"description": "An example zxdb launch configuration.",
"body": {
"name": "Launch(zxdb) example",
"type": "zxdb",
"request": "launch",
"launchCommand": "fx test hello-world-test",
"process": "hello-world-test"
}
},
{
"label": "zxdb: Attach",
"description": "Attach to a process on target.",
"body": {
"name": "Attach(zxdb) <TODO: give a custom name>",
"type": "zxdb",
"request": "attach",
"process": "<TODO: update this e.g., hello-world-test>"
}
},
{
"label": "zxdb: Attach (input based)",
"description": "Attach to a process on target. Input box will appear for process name while debugging",
"body": {
"name": "Attach(zxdb) input based",
"type": "zxdb",
"request": "attach",
"process": "^\"\\${command:PickProcess}\""
}
},
{
"label": "zxdb: Attach example",
"description": "An example zxdb attach configuration.",
"body": {
"name": "Attach(zxdb) example",
"type": "zxdb",
"request": "attach",
"process": "archivist.cm"
}
}
],
"variables": {
"PickProcess": "fuchsia.internal.zxdb.pickProcess",
"EnterLaunchCommand": "fuchsia.internal.zxdb.enterLaunchCommand"
}
}
],
"commands": [
{
"command": "fuchsia.target.reboot",
"title": "Reboot Target",
"category": "Fuchsia"
},
{
"command": "fuchsia.target.powerOff",
"title": "Power off Target",
"category": "Fuchsia"
},
{
"command": "fuchsia.target.show",
"title": "Target Show",
"category": "Fuchsia"
},
{
"command": "fuchsia.target.snapshot",
"title": "Capture snapshot",
"category": "Fuchsia"
},
{
"command": "fuchsia.sendFeedback",
"title": "Send Feedback",
"category": "Fuchsia"
},
{
"command": "fuchsia.target.select",
"title": "Select default device",
"category": "Fuchsia"
},
{
"command": "fuchsia.viewLogs",
"title": "View Logs",
"category": "Fuchsia"
}
],
"configuration": [
{
"title": "Fuchsia SDK",
"id": "fuchsia",
"properties": {
"fuchsia.ffxPath": {
"type": "string",
"description": "The path to the FFX executable to use with this project."
},
"fuchsia.debug": {
"scope": "window",
"type": "boolean",
"default": false,
"description": "Enable logging of debug messages."
},
"fuchsia.connectionTimeout": {
"scope": "window",
"type": "number",
"default": 1000,
"description": "FFX connection timeout in milliseconds (default = 1000)."
},
"fuchsia.zxdb.timeout": {
"scope": "window",
"type": "number",
"default": 30000,
"description": "ZXDB timeout in milliseconds."
},
"fuchsia.featurePreview": {
"scope": "window",
"type": "string",
"default": "auto",
"enum": [
"nightly",
"stable",
"auto"
],
"enumDescriptions": [
"use features only enabled in nightly builds, regardless of the version of the extension",
"use only features available in stable builds, regardless of the version of the extension",
"autodetect which features to enabled based on the version of the extension"
],
"markdownDescription": "Bulk-enable or disable feature previews. Individual options in Fuchsia: Feature Previews will override this setting."
}
}
},
{
"title": "Feature Previews",
"id": "fuchsia.features",
"properties": {
"fuchsia.features.stableFeature": {
"scope": "window",
"type": "string",
"enum": [
"enabled",
"disabled",
"auto"
],
"markdownEnumDescriptions": [
"(force) enable this feature",
"(force) disable this feature",
"defer to `#fuchsia.featurePreview#`"
],
"markdownDeprecationMessage": "this is for testing only",
"default": "auto",
"description": "(testing) this will always be on"
},
"fuchsia.features.nightlyOnlyFeature": {
"scope": "window",
"type": "string",
"enum": [
"enabled",
"disabled",
"auto"
],
"markdownEnumDescriptions": [
"(force) enable this feature",
"(force) disable this feature",
"defer to `#fuchsia.featurePreview#`"
],
"markdownDeprecationMessage": "this is for testing only",
"default": "auto",
"description": "(testing) this will only be on in a nightly build"
},
"fuchsia.features.offFeature": {
"scope": "window",
"type": "string",
"enum": [
"enabled",
"disabled",
"auto"
],
"markdownEnumDescriptions": [
"(force) enable this feature",
"(force) disable this feature",
"defer to `#fuchsia.featurePreview#`"
],
"markdownDeprecationMessage": "this is for testing only",
"default": "auto",
"description": "(testing) this will always off"
},
"fuchsia.features.changedFeature": {
"scope": "window",
"type": "string",
"enum": [
"enabled",
"disabled",
"auto"
],
"markdownEnumDescriptions": [
"(force) enable this feature",
"(force) disable this feature",
"defer to `#fuchsia.featurePreview#`"
],
"markdownDeprecationMessage": "this is for testing only",
"default": "auto",
"description": "(testing) this will be changed during tests"
}
}
}
],
"grammars": [
{
"language": "fidl",
"scopeName": "source.fidl",
"path": "./dist/resources/fidl.tmLanguage.json"
},
{
"language": "cml",
"scopeName": "source.cml",
"path": "./dist/resources/cml.tmLanguage.json"
}
],
"languages": [
{
"id": "fidl",
"aliases": [
"FIDL",
"Fidl",
"fidl"
],
"extensions": [
".fidl"
],
"configuration": "./resources/language_configs/fidl.json"
},
{
"id": "cml",
"aliases": [
"CML",
"Cml",
"cml"
],
"extensions": [
".cml"
]
}
],
"viewsContainers": {
"panel": [
{
"id": "fuchsia-logging",
"title": "Fuchsia Logs",
"icon": "resources/fuchsia-explorer.png"
}
]
},
"views": {
"fuchsia-logging": [
{
"type": "webview",
"id": "vscode-fuchsia.loggingView",
"name": "Fuchsia Logs"
}
]
}
},
"icon": "resources/fuchsia_icon_256x256.png",
"scripts": {
"build": "node build.mjs",
"prepare": "npx tsc",
"watch": "node build.mjs watch",
"clean": "rm -rf dist && rm -rf test-dist && rm -rf test-webview-dist",
"preupdate-syntax-snapshot": "npm run build",
"update-syntax-snapshot": "npx vscode-tmgrammar-snap --updateSnapshot 'src/test/suite/snap/**/*.test.*[!p]'",
"pretest": "node build.mjs && git clean -Xdf ./testdata/",
"test:webview": "npx web-test-runner ./test-webview-dist/all-tests.js",
"test": "npm run typecheck && npm run lint && node ./test-dist/src/test/run_test.js && npm run test:webview",
"lint": "npx eslint \"{src,webviews}/**/*.ts\"",
"typecheck": "npx tsc",
"typecheck:watch": "npx tsc --watch",
"lint:fix": "npx eslint \"{src,webviews}/**/*.ts\" --fix",
"pretest:ci": "node build.mjs",
"test:ci": "node ./test-dist/src/test/run_test.js && npx web-test-runner ./test-webview-dist/all-tests.js",
"vscode:prepublish": "NODE_ENV=production node build.mjs",
"bc": "node build.mjs && npx tsc"
},
"devDependencies": {
"@types/chai-dom": "^0.0.12",
"@types/glob": "^7.2.0",
"@types/jsdom": "^16.2.14",
"@types/mocha": "^9.0.0",
"@types/node": "14.x",
"@types/sinon": "^10.0.11",
"@types/vscode": "^1.62.3",
"@types/vscode-webview": "^1.57.0",
"@typescript-eslint/eslint-plugin": "^5.9.1",
"@typescript-eslint/parser": "^5.9.1",
"@vscode/codicons": "^0.0.30",
"@vscode/test-electron": "^2.0.3",
"@web/test-runner": "^0.14.0",
"chai-dom": "^1.11.0",
"esbuild": "^0.15.0",
"eslint": "^8.6.0",
"eslint-plugin-jsdoc": "^39.6.4",
"glob": "^7.2.0",
"mocha": "^9.1.3",
"peggy": "^1.2.0",
"sinon": "^13.0.1",
"source-map-support": "^0.5.21",
"typescript": "^4.5.4",
"vsce": "^2.6.6",
"vscode-tmgrammar-test": "^0.1.1"
},
"dependencies": {
"@vscode/debugprotocol": "^1.55.1",
"jsonparse": "^1.3.1",
"lit": "^2.2.5"
},
"__metadata": {
"id": "72e71b86-9c3a-42ac-bad6-7beecee326c5",
"publisherDisplayName": "The Fuchsia Authors",
"publisherId": "6b4341fb-1e2c-4a5e-9c1f-1d34016009f5",
"isPreReleaseVersion": false
}
}