A text editor for developers of the 21st century.
This project aims to provide a non intrusive Neovim configuration for Go development. The idea is that you can easily use this setup not having to touch your current Vim/Neovim configuration files.
Go2one was created for someone who:
- wants to quickly try running Neovim with IDE features with modern technologies (LSP, Treesitter, DAP, etc) with zero configuration required.
- is curious about Neovim new features but wants to keep their current Vim/Neovim configuration files untouched.
- is curious about one specific plugin and wants to see it in action before spending time configuring it.
- Quick docs, go to definition, go to implementation, find usage, diagnostics (native LSP)
- Git Integration (gitsigns + fugitive)
- Cool tree-sitter based themes (catppuccin, onedark)
- Code snippets (vim-vsnip)
- Auto completion (nvim-cmp)
- Fuzzy find about everything (telescope)
- Easy file context visualization (lualine + bufferline)
- Debugging (nvim-dap + nvim-dap-go)
and more..
Go2one provides two different installation methods:
Will use your current Neovim installation with isolated configuration files. This won't affect your existing Vim/Neovim setup.
This method will create two entries in your filesystem:
/usr/local/bin/go2one
: This a bash script that will be responsible to managego2one
configuration files and starting Neovim in a sandbox.$HOME/.config/go2one
: This is the folder where all configuration and plugin files will be created.
Pre-reqs
- Neovim: 0.5.1
- Go: SDK for Go
- delve: for debugging Go projects
- gopls: LSP server for Go
- fzf: Fuzzy search of filesystem
- ripgrep: Live grep project file
- fd: Quickly find repos in the filesystem
To install go2one
just run the command bellow:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/leoluz/go2one/main/scripts/install.sh)"
Once the installation is concluded just run the go2one
command to start the sandboxed Neovim.
See go2one -h
for additional commands about how to update or uninstall go2one
.
Using this method, nothing will be installed in your computer. Neovim will run in a docker container with all dependencies installed and ready to use. The only requirement in this case is having Docker installed.
Note: Keep in mind that on MacOS or Windows, this method is going to have a lower filesystem performance if compared with the native installation. See this github issue for updates regarding this problem.
Pre-reqs
- Docker
Just run the following command in the folder having the files you want to edit:
docker run --rm -it -v$(PWD):/home/nvim/work leoluz/go2one:latest
Seems some previously compiled Treesitter parsers are incompatible with 0.7.0 and the following error might show up:
treesitter/highlighter: Error executing lua: /usr/share/nvim/runtime/lua/vim/treesitter/query.lua...
If this is the case run the following command in the terminal:
rm $HOME/.config/go2one/data/nvim/site/pack/packer/start/nvim-treesitter/parser/*
Then start nvim and run:
:TSInstall all