GoLand 2023.2 EAP #7: LSP API Support, and HTTP Client Improvements
The seventh GoLand 2023.2 EAP is available!
You can get it via the Toolbox App, download it from our website, use a snap package (for Ubuntu), or from inside GoLand, select Check IDE updates for: Early Access Program in Settings | Appearance & Behavior | System Settings | Updates.
LSP support for plugin developers
With this EAP build, we’ve introduced a huge feature: the LSP API for plugin developers.
IntelliJ-based IDEs are well-known for their deep understanding of source code and their support for many programming languages and frameworks. While some languages and technologies are not yet natively supported, there may be a language server that could provide support for them.
The LSP API is mainly aimed at plugin developers who want to use a specific LSP server for coding assistance in the IDE. If you’ve made your own programming language or framework, you can get it supported in the IDE by writing an LSP server and a plugin.
Currently the LSP support includes error and warning highlighting, quick-fixes, code completion, and navigation to declarations. More features are coming soon.
A minimal fully functional plugin requires writing a few lines of code. The plugin implements the com.intellij.platform.lsp.api.LspServerSupportProvider
interface and specifies which files it is going to support and how to start the server. The Prisma ORM plugin by JetBrains is open source and can be used as a reference implementation. The codebase is quite large, but a few classes are related to the LSP-based support – see the org.intellij.prisma.ide.lsp.*
package.
HTTP Client
Support for Swagger and OpenAPI schemas
The HTTP Client is now capable of understanding Swagger and OpenAPI specifications and providing corresponding code completion options for JSON requests.
Support for JavaScript imports
It is now possible to share common JavaScript code for HTTP Client request handlers via imported modules.
PDF and HTML previews for responses
GoLand can now display previews of PDF and HTML files right in the results of requests in the HTTP Client.
gRPC requests using TLS in the HTTP Client
You can now send gRPC requests over Transport Layer Security (TLS) in the HTTP Client. TLS provides encryption and authentication, ensuring the confidentiality and integrity of your data transmission. Both https:// and grpcs:// schemas are supported in the request syntax.
Improvements for Swagger and OpenApi
Enhancements for Swagger Codegen
The IDE now provides a better user experience when setting up Swagger Codegen configurations. First, we’ve reworked the Edit Swagger Codegen Configuration dialog, making tailoring the run configuration to your requirements more straightforward.
Additionally, it is now possible to access the Swagger Codegen run configuration right from the gutter without having to specify any additional settings.
Redoc UI previews for OpenAPI and Swagger files
GoLand now supports Redoc UI previews for OpenAPI and Swagger specification files, including YAML and JSON files, allowing you to switch between the Redoc and Swagger UIs within the IDE. With the Redocly integration, you can access the Try it console right from within GoLand and use it to set parameters and send requests to your API.
Inspection for the Norway problem in YAML files
We’ve introduced a new inspection to eliminate the so-called Norway problem and prevent the unintended misinterpretation of Boolean values in YAML files. When a list primarily consists of strings but contains a Boolean-like literal, GoLand will highlight this literal, indicating a potential inconsistency, and suggest adding quotes to it. If the list is mostly composed of Boolean-like literals (such as true, false, off, on, yes, no), any literal that deviates from this pattern is highlighted as a possible error, although no specific quick-fixes are suggested in this scenario.
Support for editing AsyncAPI files
It is now possible to conveniently work with the AsyncAPI specification format in GoLand. The IDE supports schema validation functionality and provides code completion for references, the Endpoints view, and the Editor Preview pane.
Updated UI for the Run/Debug widget in the Services tool window
We’ve reworked the UI for running and debugging actions in the Services view to make the look and feel of the toolbar consistent with the main Run/Debug widget.
Big Data Tools plugin splitted into specialized plugins
For your convenience, we have decomposed the Big Data Tools plugin, allowing you to use its parts separately. . Here are the plugins from the Big Data Tools bundle you might find useful when working on Go projects:
- The Kafka plugin lets you monitor your Kafka event streaming processes, creating consumers, producers, and topics. It also lets you connect to Schema Registry and create and update schemas.
- The Remote File Systems plugin is designed for working with cloud storages such as AWS S3, Alibaba, Google Cloud, and Tencent from the IDE.
- Big Data File Viewer is helpful for previewing data from binary files in formats such as CSV, Parquet, ORC, and Avro files, as tables.
That’s it for today! We’d love to hear what you think about the new features. Get in touch with us on Twitter, leave your comments here, open an issue in our tracker, or drop us a message in the Gophers Slack #goland channel. Thanks!