Skip to content

Personal Neovim config with an emphasis on C# and typescript development.

Notifications You must be signed in to change notification settings

Wiebesiek/ZeoVim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

95 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ZeoVim

image

My neovim config. Oriented around dotnet and typescript development on a windows device.

✨ Features

  • 🚀 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.

🔧 Setup

📦 Installation of Dependencies

See install script.

⚡️ Installation of Config

Clone config into %USERPROFILE%\AppData\Local\nvim

🧱 Mason

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]

🎨 Aesthetics

  • 🔤 Font - Comic shans nerd font in mono.
  • 🟤 Colorscheme - Gruvbox
  • 💻 Terminal - Windows terminal with gruvbox friendly background.

🪛 Static LSP and DAP Configuration For Projects

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(),
  }
}

A Word On Versions

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.

About

Personal Neovim config with an emphasis on C# and typescript development.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published