{"id":10003,"date":"2025-03-05T11:11:01","date_gmt":"2025-03-05T19:11:01","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/python\/?p=10003"},"modified":"2025-03-05T11:12:14","modified_gmt":"2025-03-05T19:12:14","slug":"python-in-visual-studio-code-march-2025-release","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/python\/python-in-visual-studio-code-march-2025-release\/","title":{"rendered":"Python in Visual Studio Code &#8211; March 2025 Release"},"content":{"rendered":"<p>We&#8217;re excited to announce the March 2025 release of the <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ms-python.python\">Python<\/a>, <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ms-python.vscode-pylance\">Pylance<\/a> and <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ms-toolsai.jupyter\">Jupyter<\/a> extensions for Visual Studio Code!<\/p>\n<p>This release includes the following announcements:<\/p>\n<ul>\n<li>Improvements to Python shell integration<\/li>\n<li>New setting for auto test discovery file pattern<\/li>\n<li>Inline values on hover in Notebooks and Python files<\/li>\n<li>Automatic quotation insertion when breaking long strings<\/li>\n<\/ul>\n<p>If you&#8217;re interested, you can check the full list of improvements in our changelogs for the <a href=\"https:\/\/github.com\/microsoft\/vscode-python\/releases\">Python<\/a>, <a href=\"https:\/\/code.visualstudio.com\/updates\/\">Jupyter<\/a> and <a href=\"https:\/\/github.com\/microsoft\/pylance-release\/blob\/main\/CHANGELOG.md\">Pylance<\/a> extensions.<\/p>\n<h2>Improvements to Python shell integration<\/h2>\n<p>After modifying the <code>python.terminal.shellIntegration.enabled<\/code> setting, you will no longer have to reload in order for changes to take effect. Previously changes to this setting required a reload of the VS Code window in order for changes to take effect in the terminal. Now, simply create a new terminal to see desired changes on your Python REPL in terminal!<\/p>\n<h2>New setting for auto test discovery file pattern<\/h2>\n<p>You can now refine which files auto test discovery occurs on by specifying a glob pattern in the <code>python.testing.autoTestDiscoverOnSavePattern<\/code> setting. By default, its value is set to <code>**\/*.py<\/code>, but can now be adjusted based on your specific project needs.<\/p>\n<p>This feature was added by community member <a href=\"https:\/\/github.com\/soceanainn\">@soceanainn<\/a>. Thank you for the feedback and feature add! <\/p>\n<h2>Inline values on hover in Notebooks and Python files<\/h2>\n<p>Notebook inline values, enabled via the <code>notebook.inlineValues<\/code> setting, are now truncated to fit within the viewport&#8217;s width. Instead, a rich hover provides the full value with preserved whitespace formatting, ensuring variable structures, such as dataframes, remain intact for easier readability at a glance.<\/p>\n<p><img decoding=\"async\" src=\"\/2025\/March\/nb-inline-values-rich-hover.png\" alt=\"Notebook inline values shown on hover after cell execution.\" \/><\/p>\n<p>Similarly, when <code>debug.inlineValues<\/code> is enabled, inline value decorators are shown in Python and will now have an inline hover, making it easier to read values at a glance. <\/p>\n<p><img decoding=\"async\" src=\"\/2025\/March\/debug-inline-values-rich-hover.png\" alt=\"Inline values on hover in Python files debug mode.\" \/><\/p>\n<h2>Automatic quotation insertion when breaking long strings<\/h2>\n<p><a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ms-python.vscode-pylance\">Pylance<\/a> now supports automatic insertion of quotation marks to enable a seamless experience when breaking long strings. This was a highly requested feature by our users and we are looking forward to bringing this functinoality to the Python development experience in VS Code.<\/p>\n<h2>Other Changes and Enhancements<\/h2>\n<p>We have also added small enhancements and fixed issues requested by users that should improve your experience working with Python and Jupyter Notebooks in Visual Studio Code. Some notable changes include:<\/p>\n<ul>\n<li>Windows users who use Gitbash will now see the correct working directory in their terminal prompt. These changes apply to those opted into the <code>pythonTerminalEnvVarActivation<\/code> experiment.<\/li>\n<li>We now look for test debug configurations in both <code>settings.json<\/code> and <code>launch.json<\/code> files, expanding where you can define these configurations.<\/li>\n<li>Some optimizations were made to improve Pylance&#8217;s memory consumption, particularly when working with large workspaces. <a href=\"https:\/\/github.com\/microsoft\/pyright\/pull\/9993\">This enhancement<\/a> was made to Pyright, the static type checker that powers Pylance&#8217;s language server features.<\/li>\n<\/ul>\n<p>We would also like to extend special thanks to this month&#8217;s contributors:<\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/jpcorreia99\">@jpcorreia99<\/a> Changes to always use environment path when running conda environment commands in <a href=\"https:\/\/github.com\/microsoft\/vscode-python\/pull\/24807\">vscode-python#24807<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/TCPsoftware\">@TCPsoftware<\/a> Make <code>\"args\": \"${command:pickArgs}\"<\/code> as default debug configuration #548\nin <a href=\"https:\/\/github.com\/microsoft\/vscode-python-debugger\/pull\/548\">vscode-python-debugger#548<\/a><\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/ivirabyan\">@ivirabyan<\/a> Added dmypy file status setting in <a href=\"https:\/\/github.com\/microsoft\/vscode-mypy\/pull\/347\">vscode-mypy#347<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Try out these new improvements by downloading the <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ms-python.python\">Python extension<\/a> and the <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ms-toolsai.jupyter\">Jupyter extension<\/a> from the Marketplace, or install them directly from the extensions view in Visual Studio Code (Ctrl + Shift + X or \u2318 + \u21e7 + X). You can learn more about <a href=\"https:\/\/code.visualstudio.com\/docs\/python\/python-tutorial\">Python support in Visual Studio Code<\/a> in the documentation. If you run into any problems or have suggestions, <a href=\"https:\/\/github.com\/microsoft\/vscode-python\/issues\/new\/choose\">please file an issue<\/a> on the <a href=\"https:\/\/github.com\/Microsoft\/vscode-python\">Python VS Code GitHub page<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The March 2025 release of the Python and Jupyter extensions for Visual Studio Code are now available. This month&#8217;s updates include improvements to shell integration, a new setting to change auto test discovery file patterns, inline values shown on hover, and more!<\/p>\n","protected":false},"author":99209,"featured_media":10005,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1,6],"tags":[17],"class_list":["post-10003","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-python","category-visual-studio-code","tag-python"],"acf":[],"blog_post_summary":"<p>The March 2025 release of the Python and Jupyter extensions for Visual Studio Code are now available. This month&#8217;s updates include improvements to shell integration, a new setting to change auto test discovery file patterns, inline values shown on hover, and more!<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/python\/wp-json\/wp\/v2\/posts\/10003","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/python\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/python\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/python\/wp-json\/wp\/v2\/users\/99209"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/python\/wp-json\/wp\/v2\/comments?post=10003"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/python\/wp-json\/wp\/v2\/posts\/10003\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/python\/wp-json\/wp\/v2\/media\/10005"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/python\/wp-json\/wp\/v2\/media?parent=10003"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/python\/wp-json\/wp\/v2\/categories?post=10003"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/python\/wp-json\/wp\/v2\/tags?post=10003"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}