3.5 KiB
title, categories, image, description, type, comments, commentsID, language
| title | categories | image | description | type | comments | commentsID | language | ||
|---|---|---|---|---|---|---|---|---|---|
| Use Vim as a Go IDE |
|
https://img.spacevim.org/57321608-4a484880-7134-11e9-8e43-5fa05085d7e5.png | A general guide for using SpaceVim as Go IDE, including layer configuration, requiems installation and usage. | article | true | Use Vim as a Go IDE | Golang |
Blogs >> Use Vim as a Go IDE
This is a general guide for using SpaceVim as a Go IDE, including layer configuration and usage. Each of the following sections will be covered:
- Enable language layer
- Language server
- code completion
- alternate file jumping
- code running
- project building
- run test
- code coverage
- code format
Enable language layer
To add go language support in SpaceVim, you need to enable the lang#go layer. Press SPC f v d to open
SpaceVim configuration file, and add following configuration:
[[layers]]
name = "lang#go"
for more info, you can read the lang#go layer documentation.
Language server
There are two ways to setup the golang language server protocol.
neovim(>=0.5.0)
If you are using nvim(>=0.5.0). You need to use enabled_clients to specific the language servers.
for example:
[[layers]]
name = 'lsp'
enabled_clients = ['gopls']
vim or neovim(<0.5.0)
To enable language server protocol support, you may need to enable lsp layer.
[[layers]]
name = "lsp"
filetypes = [
"go"
]
code completion
By default the autocomplete layer has been enabled, so after loading lang#go layer, the code completion
for go language should work well.
alternate file jumping
To manage the alternate file for a project, you may need to create a .project_alt.json file in the root of your
project.
for example, add following content into the .project_alt.json file:
{
"src/*.go": {"alternate": "test/{}.go"},
"test/*.go": {"alternate": "src/{}.go"}
}
with this configuration, you can jump between the source code and test file via command :A
code running
The default code running key binding is SPC l r. It will run go run current_file asynchronously.
And the stdout will be shown on a runner buffer.
project building
Key binding for building current project is SPC l b, It will run go build asynchronously.
after building successfully you should see this message on the cmdline:
vim-go: [build] SUCCESS
run test
There are two key bindings for running test, SPC l t run test for current file,
SPC l T only run test for current function. if the test is passed, you should see
following message on cmdline:
vim-go: [test] SUCCESS
code coverage
Key binding for showing the coverage of your source code is SPC l c, it will call GoCoverageToggle command from vim-go.
code format
The format layer use neoformat as default tool to format code, it will run gofmt on current file.
And the default key binding is SPC b f.
[[layers]]
name = "format"

