fix: guard against nil in root_dir when all targets are filtered out#318
Open
Rival wants to merge 1 commit into
Open
fix: guard against nil in root_dir when all targets are filtered out#318Rival wants to merge 1 commit into
Rival wants to merge 1 commit into
Conversation
When every solution found by `find_solutions` is rejected by
`ignore_target`, `filtered_targets` is empty and `filtered_targets[1]`
is nil. Passing nil directly to `vim.fs.dirname` raises a bad-argument
error and crashes LSP startup silently.
Add a nil guard so the fallback chain continues to
`roslyn_nvim_selected_solution` and then `csproj`:
return filtered_targets[1] and vim.fs.dirname(filtered_targets[1])
or selected_solution and vim.fs.dirname(selected_solution)
or csproj and vim.fs.dirname(csproj)
Reproducer: set `ignore_target` to reject all solutions in a project
that has no selected solution and no csproj fallback.
Owner
|
Need a test for this |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
In
sln/utils.lua,root_dircallsfilter_targetsand then falls through to:If
ignore_targetrejects every found solution,filtered_targetsis empty andfiltered_targets[1]isnil. Passingniltovim.fs.dirnameraises a bad-argument error, crashing LSP startup.Fix: add a nil guard so the fallback chain works correctly:
Reproducer
Open a
.csfile — without this fix, LSP startup crashes silently.🤖 Generated with Claude Code