This guide explains how to run and test the server locally during development.
The easy-dotnet.nvim plugin communicates with the Easy Dotnet Server via named pipes using JSON-RPC. During normal operation, the server generates a unique pipe name for each instance. For local development, we use a static pipe name to make debugging easier.
In ./lua/easy-dotnet/rpc/rpc.lua, there's a commented line that hardcodes the pipe name:
function M.get_pipe_path(pipe_name)
-- Uncomment this line for local development:
-- pipe_name = "EasyDotnet_ROcrjwn9kiox3tKvRWcQg"
if extensions.isWindows() then
return [[\\.\pipe\]] .. pipe_name
else
return get_tmpdir() .. "CoreFxPipe_" .. pipe_name
end
endUncomment the pipe_name = "EasyDotnet_ROcrjwn9kiox3tKvRWcQg" line.
Run the server locally from your development environment:
dotnet run --project EasyDotnet.IDEThe server will listen on the static pipe name.
With the static pipe name uncommented in the client code, start Neovim and use any easy-dotnet command. You should see output in the server console:
Client connected to pipe: EasyDotnet_ROcrjwn9kiox3tKvRWcQg
The production distribution bundles Roslyn LSP and netcoredbg within the .NET tool package. These are not available when running the server locally from source.
Since the bundled debugger isn't available locally, you must provide a custom path using one of these methods:
Option 1: Neovim Configuration
require("easy-dotnet").setup({
debugger = {
bin_path = "/path/to/netcoredbg" -- or netcoredbg.exe on Windows
}
})Option 2: Environment Variable
# Add to your shell profile (.bashrc, .zshrc, etc.)
export EASY_DOTNET_DEBUGGER_BIN_PATH="/path/to/netcoredbg"