Add support for setting include paths via initializationParams #91
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.
This PR adds the ability to configure include paths dynamically through LSP
initializationParams, addressing a key limitation for Neovim users where command-line arguments must be static but initialization options can be set dynamically.Problem
Neovim's LSP configuration requires
cmdandargsto be static, making it impossible to dynamically configure include paths based on project context. While Neovim supports changinginitializationParamsvia thebefore_initcallback, protols didn't support include path configuration through this mechanism.Solution
Extended the LSP initialization process to parse and use include paths from
initializationParams.include_paths. The implementation:Usage
Neovim users can now configure include paths dynamically:
Implementation Details
WorkspaceProtoConfigsto store initialization include pathsparse_init_include_paths()function to handle JSON parsing with robust error handlingTesting
All existing tests continue to pass, plus new tests covering:
Fixes #90.
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.