Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
176 changes: 173 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -252,6 +252,7 @@
"onCommand:dotnet.restore",
"onCommand:csharp.downloadDebugger",
"onCommand:csharp.listProcess",
"onCommand:csharp.listRemoteProcess",
"workspaceContains:project.json"
],
"contributes": {
Expand Down Expand Up @@ -359,6 +360,11 @@
"command": "csharp.listProcess",
"title": "List process for attach",
"category": "CSharp"
},
{
"command" : "csharp.listRemoteProcess",
"title" : "List processes on remote connection for attach",
"category": "CSharp"
}
],
"keybindings": [
Expand Down Expand Up @@ -402,7 +408,8 @@
"runtime": "node",
"runtimeArgs": [],
"variables": {
"pickProcess": "csharp.listProcess"
"pickProcess": "csharp.listProcess",
"pickRemoteProcess": "csharp.listRemoteProcess"
},
"program": "./out/src/coreclr-debug/proxy.js",
"aiKey": "AIF-d9b70cd4-b9f9-4d70-929b-a071c400b217",
Expand Down Expand Up @@ -611,7 +618,8 @@
"default": {
"pipeCwd": "${workspaceRoot}",
"pipeProgram": "enter the fully qualified path for the pipe program name, for example 'c:\\tools\\plink.exe'",
"pipeArgs": []
"pipeArgs": [],
"debuggerPath" : "enter the path for the debugger on the target machine, for example ~/clrdbg/clrdbg"
},
"properties": {
"pipeCwd": {
Expand All @@ -632,6 +640,11 @@
},
"default": []
},
"debuggerPath" : {
"type" : "string",
"description" : "The full path to the debugger on the target machine.",
"default" : "~/clrdbg/clrdbg"
},
"pipeEnv": {
"type": "object",
"additionalProperties": {
Expand Down Expand Up @@ -844,6 +857,163 @@
"default": false
}
}
},
"pipeTransport": {
"type": "object",
"required": [
"debuggerPath"
],
"description": "When present, this tells the debugger to connect to a remote computer using another executable as a pipe that will relay standard input/output between VS Code and the .NET Core debugger backend executable (clrdbg).",
"default": {
"pipeCwd": "${workspaceRoot}",
"pipeProgram": "enter the fully qualified path for the pipe program name, for example 'c:\\tools\\plink.exe'",
"pipeArgs": [],
"debuggerPath" : "enter the path for the debugger, for example ~/clrdbg/clrdbg"
},
"properties": {
"pipeCwd": {
"type": "string",
"description": "The fully qualified path to the working directory for the pipe program.",
"default": "${workspaceRoot}"
},
"pipeProgram": {
"type": "string",
"description": "The fully qualified pipe command to execute.",
"default": "enter the fully qualified path for the pipe program name, for example 'c:\\tools\\plink.exe'"
},
"pipeArgs": {
"type": "array",
"description": "Command line arguments passed to the pipe program.",
"items": {
"type": "string"
},
"default": []
},
"debuggerPath" : {
"type" : "string",
"description" : "The full path to the debugger on the target machine.",
"default" : "~/clrdbg/clrdbg"
},
"pipeEnv": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Environment variables passed to the pipe program.",
"default": {}
},
"windows": {
"type": "object",
"description": "Windows-specific pipe launch configuration options",
"default": {
"pipeCwd": "${workspaceRoot}",
"pipeProgram": "enter the fully qualified path for the pipe program name, for example 'c:\\tools\\plink.exe'",
"pipeArgs": []
},
"properties": {
"pipeCwd": {
"type": "string",
"description": "The fully qualified path to the working directory for the pipe program.",
"default": "${workspaceRoot}"
},
"pipeProgram": {
"type": "string",
"description": "The fully qualified pipe command to execute.",
"default": "enter the fully qualified path for the pipe program name, for example 'c:\\tools\\plink.exe'"
},
"pipeArgs": {
"type": "array",
"description": "Command line arguments passed to the pipe program.",
"items": {
"type": "string"
},
"default": []
},
"pipeEnv": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Environment variables passed to the pipe program.",
"default": {}
}
}
},
"osx": {
"type": "object",
"description": "OSX-specific pipe launch configuration options",
"default": {
"pipeCwd": "${workspaceRoot}",
"pipeProgram": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'",
"pipeArgs": []
},
"properties": {
"pipeCwd": {
"type": "string",
"description": "The fully qualified path to the working directory for the pipe program.",
"default": "${workspaceRoot}"
},
"pipeProgram": {
"type": "string",
"description": "The fully qualified pipe command to execute.",
"default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'"
},
"pipeArgs": {
"type": "array",
"description": "Command line arguments passed to the pipe program.",
"items": {
"type": "string"
},
"default": []
},
"pipeEnv": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Environment variables passed to the pipe program.",
"default": {}
}
}
},
"linux": {
"type": "object",
"description": "Linux-specific pipe launch configuration options",
"default": {
"pipeCwd": "${workspaceRoot}",
"pipeProgram": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'",
"pipeArgs": []
},
"properties": {
"pipeCwd": {
"type": "string",
"description": "The fully qualified path to the working directory for the pipe program.",
"default": "${workspaceRoot}"
},
"pipeProgram": {
"type": "string",
"description": "The fully qualified pipe command to execute.",
"default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'"
},
"pipeArgs": {
"type": "array",
"description": "Command line arguments passed to the pipe program.",
"items": {
"type": "string"
},
"default": []
},
"pipeEnv": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Environment variables passed to the pipe program.",
"default": {}
}
}
}
}
}
}
}
Expand Down Expand Up @@ -900,4 +1070,4 @@
}
]
}
}
}
8 changes: 4 additions & 4 deletions src/features/commands.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import * as path from 'path';
import * as protocol from '../omnisharp/protocol';
import * as vscode from 'vscode';
import * as dotnetTest from './dotnetTest';
import {DotNetAttachItemsProviderFactory, AttachPicker} from './processPicker';
import {DotNetAttachItemsProviderFactory, AttachPicker, RemoteAttachPicker} from './processPicker';
import {generateAssets} from '../assets';

let channel = vscode.window.createOutputChannel('.NET');
Expand All @@ -37,11 +37,11 @@ export default function registerCommands(server: OmniSharpServer, extensionPath:
let attachItemsProvider = DotNetAttachItemsProviderFactory.Get();
let attacher = new AttachPicker(attachItemsProvider);
let d8 = vscode.commands.registerCommand('csharp.listProcess', () => attacher.ShowAttachEntries());

// Register command for generating tasks.json and launch.json assets.
let d9 = vscode.commands.registerCommand('dotnet.generateAssets', () => generateAssets(server));
let d10 = vscode.commands.registerCommand('csharp.listRemoteProcess', (args) => RemoteAttachPicker.ShowAttachEntries(args));

return vscode.Disposable.from(d1, d2, d3, d4, d5, d6, d7, d8, d9);
return vscode.Disposable.from(d1, d2, d3, d4, d5, d6, d7, d8, d9, d10);
}

function restartOmniSharp(server: OmniSharpServer) {
Expand Down Expand Up @@ -186,4 +186,4 @@ function dotnetRestore(cwd: string, fileName?: string) {
reject(err);
});
});
}
}
Loading