My neovim config. Oriented around dotnet and typescript development on a windows device.
- 🚀 Lazy package manager for freaky fast start.
- 🛠️ LSP - including omnisharp for dotnet development.
- 🔬 DAP - including netcoredbg for dotnet debugging.
- 🧪 Neotest for running unit tests.
- 🧱 Mason to allow auto install of dap, lsp, and formatters such as csharpier.
- 🛩️ Copilot for an AI assistant.
- 👨🔬 Path helper utilites to wire up omnisharp and netcoredbg.
- 🪛 Optional static configuration of dll, csproj and debug cwd for projects. Allowing a smooooth debugging experience.
See install script.
Clone config into %USERPROFILE%\AppData\Local\nvim
git clone [email protected]:Wiebesiek/ZeoVim.git
Mason is a package manager that allows for the installation of LSP, DAP, and formatters. It is used in this config to install omnisharp and csharpier. Currently, the most recent version of omnisharp is broken for nvim. Install version 1.39.8 with the following command:
MasonInstall [email protected]
- 🔤 Font - Comic shans nerd font in mono.
- 🟤 Colorscheme - Gruvbox
- 💻 Terminal - Windows terminal with gruvbox friendly background.
In init.lua
there is protected call to zeovim.secrets.path_finder
. Create a file and make a call to utilities.path_finder.setup
with the necessary config.
Ex: zeovim\secrets\path_finder.lua
require('zeovim.utilities.path_finder').setup({
projects = {
{
base_path = "C:/Foo",
dotnet_proj_file = "C:/Foo/Foo.csproj",
dotnet_dll_path = "C:/Foo/bin/Debug/net6.0/foo.dll",
dotnet_debug_cwd = "C:/Foo" -- Useful for large, multi-project debugging
}
}
})
In zeovim\config\dap.lua
, the path_finder
is called to use these values if the current filepath that is being debugged starts with C:\Foo
.
dap.adapters.coreclr = {
type = 'executable',
command = dotnet_ph.GetNetCoreDbgPath(),
args = { '--interpreter=vscode' },
options = {
detached = false,
cwd = dotnet_ph.GetDebugCwd(),
}
}
I use this config on a windows machine and use tools for dotnet development, namely Omnisharp and Csharpier. This tooling can be susceptible to bugs that may exist in the nightly versions of Neovim as there are fewer people with similar setups. Thankfully, gone are the days where seemingly every plugin requested that you be on a nightly build. For these reasons, the best dotnet experience will be on the latest stable release of Neovim.