1939 lines (1709 sloc) 133 KB


2018.11.0-beta (19 Nov 2018)


Thanks to the following projects which we fully rely on to provide some of our features:

Also thanks to the various projects we provide integrations with which help make this extension useful:

And finally thanks to the Python development team and community for creating a fantastic programming language and community to be a part of!


  1. Update Jedi to 0.13.1 and parso 0.3.1. (#2667)
  2. Make diagnostic message actionable when opening a workspace with no currently selected Python interpreter. (#2983)


  1. Fix problems with virtual environments not matching the loaded python when running cells. (#3294)
  2. Make nbconvert in a installation not prevent notebooks from starting. (#3343)

Code Health

  1. Added basic integration tests for the new Lanaguage Server. (#2041)
  2. Improvements to the webpack configuration file used to build the Data Science UI components. Added pre-build validations to ensure all npm modules used by Data Science UI components are registered. (#3122)
  3. Use EXTENSION_ROOT_DIR instead of __dirname in preparation for bundling of extension. (#3317)

2018.10.1 (09 Nov 2018)


  1. When attempting to 'Run Cell', get error - Cannot read property 'length' of null (#3286)

2018.10.0 (08 Nov 2018)


Thanks to the following projects which we fully rely on to provide some of our features:

Also thanks to the various projects we provide integrations with which help make this extension useful:

And finally thanks to the Python development team and community for creating a fantastic programming language and community to be a part of!


  1. Add support for code completion in the debug console window. (#1076)
  2. Add a new simple snippet for if __name__ == '__main__': block. The snippet can be accessed by typing __main__ (thanks R S Nikhil Krishna) (#2242)
  3. Add Python Interactive mode for data science. (#2302)
  4. Added a debugger setting to show return values of functions while stepping. (#2463)
  5. Enable on-type formatting from language server (#2690)
  6. Add bandit to supported linters. (thanks Steven Demurjian Jr.) (#2775)
  7. Ensure python.condaPath supports paths relative to Home. E.g. "python.condaPath":"~/anaconda3/bin/conda". (#2781)
  8. Updated the language server to 0.1.57/2018.11.0 (from 2018.10.0) and the debugger to 4.2.0 (from 4.1.3). Highlights include:
  9. Add localization of strings. Localized versions are specified in the package.nls.<locale>.json files. (#463)
  10. Clear cached list of interpreters when an interpeter is created in the workspace folder (this allows for virtual environments created in one's workspace folder to be detectable immediately). (#656)
  11. Pylint is no longer enabled by default when using the language server. Users that have not configured pylint but who have installed it in their workspace will be asked if they'd like to enable it. (#974)


  1. Support "conda activate" after 4.4.0. (#1882)
  2. Fix installation of codna packages when conda environment contains spaces. (#2015)
  3. Ensure python.formatting.blackPath supports paths relative to Home. E.g. "python.formatting.blackPath":"~/venv/bin/black". (#2274)
  4. Correct errors with timing, resetting, and exceptions, related to unittest during discovery and execution of tests. Re-enable unittest.test suite. (#2692)
  5. Fix colon-triggered block formatting. (#2714)
  6. Ensure relative paths to python interpreters in python.pythonPath of settings.json are prefixed with ./ or .\\ (depending on the OS). (#2744)
  7. Give preference to PTSVD in current path. (#2818)
  8. Fixed a typo in the Python interpreter selection balloon for macOS. (thanks Joe Graham) (#2868)
  9. Updated the language server to 0.1.57/2018.11.0 (from 2018.10.0) and the debugger to 4.2.0 (from 4.1.3). Highlights include:
    • Language server
      • Completions on generic containers work (e.g. x: List[T] now have completions for x, not just x[]).
      • Fixed issues relating to Go to Definition for from ... import statements.
      • None is no longer flagged as undefined.
      • BadSourceException should no longer be raised.
      • Fixed a null reference exception when handling certain function overloads.
    • Debugger
      • Properly deal with handled or unhandled exception in top level frames.
      • Any folder ending with site-packages is considered a library.
      • Treat any code not in site-packages as user code.
      • Handle case where no completions are provided by the debugger.

Code Health

  1. Remove test-specific code from configSettings.ts class. (#2678)
  2. Add a unit test for the MyPy output regex. (#2696)
  3. Update all npm dependencies to use the caret operator. (#2746)
  4. Move contents of the folder src/utils into src/client/common/utils. (#2748)
  5. Moved languageServer-related files to a languageServer folder. (#2756)
  6. Skip known failing tests for specific OS and Python version combinations to get CI running cleanly. (#2795)
  7. Move the linting error code out of the linting message and let VS Code manage it in the Problems panel (Thanks Nafly Mohammed). (#2815)
  8. Remove code related to the old debugger. (#2828)
  9. Upgrade Gulp to 4.0.0. (#2909)
  10. Remove pre-commit hooks. (#2963)
  11. Only perform Black-related formatting tests when the current Python-version supports it. (#2999)
  12. Move language server downloads to the CDN. (#3000)
  13. Pin extension to a minimum version of the language server. (#3125)

2018.9.2 (29 Oct 2018)


  1. Update version of vscode-extension-telemetry to resolve issue with regards to spawning of numerous powershell processes. (#2996)

Code Health

  1. Forward telemetry from the language server. (#2940)

2018.9.1 (18 Oct 2018)


  1. Disable activation of conda environments in PowerShell. (#2732)
  2. Add logging along with some some improvements to the load times of the extension. (#2827)
  3. Stop script from returning CRCRLF line-endings. (#2857)

Code Health

  1. Add ability to publish extension builds from release branches into the blob store. (#2874)

2018.9.0 (9 Oct 2018)


Thanks to the following projects which we fully rely on to provide some of our features:

Also thanks to the various projects we provide integrations with which help make this extension useful:

And finally thanks to the Python development team and community for creating a fantastic programming language and community to be a part of!


  1. Adds support for code completion in the debug console window. (#1076)
  2. Auto activate Python Environment in terminals (disable with "python.terminal.activateEnvironment": false). (#1387)
  3. Add support for activation of pyenv environments in the Terminal. (#1526)
  4. Display a message with options when user selects the default macOS Python interpreter. (#1689)
  5. Add debug configuration snippet for modules for the debugger. (#2175)
  6. Search for python interpreters in all paths found in the PATH/Path environment variable. (#2398)
  7. Add telemetry to download, extract, and analyze, phases of the Python Language Server. (#2461)
  8. The script now captures stderr for more informative exceptions when execution fails. (#2483)
  9. Display notification when attempting to debug without selecting a python interpreter. (#2494)
  10. Add support for out of band updates to the language server. (#2580)
  11. Ensure status bar with interpreter information takes priority over other items. (#2617)
  12. Add Python Language Server version to the survey banner URL presented to some users. (#2630)
  13. Language server now provides rename functionality. (#2650)
  14. Search for default known paths for conda environments on windows. (#2794
  15. Add bandit to supported linters. (thanks Steven Demurjian) (#2775)


  1. Improvements to the display format of interpreter information in the list of interpreters. (#1352)
  2. Deprecate the use of the setting python.autoComplete.preloadModules. Recommendation is to utilize the new language server (change the setting "python.jediEnabled": false). (#1704)
  3. Add a new python.condaPath setting to use if conda is not found on PATH. (#1944)
  4. Ensure code is executed when the last line of selected code is indented. (#2167)
  5. Stop duplicate initializations of the Python Language Server's progress reporter. (#2297)
  6. Fix the regex expression to match MyPy linter messages that expects the file name to have a .py extension, that isn't always the case, to catch any filename. E.g., .pyi files that describes interfaces wouldn't get the linter messages to Problems tab. (#2380)
  7. Do not use variable substitution when updating python.pythonPath. This matters because VS Code does not do variable substitution in settings values. (#2459)
  8. Use a python script to launch the debugger, instead of using -m which requires changes to the PYTHONPATH variable. (#2509)
  9. Provide paths from PYTHONPATH environment variable to the language server, as additional search locations of Python modules. (#2518)
  10. Fix issue preventing debugger user survey banner from opening. (#2557)
  11. Use folder name of the Python interpreter as the name of the virtual environment. (#2562)
  12. Give preference to bitness information retrieved from the Python interpreter over what's been retrieved from Windows Registry. (#2563)
  13. Use the environment folder name for environments without environment names in the Conda Environments list file. (#2577)
  14. Update environment variable naming convention for SPARK_HOME, when stored in settings.json. (#2628)
  15. Fix debug adapter Attach test. (#2655)
  16. Fix colon-triggered block formatting. (#2714)
  17. Use full path to activate command in conda environments on windows when python.condaPath is set. (#2753)

Code Health

  1. Fix broken CI on Azure DevOps. (#2549)
  2. Upgraded our version of request to 2.87.0. (#2621)
  3. Include the version of language server in telemetry. (#2702)
  4. Update vscode-extension-telemetry to 0.0.22. (#2745)

2018.8.0 (04 September 2018)


Thanks to the following projects which we fully rely on to provide some of our features:

Also thanks to the various projects we provide integrations with which help make this extension useful:

And finally thanks to the Python development team and community for creating a fantastic programming language and community to be a part of!


  1. Improved language server startup time by 40%. (#1865)
  2. Add pip dependency support to the conda environment.yml YAML schema support (thanks Mark Edwards). (#2119)
  3. Added a German translation. (thanks to bschley and by means of berndverst and croth1 for the reviews) (#2203)
  4. The new setting python.analysis.diagnosticPublishDelay allows you to control when language server publishes diagnostics. Default is 1 second after the user activity, such a typing, ceases. If diagnostic is clear (i.e. errors got fixed), the publishing is immediate. (#2270)
  5. Language server now supports hierarchical document outline per language server protocol 4.4+ and VS Code 1.26+. (#2384)
  6. Make use of the http.proxy field in settings.json when downloading the Python Language Server. (#2385)


  1. Fix debugger issue that prevented users from copying the value of a variable from the Variables debugger window. (#1398)
  2. Enable code lenses for tests when using the new language server. (#1948)
  3. Fix null reference exception in the language server causing server initialization to fail. The exception happened when search paths contained a folder that did not exist. (#2017)
  4. Language server now populates document outline with all symbols instead of just top-level ones. (#2050)
  5. Ensure test count values in the status bar represent the correct number of tests that were discovered and run. (#2143)
  6. Fixed issue in the language server when documentation for a function always produced "Documentation is still being calculated, please try again soon". (#2179)
  7. Change linter message parsing so it respects python.linting.maxNumberOfProblems. (thanks Scott Saponas) (#2198)
  8. Fixed language server issue when it could enter infinite loop reloading modules. (#2207)
  9. Ensure workspace pipenv environment is not labeled as a virtual env. (#2223)
  10. Improve reliability of document outline population with language server. (#2224)
  11. Language server now correctly handles with statement when __enter__ is declared in a base class. (#2240)
  12. Fix visualstudio_py_testLauncher to stop breaking out of test discovery too soon. (#2241)
  13. Notify the user when the language server does not support their platform. (#2245)
  14. Fix issue with survey not opening in a browser for Windows users. (#2252)
  15. Correct banner survey question text to reference the Python Language Server. (#2253)
  16. Fixed issue in the language server when typing dot under certain conditions produced null reference exception. (#2262)
  17. Fix error when switching from new language server to the old Jedi language server. (#2281)
  18. Unpin Pylint from < 2.0 (prospector was upgraded and isn't stuck on that any longer) (#2284)
  19. Add support for breaking into the first line of code in the new debugger. (#2299)
  20. Show the debugger survey banner for only a subset of users. (#2300)
  21. Ensure Flask debug configuration launches flask in a debug environment with the Flask debug mode disabled. This is necessary to ensure the custom debugger takes precedence over the interactive debugger, and live reloading is disabled. (#2309)
  22. Language server now correctly merges data from typeshed and the Python library. (#2345)
  23. Fix pytest >= 3.7 test discovery. (#2347)
  24. Update the downloaded Python language server nuget package filename to Python-Language-Server-{OSType}.beta.nupkg. (#2362)
  25. Added setting to control language server log output. Default is now 'error' so there should be much less noise in the output. (#2405)
  26. Fix experimental debugger when debugging Python files with Unicode characters in the file path. (#688)
  27. Ensure stepping out of debugged code does not take user into PTVSD debugger code. (#767)
  28. Upgrade pythonExperimental to python in launch.json. (#2478)

Code Health

  1. Revert change that moved IExperimentalDebuggerBanner into a common location. (#2195)
  2. Decorate EventEmitter within a try..catch to play nice with other extensions performing the same operation. (#2196)
  3. Change the default interpreter to favor Python 3 over Python 2. (#2266)
  4. Deprecate command Python: Build Workspace Symbols when using the language server. (#2267)
  5. Pin version of pylint to 3.6.3 to allow ensure pylint gets installed on Travis with Pytnon2.7. (#2305)
  6. Remove some of the debugger tests and fix some minor debugger issues. (#2307)
  7. Only use the current stable version of PTVSD in CI builds/releases. (#2432)

2018.7.1 (23 July 2018)


  1. Update the language server to code as of 651468731500ec1cc644029c3666c57b82f77d76. (#2233)

2018.7.0 (18 July 2018)


Thanks to the following projects which we fully rely on to provide some of our features:

Also thanks to the various projects we provide integrations with which help make this extension useful:

And finally thanks to the Python development team and community for creating a fantastic programming language and community to be a part of!


  1. Language server now reports code analysis progress in the status bar. (#1591)
  2. Only report Language Server download progress once. (#2000)
  3. Messages changes to reflect name of the language server: 'Microsoft Python Language Server'; folder name changed from analysis to languageServer. (#2107)
  4. Set default analysis for language server to open files only. (#2113)
  5. Add two popups to the extension: one to ask users to move to the new language server, the other to request feedback from users of that language server. (#2127)


  1. Ensure dunder variables are always displayed in code completion when using the new language server. (#2013)
  2. Store testId for files & suites during unittest discovery. (#2044)
  3. editor.formatOnType no longer adds space after * in multi-line arguments. (#2048)
  4. Fix bug where tooltips would popup whenever a comma is typed within a string. (#2057)
  5. Change keyboard shortcut for Run Selection/Line in Python Terminal to not interfere with the Find/Replace dialog box. (#2068)
  6. Relax validation of the environment Path variable. (#2076)
  7. editor.formatOnType is more reliable handling floating point numbers. (#2079)
  8. Change the default port used in remote debugging using Experimental debugger to 5678. (#2146)
  9. Register test manager when using the new language server. (#2186)

Code Health

  1. Removed pre-commit hook that ran unit tests. (#1986)
  2. Pass OS type to the debugger. (#2128)
  3. Ensure 'languageServer' directory is excluded from the build output. (#2150)
  4. Change the download links of the language server files. (#2180)

2018.6.0 (20 June 2018)


Thanks to the following projects which we fully rely on to provide some of our features:

Also thanks to the various projects we provide integrations with which help make this extension useful:

And finally thanks to the Python development team and community for creating a fantastic programming language and community to be a part of!


  1. Add setting to control automatic test discovery on save, python.unitTest.autoTestDiscoverOnSaveEnabled. (thanks Lingyu Li) (#1037)
  2. Add gevent launch configuration option to enable debugging of gevent monkey patched code. (thanks Bence Nagy) (#127)
  3. Add support for the "source.organizeImports" setting for "editor.codeActionsOnSave" (thanks Nathan Gaberel); you can turn this on just for Python using:
    "[python]": {
        "editor.codeActionsOnSave": {
            "source.organizeImports": true
  4. Added Spanish translation. (thanks Mario Rubio) (#1902)
  5. Add a French translation (thanks to Jérémy for the initial patch, and thanks to Nathan Gaberel, Bruno Alla, and Tarek Ziade for reviews). (#1959)
  6. Add syntax highlighting for Pipenv-related files (thanks Nathan Gaberel). (#995)


  1. Modified to change error message displayed when path to a tool (linter, formatter, etc) is invalid. (#1064)
  2. Improvements to the logic used to parse the arguments passed into the test frameworks. (#1070)
  3. Ensure navigation to definitons follows imports and is transparent to decoration. (thanks Peter Law) (#1638)
  4. Fix for intellisense failing when using the new Outline feature. (#1721)
  5. When debugging unit tests, use the env file configured in settings.json under python.envFile. (#1759)
  6. Fix to display all interpreters in the interpreter list when a workspace contains a Pipfile. (#1800)
  7. Use file system API to perform file path comparisons when performing code navigation. (thanks to bstaint for the problem diagnosis) (#1811)
  8. Automatically add path mappings for remote debugging when attaching to the localhost. (#1829)
  9. Change keyboard shortcut for Run Selection/Line in Python Terminal to Shift+Enter. (#1875)
  10. Fix unhandled rejected promises in unit tests. (#1919)
  11. Fix debugger issue that causes the debugger to hang and silently exit stepping over a line of code instantiating an ITK vector object. (#459)

Code Health

  1. Add telemetry to capture type of python interpreter used in workspace. (#1237)
  2. Enabled multi-thrreaded debugger tests for the experimental debugger. (#1250)
  3. Log relevant environment information when the existence of pipenv cannot be determined. (#1338)
  4. Use dotenv package to parse environment variables definition files. (#1376)
  5. Move from yarn to npm. (#1402)
  6. Fix django and flask debugger tests when using the experimental debugger. (#1407)
  7. Capture telemetry for the usage of the Create Terminal command along with other instances when a terminal is created implicitly. (#1542)
  8. Add telemetry to capture availability of Python 3, version of Python used in workspace and the number of workspace folders. (#1545)
  9. Ensure all CI tests (except for debugger) are no longer allowed to fail. (#1614)
  10. Capture telemetry for the usage of the feature that formats a line as you type (editor.formatOnType). (#1766)
  11. Capture telemetry for the new debugger. (#1767)
  12. Capture telemetry for usage of the setting python.autocomplete.addBrackets (#1770)
  13. Speed up githook by skipping commits not containing any .ts files. (#1803)
  14. Update typescript package to 2.9.1. (#1815)
  15. Log Conda not existing message as an information instead of an error. (#1817)
  16. Make use of ILogger to log messages instead of using console.error. (#1821)
  17. Update parso package to 0.2.1. (#1833)
  18. Update isort package to 4.3.4. (#1842)
  19. Add better exception handling when parsing responses received from the Jedi language service. (#1867)
  20. Resolve warnings in CI Tests and fix some broken CI tests. (#1885)
  21. Reduce sample count used to capture performance metrics in order to reduce time taken to complete the tests. (#1887)
  22. Ensure workspace information is passed into installer when determining whether a product/tool is installed. (#1893)
  23. Add JUnit file output to enable CI integration with VSTS. (#1897)
  24. Log unhandled rejected promises when running unit tests. (#1918)
  25. Add ability to run tests without having to launch VS Code. (#1922)
  26. Fix rename refactoring unit tests. (#1953)
  27. Fix failing test on Mac when validating the path of a python interperter. (#1957)
  28. Display banner prompting user to complete a survey for the use of the Experimental Debugger. (#1968)
  29. Use a glob pattern to look for conda executables. (#256)
  30. Create tests to measure activation times for the extension. (#932)

2018.5.0 (05 Jun 2018)

Thanks to the following projects which we fully rely on to provide some of our features:

And thanks to the many other projects which users can optionally choose from and install to work with the extension. Without them the extension would not be nearly as feature-rich and useful as it is.


  1. Add support for the Black formatter (thanks to Josh Smeaton for the initial patch) (#1153)
  2. Add the command Discover Unit Tests. (#1474)
  3. Auto detect *.jinja2 and *.j2 extensions as Jinja templates, to enable debugging of Jinja templates. (#1484)


  1. Ensure debugger breaks on assert failures. (#1194)
  2. Ensure debugged program is terminated when Stop debugging button is clicked. (#1345)
  3. Fix indentation when function contains type hints. (#1461)
  4. Ensure python environment activation works as expected within a multi-root workspace. (#1476)
  5. Close communication channel before exiting the test runner. (#1529)
  6. Allow for negative column numbers in messages returned by pylint. (#1628)
  7. Modify the FLASK_APP environment variable in the flask debug configuration to include just the name of the application file. (#1634)
  8. Ensure the display name of an interpreter does not get prefixed twice with the words Python. (#1651)
  9. Enable code refactoring when using the new Analysis Engine. (#1774)
  10. editor.formatOnType no longer breaks numbers formatted with underscores. (#1779)
  11. editor.formatOnType now better handles multiline function arguments (#1796)
  12. Go to Definition now works for functions which have numbers that use _ as a separator (as part of our Jedi 0.12.0 upgrade). (#180)
  13. Display documentation for auto completion items when the feature to automatically insert of brackets for selected item is turned on. (#452)
  14. Ensure empty paths do not get added into sys.path by the Jedi language server. (this was fixed in the previous release in #1471) (#677)
  15. Resolves rename refactor issue that remvoes the last line of the source file when the line is being refactored and source does not end with an EOL. (#695)
  16. Ensure the prompt to install missing packages is not displayed more than once. (#980)

Code Health

  1. Add syntax highlighting to constraints.txt files to match that of requirements.txt files. (thanks Waleed Sehgal) (#1053)
  2. Refactor unit testing functionality to improve testability of individual components. (#1068)
  3. Add unit tests for evaluating expressions in the experimental debugger. (#1109)
  4. Add tests to ensure custom arguments get passed into python program when using the experimental debugger. (#1280)
  5. Ensure custom environment variables are always used when spawning any process from within the extension. (#1339)
  6. Add tests for hit count breakpoints for the experimental debugger. (#1410)
  7. Ensure none of the npm packages (used by the extension) rely on native dependencies. (#1416)
  8. Remove explicit initialization of PYTHONPATH with the current workspace path in unit testing of modules with the experimental debugger. (#1465)
  9. Flag program in launch.json configuration items as an optional attribute. (#1503)
  10. Remove unused setting disablePromptForFeatures. (#1551)
  11. Remove unused Unit Test setting debugHost. (#1552)
  12. Create a new API to retrieve interpreter details with the ability to cache the details. (#1569)
  13. Add tests for log points in the experimental debugger. (#1582)
  14. Update typescript package to 2.8.3. (#1604)
  15. Fix typescript compilation error. (#1623)
  16. Fix unit tests used to test flask template debugging on AppVeyor for the experimental debugger. (#1640)
  17. Change yarn install script to include the keyword --lock-file. (thanks Lingyu Li) (#1682)
  18. Run unit tests as a pre-commit hook. (#1703)
  19. Update debug capabilities to add support for the setting supportTerminateDebuggee due to an upstream update from PTVSD. (#1719)
  20. Build and upload development build of the extension to the Azure blob store even if CI tests fail on the master branch. (#1730)
  21. Changes to the script used to upload the extension to the Azure blob store. (#1732)
  22. Prompt user to reload Visual Studio Code when toggling between the analysis engines. (#1747)
  23. Fix typo in unit test. (#1794)
  24. Fix failing Prospector unit tests and add more tests for linters (with and without workspaces). (#1836)
  25. Ensure Outline view doesn't overload the language server with too many requets, while user is editing text in the editor. (#1856)

2018.4.0 (2 May 2018)

Thanks to the following projects which we fully rely on to provide some of our features:

And a special thanks to Patryk Zawadzki for all of his help on our issue tracker!


  1. Enable debugging of Jinja templates in the experimental debugger. This is made possible with the addition of the jinja setting in the launch.json file as follows:
    "request": "launch or attach",
    "jinja": true
  2. Remove empty spaces from the selected text of the active editor when executing in a terminal. (#1207)
  3. Add prelimnary support for remote debugging using the experimental debugger. Attach to a Python program started using the command python -m ptvsd --server --port 9091 --file (#1229)
  4. Add support for logpoints in the experimental debugger. (#1306)
  5. Set focus to the terminal upon creation of a terminal using the Python: Create Terminal command. (#1315)
  6. Save the python file before running it in the terminal using the command/menu Run Python File in Terminal. (#1316)
  7. Added support for source references (remote debugging without having the source code locally) in the experimental debugger. (#1333)
  8. Add Ctrl+Enter keyboard shortcut for Run Selection/Line in Python Terminal. (#1349)
  9. Settings configured within the debugOptions property of launch.json for the old debugger are now defined as individual (boolean) properties in the new experimental debugger (e.g. "debugOptions": ["RedirectOutput"] becomes "redirectOutput": true). (#1395)
  10. Intergrate Jedi 0.12. See for details. (#1400)
  11. Enable Jinja template debugging as a default behaivour when using the Watson debug configuration for debugging of Watson applications. (#1480)
  12. Enable Jinja template debugging as a default behavior when debugging Pyramid applications. (#1492)
  13. Add prelimnary support for remote debugging using the experimental debugger. Attach to a Python program after having imported ptvsd and enabling the debugger to attach as follows:
    import ptvsd
    ptvsd.enable_attach(('', 5678))
    Additional capabilities:
    • ptvsd.break_into_debugger() to break into the attached debugger.
    • ptvsd.wait_for_attach(timeout) to cause the program to wait untill a debugger attaches.
    • ptvsd.is_attached() to determine whether a debugger is attached to the program. (#907)


  1. Use an existing method to identify the active interpreter. (#1015)
  2. Fix go to definition functionality across files. (#1033)
  3. IntelliSense under Python 2 for inherited attributes works again (thanks to an upgraded Jedi). (#1072)
  4. Reverted change that ended up considering symlinked interpreters as duplicate interpreter. (#1192)
  5. Display errors returned by the PipEnv command when identifying the corresonding environment. (#1254)
  6. When editor.formatOnType is on, don't add a space for *args or **kwargs (#1257)
  7. When editor.formatOnType is on, don't add a space between a string type specifier and the string literal (#1257)
  8. Reduce the frequency within which the memory usage of the language server is checked, also ensure memory usage is not checked unless language server functionality is used. (#1277)
  9. Ensure interpreter file exists on the file system before including into list of interpreters. (#1305)
  10. Do not have the formatter consider single-quoted string multiline even if it is not terminated. (#1364)
  11. IntelliSense works in module-level if statements (thanks to Jedi 0.12.0 upgrade). (#142)
  12. Clicking the codelens Run Test on a test class should run that specific test class instead of all tests in the file. (#1472)
  13. Clicking the codelens Run Test on a test class or method should run that specific test instead of all tests in the file. (#1473)
  14. Check whether the selected python interpreter is valid before starting the language server. Failing to do so could result in the extension failing to load. (#1487)
  15. Fixes the issue where Conda environments created using the latest version of Anaconda are not activated in Powershell. (#1520)
  16. Increase the delay for the activation of environments in Powershell terminals. (#1533)
  17. Fix activation of environments with spaces in the python path when using Powershell. (#1534)
  18. Ensure Flask application is launched with multi-threading disabled, when run in the CI tests. (#1535)
  19. IntelliSense works appropriately when a project contains multiple files with the same name (thanks to Jedi 0.12.0 update). (#178)
  20. Add blank lines to separate blocks of indented code (function defs, classes, and the like) so as to ensure the code can be run within a Python interactive prompt. (#259)
  21. Provide type details appropriate for the iterable in a for loop when the line has a # type comment. (#338)
  22. Parameter hints following an f-string work again. (#344)
  23. When editor.formatOnType is on, don't indent after a single-line statement block (#726)
  24. Fix debugging of Pyramid applications on Windows. (#737)

Code Health

  1. Improved developer experience of the Python Extension on Windows. (#1216)
  2. Parallelize jobs (unit tests) on CI server. (#1247)
  3. Run CI tests against the release version and master branch of PTVSD (experimental debugger), allowing tests to fail against the master branch of PTVSD. (#1253)
  4. Only trigger the extension for file and untitled in preparation for Visual Studio Live Share (thanks to Jonathan Carter) (#1298)
  5. Ensure all unit tests run on Travis use the right Python interpreter. (#1318)
  6. Pin all production dependencies. (#1374)
  7. Add support for hit count breakpoints in the experimental debugger. (#1409)
  8. Ensure custom environment variables defined in .env file are passed onto the pipenv command. (#1428)
  9. Remove unwanted python packages no longer used in unit tests. (#1494)
  10. Register language server functionality in the extension against specific resource types supporting the python language. (#1530)

2018.3.1 (29 Mar 2018)


  1. Fixes issue that causes linter to fail when file path contains spaces. (#1239)

2018.3.0 (28 Mar 2018)


  1. Add a PySpark debug configuration for the experimental debugger. (#1029)
  2. Add a Pyramid debug configuration for the experimental debugger. (#1030)
  3. Add a Watson debug configuration for the experimental debugger. (#1031)
  4. Add a Scrapy debug configuration for the experimental debugger. (#1032)
  5. When using pipenv, install packages (such as linters, test frameworks) in dev-packages. (#1110)
  6. Added commands translation for italian locale. (thanks Dotpys) (#1152)
  7. Add support for Django Template debugging in experimental debugger. (#1189)
  8. Add support for Flask Template debugging in experimental debugger. (#1190)
  9. Add support for Jinja template debugging. (#1210)
  10. When debugging, use Integrated Terminal as the default console. (#526)
  11. Disable the display of errors messages when rediscovering of tests fail in response to changes to files, e.g. don't show a message if there's a syntax error in the test code. (#704)
  12. Bundle python depedencies (PTVSD package) in the extension for the experimental debugger. (#741)
  13. Add support for expermental debugger when debugging Python Unit Tests. (#906)
  14. Support Debug Console as a console option for the Experimental Debugger. (#950)
  15. Enable syntax highlighting for files as used by e.g. pip-tools (thanks Lorenzo Villani) (#961)
  16. Add support to read name of Pipfile from environment variable. (#999)


  1. Fixes issue that causes debugging of unit tests to hang indefinitely. (#1009)
  2. Add ability to disable the check on memory usage of language server (Jedi) process. To turn off this check, add "python.jediMemoryLimit": -1 to your user or workspace settings (settings.json) file. (#1036)
  3. Ignore test results when debugging unit tests. (#1043)
  4. Fixes auto formatting of conditional statements containing expressions with <= symbols. (#1096)
  5. Resolve debug configuration information in launch.json when debugging without opening a python file. (#1098)
  6. Disables auto completion when editing text at the end of a comment string. (#1123)
  7. Ensures file paths are properly encoded when passing them as arguments to linters. (#199)
  8. Fix occasionally having unverified breakpoints (#87)
  9. Ensure conda installer is not used for non-conda environments. (#969)
  10. Fixes issue that display incorrect interpreter briefly before updating it to the right value. (#981)

Code Health

  1. Exclude 'news' folder from getting packaged into the extension. (#1020)
  2. Remove Jupyter commands. (thanks Yu Zhang) (#1034)
  3. Trigger incremental build compilation only when typescript files are modified. (#1040)
  4. Updated npm dependencies in devDependencies and fix TypeScript compilation issues. (#1042)
  5. Enable unit testing of stdout and stderr redirection for the experimental debugger. (#1048)
  6. Update npm package vscode-extension-telemetry to fix the warning 'os.tmpDir() deprecation'. (thanks osya) (#1066)
  7. Prevent the debugger stepping into JS code while developing the extension when debugging async TypeScript code. (#1090)
  8. Increase timeouts for the debugger unit tests. (#1094)
  9. Change the command used to install pip on AppVeyor to avoid installation errors. (#1107)
  10. Check whether a document is active when detecthing changes in the active document. (#1114)
  11. Remove SIGINT handler in debugger adapter, thereby preventing it from shutting down the debugger. (#1122)
  12. Improve compilation speed of the extension's TypeScript code. (#1146)
  13. Changes to how debug options are passed into the experimental version of PTVSD (debugger). (#1168)
  14. Ensure file paths are not sent in telemetry when running unit tests. (#1180)
  15. Change DjangoDebugging to Django in debugOptions of launch.json. (#1198)
  16. Changed property name used to capture the trigger source of Unit Tests. (#1213)
  17. Enable unit testing of the experimental debugger on CI servers (#742)
  18. Generate code coverage for debug adapter unit tests. (#778)
  19. Execute prospector as a module (using -m). (#982)
  20. Launch unit tests in debug mode as opposed to running and attaching the debugger to the already-running interpreter. (#983)

2018.2.1 (09 Mar 2018)


  1. Check for Pipfile and not pipfile when looking for pipenv usage (thanks to Will Thompson for the fix)

2018.2.0 (08 Mar 2018)

[Release pushed by one week]


We appreciate everyone who contributed to this release (including those who reported bugs or provided feedback)!

A special thanks goes out to the following external contributors who contributed code in this release:


  1. Experimental support for PTVSD 4.0.0-alpha (too many issues to list)
  2. Speed increases in interpreter selection (#952)
  3. Support for direnv (#36)
  4. Support for pipenv virtual environments; do note that using pipenv automatically drops all other interpreters from the list of possible interpreters as pipenv prefers to "own" your virtual environment (#404)
  5. Support for pyenv installs of Python (#847)
  6. Support editor.formatOnType (#640)
  7. Added a zh-tw translation (#)
  8. Prompting to install a linter now allows for disabling that specific linter as well as linters globally (#971)


  1. Work around a bug in Pylint when the default linter rules are enabled and running Python 2.7 which triggered --py3k checks to be activated, e.g. all print statements to be flagged as errors (#722)
  2. Better detection of when a virtual environment is selected, leading to the extension accurately leaving off --user when installing Pylint (#808)
  3. Better detection of a pylintrc is available to automatically disable our default Pylint checks (#728, #788, #838, #442)
  4. Fix Got to Python object (#403)
  5. When reformatting a file, put the temporary file in the workspace folder so e.g. yapf detect their configuration files appropriately (#730)
  6. The banner to suggest someone installs Python now says Download instead of Close (#844)
  7. Formatting while typing now treats . and @ as operators, preventing the incorrect insertion of whitespace (#840)
  8. Debugging from a virtual environment named env now works (#691)
  9. Disabling linting in a single folder of a mult-root workspace no longer disables it for all folders (#862)
  10. Fix the default debugger settings for Flask apps (#573)
  11. Format paths correctly when sending commands through WSL and git-bash; this does not lead to official support for either terminal (#895)
  12. Prevent run-away Jedi processes from consuming too much memory by automatically killing the process; reload VS Code to start the process again if desired (#926, #263)
  13. Support multiple linters again (#913)
  14. Don't over-escape markup found in docstrings (#911, #716, #627, #692)
  15. Fix when the Problems pane lists file paths prefixed with git: (#916)
  16. Fix inline documentation when an odd number of quotes exists (#786)
  17. Don't erroneously warn macOS users about using the system install of Python when a virtual environment is already selected (#804)
  18. Fix activating multiple linters without requiring a reload of VS Code (#971)

Code Health

  1. Upgrade to Jedi 0.11.1 (#674, #607, #99)
  2. Removed the banner announcing the extension moving over to Microsoft (#830)
  3. Renamed the default debugger configurations (#412)
  4. Remove some error logging about not finding conda (#864)

2018.1.0 (01 Feb 2018)


Thanks to everyone who contributed to this release, including the following people who contributed code:

Fixed issues

  • Support cached interpreter locations for faster interpreter selection (#666)
  • Sending a block of code with multiple global-level scopes now works (#259)
  • Automatic activation of virtual or conda environment in terminal when executing Python code/file (#383)
  • Introduce a Python: Create Terminal to create a terminal that activates the selected virtual/conda environment (#622)
  • Add a ko-kr translation (#540)
  • Add a ru translation (#411)
  • Performance improvements to detection of virtual environments in current workspace (#372)
  • Correctly detect 64-bit python (#414)
  • Display parameter information while typing (#70)
  • Use localhost instead of when starting debug servers (#205)
  • Ability to configure host name of debug server (#227)
  • Use environment variable PYTHONPATH defined in .env for intellisense and code navigation (#316)
  • Support path variable when debugging (#436)
  • Ensure virtual environments can be created in .env directory (#435, #482, #486)
  • Reload environment variables from .env without having to restart VS Code (#183)
  • Support debugging of Pyramid framework on Windows (#519)
  • Code snippet for pubd (#545)
  • Code clean up (#353, #352, #354, #456, #491, #228, #549, #594, #617, #556)
  • Move to yarn from npm (#421)
  • Add code coverage for extension itself (#464)
  • Releasing insiders build of the extension and uploading to cloud storage (#429)
  • Japanese translation (#434)
  • Russian translation (#411)
  • Support paths with spaces when generating tags with Build Workspace Symbols (#44)
  • Add ability to configure the linters (#572)
  • Add default set of rules for Pylint (#554)
  • Prompt to install formatter if not available (#524)
  • work around editor.formatOnSave failing when taking more then 750ms (#124, #590, #624, #427, #492)
  • Function argument completion no longer automatically includes the default argument (#522)
  • When sending a selection to the terminal, keep the focus in the editor window (#60)
  • Install packages for non-environment Pythons as --user installs (#527)
  • No longer suggest the system Python install on macOS when running Select Interpreter as it's too outdated (e.g. lacks pip) (#440)
  • Fix potential hang from Intellisense (#423)

Version 0.9.1 (19 December 2017)

Version 0.9.0 (14 December 2017)

  • Translated the commands to simplified Chinese #240 (thanks Wai Sui kei)
  • Change all links to point to their Python 3 equivalents instead of Python 2#203
  • Respect {workspaceFolder} #258
  • Running a program using Ctrl-F5 will work more than once #25
  • Removed the feedback service to rely on VS Code's own support (which fixed an issue of document reformatting failing) #245, #303, #363
  • Do not create empty '.vscode' directory #253, #277
  • Ensure python execution environment handles unicode characters #393
  • Remove Jupyter support in favour of the Jupyter extension #223


  • Support installing Pylint using conda or pip when an Anaconda installation of Python is selected as the active interpreter #301
  • Add JSON schema support for conda's meta.yaml #281
  • Add JSON schema support for conda's environment.yml #280
  • Add JSON schema support for .condarc #189
  • Ensure company name 'Continuum Analytics' is replaced with 'Ananconda Inc' in the list of interpreters #390
  • Display the version of the interpreter instead of conda #378
  • Detect Anaconda on Linux even if it is not in the current path #22

Interpreter selection

  • Fixes in the discovery and display of interpreters, including virtual environments #56
  • Retrieve the right value from the registry when determining the version of an interpreter on Windows #389


  • Fetch intellisense details on-demand instead of for all possible completions #152
  • Disable auto completion in comments and strings #110, #921, #34


  • Deprecate python.linting.lintOnTextChange #313, #297, #28, #272
  • Refactor code for executing linters (fixes running the proper linter under the selected interpreter) #351, #397
  • Don't attempt to install linters when not in a workspace #42
  • Honour python.linting.enabled #26
  • Don't display message 'Linter pylint is not installed' when changing settings #260
  • Display a meaningful message if pip is unavailable to install necessary module such as 'pylint' #266
  • Improvement environment variable parsing in the debugging (allows for embedded =) #149, #361


  • Improve selecting the port used when debugging #304
  • Don't block debugging in other extensions #58
  • Don't trigger an error to the Console Window when trying to debug an invalid Python file #157
  • No longer prompt to Press any key to continue . . . once debugging finishes #239
  • Do not start the extension when debugging non-Python projects #57
  • Support custom external terminals in debugger #250, #114
  • Debugging a python program should not display the message 'Cannot read property …' #247


  • Refactor unit test library execution code #350


  • Deprecate the setting python.formatting.formatOnSave with an appropriate message #285, #309

Version 0.8.0 (9 November 2017)

  • Add support for multi-root workspaces #1228, #1302, #1328, #1357
  • Add code snippet for ipdb #1141
  • Add ability to resolving environment variables in path to mypy #1195
  • Add ability to disable a linter globally and disable prompts to install linters #1207
  • Auto-selecting an interpreter from a virtual environment if only one is found in the root directory of the project #1216
  • Add support for specifying the working directory for unit tests #1155, #1185
  • Add syntax highlighting of pip requirements files #1247
  • Add ability to select an interpreter even when a workspace is not open #1260, #1263
  • Display a code lens to change the selected interpreter to the one specified in the shebang line #1257, #1263, #1267, #1280, #1261, #1290
  • Expand list of interpreters displayed for selection #1147, #1148, #1224, #1240
  • Display details of current or selected interpreter in statusbar #1147, #1217
  • Ensure paths in workspace symbols are not prefixed with .vscode #816, #1066, #829
  • Ensure paths in PYTHONPATH environment variable are delimited using the OS-specific path delimiter #832
  • Ensure Rope is not packaged with the extension #1208, #1207, #1243, #1229
  • Ensure ctags are rebuilt as expected upon file save #624
  • Ensure right test method is executed when two test methods exist with the same name in different classes #1203
  • Ensure unit tests run successfully on Travis for both Python 2.7 and 3.6 #1255, #1241, #1315
  • Fix building of ctags when a path contains a space #1064, #1144,, #1213
  • Fix autocompletion in unsaved Python files #1194
  • Fix running of test methods in nose #597, #1225
  • Fix to disable linting of diff windows #1221, #1244
  • Fix docstring formatting #1188
  • Fix to ensure language features can run in parallel without interference with one another #1314, #1318
  • Fix to ensure unit tests can be debugged more than once per run #948, #1353
  • Fix to ensure parameterized unit tests can be debugged #1284, #1299
  • Fix issue that causes debugger to freeze/hang #1041, #1354
  • Fix to support unicode characters in Python tests #1282, #1291
  • Changes as a result of VS Code API changes #1270, #1288, #1372, #1300, #1298
  • Updates to Readme #1212, #1222
  • Fix executing a command under PowerShell #1098

Version 0.7.0 (3 August 2017)

  • Displaying internal documentation #1008, #10860
  • Fixes to 'async with' snippet #1108, #996
  • Add support for environment variable in unit tests #1074
  • Fixes to unit test code lenses not being displayed #1115
  • Fix to empty brackets being added #1110, #1031
  • Fix debugging of Django applications #819, #999
  • Update isort to the latest version #1134, #1135
  • Fix issue causing intellisense and similar functionality to stop working #1072, #1118, #1089
  • Bunch of unit tests and code cleanup
  • Resolve issue where navigation to decorated function goes to decorator #742
  • Go to symbol in workspace leads to nonexisting files #816, #829

Version 0.6.9 (22 July 2017)

  • Fix to enure custom linter paths are respected #1106

Version 0.6.8 (20 July 2017)

Version 0.6.7 (02 July 2017)

  • Updated icon from jpg to png (transparent background)

Version 0.6.6 (02 July 2017)

  • Provide details of error with solution for changes to syntax in launch.json #1047, #1025
  • Provide a warning about known issues with having pyenv.cfg whilst debugging #913
  • Create .vscode directory if not found #1043
  • Highlighted text due to linter errors is off by one column #965, #970
  • Added preminary support for WSL Bash and Cygwin #1049
  • Ability to configure the linter severity levels #941, #895
  • Fixes to unit tests #1051, #1050
  • Outdent lines following contibue, break and return #1050
  • Change location of cache for Jedi files #1035
  • Fixes to the way directories are searched for Python interpreters #569, #1040
  • Handle outputs from Python packages that interfere with the way autocompletion is handled #602

Version 0.6.5 (13 June 2017)

  • Fix error in launch.json #1006
  • Detect current workspace interpreter when selecting interpreter #1006
  • Disable output buffering when debugging #1005
  • Updated snippets to use correct placeholder syntax #976
  • Fix hover and auto complete unit tests #1012
  • Fix hover definition variable test for Python 3.5 #1013
  • Better formatting of docstring #821, #919
  • Supporting more paths when searching for Python interpreters #569
  • Increase buffer output (to support detection large number of tests) #927

Version 0.6.4 (4 May 2017)

  • Fix dates in changelog #899
  • Using charriage return or line feeds to split a document into multiple lines #917, #821
  • Doc string not being displayed #888
  • Supporting paths that begin with the ~/ #909
  • Supporting more paths when searching for Python interpreters #569
  • Supporting ~/ paths when providing the path to ctag file #910
  • Disable linting of python files opened in diff viewer #896
  • Added a new command Go to Python Object #928
  • Restored the menu item to rediscover tests #863
  • Changes to rediscover tests when test files are altered and saved #863

Version 0.6.3 (19 April 2017)

  • Fix debugger issue #893
  • Improvements to debugging unit tests (check if string starts with, instead of comparing equality) #797

Version 0.6.2 (13 April 2017)

  • Fix incorrect indenting #880


Version 0.6.1 (10 April 2017)

  • Add support for new variable syntax in upcoming VS Code release #774, #855, #873, #823
  • Resolve issues in code refactoring #802, #824, #825
  • Changes to labels in Python Interpreter lookup #815
  • Resolve Typos #852
  • Use fully qualitified Python Path when installing dependencies #866
  • Commands for running tests from a file #502
  • Fix Sorting of imports when path contains spaces #811
  • Fixing occasional failure of linters #793, #833, #860
  • Added ability to pre-load some modules to improve autocompletion #581


Version 0.6.0 (10 March 2017)

  • Moved Jupyter functionality into a separate extension Jupyter
  • Updated readme #779
  • Changing default arguments of mypy #658
  • Added ability to disable formatting #559
  • Fixing ability to run a Python file in a terminal #784
  • Added support for Proxy settings when installing Python packages using Pip #778

Version 0.5.9 (3 March 2017)

  • Fixed navigating to definitions #711
  • Support auto detecting binaries from Python Path #716
  • Setting PYTHONPATH environment variable #686
  • Improving Linter performance, killing redundant processes 4a8319e
  • Changed default path of the CATAS file to .vscode/tags #722
  • Add parsing severity level for flake8 and pep8 linters #709
  • Fix to restore function descriptions (intellisense) #727
  • Added default configuration for debugging Pyramid #287
  • Feature request: Run current line in Terminal #738
  • Miscellaneous improvements to hover provider 6a7a3f3, 6268306
  • Fixes to rename refactor (due to 'LF' EOL in Windows) #748
  • Fixes to ctag file being generated in home folder when no workspace is opened #753
  • Fixes to ctag file being generated in home folder when no workspace is opened #753
  • Disabling auto-completion in single line comments #74
  • Fixes to debugging of modules #518
  • Displaying unit test status icons against unit test code lenses #678
  • Fix issue where causing 'python.python-debug.startSession' not found message to be displayed when debugging single file #708
  • Ability to include packages directory when generating tags file #735
  • Fix issue where running selected text in terminal does not work #758
  • Fix issue where disabling linter doesn't disable it (when no workspace is open) #763
  • Search additional directories for Python Interpreters (~/.virtualenvs, ~/Envs, ~/.pyenv) #569
  • Added ability to pre-load some modules to improve autocompletion #581
  • Removed invalid default value in launch.json file #586
  • Added ability to configure the pylint executable path #766
  • Fixed single file debugger to ensure the Python interpreter configured in python.PythonPath is being used #769

Version 0.5.8 (3 February 2017)

Version 0.5.7 (3 February 2017)

  • Added support for debugging single files without a launch configuration
  • Adding support for debug snippets #660
  • Ability to run a selected text in a Django shell #652
  • Adding support for the use of a customized 'isort' for sorting of imports #632
  • Debuger auto-detecting python interpreter from the path provided #688
  • Showing symbol type on hover #657
  • Fixes to running Python file when terminal uses Powershell #651
  • Fixes to linter issues when displaying Git diff view for Python files #665
  • Fixes to 'Go to definition' functionality #662
  • Fixes to Jupyter cells numbered larger than '10' #681

Version 0.5.6 (16 January 2017)

  • Added support for Python 3.6 #646, #631, #619, #613
  • Autodetect in python path in virtual environments #353
  • Add syntax highlighting of code samples in hover defintion #555
  • Launch REPL for currently selected interpreter #560
  • Fixes to debugging of modules #589
  • Reminder to install jedi and ctags in Quick Start #642
  • Improvements to Symbol Provider #622
  • Changes to disable unit test prompts for workspace #559
  • Minor fixes #627

Version 0.5.5 (25 November 2016)

  • Fixes to debugging of unittests (nose and pytest) #543
  • Fixes to debugging of Django #546

Version 0.5.4 (24 November 2016)

  • Fixes to installing missing packages #544
  • Fixes to indentation of blocks of code #432
  • Fixes to debugging of unittests #543
  • Fixes to extension when a workspace (folder) isn't open #542

Version 0.5.3 (23 November 2016)

  • Added support for PySpark #539, #540
  • Debugging unittests (UnitTest, pytest, nose) #333
  • Displaying progress for formatting #327
  • Auto indenting else: inside if and similar code blocks #432
  • Prefixing new lines with '#' when new lines are added in the middle of a comment string #365
  • Debugging python modules #518, #354
    • Use new debug configuration Python Module
  • Added support for workspace symbols using Exuberant CTags #138
    • New command Python: Build Workspace Symbols
  • Added ability for linter to ignore paths or files #501
    • Add the following setting in settings.json
        "python.linting.ignorePatterns":  [
  • Automatically adding brackets when autocompleting functions/methods #425
    • To enable this feature, turn on the setting "python.autoComplete.addBrackets": true
  • Running nose tests with the arguments '--with-xunit' and '--xunit-file' #517
  • Added support for workspaceRootFolderName in settings.json #525, #522
  • Added support for workspaceRootFolderName in settings.json #525, #522
  • Fixes to running code in terminal #515

Version 0.5.2

  • Fix issue with mypy linter #505
  • Fix auto completion for files with different encodings #496
  • Disable warnings when debugging Django version prior to 1.8 #479
  • Prompt to save changes when refactoring without saving any changes #441
  • Prompt to save changes when renaminv without saving any changes #443
  • Use editor indentation size when refactoring code #442
  • Add support for custom jedi paths #500

Version 0.5.1

  • Prompt to install linter if not installed #255
  • Prompt to configure and install test framework
  • Added support for pylama #495
  • Partial support for PEP484
  • Linting python files when they are opened #462
  • Fixes to unit tests discovery #307, #459
  • Fixes to intelliense #438, #433, #457, #436, #434, #447, #448, #293, #381
  • Supporting additional search paths for interpreters on windows #446
  • Fixes to code refactoring #440, #467, #468, #445
  • Fixes to linters #463 #439,
  • Bug fix in handling nosetest arguments #407
  • Better error handling when linter fails #402
  • Restoring extension specific formatting #421
  • Fixes to debugger (unwanted breakpoints) #392, #379
  • Support spaces in python path when executing in terminal #428
  • Changes to snippets #429
  • Marketplace changes #430
  • Cleanup and miscellaneous fixes (typos, keyboard bindings and the liks)

Version 0.5.0

  • Remove dependency on zmq when using Jupyter or IPython (pure python solution)
  • Added a default keybinding for Jupyter:Run Selection/Line of ctrl+alt+enter
  • Changes to update settings.json with path to python using native API
  • Changes to use native API for formatting when saving documents
  • Reusing existing terminal instead of creating new terminals
  • Limiting linter messages to opened documents (hide messages if document is closed) #375
  • Resolving extension load errors when #375
  • Fixes to discovering unittests #386
  • Fixes to sending code to terminal on Windows #387
  • Fixes to executing python file in terminal on Windows #385
  • Fixes to launching local help (documentation) on Linux
  • Fixes to typo in configuration documentation #391
  • Fixes to use python.pythonPath when sorting imports #393
  • Fixes to linters to handle situations when line numbers aren't returned #399
  • Fixes to signature tooltips when docstring is very long #368, #113

Version 0.4.2

  • Fix for autocompletion and code navigation with unicode characters #372, #364

Version 0.4.1

Version 0.4.0

  • Added support for Jupyter/IPython
  • Added local help (offline documentation)
  • Added ability to pass in extra arguments to interpreter when executing scripts (#316)
  • Added ability set current working directory as the script file directory, when to executing a Python script
  • Rendering intellisense icons correctly (#322)
  • Changes to capitalization of context menu text (#320)
  • Bug fix to running pydocstyle linter on windows (#317)
  • Fixed performance issues with regards to code navigation, displaying code Symbols and the like (#324)
  • Fixed code renaming issue when renaming imports (#325)
  • Fixed issue with the execution of the command python.execInTerminal via a shortcut (#340)
  • Fixed issue with code refactoring (#363)

Version 0.3.24

  • Added support for clearing cached tests #307
  • Added support for executing files in terminal with spaces in paths #308
  • Fix issue related to running unittests on Windows #309
  • Support custom environment variables when launching external terminal #311

Version 0.3.23

  • Added support for the attribute supportsRunInTerminal attribute in debugger #304
  • Changes to ensure remote debugging resolves remote paths correctly #302
  • Added support for custom pytest and nosetest paths #301
  • Resolved issue in Watch window displaying <error:previous evaluation... #301
  • Reduce extension size by removing unwanted files #296
  • Updated code snippets

Version 0.3.22

Version 0.3.20

  • Sharing python.pythonPath value with debug configuration #214 and #183
  • Support extract variable and method refactoring #220
  • Support environment variables in settings #148
  • Support formatting of selected text #197 and #183
  • Support autocompletion of parameters #71
  • Display name of linter along with diagnostic messages #199
  • Auto indenting of except and async functions #205 and #215
  • Support changes to pythonPath without having to restart VS Code #216
  • Resolved issue to support large debug outputs #52 and #52
  • Handling instances when debugging with invalid paths to the python interpreter #229
  • Fixed refactoring on Python 3.5 #244
  • Fixed parsing errors when refactoring #244

Version 0.3.21

  • Sharing python.pythonPath value with debug configuration #214 and #183
  • Support extract variable and method refactoring #220
  • Support environment variables in settings #148
  • Support formatting of selected text #197 and #183
  • Support autocompletion of parameters #71
  • Display name of linter along with diagnostic messages #199
  • Auto indenting of except and async functions #205 and #215
  • Support changes to pythonPath without having to restart VS Code #216
  • Resolved issue to support large debug outputs #52 and #52
  • Handling instances when debugging with invalid paths to the python interpreter #229
  • Fixed refactoring on Python 3.5 #244

Version 0.3.19

  • Sharing python.pythonPath value with debug configuration #214 and #183
  • Support extract variable and method refactoring #220
  • Support environment variables in settings #148
  • Support formatting of selected text #197 and #183
  • Support autocompletion of parameters #71
  • Display name of linter along with diagnostic messages #199
  • Auto indenting of except and async functions #205 and #215
  • Support changes to pythonPath without having to restart VS Code #216
  • Resolved issue to support large debug outputs #52 and #52
  • Handling instances when debugging with invalid paths to the python interpreter #229

Version 0.3.18

  • Modifications to support environment variables in settings #148
  • Modifications to support formatting of selected text #197 and #183
  • Added support to intellisense for parameters #71
  • Display name of linter along with diagnostic messages #199

Version 0.3.15

  • Modifications to handle errors in linters #185
  • Fixes to formatting and handling of not having empty lines at end of file #181
  • Modifications to infer paths of packages on windows #178
  • Fix for debugger crashes #45
  • Changes to App Insights key #156
  • Updated Jedi library to latest version #173
  • Updated iSort library to latest version #174

Version 0.3.14

  • Modifications to handle errors in linters when the linter isn't installed.

Version 0.3.13

  • Fixed error message being displayed by linters and formatters

Version 0.3.12

  • Changes to how linters and formatters are executed (optimizations and changes to settings to separate out the command line arguments) #178, #163
  • Fix to support Unicode characters in debugger #102
  • Added support for {workspaceRoot} in Path settings defined in settings.js #148
  • Resolving path of linters and formatters based on python path defined in settings.json #148
  • Better handling of Paths to python executable and related tools (linters, formatters) in virtual environments #148
  • Added support for configurationDone event in debug adapter #168, #145

Version 0.3.11

  • Added support for telemetry #156
  • Optimized code formatting and sorting of imports #150, #151, #157
  • Fixed issues in code formatting #171
  • Modifications to display errors returned by debugger #111
  • Fixed the prospector linter #142
  • Modified to resolve issues where debugger wasn't handling code exceptions correctly #159
  • Added support for unit tests using pytest #164
  • General code cleanup

Version 0.3.10

  • Fixed issue with duplicate output channels being created
  • Fixed issues in the LICENSE file
  • Fixed issue where current directory was incorrect #68
  • General cleanup of code

Version 0.3.9

  • Fixed auto indenting issues #137

Version 0.3.8

  • Added support for linting using prospector #130
  • Fixed issue where environment variables weren't being inherited by the debugger #109 and #77

Version 0.3.7

  • Added support for auto indenting of some keywords #83
  • Added support for launching console apps for Mac #128
  • Fixed issue where configuration files for pylint, pep8 and flake8 commands weren't being read correctly #117

Version 0.3.6

  • Added support for linting using pydocstyle #56
  • Added support for auto-formatting documents upon saving (turned off by default) #27
  • Added support to configure the output window for linting, formatting and unit test messages #112

Version 0.3.5

  • Fixed printing of unicode characters when evaulating expressions #73

Version 0.3.4

  • Updated snippets
  • Fixes to remote debugging #65
  • Fixes related to code navigation #58 and #78
  • Changes to allow code navigation for methods

Version 0.3.0

  • Remote debugging (attaching to local and remote processes)
  • Debugging with support for shebang
  • Support for passing environment variables to debug program
  • Improved error handling in the extension

Version 0.2.9

  • Added support for debugging django applications
  • Debugging templates is not supported at this stage

Version 0.2.8

  • Added support for conditional break points
  • Added ability to optionally display the shell window (Windows Only, Mac is coming soon)
    • Allowing an interactive shell window, which isn't supported in VSCode.
  • Added support for optionally breaking into python code as soon as debugger starts
  • Fixed debugging when current thread is busy processing.
  • Updated documentation with samples and instructions

Version 0.2.4

  • Fixed issue where debugger would break into all exceptions
  • Added support for breaking on all and uncaught exceptions
  • Added support for pausing (breaking) into a running program while debugging.

Version 0.2.3

  • Fixed termination of debugger

Version 0.2.2

  • Improved debugger for Mac, with support for Multi threading, Web Applications, expanding properties, etc
  • (Debugging now works on both Windows and Mac)
  • Debugging no longer uses PDB

Version 0.2.1

  • Improved debugger for Windows, with support for Multi threading, debugging Multi-threaded apps, Web Applications, expanding properties, etc
  • Added support for relative paths for extra paths in additional libraries for Auto Complete
  • Fixed a bug where paths to custom Python versions weren't respected by the previous (PDB) debugger
  • NOTE: PDB Debugger is still supported

Version 0.1.3

  • Fixed linting when using pylint

Version 0.1.2

  • Fixed autoformatting of code (falling over when using yapf8)

Version 0.1.1

  • Fixed linting of files on Mac
  • Added support for linting using pep8
  • Added configuration support for pep8 and pylint
  • Added support for configuring paths for pep8, pylint and autopep8
  • Added snippets
  • Added support for formatting using yapf
  • Added a number of configuration settings

Version 0.0.4

  • Added support for linting using Pylint (configuring pylint is coming soon)
  • Added support for sorting Imports (Using the command "Pythong: Sort Imports")
  • Added support for code formatting using Autopep8 (configuring autopep8 is coming soon)
  • Added ability to view global variables, arguments, add and remove break points

Version 0.0.3

  • Added support for debugging using PDB