refactor(angularls): better root path resolution #4083
Draft
+63
−51
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.
Expanding on #4079, I refactored the whole Angular LS config so that it employs Neovim's LSP root resolution and created a generic method to collect possible node_modules paths, including if ngserver is installed somewhere inside Neovim's data folder.
Problem:
The current config for Angular LS make strong assumptions when trying to find the root dir, which can lead to unexpected LSP crashes.
Solution:
By defining the 'cmd' field as a function, the config employs Neovim's LSP root resolution to identify the correct path and find the relevant node_modules folder.