Go logo

GoLand

A cross-platform Go IDE with extended support for JavaScript, TypeScript, and databases

Early Access Program

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.

Download GoLand 2023.2 EAP

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!

image description