{"id":229706,"date":"2023-01-31T01:36:48","date_gmt":"2023-01-31T09:36:48","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/java\/?p=229706"},"modified":"2023-01-31T01:36:48","modified_gmt":"2023-01-31T09:36:48","slug":"java-on-visual-studio-code-update-january-2023","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/java\/java-on-visual-studio-code-update-january-2023\/","title":{"rendered":"Java on Visual Studio Code Update \u2013 January 2023"},"content":{"rendered":"<p>Hi everyone, welcome to our first blog post of 2023! There are several exciting updates related to Spring extensions, code editing and performance that we wanted to share with you, so let&#8217;s get started.<\/p>\n<h4><strong>New Walkthrough for Spring Extension Pack<\/strong><\/h4>\n<p>Walkthrough is a multi-step, wizard-style experience for onboarding users to an extension featuring rich content. Ever since Visual Studio Code introduces the walkthrough format for extensions, it has become widely popular. Since we have made a lot of improvements for Spring extensions, we also made a refresh for the existing walkthrough for the Spring extension pack.<\/p>\n<p>The new walkthrough reflects our latest features such as beans and API mapping views as well as live memory graph from the Spring Boot dashboard. It also contains more concise and intuitive information so new users can learn about how to use the Spring extensions in a smooth way. Here&#8217;s a demo for the new walkthrough.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2023\/01\/springwalkthrough.gif\"><img decoding=\"async\" class=\"alignnone size-full wp-image-229714\" src=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2023\/01\/springwalkthrough.gif\" alt=\"Spring new walkthrough\" width=\"1920\" height=\"1054\" \/><\/a><\/p>\n<p>The new walkthrough consists of four steps<\/p>\n<p><strong>Step 1 &#8211; Start with a Spring Boot Project.<\/strong><\/p>\n<p>In this step, you can either use the Spring Initializer to create a project from scratch or clone an existing sample project from GitHub.<\/p>\n<p><strong>Step 2 &#8211; Explore your projects<\/strong><\/p>\n<p>Once you have a project, there are different tools in the extensions that can help you quickly navigate to Spring symbols. Beans and endpoint mappings are part of the Spring Boot dashboard UI layout and you can directly jump to the view in this step.<\/p>\n<p><strong>Step 3 &#8211; Run your projects<\/strong><\/p>\n<p>This step explains how to run the project. To enjoy the most Spring features from our extensions, you can click the Play button from the Spring Boot dashboard. Alternatively, you can use other methods described in this step.<\/p>\n<p><strong>Step 4 &#8211; View live information from your running application<\/strong><\/p>\n<p>A unique feature of our tools is the ability to visualize the live data for a running Spring application. The see the live data, run the application from the Spring Boot dashboard. You will be able to see the beans, endpoint mappings as well as newly added live memory information.<\/p>\n<h4><strong>Case sensitive code completion<\/strong><\/h4>\n<p>When editing code, sometimes developers want case of the letters to be taken into consideration. We have heard this feedback from the developers and have added this feature in our extension. Here is a demo for this feature.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2023\/01\/codecompletion.gif\"><img decoding=\"async\" class=\"alignnone size-full wp-image-229713\" src=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2023\/01\/codecompletion.gif\" alt=\"Case sensitive code completion\" width=\"1888\" height=\"1412\" \/><\/a><\/p>\n<p><strong>Please note that this feature is currently available in Insider version only, and will later be released on Stable version<\/strong>. To switch this feature on or off, please go to the settings and search for &#8220;match case&#8221;. Here&#8217;s the screenshot.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2023\/01\/codecompletionsetting.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-229717\" src=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2023\/01\/codecompletionsetting.png\" alt=\"Code completion setting\" width=\"1439\" height=\"701\" srcset=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2023\/01\/codecompletionsetting.png 1439w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2023\/01\/codecompletionsetting-300x146.png 300w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2023\/01\/codecompletionsetting-1024x499.png 1024w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2023\/01\/codecompletionsetting-768x374.png 768w\" sizes=\"(max-width: 1439px) 100vw, 1439px\" \/><\/a><\/p>\n<h4><strong>Performance improvement &#8211; Reduce project index time by sharing index files\u00a0<\/strong><\/h4>\n<p>Long project index time is an issue we constantly hear from developers, and we&#8217;ve been looking for a good solution. Recently, we have made an improvement from the upstream to reduce the overall project index time. Previously, the index files for each workspace are stored separately, and require rebuilding all indexes during project imports, that could result in a long indexing time. However, after the improvement, we chose to store the indexes for libraries in a common location so that different workspaces can reuse the same index files. It saves the time for duplicate indexing of common libraries (such as JDK and popular libraries) and significantly improves indexing performance.<\/p>\n<p>We have ran some experiments and here&#8217;s the performance benefits that we can get the share indexes.<\/p>\n<table style=\"border-collapse: collapse; width: 100%;\">\n<tbody>\n<tr>\n<td style=\"width: 50%;\">Project (Spring pet-clinic)<\/td>\n<td style=\"width: 50%;\">Performance<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 50%;\">Without shared-index<\/td>\n<td style=\"width: 50%;\">20s<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 50%;\">With shared-index<\/td>\n<td style=\"width: 50%;\"><strong>6s<\/strong><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>If you are interested in the technical details of the improvements, you can see the following PRs:<\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/redhat-developer\/vscode-java\/pull\/2811\">https:\/\/github.com\/redhat-developer\/vscode-java\/pull\/2811<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/eclipse\/eclipse.jdt.ls\/pull\/2341\">https:\/\/github.com\/eclipse\/eclipse.jdt.ls\/pull\/2341<\/a><\/li>\n<\/ul>\n<h4><strong>Install Extension Pack for Java<\/strong><\/h4>\n<p>To use all features mentioned above, please download and install <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=vscjava.vscode-java-pack\">Extension Pack for Java<\/a> on Visual Studio Code.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2022\/09\/javapack.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-229421\" src=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2022\/09\/javapack.png\" alt=\"Extension pack for Java\" width=\"1215\" height=\"238\" srcset=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2022\/09\/javapack.png 1215w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2022\/09\/javapack-300x59.png 300w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2022\/09\/javapack-1024x201.png 1024w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2022\/09\/javapack-768x150.png 768w\" sizes=\"(max-width: 1215px) 100vw, 1215px\" \/><\/a><\/p>\n<p>If you are a Spring developer working on a Spring Boot application, you can also download the <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=Pivotal.vscode-boot-dev-pack\">Spring Boot Extension Pack<\/a> for specialized Spring experience.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2022\/10\/spring.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-229533\" src=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2022\/10\/spring.png\" alt=\"Spring boot extension pack\" width=\"1221\" height=\"224\" srcset=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2022\/10\/spring.png 1221w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2022\/10\/spring-300x55.png 300w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2022\/10\/spring-1024x188.png 1024w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2022\/10\/spring-768x141.png 768w\" sizes=\"(max-width: 1221px) 100vw, 1221px\" \/><\/a><\/p>\n<p><span style=\"font-size: 18pt;\"><strong><span class=\"x-hidden-focus\">Feedback and suggestions<\/span><\/strong><\/span><\/p>\n<p>As always, your feedback and suggestions are very important to us and will help shape our product in future. There are several ways to give us feedback<\/p>\n<ul>\n<li>Leave your comment on this blog post<\/li>\n<li><a href=\"https:\/\/github.com\/microsoft\/vscode-java-pack\/issues\/new\/choose\" target=\"_blank\" rel=\"noopener\">Open an issue<\/a>\u00a0on our GitHub Issues page<\/li>\n<li>Send an email to: vscjfeedback@microsoft.com<\/li>\n<\/ul>\n<h2 id=\"try-it-out\" class=\"x-hidden-focus\"><span style=\"font-size: 18pt;\"><strong><span class=\"x-hidden-focus\">Resources<\/span><\/strong><\/span><\/h2>\n<p>Here is a list of links that are helpful to learn Java on Visual Studio Code.<\/p>\n<ul>\n<li class=\"x-hidden-focus\">Learn more about\u00a0<a class=\"x-hidden-focus\" href=\"https:\/\/code.visualstudio.com\/docs\/languages\/java\" target=\"_blank\" rel=\"noopener noreferrer\">Java on Visual Studio Code<\/a>.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Hi everyone, welcome to our first blog post of 2023! There are several exciting updates related to Spring extensions, code editing and performance that we wanted to share with you, so let&#8217;s get started. New Walkthrough for Spring Extension Pack Walkthrough is a multi-step, wizard-style experience for onboarding users to an extension featuring rich content. [&hellip;]<\/p>\n","protected":false},"author":31999,"featured_media":229747,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-229706","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-java"],"acf":[],"blog_post_summary":"<p>Hi everyone, welcome to our first blog post of 2023! There are several exciting updates related to Spring extensions, code editing and performance that we wanted to share with you, so let&#8217;s get started. New Walkthrough for Spring Extension Pack Walkthrough is a multi-step, wizard-style experience for onboarding users to an extension featuring rich content. [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/posts\/229706","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/users\/31999"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/comments?post=229706"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/posts\/229706\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/media\/229747"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/media?parent=229706"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/categories?post=229706"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/tags?post=229706"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}