Я создал расширение Visual Code Debugger, и в моей процедуре активации расширения я могу сказать, что оно было активировано при отладке образца файла * .xyz, так как он записывает XYZ Debuger Activated вприставка. Проблема в том, что мой исполняемый файл отладчика с именем debugger.exe (который является консольным приложением, написанным на C #) не запускается.
Когда я закрываю файл * .xyz, моя точка останова вфункция деактивации расширения получает удар. это заставляет меня поверить, что по большей части расширение работает несколько, но не полностью.
Что я делаю не так?
Вот мой файл extension.ts
'use strict';
// The module 'vscode' contains the VS Code extensibility API
// Import the module and reference it with the alias vscode in your code below
import * as vscode from 'vscode';
import { WorkspaceFolder, DebugConfiguration, ProviderResult, CancellationToken } from 'vscode';
import * as Net from 'net';
// this method is called when your extension is activated
// your extension is activated the very first time the command is executed
export function activate(context: vscode.ExtensionContext) {
// Use the console to output diagnostic information (console.log) and errors (console.error)
// This line of code will only be executed once when your extension is activated
console.log('XYZ-Debugger Activated');
}
// this method is called when your extension is deactivated
export function deactivate() {
console.log('XYZ-Debugger Deactivated');
}
А вот и мой файл package.json:
{
"name": "xyz-debugger",
"displayName": "XYZ Debugger",
"description": "Test Debugger.",
"version": "0.0.1",
"publisher": "Ed_Starkey",
"engines": {
"vscode": "^1.24.0",
"node": "^6.3.0"
},
"categories": [
"Debuggers"
],
"dependencies": {
"vscode-debugprotocol": "^1.20.0",
"vscode-nls": "^2.0.2"
},
"activationEvents": [
"onDebug"
],
"main": "./out/extension",
"contributes": {
"breakpoints": [
{
"language": "xyz"
}
],
"debuggers": [{
"type": "XYZDebug",
"label": "XYZ Debug",
"windows": {
"program": "program": "./out/debugger.exe"
},
"languages": [
{
"id": "xyz",
"extensions": [
".xyz"
],
"aliases": [
"XYZ"
]
}],
"configurationAttributes": {
"launch": {
"required": [
"program"
],
"properties": {
"program": {
"type": "string",
"description": "The program to debug."
}
}
}
},
"initialConfigurations": [
{
"type": "xyz",
"request": "launch",
"name": "Launch Program",
"windows": {
"program": "./out/debugger.exe"
}
}
],
}]
},
"scripts": {
"vscode:prepublish": "npm run compile",
"compile": "tsc -p ./",
"watch": "tsc -watch -p ./",
"postinstall": "node ./node_modules/vscode/bin/install",
"test": "npm run compile && node ./node_modules/vscode/bin/test"
},
"devDependencies": {
"typescript": "^2.5.3",
"vscode": "^1.1.5",
"@types/node": "^7.0.43",
"vscode-debugadapter-testsupport":"^1.29.0"
}
}
А вот и мой launch.json:
// A launch configuration that compiles the extension and then opens it inside a new window
{
"version": "0.1.0",
"configurations": [
{
"name": "Launch XYZ Debug",
"type": "extensionHost",
"request": "launch",
"runtimeExecutable": "${execPath}",
"args": ["--extensionDevelopmentPath=${workspaceRoot}" ],
"stopOnEntry": false,
"sourceMaps": true,
"outFiles": [ "${workspaceRoot}/out/**/*.js" ],
"preLaunchTask": "npm: watch"
},
{
"name": "Launch Tests",
"type": "extensionHost",
"request": "launch",
"runtimeExecutable": "${execPath}",
"args": ["--extensionDevelopmentPath=${workspaceRoot}", "--extensionTestsPath=${workspaceRoot}/out/test" ],
"stopOnEntry": false,
"sourceMaps": true,
"outFiles": [ "${workspaceRoot}/out/test/**/*.js" ],
"preLaunchTask": "npm: watch"
}
]
}