Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
114 commits
Select commit Hold shift + click to select a range
ecc1ca9
Fix Microsoft/vscode#37627 (#1368)
octref Nov 3, 2017
7c5778c
Version 0.7.0 of extension (#1381)
DonJayamanne Nov 9, 2017
9d1bf82
Update README.md
DonJayamanne Nov 9, 2017
ffba179
Update README.md
DonJayamanne Nov 9, 2017
905c713
sync fork with upstream
DonJayamanne Nov 10, 2017
acc2109
fix readme
DonJayamanne Nov 10, 2017
d470523
Merge branch 'master' of https://github.com/Microsoft/vscode-python
DonJayamanne Nov 16, 2017
d392e8b
merged upstream
DonJayamanne Nov 16, 2017
92f775f
Merge remote-tracking branch 'upstream/master'
DonJayamanne Nov 20, 2017
32a6e53
Merge remote-tracking branch 'upstream/master'
DonJayamanne Nov 21, 2017
4b30f2c
Merge remote-tracking branch 'upstream/master'
DonJayamanne Nov 22, 2017
e396752
Merge remote-tracking branch 'upstream/master'
DonJayamanne Nov 22, 2017
eff4792
Merge remote-tracking branch 'upstream/master'
DonJayamanne Nov 28, 2017
4553c28
Merge remote-tracking branch 'upstream/master'
DonJayamanne Nov 28, 2017
3c6520a
Merge remote-tracking branch 'upstream/master'
DonJayamanne Nov 28, 2017
966e516
Merge remote-tracking branch 'upstream/master'
DonJayamanne Nov 28, 2017
63d2d65
Merge remote-tracking branch 'upstream/master'
DonJayamanne Nov 28, 2017
f6d469e
Merge remote-tracking branch 'upstream/master'
DonJayamanne Nov 28, 2017
029e055
Merge remote-tracking branch 'upstream/master'
DonJayamanne Nov 30, 2017
e8c71c0
Merge remote-tracking branch 'upstream/master'
DonJayamanne Nov 30, 2017
51cf9d2
Merge remote-tracking branch 'upstream/master'
DonJayamanne Dec 1, 2017
7aadc43
Merge remote-tracking branch 'upstream/master'
DonJayamanne Dec 1, 2017
f0f5c59
Merge remote-tracking branch 'upstream/master'
DonJayamanne Dec 4, 2017
b2b9da9
Merge remote-tracking branch 'upstream/master'
DonJayamanne Dec 4, 2017
30a4091
Merge remote-tracking branch 'upstream/master'
DonJayamanne Dec 5, 2017
b16d2f9
Merge remote-tracking branch 'upstream/master'
DonJayamanne Dec 6, 2017
c8db345
Merge remote-tracking branch 'upstream/master'
DonJayamanne Dec 7, 2017
0df7f16
Merge remote-tracking branch 'upstream/master'
DonJayamanne Dec 8, 2017
3ccc881
Merge remote-tracking branch 'upstream/master'
DonJayamanne Dec 9, 2017
bb0709e
Merge remote-tracking branch 'upstream/master'
DonJayamanne Dec 11, 2017
2c19004
Merge remote-tracking branch 'upstream/master'
DonJayamanne Dec 11, 2017
8f224ab
Merge remote-tracking branch 'upstream/master'
DonJayamanne Dec 11, 2017
41b7080
Merge remote-tracking branch 'upstream/master'
DonJayamanne Dec 12, 2017
dab38dc
Merge remote-tracking branch 'upstream/master'
DonJayamanne Dec 12, 2017
ae22dd4
Merge remote-tracking branch 'upstream/master'
DonJayamanne Dec 12, 2017
d2340d2
Merge remote-tracking branch 'upstream/master'
DonJayamanne Dec 14, 2017
52bb7ae
Merge remote-tracking branch 'upstream/master'
DonJayamanne Dec 15, 2017
b6b2531
Merge remote-tracking branch 'upstream/master'
DonJayamanne Dec 19, 2017
8d8d2fc
Merge remote-tracking branch 'upstream/master'
DonJayamanne Dec 19, 2017
c425a55
Merge remote-tracking branch 'upstream/master'
DonJayamanne Jan 3, 2018
3963217
Merge remote-tracking branch 'upstream/master'
DonJayamanne Jan 3, 2018
a696f2a
Merge remote-tracking branch 'upstream/master'
DonJayamanne Jan 3, 2018
a31e659
Merge remote-tracking branch 'upstream/master'
DonJayamanne Jan 4, 2018
2663cd5
Merge remote-tracking branch 'upstream/master'
DonJayamanne Jan 4, 2018
7c85e0b
Merge remote-tracking branch 'upstream/master'
DonJayamanne Jan 5, 2018
beb82c2
Merge remote-tracking branch 'upstream/master'
DonJayamanne Jan 9, 2018
01e722a
Merge remote-tracking branch 'upstream/master'
DonJayamanne Jan 10, 2018
d84da8e
Merge remote-tracking branch 'upstream/master'
DonJayamanne Jan 17, 2018
78da3e1
Merge remote-tracking branch 'upstream/master'
DonJayamanne Jan 19, 2018
685b683
Merge remote-tracking branch 'upstream/master'
DonJayamanne Jan 23, 2018
43364fd
Merge remote-tracking branch 'upstream/master'
DonJayamanne Jan 23, 2018
8701636
Merge remote-tracking branch 'upstream/master'
DonJayamanne Jan 24, 2018
5c8addf
Merge remote-tracking branch 'upstream/master'
DonJayamanne Jan 25, 2018
588c2f9
Merge remote-tracking branch 'upstream/master'
DonJayamanne Jan 30, 2018
66b1382
Merge branch 'master' of https://github.com/DonJayamanne/pythonVSCode
DonJayamanne Jan 30, 2018
e6b4b48
Merge remote-tracking branch 'upstream/master'
DonJayamanne Jan 31, 2018
d8b7712
experiment
DonJayamanne Jan 31, 2018
c62767a
add logging for the debugger
DonJayamanne Feb 2, 2018
7640e0e
working stage
DonJayamanne Feb 2, 2018
f136cd9
working stage
DonJayamanne Feb 2, 2018
6aa9a2d
Merge remote-tracking branch 'upstream/master'
DonJayamanne Feb 4, 2018
0e19662
:tada: working with client socket
DonJayamanne Feb 6, 2018
63e58ea
:sparkles: ability to use different launchers for debuggers
DonJayamanne Feb 6, 2018
2968c3b
:white_check_mark: test for debug launcher scripts
DonJayamanne Feb 6, 2018
e4c77d6
:hammer: rename experimental deugger
DonJayamanne Feb 6, 2018
57f3982
Merge remote-tracking branch 'upstream/master'
DonJayamanne Feb 6, 2018
15aab64
Merge branch 'master' of https://github.com/DonJayamanne/pythonVSCode
DonJayamanne Feb 6, 2018
95ed952
Merge branch 'master' into experimentalDebugger
DonJayamanne Feb 6, 2018
d366b2a
:card_undex: updated with new package
DonJayamanne Feb 7, 2018
733bdd2
:construction: protocol parser
DonJayamanne Feb 7, 2018
75c37e3
:white_check_mark: test for protocol parser
DonJayamanne Feb 7, 2018
b35553d
:hammer: fix typo
DonJayamanne Feb 7, 2018
b49b97b
:hammer: refactor parser
DonJayamanne Feb 7, 2018
798180a
:sparkles: added method top append to a file synchronously
DonJayamanne Feb 7, 2018
63bbcb9
:hammer: refactor cleaning of files
DonJayamanne Feb 7, 2018
a537ba4
:hammer: use passthrough stream and add missing methods
DonJayamanne Feb 7, 2018
41cc703
:sparkles: protocolol logger with tests
DonJayamanne Feb 7, 2018
deedb80
:sparkles: expose more info from process in ICurrentProcess
DonJayamanne Feb 7, 2018
c6e29a8
:sparkles: debugger stream provider for debugger connection
DonJayamanne Feb 7, 2018
04eecf2
:hammer: create pass through stream for parsing
DonJayamanne Feb 8, 2018
0e7888f
Merge remote-tracking branch 'upstream/master'
DonJayamanne Feb 8, 2018
472c5f9
:sparkles: more helper classes and tests for debugger
DonJayamanne Feb 8, 2018
2d7a6a0
:hammer: use vscode logger and ability to dispose
DonJayamanne Feb 8, 2018
7ea8fd7
:sparkles: experimental debugger
DonJayamanne Feb 9, 2018
385a193
:tada: changes to fix back pressure issue
DonJayamanne Feb 9, 2018
621de49
:hammer: refactor
DonJayamanne Feb 9, 2018
94b09e9
:tada: experimental debugger
DonJayamanne Feb 9, 2018
8bc4982
Merge remote-tracking branch 'upstream/master'
DonJayamanne Feb 9, 2018
324777a
:bug: fix stack frame test (separate the tests)
DonJayamanne Feb 9, 2018
c05d035
Merge remote-tracking branch 'upstream/master'
DonJayamanne Feb 9, 2018
08476d1
Merge branch 'master' of https://github.com/DonJayamanne/pythonVSCode
DonJayamanne Feb 9, 2018
96ef4e9
Merge branch 'fixDebugTestFailure' into experimentalDebugger
DonJayamanne Feb 9, 2018
c98c50d
:hammer: tweaks to ensure existing code works with new debugger
DonJayamanne Feb 9, 2018
0110f7e
:white_check_mark: test file for unit testing debugger
DonJayamanne Feb 9, 2018
f21a9c0
:wip: empty test with notes to cover specific tests
DonJayamanne Feb 9, 2018
16f3027
:sparkles: add the new ptvsd launcher
DonJayamanne Feb 9, 2018
79facd2
:hammer: :white_check_mark: refactor tests to test both adapters
DonJayamanne Feb 9, 2018
c9c8bb4
:hammer: remove unwanted files
DonJayamanne Feb 9, 2018
d64db82
:hammer: :sparkles: enabled debugging in terminals with minor changes
DonJayamanne Feb 9, 2018
85c16b1
:ok_hand: code review fixes
DonJayamanne Feb 9, 2018
6ed650e
:ok_hand: use generics to clean code
DonJayamanne Feb 9, 2018
b941887
:ok_hand: code review fixes
DonJayamanne Feb 9, 2018
8f49e96
:ok_hand: code review fixes
DonJayamanne Feb 9, 2018
aeade06
Merge remote-tracking branch 'upstream/master'
DonJayamanne Feb 9, 2018
6850da2
Merge branch 'master' of https://github.com/DonJayamanne/pythonVSCode
DonJayamanne Feb 9, 2018
5d190a4
:lipstick: indentation changes to package.json
DonJayamanne Feb 9, 2018
289c9e7
merged master
DonJayamanne Feb 9, 2018
15fe650
:bug: fix merge issue
DonJayamanne Feb 9, 2018
9935ac0
:package: update yarn lock
DonJayamanne Feb 9, 2018
d47eef0
:memo: changes to labels
DonJayamanne Feb 10, 2018
14b2dd2
:hammer: updated to ensure capabilities line up with ptvsd
DonJayamanne Feb 10, 2018
c16724a
:hammer: ensure debug console is not an option
DonJayamanne Feb 11, 2018
713d582
:ok_hand: strongly typed logging settings
DonJayamanne Feb 11, 2018
de145fc
:hammer: limit debug options
DonJayamanne Feb 11, 2018
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
16 changes: 16 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,22 @@
"cwd": "${workspaceFolder}",
"preLaunchTask": "Compile"
},
{
"name": "Launch Experimental Debugger as debugServer", // https://code.visualstudio.com/docs/extensions/example-debuggers
"type": "node",
"request": "launch",
"program": "${workspaceFolder}/out/client/debugger/mainV2.js",
"stopOnEntry": false,
"args": [
"--server=4711"
],
"sourceMaps": true,
"outFiles": [
"${workspaceFolder}/out/client/**/*.js"
],
"cwd": "${workspaceFolder}",
"preLaunchTask": "Compile"
},
{
"name": "Launch Tests",
"type": "extensionHost",
Expand Down
172 changes: 168 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -385,7 +385,8 @@
"console": "integratedTerminal",
"env": {},
"envFile": "^\"\\${workspaceFolder}/.env\"",
"debugOptions": []
"debugOptions": [],
"internalConsoleOptions": "neverOpen"
}
},
{
Expand All @@ -402,7 +403,8 @@
"console": "externalTerminal",
"env": {},
"envFile": "^\"\\${workspaceFolder}/.env\"",
"debugOptions": []
"debugOptions": [],
"internalConsoleOptions": "neverOpen"
}
},
{
Expand Down Expand Up @@ -740,7 +742,8 @@
"console": "integratedTerminal",
"env": {},
"envFile": "${workspaceFolder}/.env",
"debugOptions": []
"debugOptions": [],
"internalConsoleOptions": "neverOpen"
},
{
"name": "Python: Terminal (external)",
Expand All @@ -753,7 +756,8 @@
"console": "externalTerminal",
"env": {},
"envFile": "${workspaceFolder}/.env",
"debugOptions": []
"debugOptions": [],
"internalConsoleOptions": "neverOpen"
},
{
"name": "Python: Django",
Expand Down Expand Up @@ -884,6 +888,161 @@
]
}
]
},
{
"type": "pythonExperimental",
"label": "Python Experimental",
"languages": [
"python"
],
"enableBreakpointsFor": {
"languageIds": [
"python",
"html"
]
},
"aiKey": "AIF-d9b70cd4-b9f9-4d70-929b-a071c400b217",
"program": "./out/client/debugger/mainV2.js",
"runtime": "node",
"configurationSnippets": [
{
"label": "Python Experimental: Terminal (integrated)",
"description": "%python.snippet.launch.terminal.description%",
"body": {
"name": "Integrated Terminal/Console",
"type": "pythonExperimental",
"request": "launch",
"stopOnEntry": true,
"pythonPath": "^\"\\${config:python.pythonPath}\"",
"program": "^\"\\${file}\"",
"cwd": "",
"console": "integratedTerminal",
"env": {},
"envFile": "^\"\\${workspaceFolder}/.env\"",
"debugOptions": [],
"internalConsoleOptions": "neverOpen"
}
},
{
"label": "Python Experimental: Terminal (external)",
"description": "%python.snippet.launch.externalTerminal.description%",
"body": {
"name": "External Terminal/Console",
"type": "pythonExperimental",
"request": "launch",
"stopOnEntry": true,
"pythonPath": "^\"\\${config:python.pythonPath}\"",
"program": "^\"\\${file}\"",
"cwd": "",
"console": "externalTerminal",
"env": {},
"envFile": "^\"\\${workspaceFolder}/.env\"",
"debugOptions": [],
"internalConsoleOptions": "neverOpen"
}
}
],
"configurationAttributes": {
"launch": {
"properties": {
"program": {
"type": "string",
"description": "Absolute path to the program.",
"default": "${file}"
},
"pythonPath": {
"type": "string",
"description": "Path (fully qualified) to python executable. Defaults to the value in settings.json",
"default": "${config:python.pythonPath}"
},
"args": {
"type": "array",
"description": "Command line arguments passed to the program",
"default": [],
"items": {
"type": "string"
}
},
"stopOnEntry": {
"type": "boolean",
"description": "Automatically stop after launch.",
"default": false
},
"console": {
"enum": [
"integratedTerminal",
"externalTerminal"
],
"description": "Where to launch the debug target: internal console, integrated terminal, or external terminal.",
"default": "integratedTerminal"
},
"cwd": {
"type": "string",
"description": "Absolute path to the working directory of the program being debugged. Default is the root directory of the file (leave empty).",
"default": ""
},
"debugOptions": {
"type": "array",
"description": "Advanced options, view read me for further details.",
"items": {
"type": "string",
"enum": [
"Sudo"
]
},
"default": []
},
"env": {
"type": "object",
"description": "Environment variables defined as a key value pair. Property ends up being the Environment Variable and the value of the property ends up being the value of the Env Variable.",
"default": {}
},
"envFile": {
"type": "string",
"description": "Absolute path to a file containing environment variable definitions.",
"default": ""
},
"port": {
"type": "number",
"description": "Debug port (default is 0, resulting in the use of a dynamic port).",
"default": 0
},
"host": {
"type": "string",
"description": "IP address of the of the local debug server (default is localhost).",
"default": "localhost"
}
}
}
},
"initialConfigurations": [
{
"name": "Python Experimental: Current File (Integrated Terminal)",
"type": "pythonExperimental",
"request": "launch",
"pythonPath": "${config:python.pythonPath}",
"program": "${file}",
"cwd": "",
"console": "integratedTerminal",
"env": {},
"envFile": "${workspaceFolder}/.env",
"debugOptions": [],
"internalConsoleOptions": "neverOpen"
},
{
"name": "Python Experimental: Current File (External Terminal)",
"type": "pythonExperimental",
"request": "launch",
"pythonPath": "${config:python.pythonPath}",
"program": "${file}",
"cwd": "",
"console": "externalTerminal",
"env": {},
"envFile": "${workspaceFolder}/.env",
"debugOptions": [],
"internalConsoleOptions": "neverOpen"
}
]
}
],
"configuration": {
Expand Down Expand Up @@ -1663,5 +1822,10 @@
"typescript-formatter": "^6.0.0",
"vscode": "^1.1.5",
"vscode-debugadapter-testsupport": "^1.25.0"
},
"__metadata": {
"id": "f1f59ae4-9318-4f3c-a9b5-81b2eaa5f8a5",
"publisherDisplayName": "Microsoft",
"publisherId": "998b010b-e2af-44a5-a6cd-0b5fd3b9b6f8"
}
}
96 changes: 96 additions & 0 deletions pythonFiles/experimental/ptvsd_launcher.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
# Python Tools for Visual Studio
# Copyright(c) Microsoft Corporation
# All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the License); you may not use
# this file except in compliance with the License. You may obtain a copy of the
# License at http://www.apache.org/licenses/LICENSE-2.0
#
# THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS
# OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY
# IMPLIED WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
# MERCHANTABLITY OR NON-INFRINGEMENT.
#
# See the Apache Version 2.0 License for specific language governing
# permissions and limitations under the License.

"""
Starts Debugging, expected to start with normal program
to start as first argument and directory to run from as
the second argument.
"""

__author__ = "Microsoft Corporation <[email protected]>"
__version__ = "3.2.0.0"

import os
import os.path
import sys
import traceback

# Arguments are:
# 1. Working directory.
# 2. VS debugger port to connect to.
# 3. GUID for the debug session.
# 4. Debug options (as list of names - see enum PythonDebugOptions).
# 5. '-g' to use the installed ptvsd package, rather than bundled one.
# 6. '-m' or '-c' to override the default run-as mode. [optional]
# 7. Startup script name.
# 8. Script arguments.

# change to directory we expected to start from
os.chdir(sys.argv[1])

port_num = int(sys.argv[2])
debug_id = sys.argv[3]
debug_options = set([opt.strip() for opt in sys.argv[4].split(',')])

del sys.argv[0:5]

# Use bundled ptvsd or not?
bundled_ptvsd = True
if sys.argv and sys.argv[0] == '-g':
bundled_ptvsd = False
del sys.argv[0]

# set run_as mode appropriately
run_as = 'script'
if sys.argv and sys.argv[0] == '-m':
run_as = 'module'
del sys.argv[0]
if sys.argv and sys.argv[0] == '-c':
run_as = 'code'
del sys.argv[0]

# preserve filename before we del sys
filename = sys.argv[0]

# fix sys.path to be the script file dir
sys.path[0] = ''

# Load the debugger package
try:
if bundled_ptvsd:
ptvs_lib_path = os.path.dirname(__file__)
sys.path.insert(0, ptvs_lib_path)
import ptvsd
import ptvsd.debugger as vspd
vspd.DONT_DEBUG.append(os.path.normcase(__file__))
except:
traceback.print_exc()
print('''
Internal error detected. Please copy the above traceback and report at
https://go.microsoft.com/fwlink/?LinkId=293415

Press Enter to close. . .''')
try:
raw_input()
except NameError:
input()
sys.exit(1)
finally:
if bundled_ptvsd:
sys.path.remove(ptvs_lib_path)

# and start debugging
vspd.debug(filename, port_num, debug_id, debug_options, run_as)
6 changes: 1 addition & 5 deletions src/client/common/configSettings.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import { EventEmitter } from 'events';
import * as path from 'path';
import * as vscode from 'vscode';
import { ConfigurationTarget, Uri } from 'vscode';
import { isTestExecution } from './constants';
import {
IAutoCompeteSettings,
IFormattingSettings,
Expand All @@ -22,11 +23,6 @@ const untildify = require('untildify');

export const IS_WINDOWS = /^win/.test(process.platform);

export function isTestExecution(): boolean {
// tslint:disable-next-line:interface-name no-string-literal
return process.env['VSC_PYTHON_CI_TEST'] === '1';
}

// tslint:disable-next-line:completed-docs
export class PythonSettings extends EventEmitter implements IPythonSettings {
private static pythonSettings: Map<string, PythonSettings> = new Map<string, PythonSettings>();
Expand Down
5 changes: 5 additions & 0 deletions src/client/common/constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -63,3 +63,8 @@ export namespace LinterErrors {
}

export const STANDARD_OUTPUT_CHANNEL = 'STANDARD_OUTPUT_CHANNEL';

export function isTestExecution(): boolean {
// tslint:disable-next-line:interface-name no-string-literal
return process.env['VSC_PYTHON_CI_TEST'] === '1';
}
19 changes: 16 additions & 3 deletions src/client/common/net/socket/socketServer.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,23 @@
import { EventEmitter } from 'events';
import { injectable } from 'inversify';
import * as net from 'net';
import { createDeferred } from '../../helpers';
import { createDeferred, Deferred } from '../../helpers';
import { ISocketServer } from '../../types';

export class SocketServer extends EventEmitter {
@injectable()
export class SocketServer extends EventEmitter implements ISocketServer {
private socketServer: net.Server | undefined;
private clientSocket: Deferred<net.Socket>;
public get client(): Promise<net.Socket> {
return this.clientSocket.promise;
}
constructor() {
super();
this.clientSocket = createDeferred<net.Socket>();
}
public dispose() {
this.Stop();
}

public Stop() {
if (!this.socketServer) { return; }
try {
Expand Down Expand Up @@ -37,6 +47,9 @@ export class SocketServer extends EventEmitter {
}

private connectionListener(client: net.Socket) {
if (!this.clientSocket.completed) {
this.clientSocket.resolve(client);
}
client.on('close', () => {
this.emit('close', client);
});
Expand Down
Loading