- Experimental version of a native editor for ipynb files. (#5959)
- Added A/A testing. (#6793)
- Opt insiders users into beta language server by default. (#7108)
- Add basic liveshare support for native. (#7235)
- Change main toolbar to match design spec. (#7240)
- Telemetry for native editor support. (#7252)
- Change Variable Explorer to use a sticky button on the main toolbar. (#7354)
- Add left side navigation bar to native editor. (#7377)
- Add middle toolbar to a native editor cell. (#7378)
- Indented the status bar for outputs and changed the background color in the native editor. (#7379)
- Added a setting
python.experiments.enabled
to enable/disable A/B tests within the extension. (#7410) - Add a play button for all users. (#7423)
- Add a command to show the
Language Server
output panel. (#7459) - Make empty notebooks (from File | New File) contain at least one cell. (#7516)
- Add "clear all output" button to native editor. (#7517)
- Add support for ptvsd and debug adapter experiments in remote debugging API. (#7549)
- Replaced occurrences of
pep8
withpycodestyle.
All mentions of pep8 have been replaced with pycodestyle. Add script to replace outdated settings with the new ones in user settings.json- python.linting.pep8Args -> python.linting.pycodestyleArgs
- python.linting.pep8CategorySeverity.E -> python.linting.pycodestyleCategorySeverity.E
- python.linting.pep8CategorySeverity.W -> python.linting.pycodestyleCategorySeverity.W
- python.linting.pep8Enabled -> python.linting.pycodestyleEnabled
- python.linting.pep8Path -> python.linting.pycodestylePath
- (thanks Marsfan) (#410)
- Do not change
foreground
colors in test statusbar. (#4387) - Set the
__file__
variable whenever running code so that__file__
usage works in the interactive window. (#5459) - Ensure Windows Store install of Python is displayed in the statusbar. (#5926)
- Fix loging for determining python path from workspace of active text editor (thanks Eric Bajumpaa (@SteelPhase)). (#6282)
- Changed the way scrolling is treated. Now we only check for the position of the scroll, the size of the cell won't matter.
Still the interactive window will snap to the bottom if you already are at the bottom, and will stay in place if you are not. Like a chat window.
Tested to work with:
- regular code
- dataframes
- big and regular plots Turned the check of the scroll at the bottom from checking equal to checking a range to make it work with fractions. (#6580)
- Changed the name of the setting 'Run Magic Commands' to 'Run Startup Commands' to avoid confusion. (#6842)
- Fix the debugger being installed even when available from the VSCode install. (#6907)
- Fixes to detection of shell. (#6928)
- Delete the old session immediately after session restart instead of on close. (#6975)
- Add support for the new JUnit XML format used by pytest 5.1+. (#6990)
- Set a content security policy on webviews. (#7007)
- Fix regression to allow connection to servers with no token and no password and add functional test for this scenario. (#7137)
- Resolve variables such as
${workspaceFolder}
in theenvFile
setting oflaunch.json
. (#7210) - Fixed A/B testing sampling. (#7218)
- Added commands for 'dd', 'ctrl + enter', 'alt + enter', 'a', 'b', 'j', 'k' in the native Editor to behave just like JupyterLabs. (#7229)
- Add support for CTRL+S when the native editor has input focus (best we can do without true editor support) Also fix issue with opening two or more not gaining focus correctly. (#7238)
- Fix monaco editor layout perf. (#7241)
- Fix 'history' in the input box for the interactive window to work again. Up arrow and down arrow should now scroll through the things already typed in. (#7253)
- Fix plot viewer to allow exporting again. (#7257)
- Make ipynb files auto save on shutting down VS code as our least bad option at the moment. (#7258)
- Update icons to newer look. (#7261)
- The native editor will now wrap all its content instead of showing a horizontal scrollbar. (#7272)
- Deprecate the 'runMagicCommands' datascience setting. (#7294)
- Fix white icon background and finish update all icons to new style. (#7302)
- Fixes to display
Python
specific debug configurations inlaunch.json
. (#7304) - Fixed intellisense support on the native editor. (#7316)
- Fix double opening an ipynb file to still use the native editor. (#7318)
- 'j' and 'k' were reversed for navigating through the native editor. (#7330)
- 'a' keyboard shortcut doesn't add a cell above if current cell is the first. (#7334)
- Add the 'add cell' line between cells, on cells, and at the bottom and top. (#7362)
- Runtime errors cause the run button to disappear. (#7370)
- Surface jupyter notebook search errors to the user. (#7392)
- Allow cells to be re-executed on second open of an ipynb file. (#7417)
- Implement dirty file tracking for notebooks so that on reopening of VS code they are shown in the dirty state. Canceling the save will get them back to their on disk state. (#7418)
- Make ipynb files change to dirty when moving/deleting/changing cells. (#7439)
- Initial collapse / expand state broken by native liveshare work / gather. (#7445)
- Converting a native markdown cell to code removes the markdown source. (#7446)
- Text is cut off on the right hand side of a notebook editor. (#7472)
- Added a prompt asking users to enroll back in the insiders program. (#7473)
- Fix collapse bar and add new line spacing for the native editor. (#7489)
- Add new cell top most toolbar button should take selection into account when adding a cell. (#7490)
- Move up and move down arrows in native editor are different sizes. (#7494)
- Fix jedi intellisense in the notebook editor to be performant. (#7497)
- The add cell line should have a hover cursor. (#7508)
- Toolbar in the middle of a notebook cell should show up on hover. (#7515)
- 'z' key will now undo cell deletes/adds/moves. (#7518)
- Rename and restyle the save as python file button. (#7519)
- Fix for changing a file in the status bar to a notebook/jupyter file to open the new native notebook editor. (#7521)
- Running a cell by clicking the mouse should behave like shift+enter and move to the next cell (or add one to the bottom). (#7522)
- Output color makes a text only notebook with a lot of cells hard to read. Change output color to be the same as the background like Jupyter does. (#7526)
- Fix data viewer sometimes showing no data at all (especially on small datasets). (#7530)
- First run of run all cells doesn't run the first cell first. (#7558)
- Saving an untitled notebook editor doesn't change the tab to have the new file name. (#7561)
- Closing and reopening a notebook doesn't reset the execution count. (#7565)
- After restarting kernel, variables don't reset in the notebook editor. (#7573)
- CTRL+1/CTRL+2 had stopped working in the interactive window. (#7597)
- Ensure the insiders prompt only shows once. (#7606)
- Added prompt to flip "inheritEnv" setting to false to fix conda activation issue. (#7607)
- Toggling line numbers and output was not possible in the notebook editor. (#7610)
- Align execution count with first line of a cell. (#7611)
- Fix debugging cells to work when the python executable has spaces in the path. (#7627)
- Add switch channel commands into activationEvents to fix
command 'Python.swichToDailyChannel' not found
. (#7636) - Goto cell code lens was not scrolling. (#7639)
- Use jsonc-parser instead of strip-json-comments. (thanks Mikhail Bulash) (#4819)
- Remove
donjamayanne.jupyter
integration. (thanks Mikhail Bulash) (#6052) - Drop
python.updateSparkLibrary
command. (thanks Mikhail Bulash) (#6091) - Re-enabled smoke tests (refactored in
node.js
with puppeteer). (#6511) - Handle situations where language client is disposed earlier than expected. (#6865)
- Put Data science functional tests that use real jupyter into their own test pipeline. (#7066)
- Send telemetry for what language server is chosen. (#7109)
- Add telemetry to measure debugger start up performance. (#7332)
- Decouple the DS location tracker from the debug session telemetry. (#7352)
- Test scaffolding for notebook editor. (#7367)
- Add functional tests for notebook editor's use of the variable list. (#7369)
- Tests for the notebook editor for different mime types. (#7371)
- Split Cell class for different views. (#7376)
- Refactor Azure Pipelines to use stages. (#7431)
- Add unit tests to guarantee that the extension version in the master branch has the '-dev' suffix. (#7471)
- Add a smoke test for the
Interactive Window
. (#7653) - Download PTVSD wheels (for the new PTVSD) as part of CI. (#7028)
Thanks to the following projects which we fully rely on to provide some of our features:
- isort
- jedi and parso
- Microsoft Python Language Server
- ptvsd
- exuberant ctags (user-installed)
- rope (user-installed)
Also thanks to the various projects we provide integrations with which help make this extension useful:
- Debugging support: Django, Flask, gevent, Jinja, Pyramid, PySpark, Scrapy, Watson
- Formatting: autopep8, black, yapf
- Interpreter support: conda, direnv, pipenv, pyenv, venv, virtualenv
- Linting: bandit, flake8, mypy, prospector, pylint, pydocstyle, pylama
- Testing: nose, pytest, unittest
And finally thanks to the Python development team and community for creating a fantastic programming language and community to be a part of!
- Fixes to automatic scrolling on the interactive window. (#6580)
- Get "select virtual environment for the workspace" prompt to show up regardless of pythonpath setting. (#5499)
- Changes to telemetry with regards to discovery of python environments. (#5593)
- Update Jedi to 0.15.1 and parso to 0.5.1. (#6294)
- Moved Language Server logging to its own output channel. (#6559)
- Interactive window will only snap to the bottom if the user is already in the bottom, like a chat window. (#6580)
- Add debug command code lenses when in debug mode. (#6672)
- Implemented prompt for survey. (#6752)
- Add code gathering tools. (#6810)
- Added a setting called 'Run Magic Commands'. The input should be python code to be executed when the interactive window is loading. (#6842)
- Added a setting so the user can decide if they want the debugger to debug only their code, or also debug external libraries. (#6870)
- Implemented prompt for survey using A/B test framework. (#6957)
- Delete the old session immediatly after session restart instead of on close (#6975)
- Add support for the "pathMappings" setting in "launch" debug configs. (#3568)
- Supports error codes like ABC123 as used in plugins. (#4074)
- Fixes to insertion of commas when inserting generated debug configurations in
launch.json
. (#5531) - Fix code lenses shown for pytest. (#6303)
- Make data viewer change row height according to font size in settings. (#6614)
- Fix miniconda environments to work. (#6802)
- Drop dedent-on-enter for "return" statements. It will be addressed in microsoft#6564. (#6813)
- Show PTVSD exceptions to the user. (#6818)
- Tweaked message for restarting VS Code to use a Python Extension insider build (thanks Marsfan). (#6838)
- Do not execute empty code cells or render them in the interactive window when sent from the editor or input box. (#6839)
- Fix failing functional tests (for pytest) in the extension. (#6940)
- Fix ptvsd typo in descriptions. (#7097)
-
Update the message and the link displayed when
Language Server
isn't supported. (#5969) -
Normalize path separators in stack traces. (#6460)
-
Update
package.json
to define supported languages for breakpoints. Update telemetry code to hardcode Telemetry Key in code (removed frompackage.json
). (#6469) -
Functional tests for DataScience Error Handler. (#6697)
-
Move .env file handling into the extension. This is in preparation to switch to the out-of-proc debug adapter from ptvsd. (#6770)
-
Track enablement of a test framework. (#6783)
-
Track how code was sent to the terminal (via
command
orUI
). (#6801) -
Bump version of PTVSD to
4.3.2
. -
Move nightly functional tests to use mock jupyter and create a new pipeline for flakey tests which use real jupyter. (#7066)
-
Corrected spelling of name for method to be
hasConfigurationFileInWorkspace
. (#7072) -
Fix functional test failures due to new WindowsStoreInterpreter addition. (#7081)
Thanks to the following projects which we fully rely on to provide some of our features:
- isort
- jedi and parso
- Microsoft Python Language Server
- ptvsd
- exuberant ctags (user-installed)
- rope (user-installed)
Also thanks to the various projects we provide integrations with which help make this extension useful:
- Debugging support: Django, Flask, gevent, Jinja, Pyramid, PySpark, Scrapy, Watson
- Formatting: autopep8, black, yapf
- Interpreter support: conda, direnv, pipenv, pyenv, venv, virtualenv
- Linting: bandit, flake8, mypy, prospector, pylint, pydocstyle, pylama
- Testing: nose, pytest, unittest
And finally thanks to the Python development team and community for creating a fantastic programming language and community to be a part of!
- Added ability to auto update Insiders build of extension. (#2772)
- Add an icon for the "Run Python File in Terminal" command. (#5321)
- Hook up ptvsd debugger to Jupyter UI. (#5900)
- Improved keyboard and screen reader support for the data explorer. (#6019)
- Provide code mapping service for debugging cells. (#6318)
- Change copy back to code button in the interactive window to insert wherever the current selection is. (#6350)
- Add new 'goto cell' code lens on every cell that is run from a file. (#6359)
- Allow for cancelling all cells when an error occurs. Backed by 'stopOnError' setting. (#6366)
- Added Code Lens and Snippet to add new cell. (#6367)
- Support hitting breakpoints in actual source code for interactive window debugging. (#6376)
- Give the option to install ptvsd if user is missing it and tries to debug. (#6378)
- Add support for remote debugging of Jupyter cells. (#6379)
- Make the input box more visible to new users. (#6381)
- Add feature flag
python.dataScience.magicCommandsAsComments
so linters and other tools can work with them. (thanks Janosh Riebesell) (#6408) - Support break on enter for debugging a cell. (#6449)
- instead of asking the user to select an installer, we now autodetect the environment being used, and use that installer. (#6569)
- Remove "Debug cell" action from data science code lenses for markdown cells. (thanks Janosh Riebesell) (#6588)
- Add debug command code lenses when in debug mode (#6672)
- Fix
executeInFileDir
for when a file is not in a workspace. (thanks Bet4) (#1062) - Fix indentation after string literals containing escaped characters. (#4241)
- The extension will now prompt to auto install jupyter in case its not found. (#5682)
- Append
--allow-prereleases
to black installation command so pipenv can properly resolve it. (#5756) - Remove existing positional arguments when running single pytest tests. (#5757)
- Fix shift+enter to work when code lens are turned off. (#5879)
- Prompt to insall test framework only if test frame is not already installed. (#5919)
- Trim stream text output at the server to prevent sending massive strings of overwritten data. (#6001)
- Detect
shell
in Visual Studio Code using the Visual Studio Code API. (#6050) - Make long running output not crash the extension host. Also improve perf of streaming. (#6222)
- Opting out of telemetry correctly opts out of A/B testing. (#6270)
- Add error messages if data_rate_limit is exceeded on remote (or local) connection. (#6273)
- Add pytest-xdist's -n option to the list of supported pytest options. (#6293)
- Simplify the import regex to minimize performance overhead. (#6319)
- Clarify regexes used for decreasing indentation. (#6333)
- Add new plot viewer button images and fix button colors in different themes. (#6336)
- Update telemetry property name for Jedi memory usage. (#6339)
- Fix png scaling on non standard DPI. Add 'enablePlotViewer' setting to allow user to render PNGs instead of SVG files. (#6344)
- Do best effort to download the experiments and use it in the very first session only. (#6348)
- Linux can pick the wrong kernel to use when starting the interactive window. (#6375)
- Add missing keys for data science interactive window button tooltips in
package.nls.json
. (#6386) - Fix overwriting of cwd in the path list when discovering tests. (#6417)
- Fixes a bug in pytest test discovery. (thanks Rainer Dreyer) (#6463)
- Fix debugging to work on restarting the jupyter kernel. (#6502)
- Escape key in the interactive window moves to the delete button when auto complete is open. Escape should only move when no autocomplete is open. (#6507)
- Render plots as png, but save an svg for exporting/image viewing. Speeds up plot rendering. (#6526)
- Import get_ipython at the start of each imported jupyter notebook if there are line magics in the file (#6574)
- Fix a problem where we retrieved and rendered old codelenses for multiple imports of jupyter notebooks if cells in the resultant import file were executed without saving the file to disk. (#6582)
- PTVSD install for jupyter debugging should check version without actually importing into the jupyter kernel. (#6592)
- Fix pandas version parsing to handle strings. (#6595)
- Unpin the version of ptvsd in the install and add
-U
. (#6718) - Fix stepping when more than one blank line at the end of a cell. (#6719)
- Render plots as png, but save an svg for exporting/image viewing. Speeds up plot rendering. (#6724)
- Fix random occurrences of output not concatenating correctly in the interactive window. (#6728)
- In order to debug without '#%%' defined in a file, support a Debug Entire File. (#6730)
- Add support for "Run Below" back. (#6737)
- Fix the 'Variables not available while debugging' message to be more descriptive. (#6740)
- Make breakpoints on enter always be the case unless 'stopOnFirstLineWhileDebugging' is set. (#6743)
- Remove Debug Cell and Run Cell from the command palette. They should both be 'Debug Current Cell' and 'Run Current Cell' (#6754)
- Make the dataviewer open a window much faster. Total load time is the same, but initial response is much faster. (#6729)
- Debugging an untitled file causes an error 'Untitled-1 cannot be opened'. (#6738)
- Eliminate 'History_<guid>' from the problems list when using the interactive panel. (#6748)
- Log processes executed behind the scenes in the extension output panel. (#1131)
- Specify
pyramid.scripts.pserve
when creating a debug configuration for Pyramid apps instead of trying to calculate the location of thepserve
command. (#2427) - UI Tests using selenium & behave. (#4692)
- Upload coverage reports to coveralls. (#5999)
- Upgrade Jedi to version 0.13.3. (#6013)
- Add unit tests for
client/activation/serviceRegistry.ts
. (#6163) - Remove
test.ipynb
from the root folder. (#6212) - Fail the
smoke tests
CI job when the smoke tests fail. (#6253) - Add a bunch of perf measurements to telemetry. (#6283)
- Retry failing debugger test (retry due to intermittent issues on
Azure Pipelines
). (#6322) - Update version of
isort
to4.3.21
. (#6369) - Functional test for debugging jupyter cells. (#6377)
- Consolidate telemetry. (#6451)
- Removed npm package
vscode
, and added to usevscode-test
and@types/vscode
(see here for more info). (#6456) - Fix the variable explorer exclude test to be less strict. (#6525)
- Merge ArgumentsHelper unit tests into one file. (#6583)
- Fix jupyter remote tests to respect new notebook 6.0 output format. (#6625)
- Unit Tests for DataScience Error Handler. (#6670)
- Fix DataExplorer tests after accessibility fixes. (#6711)
- Bump version of PTVSD to 4.3.0.
(#6771)
- Support for Jupyter debugging
- Support for ipython cells
- API to enable and disable tracing via ptvsd.tracing
- ptvsd.enable_attach accepts address=('localhost', 0) and returns server port
- Known issue: Unable to find threadStateIndex for the current thread. curPyThread (#11587)
Thanks to the following projects which we fully rely on to provide some of our features:
- isort
- jedi and parso
- Microsoft Python Language Server
- ptvsd
- exuberant ctags (user-installed)
- rope (user-installed)
Also thanks to the various projects we provide integrations with which help make this extension useful:
- Debugging support: Django, Flask, gevent, Jinja, Pyramid, PySpark, Scrapy, Watson
- Formatting: autopep8, black, yapf
- Interpreter support: conda, direnv, pipenv, pyenv, venv, virtualenv
- Linting: bandit, flake8, mypy, prospector, pylint, pydocstyle, pylama
- Testing: nose, pytest, unittest
And finally thanks to the Python development team and community for creating a fantastic programming language and community to be a part of!
- Fixes to A/B testing. (#6400)
- Dedent selected code before sending it to the terminal. (#2837)
- Allow password for remote authentication. (#3624)
- Add support for sub process debugging, when debugging tests. (#4525)
- Change title of
Discover Tests
toDiscovering
when discovering tests. (#4562) - Add an extra viewer for plots in the interactive window. (#4967)
- Allow for self signed certificates for jupyter connections. (#4987)
- Add support for A/B testing and staged rollouts of new functionality. (#5042)
- Removed
--nothreading
flag from theDjango
debug configuration. (#5116) - Test Explorer : Remove time from all nodes except the tests. (#5120)
- Add support for a copy back to source. (#5286)
- Add visual separation between the variable explorer and the rest of the Interactive Window content. (#5389)
- Changes placeholder label in testConfigurationManager.ts from 'Select the directory containing the unit tests' to 'Select the directory containing the tests'. (thanks James Flynn) (#5602)
- Updated labels in File > Preferences > Settings. It now states 'Pytest' where it stated 'Py Test'. (thanks James Flynn) (#5603)
- Updated label for "Enable unit testing for Pytest" to remove the word "unit". (thanks James Flynn) (#5604)
- Importing a notebook should show the output of the notebook in the Python Interactive window. This feature can be turned off with the 'previewImportedNotebooksInInteractivePane' setting. (#5675)
- Add flag to auto preview an ipynb file when opened. (#5790)
- Change pytest description from configuration menu. (#5832)
- Support faster restart of the kernel by creating two kernels (two python processes running under the covers). (#5876)
- Allow a 'Dont ask me again' option for restarting the kernel. (#5951)
- Added experiment to always display the test explorer. (#6211)
- Added support for activation of conda environments in
powershell
. (#668) - Provide
pathMappings
to debugger when attaching to child processes. (#3568) - Add virtualenvwrapper default virtual environment location to the
python.venvFolders
config setting. (#4642) - Advance to the next cell if cursor is in the current cell and user clicks 'Run Cell'. (#5067)
- Fix localhost path mappings to lowercase the drive letter on Windows. (#5362)
- Fix import/export paths to be escaped on windows. (#5386)
- Support loading larger dataframes in the dataviewer (anything more than 1000 columns will still be slow, but won't crash). (#5469)
- Fix magics running from a python file. (#5537)
- Change scrolling to not animate to workaround async updates breaking the animation. (#5560)
- Add support for opening hyperlinks from the interactive window. (#5630)
- Remove extra padding in the dataviewer. (#5653)
- Add 'Add empty cell to file' command. Shortcut for having to type '#%%'. (#5667)
- Add 'ctrl+enter' as a keyboard shortcut for run current cell (runs without advancing) (#5673)
- Adjust input box prompt to look more an IPython console prompt. (#5729)
- Jupyter-notebook exists after shutdown. (#5731)
- Fix horizontal scrolling in the Interactive Window. (#5734)
- Fix problem with using up/down arrows in autocomplete. (#5774)
- Fix latex and markdown scrolling. (#5775)
- Add support for jupyter controls that clear. (#5801)
- Fix up arrow on signature help closing the help. (#5813)
- Make the interactive window respect editor cursor and blink style. (#5814)
- Remove extra overlay on editor when matching parentheses. (#5815)
- Fix theme color missing errors inside interactive window. (#5827)
- Fix problem with shift+enter not working after using goto source. (#5829)
- Fix CI failures related to history import changes. (#5844)
- Disable quoting of paths sent to the debugger as arguments. (#5861)
- Fix shift+enter to work in newly created files with cells. (#5879)
- Fix nightly failures caused by new jupyter command line. (#5883)
- Improve accessibility of the 'Python Interactive' window. (#5884)
- Auto preview notebooks on import. (#5891)
- Fix liveloss test to not have so many dependencies. (#5909)
- Fixes to detection of the shell. (#5916)
- Fixes to activation of Conda environments. (#5929)
- Fix themes in the interactive window that use 3 color hex values (like Cobalt2). (#5950)
- Fix jupyter services node-fetch connection issue. (#5956)
- Allow selection and running of indented code in the python interactive window. (#5983)
- Account for files being opened in Visual Studio Code that do not belong to a workspace. (#6624)
- Accessibility pass on plot viewer (#6020)
- Allow for both password and self cert server to work together (#6265)
- Fix pdf export in release bits. (#6277)
- Add code coverage reporting. (#4472)
- Minimize data sent as part of the
ERROR
telemetry event. (#4602) - Fixes to decorator tests. (#5085)
- Add sorting test for DataViewer. (#5415)
- Rename "unit test" to "tests" from drop menu when clicking on "Run Tests" on the status bar. (#5605)
- Added telemetry to track memory usage of the
Jedi Language Server
process. (#5726) - Fix nightly functional tests from timing out during process cleanup. (#5870)
- Change how telemetry is sent for the 'shift+enter' banner. (#5887)
- Fixes to gulp script used to bundle the extension with
WebPack
. (#5932) - Tighten up the import-matching regex to minimize false-positives. (#5988)
- Merge multiple coverage reports into one. (#6000)
- Fix DataScience nightly tests. (#6032)
- Update version of TypeScript to 3.5. (#6033)
Thanks to the following projects which we fully rely on to provide some of our features:
- isort 4.3.20
- jedi 0.12.0 and parso 0.2.1
- Microsoft Python Language Server
- ptvsd
- exuberant ctags (user-installed)
- rope (user-installed)
Also thanks to the various projects we provide integrations with which help make this extension useful:
- Debugging support: Django, Flask, gevent, Jinja, Pyramid, PySpark, Scrapy, Watson
- Formatting: autopep8, black, yapf
- Interpreter support: conda, direnv, pipenv, pyenv, venv, virtualenv
- Linting: bandit, flake8, mypy, prospector, pylint, pydocstyle, pylama
- Testing: nose, pytest, unittest
And finally thanks to the Python development team and community for creating a fantastic programming language and community to be a part of!
- Disable quoting of paths sent to the debugger as arguments. (#5861)
- Fixes to activation of Conda environments. (#5929)
- Fixes to detection of the shell. (#5916)
- Disable quoting of paths sent to the debugger as arguments. (#5861)
- Fixes to activation of Conda environments. (#5929)
- Fixes to detection of the shell. (#5916)
- Changes to identification of
shell
for the activation of environments in the terminal. (#5743)
- Add visual separation between the variable explorer and the rest of the Interactive Window content (#5389)
- Show a message when no variables are defined (#5228)
- Variable explorer UI fixes via PM / designer (#5274)
- Allow column sorting in variable explorer (#5281)
- Provide basic intellisense in Interactive Windows, using the language server. (#5342)
- Add support for Jupyter autocomplete data in Interactive Window. (#5346)
- Swap getsizeof size value for something more sensible in the variable explorer (#5368)
- Pass parent debug session to child debug sessions using new DA API (#5464)
- Advance to the next cell if cursor is in the current cell and user clicks 'Run Cell' (#5067)
- Fix import/export paths to be escaped on windows. (#5386)
- Fix magics running from a python file. (#5537)
- Change scrolling to not animate to workaround async updates breaking the animation. (#5560)
- Add support for opening hyperlinks from the interactive window. (#5630)
- Add 'Add empty cell to file' command. Shortcut for having to type '#%%' (#5667)
- Add 'ctrl+enter' as a keyboard shortcut for run current cell (runs without advancing) (#5673)
- Adjust input box prompt to look more an IPython console prompt. (#5729)
- Fix horizontal scrolling in the Interactive Window (#5734)
- Fix problem with using up/down arrows in autocomplete. (#5774)
- Fix latex and markdown scrolling. (#5775)
- Use the correct activation script for conda environments (#4402)
- Improve pipenv error messages (thanks David Lechner) (#4866)
- Quote paths returned by debugger API (#4966)
- Reliably end test tasks in Azure Pipelines. (#5129)
- Append
--pre
to black installation command so pipenv can properly resolve it. (thanks Erin O'Connell) (#5171) - Make background cell color useable in all themes. (#5236)
- Filtered rows shows 'fetching' instead of No rows. (#5278)
- Always show pytest's output when it fails. (#5313)
- Value 'None' sometimes shows up in the Count column of the variable explorer (#5387)
- Multi-dimensional arrays don't open in the data viewer. (#5395)
- Fix sorting of lists with numbers and missing entries. (#5414)
- Fix error with bad len() values in variable explorer (#5420)
- Remove trailing commas from JSON files. (thanks Romain) (#5437)
- Handle missing index columns and non trivial data types for columns. (#5452)
- Fix ignoreVscodeTheme to play along with dynamic theme updates. Also support setting in the variable explorer. (#5480)
- Fix matplotlib updating for dark theme after restarting (#5486)
- Add dev flag to poetry installer. (thanks Yan Pashkovsky) (#5496)
- Default
PYTHONPATH
to an empty string if the environment variable is not defined. (#5579) - Fix problems if other language kernels are installed that are using python under the covers (bash is one such example). (#5586)
- Allow collapsed code to affect intellisense. (#5631)
- Eliminate search support in the mini-editors in the Python Interactive window. (#5637)
- Fix perf problem with intellisense in the Interactive Window. (#5697)
- Using "request": "launch" item in launch.json for debugging sends pathMappings (#3568)
- Fix perf issues with long collections and variable explorer (#5511)
- Changed synchronous file system operation into async (#4895)
- Update ptvsd to 4.2.10.
- No longer switch off getpass on import.
- Fixes a crash on evaluate request.
- Fix a issue with running no-debug.
- Fixes issue with forwarding sys.stdin.read().
- Remove sys.prefix form library roots.
- Deprecate travis in favor of Azure Pipelines. (#4024)
- Smoke Tests must be run on nightly and CI on Azdo (#5090)
- Increase timeout and retries in Jupyter wait for idle (#5430)
- Update manual test plan for Variable Explorer and Data Viewer (#5476)
- Auto-update version number in
CHANGELOG.md
in the CI pipeline. (#5523) - Fix security issues. (#5538)
- Send logging output into a text file on CI server. (#5651)
- Fix python 2.7 and 3.5 variable explorer nightly tests (#5433)
- Update isort to version 4.3.20. (Thanks Andrew Blakey) (#5642)
Thanks to the following projects which we fully rely on to provide some of our features:
- isort 4.3.20
- jedi 0.12.0 and parso 0.2.1
- Microsoft Python Language Server
- ptvsd
- exuberant ctags (user-installed)
- rope (user-installed)
Also thanks to the various projects we provide integrations with which help make this extension useful:
- Debugging support: Django, Flask, gevent, Jinja, Pyramid, PySpark, Scrapy, Watson
- Formatting: autopep8, black, yapf
- Interpreter support: conda, direnv, pipenv, pyenv, venv, virtualenv
- Linting: bandit, flake8, mypy, prospector, pylint, pydocstyle, pylama
- Testing: nose, pytest, unittest
And finally thanks to the Python development team and community for creating a fantastic programming language and community to be a part of!
- Download the language server using HTTP if
http.proxyStrictSSL
is set totrue
. (#2849) - Launch the
Python
debug configuration UI when manually adding entries into thelaunch.json
file. (#3321) - Add tracking of 'current' cell in the editor. Also add cell boundaries for non active cell. (#3542)
- Change default behavior of debugger to display return values. (#3754)
- Replace setting
debugStdLib
withjustMyCode
(#4032) - Change "Unit Test" phrasing to "Test" or "Testing". (#4384)
- Auto expand tree view in
Test Explorer
to display failed tests. (#4386) - Add a data grid control and web view panel. (#4675)
- Add support for viewing dataframes, lists, dicts, nparrays. (#4677)
- Auto-expand the first level of the test explorer tree view. (#4767)
- Use
Python
code for discovery of tests when usingpytest
. (#4795) - Intergrate the variable explorer into the header better and refactor HTML and CSS. (#4800)
- Integrate the variable viewer with the IJupyterVariable interface. (#4802)
- Include number of skipped tests in Test Data item tooltip. (#4849)
- Add prompt to select virtual environment for the worskpace. (#4908)
- Prompt to turn on Pylint if a
pylintrc
or.pylintrc
file is found. (#4941) - Variable explorer handles new cell submissions. (#4948)
- Pass one at getting our data grid styled correctly to match vscode styles and the spec. (#4998)
- Ensure
Language Server
can start without ICU. (#5043) - Support running under docker. (#5047)
- Add exclude list to variable viewer. (#5104)
- Display a tip to the user informing them of the ability to change the interpreter from the statusbar. (#5180)
- Hook up the variable explorer to the data frame explorer. (#5187)
- Remove the debug config snippets (rely on handler instead). (#5189)
- Add setting to just enable/disable the data science codelens. (#5211)
- Change settings from
python.unitTest.*
topython.testing.*
. (#5219) - Add telemetry for variable explorer and turn on by default. (#5337)
- Show a message when no variables are defined (#5228)
- Variable explorer UI fixes via PM / designer (#5274)
- Allow column sorting in variable explorer (#5281)
- Swap getsizeof size value for something more sensible in the variable explorer (#5368)
- Ignore the extension's Python files when debugging. (#3201)
- Dispose processes started within the extension during. (#3331)
- Fix problem with errors not showing up for import when no jupyter installed. (#3958)
- Fix tabs in comments to come out in cells. (#4029)
- Use configuration API and provide Resource when retrieving settings. (#4486)
- When debugging, the extension correctly uses custom
.env
files. (#4537) - Accomadate trailing commands in the JSON contents of
launch.json
file. (#4543) - Kill liveshare sessions if a guest connects without the python extension installed. (#4947)
- Shutting down a session should not cause the host to stop working. (#4949)
- Fix cell spacing issues. (#4979)
- Fix hangs in functional tests. (#4992)
- Fix triple quoted comments in cells to not affect anything. (#5012)
- Restarting the kernel will eventually force Jupyter server to shutdown if it doesn't come back. (#5025)
- Adjust styling for data viewer. (#5058)
- Fix MimeTypes test after we stopped stripping comments. (#5086)
- No prompt displayed to install pylint. (#5087)
- Fix scrolling in the interactive window. (#5131)
- Default colors when theme.json cannot be found. Fix Python interactive window to update when theme changes. (#5136)
- Replace 'Run Above' and 'Run Below' in the palette with 'Run Cells Above Cursor' and 'Run Current Cell and Below'. (#5143)
- Variables not cleared after a kernel restart. (#5244)
- Fix variable explorer to work in Live Share. (#5277)
- Update matplotlib based on theme changes. (#5294)
- Restrict files from being processed by
Language Server
only when in a mult-root workspace. (#5333) - Fix dataviewer header column alignment. (#5351)
- Make background cell color useable in all themes. (#5236)
- Filtered rows shows 'fetching' instead of No rows. (#5278)
- Multi-dimensional arrays don't open in the data viewer. (#5395)
- Fix sorting of lists with numbers and missing entries. (#5414)
- Fix error with bad len() values in variable explorer (#5420)
- Update ptvsd to 4.2.8.
- Path mapping bug fixes.
- Fix for hang when using debug console.
- Fix for set next statement.
- Fix for multi-threading.
- Enable typescript's strict mode. (#611)
- Update to use
Node
version10.5.0
. (#1138) - Update
launch.json
to useinternalConsole
instead of none. (#4321) - Change flaky tests (relying on File System Watchers) into unit tests. (#4468)
- Corrected Smoke test failure for 'Run Python File In Terminal'. (#4515)
- Drop (official) support for Python 3.4. (#4528)
- Support debouncing decorated async methods. (#4641)
- Add functional tests for pytest adapter script. (#4739)
- Remove the use of timers in unittest code. Simulate the passing of time instead. (#4776)
- Add functional testing for variable explorer. (#4803)
- Add tests for variable explorer Python files. (#4804)
- Add real environment variables provider on to get functional tests to pass on macOS. (#4820)
- Handle done on all jupyter requests to make sure an unhandle exception isn't passed on shutdown. (#4827)
- Clean up language server initialization and configuration. (#4832)
- Hash imports of top-level packages to see what users need supported. (#4852)
- Have
tpn
clearly state why a project's license entry in the configuration file is considered stale. (#4865) - Kill the test process on CI, 10s after the tests have completed. (#4905)
- Remove hardcoded Azdo Pipeline of 30m, leaving it to the default of 60m. (#4914)
- Use the
Python
interpreter prescribed by CI instead of trying to locate the best possible one. (#4920) - Skip linter tests correctly. (#4923)
- Remove redundant compilation step on CI. (#4926)
- Dispose handles to timers created from using
setTimeout
. (#4930) - Ensure sockets get disposed along with other resources. (#4935)
- Fix intermittent test failure with listeners. (#4936)
- Update
mocha
to the latest version. (#4937) - Remove redundant mult-root tests. (#4943)
- Fix intermittent test failure with kernel shutdown. (#4951)
- Update version of isort to
4.3.17
(#5059) - Fix typo and use constants instead of hardcoded command names. (thanks Allan Wang) (#5204)
- Add datascience specific settings to telemetry gathered. Make sure to scrape any strings of PII. (#5212)
- Add telemetry around people hitting 'no' on the enable interactive shift enter. Reword the message to be more descriptive. (#5213)
- Fix failing variable explorer test. (#5348)
- Reliably end test tasks in Azure Pipelines. (#5129)
- Deprecate travis in favor of Azure Pipelines. (#4024)
Thanks to the following projects which we fully rely on to provide some of our features:
- isort 4.3.4
- jedi 0.12.0 and parso 0.2.1
- Microsoft Python Language Server
- ptvsd
- exuberant ctags (user-installed)
- rope (user-installed)
Also thanks to the various projects we provide integrations with which help make this extension useful:
- Debugging support: Django, Flask, gevent, Jinja, Pyramid, PySpark, Scrapy, Watson
- Formatting: autopep8, black, yapf
- Interpreter support: conda, direnv, pipenv, pyenv, venv, virtualenv
- Linting: bandit, flake8, mypy, prospector, pylint, pydocstyle, pylama
- Testing: nose, pytest, unittest
And finally thanks to the Python development team and community for creating a fantastic programming language and community to be a part of!
- Update ptvsd to 4.2.7.
- Fix issues related to debugging Django templates.
- Update the Python language server to 0.2.47.
- Capture telemetry to track switching to and from the Language Server. (#5162)
- Fix regression preventing the expansion of variables in the watch window and the debug console. (#5035)
- Display survey banner (again) for Language Server when using current Language Server. (#5064)
- Update ptvsd to 4.2.6.
(#5083)
- Fix issue with expanding variables in watch window and hover.
- Fix issue with launching a sub-module.
- Capture telemetry to track which installer was used when installing packages via the extension. (#5063)
- Use the download same logic for
stable
channel of theLanguage Server
as that inbeta
. (#4960)
- Capture telemetry when tests are disabled.. (#4801)
- Add support for poetry to install packages. (#1871)
- Disabled opening the output pane when sorting imports via isort fails. (thanks chrised) (#2522)
- Remove run all cells codelens and replace with run above and run below commands Add run to and from line commands in context menu (#4259)
- Support multi-root workspaces in test explorer. (#4268)
- Added support for fetching variable values from the jupyter server (#4291)
- Added commands translation for polish locale. (thanks pypros) (#4435)
- Show sub-tests in a subtree in the test explorer. (#4503)
- Add support for palette commands for Live Share scenarios. (#4520)
- Retain state of tests when auto discovering tests. (#4576)
- Update icons and tooltip in test explorer indicating status of test files/suites (#4583)
- Add 'ignoreVscodeTheme' setting to allow a user to skip using the theme for VS Code in the Python Interactive Window. (#4640)
- Add telemetry around imports. (#4718)
- Update status of test suite when all tests pass (#4727)
- Add button to ignore the message warning about the use of the macOS system install of Python. (thanks Alina Lobastova) (#4448)
- Add "Run In Interactive" command to run the contents of a file not cell by cell. Group data science context commands in one group. Add run file command to explorer context menu. (#4855)
- Add 'errorBackgroundColor' (defaults to white/#FFFFFF) for errors in the Interactive Window. Computes foreground based on background. (#3175)
- If selection is being sent to the Interactive Windows still allow for context menu commands to run selection in terminal or run file in terminal (#4207)
- Support multiline comments for markdown cells (#4215)
- Conda activation fails when there is a space in the env name (#4243)
- Fixes to ensure tests work in multi-root workspaces. (#4268)
- Allow Interactive Window to run commands as both
-m jupyter command
and as-m command
(#4306) - Fix shift enter to send selection when cells are defined. (#4413)
- Test explorer icon should be hidden when tests are disabled (#4494)
- Fix double running of cells with the context menu (#4532)
- Show an "unknown" icon when test status is unknown. (#4578)
- Add sys info when switching interpreters (#4588)
- Display test explorer when discovery has been run. (#4590)
- Resolve
pythonPath
before comparing it to shebang (#4601) - When sending selection to the Interactive Window nothing selected should send the entire line (#4604)
- Provide telemetry for when we show the shift+enter banner and if the user clicks yes (#4636)
- Better error message when connecting to remote server (#4666)
- Fix problem with restart never finishing (#4691)
- Fixes to ensure we invoke the right command when running a parameterized test function. (#4713)
- Handle view state changes for the Python Interactive window so that it gains focus when appropriate. (CTRL+1/2/3 etc should give focus to the interactive window) (#4733)
- Don't have "run all above" on first cell and don't start history for empty code runs (#4743)
- Perform case insensitive comparison of Python Environment paths (#4797)
- Ensure
Jedi
uses the currently selected interpreter. (thanks Selim Belhaouane) (#4687) - Multiline comments with text on the first line break Python Interactive window execution. (#4791)
- Fix status bar when using Live Share or just starting the Python Interactive window. (#4853)
- Change the names of our "Run All Cells Above" and "Run Cell and All Below" commands to be more concise (#4876)
- Ensure the
Python
output panel does not steal focus when there errors in theLanguage Server
. (#4868) - Update ptvsd to 4.2.5.
(#4932)
- Fix issues with django and jinja2 exceptions.
- Detaching sometimes throws ValueError.
- StackTrace request respecting just-my-code.
- Don't give error redirecting output with pythonw.
- Fix for stop on entry issue.
- Update the Python language server to 0.2.31.
- Add a Python script to run PyTest correctly for discovery. (#4033)
- Ensure post npm install scripts do not fail when run more than once. (#4109)
- Improve Azure DevOps pipeline for PR validation. Added speed improvements, documented the process better, and simplified what happens in PR validation. (#4123)
- Move to new Azure DevOps instance and bring the Nightly CI build closer to running cleanly by skipping tests and improving reporting transparency. (#4336)
- Add more logging to diagnose issues getting the Python Interactive window to show up. Add checks for Conda activation never finishing. (#4424)
- Update
nyc
and removegulp-watch
andgulp-debounced-watch
. (#4490) - Force WS to at least 3.3.1 to alleviate security concerns. (#4497)
- Add tests for Live Share support. (#4521)
- Fix running Live Share support in a release build. (#4529)
- Delete the
pvsc-dev-ext.py
file as it was not being properly maintained. (#4530) - Increase timeouts for loading of extension when preparing to run tests. (#4540)
- Exclude files
travis*.log
,pythonFiles/tests/**
,types/**
from the extension. (#4554) - Exclude
*.vsix
from source control. (#4556) - Add more logging for ECONNREFUSED errors and Jupyter server crashes (#4573)
- Add travis task to verify bundle can be created. (#4711)
- Add manual test plan for data science (#4716)
- Fix Live Share nightly functional tests (#4757)
- Make cancel test and server cache test more robust (#4818)
- Generalize code used to parse Test results service (#4796)
Thanks to the following projects which we fully rely on to provide some of our features:
- isort 4.3.4
- jedi 0.12.0 and parso 0.2.1
- Microsoft Python Language Server
- ptvsd
- exuberant ctags (user-installed)
- rope (user-installed)
Also thanks to the various projects we provide integrations with which help make this extension useful:
- Debugging support: Django, Flask, gevent, Jinja, Pyramid, PySpark, Scrapy, Watson
- Formatting: autopep8, black, yapf
- Interpreter support: conda, direnv, pipenv, pyenv, venv, virtualenv
- Linting: bandit, flake8, mypy, prospector, pylint, pydocstyle, pylama
- Testing: nose, pytest, unittest
And finally thanks to the Python development team and community for creating a fantastic programming language and community to be a part of!
- If selection is being sent to the Interactive Windows still allow for context menu commands to run selection in terminal or run file in terminal (#4207)
- When sending selection to the Interactive Window nothing selected should send the entire line (#4604)
- Provide telemetry for when we show the shift-enter banner and if the user clicks yes (#4636)
Thanks to the following projects which we fully rely on to provide some of our features:
- isort 4.3.4
- jedi 0.12.0 and parso 0.2.1
- Microsoft Python Language Server
- ptvsd
- exuberant ctags (user-installed)
- rope (user-installed)
Also thanks to the various projects we provide integrations with which help make this extension useful:
- Debugging support: Django, Flask, gevent, Jinja, Pyramid, PySpark, Scrapy, Watson
- Formatting: autopep8, black, yapf
- Interpreter support: conda, direnv, pipenv, pyenv, venv, virtualenv
- Linting: bandit, flake8, mypy, prospector, pylint, pydocstyle, pylama
- Testing: nose, pytest, unittest
And finally thanks to the Python development team and community for creating a fantastic programming language and community to be a part of!
- Support launch configs for debugging tests. (#332)
- Add way to send code to the Python Interactive window without having to put
#%%
into a file. (#3171) - Support simple variable substitution in
.env
files. (#3275) - Support live share in Python interactive window (experimental). (#3581)
- Strip comments before sending so shell command and multiline jupyter magics work correctly. (#4064)
- Add a build number to our released builds. (#4183)
- Prompt the user to send shift-enter to the interactive window. (#4184)
- Added Dutch translation. (thanks Robin Martijn with the feedback of Michael van Tellingen) (#4186)
- Add the Test Activity view. (#4272)
- Added action buttons to top of Test Explorer. (#4275)
- Navigation to test output from Test Explorer. (#4279)
- Add the command 'Configure Unit Tests'. (#4286)
- Do not update unit test settings if configuration is cancelled. (#4287)
- Keep testing configuration alive when losing UI focus. (#4288)
- Display test activity only when tests have been discovered. (#4317)
- Added a button to configure unit tests when prompting users that tests weren't discovered. (#4318)
- Use VSC API to open browser window (#4322)
- Don't shut down the notebook server on window close. (#4348)
- Added command
Show Output
to display thePython
output panel. (#4362) - Fix order of icons in test explorer and items. (#4364)
- Run failed tests icon should only appear if and when a test has failed. (#4371)
- Update ptvsd to 4.2.4.
(#4457)
- Validate breakpoint targets.
- Properly exclude certain files from showing up in the debugger.
- Add support for multi root workspaces with the new language server server. (#3008)
- Move linting tests to unit-testing for better reliability. (#3914)
- Allow "Run Cell" code lenses on non-local files. (#3995)
- Functional test for the input portion of the python interactive window. (#4057)
- Fix hitting the up arrow on the input prompt for the Python Interactive window to behave like the terminal window when only 1 item in the history. (#4145)
- Fix problem with webview panel not being dockable anywhere but view column 2. (#4237)
- More fixes for history in the Python Interactive window input prompt. (#4255)
- Fix precedence in
parsePyTestModuleCollectionResult
. (thanks Tammo Ippen) (#4360) - Revert pipenv activation to not use
pipenv
shell.` (#4394) - Fix shift enter to send selection when cells are defined. (#4413)
- Icons should display only in test explorer. (#4418)
- Update ptvsd to 4.2.4.
(#4457)
BreakOnSystemExitZero
now respected.- Fix a bug causing breakpoints not to be hit when attached to a remote target.
- Fix double running of cells with the context menu (#4532)
- Update the Python language server to 0.1.80.
- Fix all typescript errors when compiled in strict mode. (#611)
- Get functional tests running nightly again. (#3973)
- Turn on strict type checking (typescript compiling) for Datascience code. (#4058)
- Turn on strict typescript compile for the data science react code. (#4091)
- Fix issue causing debugger tests to timeout on CI servers. (#4148)
- Don't register language server onTelemetry when downloadLanguageServer is false. (#4199)
- Fixes to smoke tests on CI. (#4201)
Thanks to the following projects which we fully rely on to provide some of our features:
- isort 4.3.4
- jedi 0.12.0 and parso 0.2.1
- Microsoft Python Language Server
- ptvsd
- exuberant ctags (user-installed)
- rope (user-installed)
Also thanks to the various projects we provide integrations with which help make this extension useful:
- Debugging support: Django, Flask, gevent, Jinja, Pyramid, PySpark, Scrapy, Watson
- Formatting: autopep8, black, yapf
- Interpreter support: conda, direnv, pipenv, pyenv, venv, virtualenv
- Linting: bandit, flake8, mypy, prospector, pylint, pydocstyle, pylama
- Testing: nose, pytest, unittest
And finally thanks to the Python development team and community for creating a fantastic programming language and community to be a part of!
- Add the capability to have custom regex's for cell/markdown matching (#4065)
- Perform all validation checks in the background (#3019)
- Watermark for Python Interactive input prompt (#4111)
- Create diagnostics for failed/skipped tests that were run with pytest. (thanks Chris NeJame) (#120)
- Add the python.pipenvPath config setting. (#978)
- Add localRoot and remoteRoot defaults for Remote Debugging configuration in
launch.json
. (#1385) - Activate
pipenv
environments in the shell using the commandpipenv shell
. (#2855) - Use Pylint message names instead of codes (thanks to Roman Kornev) (#2906)
- Add ability to enter Python code directly into the Python Interactive window (#3101)
- Allow interactive window inputs to either be collapsed by default or totally hidden (#3266)
- Notify the user when language server extraction fails (#3268)
- Indent on enter after line continuations. (#3284)
- Improvements to automatic selection of the Python interpreter. (#3369)
- Add support for column numbers for problems returned by
mypy
. (thanks Eric Traut) (#3597) - Display actionable message when language server is not supported (#3634)
- Make sure we are looking for conda in all the right places (#3641)
- Improvements to message displayed when linter is not installed (#3659)
- Improvements to message displayed when Python path is invalid (in launch.json) (#3661)
- Add the Jupyter Server URI to the Interactive Window info cell (#3668)
- Handle errors happening during extension activation. (#3740)
- Validate Mac Interpreters in the background. (#3908)
- When cell inputs to Python Interactive are hidden, don't show cells without any output (#3981)
- Have the new export commands use our directory change code (#4140)
- Theme should not be exported without output when doing an export. (#4141)
- Deleting all cells should not remove the input prompt (#4152)
- Fix ctrl+c to work in code that has already been entered (#4168)
- Auto-select virtual environment in multi-root workspaces (#3501)
- Validate interpreter in multi-root workspaces (#3502)
- Allow clicking anywhere in an input cell to give focus to the input box for the Python Interactive window (#4076)
- Cursor in Interactive Windows now appears on whitespace (#4081)
- Fix problem with double scrollbars when typing in the input window. Make code wrap instead. (#4084)
- Remove execution count from the prompt cell. (#4086)
- Make sure showing a plain Python Interactive window lists out the sys info (#4088)
- Fix Python interactive window up/down arrows in the input prompt to behave like a terminal. (#4092)
- Handle stdout changes with updates to pytest 4.1.x series (without breaking 4.0.x series parsing). (#4099)
- Fix bug affecting multiple linters used in a workspace. (thanks Ilia Novoselov) (#2571)
- Activate any selected Python Environment when running unit tests. (#3330)
- Ensure extension does not start multiple language servers. (#3346)
- Add support for running an entire file in the Python Interactive window (#3362)
- When in multi-root workspace, store selected python path in the
settings.json
file of the workspace folder. (#3419) - Fix console wrapping in output so that console based status bars and spinners work. (#3529)
- Support other virtual environments besides conda (#3537)
- Fixed tests related to the
onEnter
format provider. (#3674) - Lowering threshold for Language Server support on a platform. (#3693)
- Survive missing kernelspecs as a default will be created. (#3699)
- Activate the extension when loading ipynb files (#3734)
- Don't restart the Jupyter server on any settings change. Also don't throw interpreter changed events on unrelated settings changes. (#3749)
- Support whitespace (tabs and spaces) in output (#3757)
- Ensure file names are not captured when sending telemetry for unit tests. (#3767)
- Address problem with Python Interactive icons not working in insider's build. VS Code is more restrictive on what files can load in a webview. (#3775)
- Fix output so that it wraps '<' entries in <xmp> to allow html like tags to be output. (#3824)
- Keep the Jupyter remote server URI input box open so you can copy and paste into it easier (#3856)
- Changes to how source maps are enabled and disabled in the extension. (#3905)
- Clean up command names for data science (#3925)
- Add more data when we get an unknown mime type (#3945)
- Match dots in ignorePatterns globs; fixes .venv not being ignored (thanks to Russell Davis) (#3947)
- Remove duplicates from interpreters listed in the interpreter selection list. (#3953)
- Add telemetry for local versus remote connect (#3985)
- Add new maxOutputSize setting for text output in the Python Interactive window. -1 means infinite, otherwise the number of pixels. (#4010)
- fix
pythonPath
typo (thanks David Lechner) (#4047) - Fix a type in generated header comment when importing a notebook:
DataSciece
-->DataScience
. (thanks sunt05) (#4048) - Allow clicking anywhere in an input cell to give focus to the input box for the Python Interactive window (#4076)
- Fix problem with double scrollbars when typing in the input window. Make code wrap instead. (#4084)
- Remove execution count from the prompt cell. (#4086)
- Make sure showing a plain Python Interactive window lists out the sys info (#4088)
- Fix build issue with code.tsx (#4156)
- Expose an event to notify changes to settings instead of casting settings to concrete class. (#642)
- Created system test to ensure terminal gets activated with anaconda environment (#1521)
- Added system tests to ensure terminal gets activated with virtualenv environment (#1522)
- Added system test to ensure terminal gets activated with pipenv (#1523)
- Fix flaky tests related to auto selection of virtual environments. (#2339)
- Use enums for event names instead of constants. (#2904)
- Add tests for clicking buttons in history pane (#3084)
- Add tests for clear and delete buttons in the history pane (#3087)
- Add tests for clicking buttons on individual cells (#3092)
- Handle a 404 when trying to download the language server (#3267)
- Ensure new warnings are not ignored when bundling the extension with WebPack. (#3468)
- Update our CI/nightly full build to a YAML definition build in Azure DevOps. (#3555)
- Add mock of Jupyter API to allow functional tests to run more quickly and more consistently. (#3556)
- Use Jedi if Language Server fails to activate (#3633)
- Fix the timeout for DataScience functional tests (#3682)
- Fixed language server smoke tests. (#3684)
- Add a functional test for interactive window remote connect scenario (#3714)
- Detect usage of
xonsh
shells (this does not add support forxonsh
itself) (#3746) - Remove
src/server
folder, as this is no longer required. (#3781) - Bugfix to
pvsc-dev-ext.py
where arguments to git would not be passed on POSIX-based environments. Extendedpvsc-dev-ext.py setup
command with 2 optional flags----repo
and--branch
to override the default git repository URL and the branch used to clone and install the extension. (thanks Anthony Shaw) (#3837) - Improvements to execution times of CI on Travis. (#3899)
- Add telemetry to check if global interpreter is used in workspace. (#3901)
- Make sure to search for the best Python when launching the non default interpreter. (#3916)
- Add tests for expand / collapse and hiding of cell inputs mid run (#3982)
- Move
splitParent
fromstring.ts
into tests folder. (#3988) - Ensure
debounce
decorator cannot be applied to async functions. (#4055)
- Lowering threshold for Language Server support on a platform. (#3693)
- Fix bug affecting multiple linters used in a workspace. (thanks Ilia Novoselov) (#3700)
Thanks to the following projects which we fully rely on to provide some of our features:
- isort 4.3.4
- jedi 0.12.0 and parso 0.2.1
- Microsoft Python Language Server
- ptvsd
- exuberant ctags (user-installed)
- rope (user-installed)
Also thanks to the various projects we provide integrations with which help make this extension useful:
- Debugging support: Django, Flask, gevent, Jinja, Pyramid, PySpark, Scrapy, Watson
- Formatting: autopep8, black, yapf
- Interpreter support: conda, direnv, pipenv, pyenv, venv, virtualenv
- Linting: bandit, flake8, mypy, prospector, pylint, pydocstyle, pylama
- Testing: nose, pytest, unittest
And finally thanks to the Python development team and community for creating a fantastic programming language and community to be a part of!
- Load the configured language server in the background during extension activation. (#3020)
- Display progress indicator when activating the language server and validating user setup. (#3082)
- Allow for connection to a remote
Jupyter
server. (#3316) - Allow users to request the 'Install missing Linter' prompt to not show again for
pylint
. (#3349) - Add the
Jupyter
server URI to the interactive window info cell. (#3668)
- Updated logic used to determine whether the Microsoft Python Language Server is supported. (#2729)
- Add export from the Python interactive window as a notebook file. (#3109)
- Fix issue with the
unittest
runner where test suite/module initialization methods were not for a single test method. (thanks Alex Yu) (#3295) - Activate
conda
prior to runningjupyter
for the Python interactive window. (#3341) - Respect value defined for
pylintEnabled
in usersettings.json
. (#3388) - Expand variables in
pythonPath
before validating it. (#3392) - Clear cached display name of Python if interpreter changes. (#3406)
- Run in the workspace directory by default for the interactive window. (#3407)
- Create a default config when starting a local
Jupyter
server to resolve potential conflicts with user's custom configuration. (#3475) - Add support for running Python interactive commands from the command palette. (#3476)
- Handle interrupts crashing the kernel. (#3511)
- Revert
ctags
argument from--extras
to--extra
. (#3517) - Fix problems with
jupyter
startup related to custom configurations. (#3533) - Fix crash when
kernelspec
is missing path or language. (#3561) - Update the Microsoft Python Language Server to 0.1.72/2018.12.1 (#3657):
- Properly resolve namespace packages and relative imports.
Go to Definition
now supports namespace packages.- Fixed
null
reference exceptions. - Fixed erroneously reporting
None
,True
, andFalse
as undefined.
- Pin python dependencies bundled with the extension in a
requirements.txt
file. (#2965) - Remove scripts that bundled the extension using the old way, without webpack. (#3479)
- Fix environment variable token in Azure DevOps YAML. (#3630)
- Add missing imports and enable functional tests. (#3649)
- Enable code coverage for unit tests and functional tests. (#3650)
- Add logging for improved diagnostics. (#3460)
Thanks to the following projects which we fully rely on to provide some of our features:
- isort 4.3.4
- jedi 0.13.1 and parso 0.3.1
- Microsoft Python Language Server
- ptvsd
- exuberant ctags (user-installed)
- rope (user-installed)
Also thanks to the various projects we provide integrations with which help make this extension useful:
- Debugging support: Django, Flask, gevent, Jinja, Pyramid, PySpark, Scrapy, Watson
- Formatting: autopep8, black, yapf
- Interpreter support: conda, direnv, pipenv, pyenv, venv, virtualenv
- Linting: bandit, flake8, mypy, prospector, pylint, pydocstyle, pylama
- Testing: nose, pytest, unittest
And finally thanks to the Python development team and community for creating a fantastic programming language and community to be a part of!
- Update Jedi to 0.13.1 and parso 0.3.1. (#2667)
- Make diagnostic message actionable when opening a workspace with no currently selected Python interpreter. (#2983)
- Expose an API that can be used by other extensions to interact with the Python Extension. (#3121)
- Updated the language server to 0.1.65:
- Improved
formatOnType
so it handles mismatched braces better (#3482)
- Improved
- Have
ctags
use the--extras
option instead of--extra
. (thanks to Brandy Sandrowicz) (#793) - Always use bundled version of
ptvsd
, unless specified. To use a custom version ofptvsd
in the debugger, addcustomDebugger
into yourlaunch.json
configuration as follows:(#3283)"type": "python", "request": "launch", "customDebugger": true
- Fix problems with virtual environments not matching the loaded python when running cells. (#3294)
- Add button for interrupting the jupyter kernel (#3314)
- Auto select
Python Interpreter
prior to validation of interpreters and changes to messages displayed. (#3326) - Fix Jupyter server connection issues involving IP addresses, base_url, and missing tokens (#3332)
- Make
nbconvert
in a installation not prevent notebooks from starting. (#3343) - Re-run Jupyter notebook setup when the kernel is restarted. This correctly picks up dark color themes for matplotlib. (#3418)
- Update the language server to 0.1.65:
- Fixed
null
reference exception when executing "Find symbol in workspace" - Fixed
null
argument exception that could happen when a function used tuples - Fixed issue when variables in nested list comprehensions were marked as undefined
- Fixed exception that could be thrown with certain generic syntax (#3482)
- Fixed
- Added basic integration tests for the new Language Server. (#2041)
- Add smoke tests for the extension. (#3021)
- 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) - Removed
IsTestExecution
guard from around data science banner calls (#3246) - Unit tests for
CodeLensProvider
andCodeWatcher
(#3264) - Use
EXTENSION_ROOT_DIR
instead of__dirname
in preparation for bundling of extension. (#3317) - Add YAML file specification for CI builds (#3350)
- Stop running CI tests against the
master
branch of ptvsd. (#3414) - Be more aggressive in searching for a Python environment that can run Jupyter (make sure to cleanup any kernelspecs that are created during this process). (#3433)
- When attempting to 'Run Cell', get error - Cannot read property 'length' of null (#3286)
Thanks to the following projects which we fully rely on to provide some of our features:
- isort 4.3.4
- jedi 0.12.0 and parso 0.2.1
- Microsoft Python Language Server
- ptvsd
- exuberant ctags (user-installed)
- rope (user-installed)
Also thanks to the various projects we provide integrations with which help make this extension useful:
- Debugging support: Django, Flask, gevent, Jinja, Pyramid, PySpark, Scrapy, Watson
- Formatting: autopep8, black, yapf
- Interpreter support: conda, direnv, pipenv, pyenv, venv, virtualenv
- Linting: bandit, flake8, mypy, prospector, pylint, pydocstyle, pylama
- Testing: nose, pytest, unittest
And finally thanks to the Python development team and community for creating a fantastic programming language and community to be a part of!
- Add support for code completion in the debug console window. (#1076)
- Add a new simple snippet for
if __name__ == '__main__':
block. The snippet can be accessed by typing__main__
(thanks R S Nikhil Krishna) (#2242) - Add Python Interactive mode for data science. (#2302)
- Added a debugger setting to show return values of functions while stepping. (#2463)
- Enable on-type formatting from language server (#2690)
- Add bandit to supported linters. (thanks Steven Demurjian Jr.) (#2775)
- Ensure
python.condaPath
supports paths relative toHome
. E.g."python.condaPath":"~/anaconda3/bin/conda"
. (#2781) - 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
- Completion support for
collections.namedtuple
. - Support
typing.NewType
andtyping.TypeVar
.
- Completion support for
- Debugger
- Add support for sub-process debugging (set
"subProcess": true
in yourlaunch.json
to use). - Add support for pyside2.
- Add support for sub-process debugging (set
- Language server
- Add localization of strings. Localized versions are specified in the package.nls.<locale>.json files. (#463)
- 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)
- 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)
- Support "conda activate" after 4.4.0. (#1882)
- Fix installation of codna packages when conda environment contains spaces. (#2015)
- Ensure
python.formatting.blackPath
supports paths relative toHome
. E.g."python.formatting.blackPath":"~/venv/bin/black"
. (#2274) - Correct errors with timing, resetting, and exceptions, related to unittest during discovery and execution of tests. Re-enable
unittest.test
suite. (#2692) - Fix colon-triggered block formatting. (#2714)
- Ensure relative paths to python interpreters in
python.pythonPath
ofsettings.json
are prefixed with./
or.\\
(depending on the OS). (#2744) - Give preference to PTSVD in current path. (#2818)
- Fixed a typo in the Python interpreter selection balloon for macOS. (thanks Joe Graham) (#2868)
- 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 forx
, not justx[]
). - Fixed issues relating to
Go to Definition
forfrom ... 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.
- Completions on generic containers work (e.g.
- 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.
- Language server
- Remove test-specific code from
configSettings.ts
class. (#2678) - Add a unit test for the MyPy output regex. (#2696)
- Update all npm dependencies to use the caret operator. (#2746)
- Move contents of the folder
src/utils
intosrc/client/common/utils
. (#2748) - Moved languageServer-related files to a languageServer folder. (#2756)
- Skip known failing tests for specific OS and Python version combinations to get CI running cleanly. (#2795)
- Move the linting error code out of the linting message and let VS Code manage it in the Problems panel (Thanks Nafly Mohammed). (#2815)
- Remove code related to the old debugger. (#2828)
- Upgrade Gulp to 4.0.0. (#2909)
- Remove pre-commit hooks. (#2963)
- Only perform Black-related formatting tests when the current Python-version supports it. (#2999)
- Move language server downloads to the CDN. (#3000)
- Pin extension to a minimum version of the language server. (#3125)
- Update version of
vscode-extension-telemetry
to resolve issue with regards to spawning of numerouspowershell
processes. (#2996)
- Forward telemetry from the language server. (#2940)
- Disable activation of conda environments in PowerShell. (#2732)
- Add logging along with some some improvements to the load times of the extension. (#2827)
- Stop
normalizationForInterpreter.py
script from returning CRCRLF line-endings. (#2857)
- Add ability to publish extension builds from
release
branches into the blob store. (#2874)
Thanks to the following projects which we fully rely on to provide some of our features:
- isort 4.3.4
- jedi 0.12.0 and parso 0.2.1
- Microsoft Python Language Server 2018.9.0
- ptvsd 4.1.3
- exuberant ctags (user-installed)
- rope (user-installed)
Also thanks to the various projects we provide integrations with which help make this extension useful:
- Debugging support: Django, Flask, gevent, Jinja, Pyramid, PySpark, Scrapy, Watson
- Formatting: autopep8, black, yapf
- Interpreter support: conda, direnv, pipenv, pyenv, venv, virtualenv
- Linting: bandit, flake8, mypy, prospector, pylint, pydocstyle, pylama
- Testing: nose, pytest, unittest
And finally thanks to the Python development team and community for creating a fantastic programming language and community to be a part of!
- Adds support for code completion in the debug console window. (#1076)
- Auto activate Python Environment in terminals (disable with
"python.terminal.activateEnvironment": false
). (#1387) - Add support for activation of
pyenv
environments in the Terminal. (#1526) - Display a message with options when user selects the default macOS Python interpreter. (#1689)
- Add debug configuration snippet for modules for the debugger. (#2175)
- Search for python interpreters in all paths found in the
PATH
/Path
environment variable. (#2398) - Add telemetry to download, extract, and analyze, phases of the Python Language Server. (#2461)
- The
pvsc-dev-ext.py
script now capturesstderr
for more informative exceptions when execution fails. (#2483) - Display notification when attempting to debug without selecting a python interpreter. (#2494)
- Add support for out of band updates to the language server. (#2580)
- Ensure status bar with interpreter information takes priority over other items. (#2617)
- Add Python Language Server version to the survey banner URL presented to some users. (#2630)
- Language server now provides rename functionality. (#2650)
- Search for default known paths for conda environments on windows. (#2794
- Add bandit to supported linters. (thanks Steven Demurjian) (#2775)
- Improvements to the display format of interpreter information in the list of interpreters. (#1352)
- Deprecate the use of the setting
python.autoComplete.preloadModules
. Recommendation is to utilize the new language server (change the setting"python.jediEnabled": false
). (#1704) - Add a new
python.condaPath
setting to use if conda is not found onPATH
. (#1944) - Ensure code is executed when the last line of selected code is indented. (#2167)
- Stop duplicate initializations of the Python Language Server's progress reporter. (#2297)
- 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) - Do not use variable substitution when updating
python.pythonPath
. This matters because VS Code does not do variable substitution in settings values. (#2459) - Use a python script to launch the debugger, instead of using
-m
which requires changes to thePYTHONPATH
variable. (#2509) - Provide paths from
PYTHONPATH
environment variable to the language server, as additional search locations of Python modules. (#2518) - Fix issue preventing debugger user survey banner from opening. (#2557)
- Use folder name of the Python interpreter as the name of the virtual environment. (#2562)
- Give preference to bitness information retrieved from the Python interpreter over what's been retrieved from Windows Registry. (#2563)
- Use the environment folder name for environments without environment names in the Conda Environments list file. (#2577)
- Update environment variable naming convention for
SPARK_HOME
, when stored insettings.json
. (#2628) - Fix debug adapter
Attach
test. (#2655) - Fix colon-triggered block formatting. (#2714)
- Use full path to activate command in conda environments on windows when python.condaPath is set. (#2753)
- Fix broken CI on Azure DevOps. (#2549)
- Upgraded our version of
request
to2.87.0
. (#2621) - Include the version of language server in telemetry. (#2702)
- Update
vscode-extension-telemetry
to0.0.22
. (#2745)
Thanks to the following projects which we fully rely on to provide some of our features:
- isort 4.3.4
- jedi 0.12.0 and parso 0.2.1
- 4.1.1
- exuberant ctags (user-installed)
- rope (user-installed)
Also thanks to the various projects we provide integrations with which help make this extension useful:
- Debugging support: Django, Flask, gevent, Jinja, Pyramid, PySpark, Scrapy, Watson
- Formatting: autopep8, black, yapf
- Interpreter support: conda, direnv, pipenv, pyenv, venv, virtualenv
- Linting: flake8, mypy, prospector, pylint, pydocstyle, pylama
- Testing: nose, pytest, unittest
And finally thanks to the Python development team and community for creating a fantastic programming language and community to be a part of!
- Improved language server startup time by 40%. (#1865)
- Add pip dependency support to the conda
environment.yml
YAML schema support (thanks Mark Edwards). (#2119) - Added a German translation. (thanks to bschley and by means of berndverst and croth1 for the reviews) (#2203)
- 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) - Language server now supports hierarchical document outline per language server protocol 4.4+ and VS Code 1.26+. (#2384)
- Make use of the
http.proxy
field insettings.json
when downloading the Python Language Server. (#2385)
- Fix debugger issue that prevented users from copying the value of a variable from the Variables debugger window. (#1398)
- Enable code lenses for tests when using the new language server. (#1948)
- 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)
- Language server now populates document outline with all symbols instead of just top-level ones. (#2050)
- Ensure test count values in the status bar represent the correct number of tests that were discovered and run. (#2143)
- Fixed issue in the language server when documentation for a function always produced "Documentation is still being calculated, please try again soon". (#2179)
- Change linter message parsing so it respects
python.linting.maxNumberOfProblems
. (thanks Scott Saponas) (#2198) - Fixed language server issue when it could enter infinite loop reloading modules. (#2207)
- Ensure workspace
pipenv
environment is not labeled as avirtual env
. (#2223) - Improve reliability of document outline population with language server. (#2224)
- Language server now correctly handles
with
statement when__enter__
is declared in a base class. (#2240) - Fix
visualstudio_py_testLauncher
to stop breaking out of test discovery too soon. (#2241) - Notify the user when the language server does not support their platform. (#2245)
- Fix issue with survey not opening in a browser for Windows users. (#2252)
- Correct banner survey question text to reference the Python Language Server. (#2253)
- Fixed issue in the language server when typing dot under certain conditions produced null reference exception. (#2262)
- Fix error when switching from new language server to the old
Jedi
language server. (#2281) - Unpin Pylint from < 2.0 (prospector was upgraded and isn't stuck on that any longer) (#2284)
- Add support for breaking into the first line of code in the new debugger. (#2299)
- Show the debugger survey banner for only a subset of users. (#2300)
- 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. http://flask.pocoo.org/docs/1.0/api/#flask.Flask.debug (#2309)
- Language server now correctly merges data from typeshed and the Python library. (#2345)
- Fix pytest >= 3.7 test discovery. (#2347)
- Update the downloaded Python language server nuget package filename to
Python-Language-Server-{OSType}.beta.nupkg
. (#2362) - Added setting to control language server log output. Default is now 'error' so there should be much less noise in the output. (#2405)
- Fix
experimental
debugger when debugging Python files with Unicode characters in the file path. (#688) - Ensure stepping out of debugged code does not take user into
PTVSD
debugger code. (#767) - Upgrade
pythonExperimental
topython
inlaunch.json
. (#2478)
- Revert change that moved IExperimentalDebuggerBanner into a common location. (#2195)
- Decorate
EventEmitter
within atry..catch
to play nice with other extensions performing the same operation. (#2196) - Change the default interpreter to favor Python 3 over Python 2. (#2266)
- Deprecate command
Python: Build Workspace Symbols
when using the language server. (#2267) - Pin version of
pylint
to3.6.3
to allow ensurepylint
gets installed on Travis with Python2.7. (#2305) - Remove some of the debugger tests and fix some minor debugger issues. (#2307)
- Only use the current stable version of PTVSD in CI builds/releases. (#2432)
- Update the language server to code as of 651468731500ec1cc644029c3666c57b82f77d76. (#2233)
Thanks to the following projects which we fully rely on to provide some of our features:
- isort 4.3.4
- jedi 0.12.0 and parso 0.2.1
- ptvsd 3.0.0 and 4.1.11a5
- exuberant ctags (user-installed)
- rope (user-installed)
Also thanks to the various projects we provide integrations with which help make this extension useful:
- Debugging support: Django, Flask, gevent, Jinja, Pyramid, PySpark, Scrapy, Watson
- Formatting: autopep8, black, yapf
- Interpreter support: conda, direnv, pipenv, pyenv, venv, virtualenv
- Linting: flake8, mypy, prospector, pylint, pydocstyle, pylama
- Testing: nose, pytest, unittest
And finally thanks to the Python development team and community for creating a fantastic programming language and community to be a part of!
- Language server now reports code analysis progress in the status bar. (#1591)
- Only report Language Server download progress once. (#2000)
- Messages changes to reflect name of the language server: 'Microsoft Python Language Server';
folder name changed from
analysis
tolanguageServer
. (#2107) - Set default analysis for language server to open files only. (#2113)
- 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)
- Ensure dunder variables are always displayed in code completion when using the new language server. (#2013)
- Store testId for files & suites during unittest discovery. (#2044)
editor.formatOnType
no longer adds space after*
in multi-line arguments. (#2048)- Fix bug where tooltips would popup whenever a comma is typed within a string. (#2057)
- Change keyboard shortcut for
Run Selection/Line in Python Terminal
to not interfere with the Find/Replace dialog box. (#2068) - Relax validation of the environment
Path
variable. (#2076) editor.formatOnType
is more reliable handling floating point numbers. (#2079)- Change the default port used in remote debugging using
Experimental
debugger to5678
. (#2146) - Register test manager when using the new language server. (#2186)
- Removed pre-commit hook that ran unit tests. (#1986)
- Pass OS type to the debugger. (#2128)
- Ensure 'languageServer' directory is excluded from the build output. (#2150)
- Change the download links of the language server files. (#2180)
Thanks to the following projects which we fully rely on to provide some of our features:
- isort 4.3.4
- jedi 0.12.0 and parso 0.2.1
- ptvsd 3.0.0 and 4.1.11a5
- exuberant ctags (user-installed)
- rope (user-installed)
Also thanks to the various projects we provide integrations with which help make this extension useful:
- Debugging support: Django, Flask, gevent, Jinja, Pyramid, PySpark, Scrapy, Watson
- Formatting: autopep8, black, yapf
- Interpreter support: conda, direnv, pipenv, pyenv, venv, virtualenv
- Linting: flake8, mypy, prospector, pylint, pydocstyle, pylama
- Testing: nose, pytest, unittest
And finally thanks to the Python development team and community for creating a fantastic programming language and community to be a part of!
- Add setting to control automatic test discovery on save,
python.unitTest.autoTestDiscoverOnSaveEnabled
. (thanks Lingyu Li) (#1037) - Add
gevent
launch configuration option to enable debugging of gevent monkey patched code. (thanks Bence Nagy) (#127) - Add support for the
"source.organizeImports"
setting for"editor.codeActionsOnSave"
(thanks Nathan Gaberel); you can turn this on just for Python using:(#156)"[python]": { "editor.codeActionsOnSave": { "source.organizeImports": true } }
- Added Spanish translation. (thanks Mario Rubio) (#1902)
- 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)
- Add syntax highlighting for Pipenv-related files (thanks Nathan Gaberel). (#995)
- Modified to change error message displayed when path to a tool (
linter
,formatter
, etc) is invalid. (#1064) - Improvements to the logic used to parse the arguments passed into the test frameworks. (#1070)
- Ensure navigation to definitions follows imports and is transparent to decoration. (thanks Peter Law) (#1638)
- Fix for intellisense failing when using the new
Outline
feature. (#1721) - When debugging unit tests, use the
env
file configured insettings.json
underpython.envFile
. (#1759) - Fix to display all interpreters in the interpreter list when a workspace contains a
Pipfile
. (#1800) - Use file system API to perform file path comparisons when performing code navigation. (thanks to bstaint for the problem diagnosis) (#1811)
- Automatically add path mappings for remote debugging when attaching to the localhost. (#1829)
- Change keyboard shortcut for
Run Selection/Line in Python Terminal
toShift+Enter
. (#1875) - Fix unhandled rejected promises in unit tests. (#1919)
- Fix debugger issue that causes the debugger to hang and silently exit stepping over a line of code instantiating an ITK vector object. (#459)
- Add telemetry to capture type of python interpreter used in workspace. (#1237)
- Enabled multi-thrreaded debugger tests for the
experimental
debugger. (#1250) - Log relevant environment information when the existence of
pipenv
cannot be determined. (#1338) - Use dotenv package to parse environment variables definition files. (#1376)
- Move from yarn to npm. (#1402)
- Fix django and flask debugger tests when using the experimental debugger. (#1407)
- Capture telemetry for the usage of the
Create Terminal
command along with other instances when a terminal is created implicitly. (#1542) - Add telemetry to capture availability of Python 3, version of Python used in workspace and the number of workspace folders. (#1545)
- Ensure all CI tests (except for debugger) are no longer allowed to fail. (#1614)
- Capture telemetry for the usage of the feature that formats a line as you type (
editor.formatOnType
). (#1766) - Capture telemetry for the new debugger. (#1767)
- Capture telemetry for usage of the setting
python.autocomplete.addBrackets
(#1770) - Speed up githook by skipping commits not containing any
.ts
files. (#1803) - Update typescript package to 2.9.1. (#1815)
- Log Conda not existing message as an information instead of an error. (#1817)
- Make use of
ILogger
to log messages instead of usingconsole.error
. (#1821) - Update
parso
package to 0.2.1. (#1833) - Update
isort
package to 4.3.4. (#1842) - Add better exception handling when parsing responses received from the Jedi language service. (#1867)
- Resolve warnings in CI Tests and fix some broken CI tests. (#1885)
- Reduce sample count used to capture performance metrics in order to reduce time taken to complete the tests. (#1887)
- Ensure workspace information is passed into installer when determining whether a product/tool is installed. (#1893)
- Add JUnit file output to enable CI integration with VSTS. (#1897)
- Log unhandled rejected promises when running unit tests. (#1918)
- Add ability to run tests without having to launch VS Code. (#1922)
- Fix rename refactoring unit tests. (#1953)
- Fix failing test on Mac when validating the path of a python interperter. (#1957)
- Display banner prompting user to complete a survey for the use of the
Experimental Debugger
. (#1968) - Use a glob pattern to look for
conda
executables. (#256) - Create tests to measure activation times for the extension. (#932)
Thanks to the following projects which we fully rely on to provide some of our features:
- isort 4.2.15
- jedi 0.12.0 and parso 0.2.0
- ptvsd 3.0.0 and 4.1.1a5
- exuberant ctags (user-installed)
- rope (user-installed)
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.
- Add support for the Black formatter (thanks to Josh Smeaton for the initial patch) (#1153)
- Add the command
Discover Unit Tests
. (#1474) - Auto detect
*.jinja2
and*.j2
extensions as Jinja templates, to enable debugging of Jinja templates. (#1484)
- Ensure debugger breaks on
assert
failures. (#1194) - Ensure debugged program is terminated when
Stop
debugging button is clicked. (#1345) - Fix indentation when function contains type hints. (#1461)
- Ensure python environment activation works as expected within a multi-root workspace. (#1476)
- Close communication channel before exiting the test runner. (#1529)
- Allow for negative column numbers in messages returned by
pylint
. (#1628) - Modify the
FLASK_APP
environment variable in the flask debug configuration to include just the name of the application file. (#1634) - Ensure the display name of an interpreter does not get prefixed twice with the words
Python
. (#1651) - Enable code refactoring when using the new Analysis Engine. (#1774)
editor.formatOnType
no longer breaks numbers formatted with underscores. (#1779)editor.formatOnType
now better handles multiline function arguments (#1796)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)- Display documentation for auto completion items when the feature to automatically insert of brackets for selected item is turned on. (#452)
- 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) - Resolves rename refactor issue that removes the last line of the source file when the line is being refactored and source does not end with an EOL. (#695)
- Ensure the prompt to install missing packages is not displayed more than once. (#980)
- Add syntax highlighting to
constraints.txt
files to match that ofrequirements.txt
files. (thanks Waleed Sehgal) (#1053) - Refactor unit testing functionality to improve testability of individual components. (#1068)
- Add unit tests for evaluating expressions in the experimental debugger. (#1109)
- Add tests to ensure custom arguments get passed into python program when using the experimental debugger. (#1280)
- Ensure custom environment variables are always used when spawning any process from within the extension. (#1339)
- Add tests for hit count breakpoints for the experimental debugger. (#1410)
- Ensure none of the npm packages (used by the extension) rely on native dependencies. (#1416)
- Remove explicit initialization of
PYTHONPATH
with the current workspace path in unit testing of modules with the experimental debugger. (#1465) - Flag
program
inlaunch.json
configuration items as an optional attribute. (#1503) - Remove unused setting
disablePromptForFeatures
. (#1551) - Remove unused Unit Test setting
debugHost
. (#1552) - Create a new API to retrieve interpreter details with the ability to cache the details. (#1569)
- Add tests for log points in the experimental debugger. (#1582)
- Update typescript package to 2.8.3. (#1604)
- Fix typescript compilation error. (#1623)
- Fix unit tests used to test flask template debugging on AppVeyor for the experimental debugger. (#1640)
- Change yarn install script to include the keyword
--lock-file
. (thanks Lingyu Li) (#1682) - Run unit tests as a pre-commit hook. (#1703)
- Update debug capabilities to add support for the setting
supportTerminateDebuggee
due to an upstream update from PTVSD. (#1719) - Build and upload development build of the extension to the Azure blob store even if CI tests fail on the
master
branch. (#1730) - Changes to the script used to upload the extension to the Azure blob store. (#1732)
- Prompt user to reload Visual Studio Code when toggling between the analysis engines. (#1747)
- Fix typo in unit test. (#1794)
- Fix failing Prospector unit tests and add more tests for linters (with and without workspaces). (#1836)
- Ensure
Outline
view doesn't overload the language server with too many requests, while user is editing text in the editor. (#1856)
Thanks to the following projects which we fully rely on to provide some of our features:
- isort 4.2.15
- jedi 0.12.0 and parso 0.2.0
- ptvsd 3.0.0 and 4.1.1a1
- exuberant ctags (user-installed)
- rope (user-installed)
And a special thanks to Patryk Zawadzki for all of his help on our issue tracker!
- Enable debugging of Jinja templates in the experimental debugger.
This is made possible with the addition of the
jinja
setting in thelaunch.json
file as follows:(#1206)"request": "launch or attach", ... "jinja": true
- Remove empty spaces from the selected text of the active editor when executing in a terminal. (#1207)
- 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 pythonFile.py
(#1229) - Add support for logpoints in the experimental debugger. (#1306)
- Set focus to the terminal upon creation of a terminal using the
Python: Create Terminal
command. (#1315) - Save the python file before running it in the terminal using the command/menu
Run Python File in Terminal
. (#1316) - Added support for source references (remote debugging without having the source code locally) in the experimental debugger. (#1333)
- Add
Ctrl+Enter
keyboard shortcut forRun Selection/Line in Python Terminal
. (#1349) - Settings configured within the
debugOptions
property oflaunch.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) - Intergrate Jedi 0.12. See davidhalter/jedi#1063 (comment) for details. (#1400)
- Enable Jinja template debugging as a default behaviour when using the Watson debug configuration for debugging of Watson applications. (#1480)
- Enable Jinja template debugging as a default behavior when debugging Pyramid applications. (#1492)
- 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:Additional capabilities:import ptvsd ptvsd.enable_attach(('0.0.0.0', 5678))
ptvsd.break_into_debugger()
to break into the attached debugger.ptvsd.wait_for_attach(timeout)
to cause the program to wait until a debugger attaches.ptvsd.is_attached()
to determine whether a debugger is attached to the program. (#907)
- Use an existing method to identify the active interpreter. (#1015)
- Fix
go to definition
functionality across files. (#1033) - IntelliSense under Python 2 for inherited attributes works again (thanks to an upgraded Jedi). (#1072)
- Reverted change that ended up considering symlinked interpreters as duplicate interpreter. (#1192)
- Display errors returned by the PipEnv command when identifying the corresponding environment. (#1254)
- When
editor.formatOnType
is on, don't add a space for*args
or**kwargs
(#1257) - When
editor.formatOnType
is on, don't add a space between a string type specifier and the string literal (#1257) - 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)
- Ensure interpreter file exists on the file system before including into list of interpreters. (#1305)
- Do not have the formatter consider single-quoted string multiline even if it is not terminated. (#1364)
- IntelliSense works in module-level
if
statements (thanks to Jedi 0.12.0 upgrade). (#142) - Clicking the codelens
Run Test
on a test class should run that specific test class instead of all tests in the file. (#1472) - Clicking the codelens
Run Test
on a test class or method should run that specific test instead of all tests in the file. (#1473) - 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)
- Fixes the issue where Conda environments created using the latest version of Anaconda are not activated in Powershell. (#1520)
- Increase the delay for the activation of environments in Powershell terminals. (#1533)
- Fix activation of environments with spaces in the python path when using Powershell. (#1534)
- Ensure Flask application is launched with multi-threading disabled, when run in the CI tests. (#1535)
- IntelliSense works appropriately when a project contains multiple files with the same name (thanks to Jedi 0.12.0 update). (#178)
- 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)
- Provide type details appropriate for the iterable in a
for
loop when the line has a# type
comment. (#338) - Parameter hints following an f-string work again. (#344)
- When
editor.formatOnType
is on, don't indent after a single-line statement block (#726) - Fix debugging of Pyramid applications on Windows. (#737)
- Improved developer experience of the Python Extension on Windows. (#1216)
- Parallelize jobs (unit tests) on CI server. (#1247)
- 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)
- Only trigger the extension for
file
anduntitled
in preparation for Visual Studio Live Share (thanks to Jonathan Carter) (#1298) - Ensure all unit tests run on Travis use the right Python interpreter. (#1318)
- Pin all production dependencies. (#1374)
- Add support for hit count breakpoints in the experimental debugger. (#1409)
- Ensure custom environment variables defined in
.env
file are passed onto thepipenv
command. (#1428) - Remove unwanted python packages no longer used in unit tests. (#1494)
- Register language server functionality in the extension against specific resource types supporting the python language. (#1530)
- Fixes issue that causes linter to fail when file path contains spaces. (#1239)
- Add a PySpark debug configuration for the experimental debugger. (#1029)
- Add a Pyramid debug configuration for the experimental debugger. (#1030)
- Add a Watson debug configuration for the experimental debugger. (#1031)
- Add a Scrapy debug configuration for the experimental debugger. (#1032)
- When using pipenv, install packages (such as linters, test frameworks) in dev-packages. (#1110)
- Added commands translation for italian locale. (thanks Dotpys) (#1152)
- Add support for Django Template debugging in experimental debugger. (#1189)
- Add support for Flask Template debugging in experimental debugger. (#1190)
- Add support for Jinja template debugging. (#1210)
- When debugging, use
Integrated Terminal
as the default console. (#526) - 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)
- Bundle python dependencies (PTVSD package) in the extension for the experimental debugger. (#741)
- Add support for experimental debugger when debugging Python Unit Tests. (#906)
- Support
Debug Console
as aconsole
option for the Experimental Debugger. (#950) - Enable syntax highlighting for
requirements.in
files as used by e.g. pip-tools (thanks Lorenzo Villani) (#961) - Add support to read name of Pipfile from environment variable. (#999)
- Fixes issue that causes debugging of unit tests to hang indefinitely. (#1009)
- 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) - Ignore test results when debugging unit tests. (#1043)
- Fixes auto formatting of conditional statements containing expressions with
<=
symbols. (#1096) - Resolve debug configuration information in
launch.json
when debugging without opening a python file. (#1098) - Disables auto completion when editing text at the end of a comment string. (#1123)
- Ensures file paths are properly encoded when passing them as arguments to linters. (#199)
- Fix occasionally having unverified breakpoints (#87)
- Ensure conda installer is not used for non-conda environments. (#969)
- Fixes issue that display incorrect interpreter briefly before updating it to the right value. (#981)
- Exclude 'news' folder from getting packaged into the extension. (#1020)
- Remove Jupyter commands. (thanks Yu Zhang) (#1034)
- Trigger incremental build compilation only when typescript files are modified. (#1040)
- Updated npm dependencies in devDependencies and fix TypeScript compilation issues. (#1042)
- Enable unit testing of stdout and stderr redirection for the experimental debugger. (#1048)
- Update npm package
vscode-extension-telemetry
to fix the warning 'os.tmpDir() deprecation'. (thanks osya) (#1066) - Prevent the debugger stepping into JS code while developing the extension when debugging async TypeScript code. (#1090)
- Increase timeouts for the debugger unit tests. (#1094)
- Change the command used to install pip on AppVeyor to avoid installation errors. (#1107)
- Check whether a document is active when detecthing changes in the active document. (#1114)
- Remove SIGINT handler in debugger adapter, thereby preventing it from shutting down the debugger. (#1122)
- Improve compilation speed of the extension's TypeScript code. (#1146)
- Changes to how debug options are passed into the experimental version of PTVSD (debugger). (#1168)
- Ensure file paths are not sent in telemetry when running unit tests. (#1180)
- Change
DjangoDebugging
toDjango
indebugOptions
of launch.json. (#1198) - Changed property name used to capture the trigger source of Unit Tests. (#1213)
- Enable unit testing of the experimental debugger on CI servers (#742)
- Generate code coverage for debug adapter unit tests. (#778)
- Execute prospector as a module (using -m). (#982)
- Launch unit tests in debug mode as opposed to running and attaching the debugger to the already-running interpreter. (#983)
- Check for
Pipfile
and notpipfile
when looking for pipenv usage (thanks to Will Thompson for the fix)
[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:
- Experimental support for PTVSD 4.0.0-alpha (too many issues to list)
- Speed increases in interpreter selection (#952)
- Support for direnv (#36)
- 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)
- Support for pyenv installs of Python (#847)
- Support
editor.formatOnType
(#640) - Added a
zh-tw
translation (#) - Prompting to install a linter now allows for disabling that specific linter as well as linters globally (#971)
- 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. allprint
statements to be flagged as errors (#722) - Better detection of when a virtual environment is selected, leading
to the extension accurately leaving off
--user
when installing Pylint (#808) - Better detection of a
pylintrc
is available to automatically disable our default Pylint checks (#728, #788, #838, #442) - Fix
Got to Python object
(#403) - When reformatting a file, put the temporary file in the workspace folder so e.g. yapf detect their configuration files appropriately (#730)
- The banner to suggest someone installs Python now says
Download
instead ofClose
(#844) - Formatting while typing now treats
.
and@
as operators, preventing the incorrect insertion of whitespace (#840) - Debugging from a virtual environment named
env
now works (#691) - Disabling linting in a single folder of a mult-root workspace no longer disables it for all folders (#862)
- Fix the default debugger settings for Flask apps (#573)
- Format paths correctly when sending commands through WSL and git-bash; this does not lead to official support for either terminal (#895)
- 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)
- Support multiple linters again (#913)
- Don't over-escape markup found in docstrings (#911, #716, #627, #692)
- Fix when the
Problems
pane lists file paths prefixed withgit:
(#916) - Fix inline documentation when an odd number of quotes exists (#786)
- Don't erroneously warn macOS users about using the system install of Python when a virtual environment is already selected (#804)
- Fix activating multiple linters without requiring a reload of VS Code (#971)
- Upgrade to Jedi 0.11.1 (#674, #607, #99)
- Removed the banner announcing the extension moving over to Microsoft (#830)
- Renamed the default debugger configurations (#412)
- Remove some error logging about not finding conda (#864)
Thanks to everyone who contributed to this release, including the following people who contributed code:
- 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 of0.0.0.0
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
fromnpm
(#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. lackspip
) (#440) - Fix potential hang from Intellisense (#423)
- Fixes the compatibility issue with the Visual Studio Code Tools for AI #432
- Display runtime errors encountered when running a python program without debugging #454
- 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
- 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
- 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
- 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
- Fix to enure custom linter paths are respected #1106
- Add new editor menu 'Run Current Unit Test File' #1061
- Changed 'mypy-lang' to mypy #930, #998, #505
- Using "Python -m" to launch linters #716, #923, #1059
- Add PEP 526 AutoCompletion #1102, #1101
- Resolved issues in Go To and Peek Definitions #1085, #961, #870
- Updated icon from jpg to png (transparent background)
- 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 preliminary 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
continue
,break
andreturn
#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
- 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
- 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
- Fix debugger issue #893
- Improvements to debugging unit tests (check if string starts with, instead of comparing equality) #797
- Fix incorrect indenting #880
- 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
- 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
- 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
- Fixed a bug in debugging single files without a launch configuration #700
- Fixed error when starting REPL #692
- 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
- Debugger 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
- 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
- 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
- Added support for PySpark #539, #540
- Debugging unittests (UnitTest, pytest, nose) #333
- Displaying progress for formatting #327
- Auto indenting
else:
insideif
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
- Use new debug configuration
- Added support for workspace symbols using Exuberant CTags #138
- New command
Python: Build Workspace Symbols
- New command
- Added ability for linter to ignore paths or files #501
- Add the following setting in
settings.json
- Add the following setting in
"python.linting.ignorePatterns": [
".vscode/*.py",
"**/site-packages/**/*.py"
],
- Automatically adding brackets when autocompleting functions/methods #425
- To enable this feature, turn on the setting
"python.autoComplete.addBrackets": true
- To enable this feature, turn on the setting
- 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
- 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
- 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 intellisense #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)
- Remove dependency on zmq when using Jupyter or IPython (pure python solution)
- Added a default keybinding for
Jupyter:Run Selection/Line
ofctrl+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
- Debugging of Django templates
- Linting with mypy
- Improved error handling when loading Jupyter/IPython
- Fixes to unittests
- 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)
- 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
- 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
- Added few new snippets
- Integrated Unit Tests
- Selecting interpreter and updating
settings.json
[Documentation]](https://github.com/DonJayamanne/pythonVSCode/wiki/Miscellaneous#select-an-interpreter), #257 - Running a file or selection in terminal Documentation, #261 (new to Visual Studio Code 1.5)
- Debugging an application using the integrated terminal window (new to Visual Studio Code 1.5)
- Running a python script without debugging #118
- Displaying errors in variable explorer when debugging #271
- Ability to debug applications as sudo #224
- Fixed debugger crashes #263
- Asynchronous display of unit tests #190
- Fixed issues when using relative paths in
settings.json
#276 - Fixes issue of hardcoding interpreter command arguments #256
- Fixes resolving of remote paths when debugging remote applications #252
- 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
- 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
- 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
- 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
- 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
- Modifications to handle errors in linters when the linter isn't installed.
- Fixed error message being displayed by linters and formatters
- 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
- 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
- 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
- Fixed auto indenting issues #137
- Added support for linting using prospector #130
- Fixed issue where environment variables weren't being inherited by the debugger #109 and #77
- 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
- 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
- Fixed printing of unicode characters when evaluating expressions #73
- Updated snippets
- Fixes to remote debugging #65
- Fixes related to code navigation #58 and #78
- Changes to allow code navigation for methods
- 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
- Added support for debugging django applications
- Debugging templates is not supported at this stage
- 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
- 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.
- Fixed termination of debugger
- 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
- 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
- Fixed linting when using pylint
- Fixed autoformatting of code (falling over when using yapf8)
- 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
- 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
- Added support for debugging using PDB