/go2one

A text editor demo for Go developers of the 21st century

Primary LanguageLua

Go2one

A text editor for developers of the 21st century.


Goal

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.

Motivation

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.

Features

and more..

Installation

Go2one provides two different installation methods:

Native install

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 manage go2one 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.

Container based

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

Upgrading

nvim-0.7.0

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