Vim and Neovim
In Vim and Neovim LSP servers can be configured to offer completions and documentation based on the contents of the file you are editing.
These LSP servers (i.e. gopls
in our case) are spawned by Vim and Neovim themselves. This means we must provide them with the appropriate
environment so that they know where to find the definition of the machine package
.
This can be done manually before starting Vim or Neovim by running export
on the shell. However, this can become cumbersome and very
fast. That is why some available plugins automate the setup by providing a single command you can use to configure the target.
An option would be to use tinygo.vim. This plugin offers the :TinygoTarget
command within
Vim and Neovim to change the target at will. It is written in Vim Script, Vim’s builtin scripting language. However, it is compatible
both with Vim and Neovim. You can find more information on how to install and use it in the project’s page linked above.
A second option would be using a Neovim-native plugin: tinygo.nvim. Unlike the previous
option, this plugin is written entirely in Lua, making it only compatible with Neovim. Through the :TinyGoSetTarget
command you
can also configure the current target for the machine
package. Information on how to install and use it is available on its project
page, which is also linked above.
At any rate, either plugin offers a complete integration for TinyGo so that you can leverage all the advantages of gopls
.