{"id":228417,"date":"2021-10-20T06:02:52","date_gmt":"2021-10-20T13:02:52","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/java\/?p=228417"},"modified":"2021-10-20T06:02:52","modified_gmt":"2021-10-20T13:02:52","slug":"language-server-1-0","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/java\/language-server-1-0\/","title":{"rendered":"Announcing the 1.0 release of Language Support for Java\u2122 on Visual Studio Code"},"content":{"rendered":"<p>Today we are excited to announce the<strong> 1.0 release of <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=redhat.java\">Language Support for Java\u2122 by Red Hat<\/a> on Visual Studio Code<\/strong>. We believe this is a significant milestone for Java support on Visual Studio Code and the result of a multi-year collaboration between Microsoft, Red Hat and the entire Visual Studio Code and Java community. This release wouldn&#8217;t have been possible without your support and we want to thank everyone who has provided feedback or made contributions.<\/p>\n<p><strong><span style=\"font-size: 18pt;\">Release highlights<\/span><\/strong><\/p>\n<p>When we started with <a href=\"https:\/\/developers.redhat.com\/blog\/2016\/09\/19\/java-language-support-for-visual-studio-code-has-landed\">our very first release<\/a>, our goal was to provide an outstanding Java development experience on Visual Studio Code. Since then, we have maintained a release cycle of 1-2 times per month, through many iterations. In this 1.0 release, we want to highlight some improvements.<\/p>\n<h3><span style=\"font-size: 14pt;\"><strong>Java 17 support<\/strong><\/span><\/h3>\n<p>Our focus has always been to support the latest technology provided by the Java language whenever possible. In our 1.0 release, Java 17 is now officially supported on our Java extensions.<\/p>\n<h3><span style=\"font-size: 18pt;\"><strong><a href=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2021\/09\/image3-2.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-228448\" src=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2021\/09\/image3-2.png\" alt=\"Java 17 Support Large\" width=\"1061\" height=\"577\" srcset=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2021\/09\/image3-2.png 1061w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2021\/09\/image3-2-300x163.png 300w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2021\/09\/image3-2-1024x557.png 1024w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2021\/09\/image3-2-768x418.png 768w\" sizes=\"(max-width: 1061px) 100vw, 1061px\" \/><\/a><\/strong><\/span><\/h3>\n<p>For a complete demo to showcase the latest Java 17 support, please visit <a href=\"https:\/\/www.youtube.com\/watch?v=ifdwc6vyhCE&amp;t=1s&amp;ab_channel=RedHatDeveloper\">the video here<\/a><\/p>\n<p><span style=\"font-size: 14pt;\"><strong>Performance improvements<\/strong><\/span><\/p>\n<p>Performance is also another area of improvement in this release. Thanks to the new features <span style=\"font-weight: 400;\">in the <\/span><a href=\"https:\/\/microsoft.github.io\/language-server-protocol\/specifications\/specification-3-17\/#codeAction_resolve\"><span style=\"font-weight: 400;\">LSP specification<\/span><\/a><span style=\"font-weight: 400;\">, we were able to defer certain computations for better performance in many scenarios. In addition,\u00a0 <\/span><a href=\"https:\/\/github.com\/redhat-developer\/vscode-java\/pull\/1262\"><span style=\"font-weight: 400;\">default JVM options<\/span><\/a><span style=\"font-weight: 400;\"> are used to improve the user experience of larger and more complicated projects. Last but not least, we made many <\/span><a href=\"https:\/\/github.com\/eclipse\/eclipse.jdt.ls\/issues?q=is%3Aissue+label%3Aperformance+updated%3A%3E2021-08-01\"><span style=\"font-weight: 400;\">smaller improvements<\/span><\/a><span style=\"font-weight: 400;\"> to boost responsiveness of the language server.<\/span><\/p>\n<p><span style=\"font-size: 14pt;\"><strong>Type hierarchy<\/strong><\/span><\/p>\n<p>Type hierarchy can now be easily accessed in Visual Studio Code! This is a feature that was introduced recently and has been one of the top asks in the Java community.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2021\/09\/image5.gif\"><img decoding=\"async\" class=\"alignnone size-full wp-image-228451\" src=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2021\/09\/image5.gif\" alt=\"Type Hierarchy VS Code\" width=\"1150\" height=\"695\" \/><\/a><\/p>\n<p><span style=\"font-size: 14pt;\"><strong>Source lookup<\/strong><\/span><\/p>\n<p>Currently, developers can quickly locate the source code of a library. Now we have expanded this support to unmanaged projects. As long as the library comes from Maven Central repo, we can resolve its sources. More advanced configurations are supported as well.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2021\/09\/image4.gif\"><img decoding=\"async\" class=\"alignnone size-full wp-image-228450\" src=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2021\/09\/image4.gif\" alt=\"Type Hierarchy Large\" width=\"1152\" height=\"574\" \/><\/a><\/p>\n<h3><span style=\"font-size: 14pt;\"><strong>More code actions<\/strong><\/span><\/h3>\n<p>Usability is another area we continue to improve. We have adopted more code actions to provide an easier development experience.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2021\/09\/image1.gif\"><img decoding=\"async\" class=\"alignnone size-full wp-image-228452\" src=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2021\/09\/image1.gif\" alt=\"More Code Action\" width=\"996\" height=\"583\" \/><\/a><\/p>\n<p><span style=\"font-size: 14pt;\"><strong>Gradle Kotlin (.kts) support<\/strong><\/span><\/p>\n<p>We already support Gradle projects using Groovy scripts, but we heard the need for Kotlin support from the community and now provide basic support for this. Our hope is that we can continue to expand upon this and deliver a great experience for Kotlin in the future.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2021\/09\/image2.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-228453\" src=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2021\/09\/image2.png\" alt=\"Gradle Kotlin Support\" width=\"1014\" height=\"699\" srcset=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2021\/09\/image2.png 1014w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2021\/09\/image2-300x207.png 300w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2021\/09\/image2-768x529.png 768w\" sizes=\"(max-width: 1014px) 100vw, 1014px\" \/><\/a><\/p>\n<h3><span style=\"font-size: 18pt;\"><strong>Java journey on Visual Studio Code<\/strong><\/span><\/h3>\n<p>The language support for Java\u2122 by Red Hat extension is a fundamental piece of the <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=vscjava.vscode-java-pack\">Java expansion pack<\/a> and offers essential components such as Java code editing, completion, refactoring and navigation. Over the past few years, Microsoft have been working together closely with Red Hat and adding new features to this language server. We have also been fine-tuning the performance of the language server and improving the stability by addressing issues and bugs.<\/p>\n<p>In addition to the main Java language support, we have built various Java extensions based on the language server and expanded the Java tooling features on Visual Studio Code including project management, build tools support for Maven\/Gradle, and better testing support. Our goal behind is to provide the best Java development experience possible on Visual Studio Code.<\/p>\n<h3><span style=\"font-size: 18pt;\"><strong>Going Forward<\/strong><\/span><\/h3>\n<p>Going forward, we have planned many items for the Java language support on Visual Studio Code. Some of those improvements are:<\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Make it easier to configure compiler error\/warnings and code formatting options<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">More useful auto-completion suggestions (eg. Postfix completion)<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Keep adopting convenient code actions (eg. new Java language features) and eventually reach feature parity with those provided by the Eclipse Java IDE<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Further improving the overall performance of the language server and startup time\u00a0<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Embedding a Java runtime in the extension to improve the overall &#8220;Getting Started&#8221; experience<\/span><\/li>\n<\/ul>\n<p>We believe the 1.0 release of the language support for Java\u2122 by Red Hat is an important step for the overall Java journey on Visual Studio Code, and we still have a long way to go. Going forward, we plan to collaborate with Red Hat and invest in fundamental Java language support and we are committed to delivering an outstanding Java development experience.<\/p>\n<p>As always, your feedback is critical to our product improvement so please don&#8217;t hesitate to give it a try. You can <a href=\"https:\/\/code.visualstudio.com\/docs\/languages\/java\">follow this link<\/a> to get started on Java using Visual Studio Code.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Today we are excited to announce the 1.0 release of Language Support for Java\u2122 by Red Hat on Visual Studio Code. We believe this is a significant milestone for Java support on Visual Studio Code and the result of a multi-year collaboration between Microsoft, Red Hat and the entire Visual Studio Code and Java community. [&hellip;]<\/p>\n","protected":false},"author":31999,"featured_media":228441,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1,8,15],"tags":[],"class_list":["post-228417","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-java","category-open-source","category-vscode"],"acf":[],"blog_post_summary":"<p>Today we are excited to announce the 1.0 release of Language Support for Java\u2122 by Red Hat on Visual Studio Code. We believe this is a significant milestone for Java support on Visual Studio Code and the result of a multi-year collaboration between Microsoft, Red Hat and the entire Visual Studio Code and Java community. [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/posts\/228417","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=228417"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/posts\/228417\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/media\/228441"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/media?parent=228417"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/categories?post=228417"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/tags?post=228417"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}