-
Notifications
You must be signed in to change notification settings - Fork 286
Disabling LSP features (rcodetools, rubyLocate, formatting) #285
Comments
Aren't they already ? vscode-ruby does not run any of the code formatting/linting unless explicitely told to do so. For what it's worth, I don't believe there is another rubocop integration extension, is there ? |
I think this extension should support a minimum set of features out of the box and then allow delegation to a more feature-rich implementation if a user chooses (sort of like how VSCode provides very basic out of the box Ruby support). Formatting and linting IMO fit in this category but things like Intellisense do not |
There are a couple other extensions that use rubocop for linting and formatting. I also expect to use it in solargraph as part of its support for LSP. Minimum features out of the box makes sense, but 1) where is the line, and 2) does the extension need configuration options to enable/disable them? I'm leaning toward yes for (2), since I've already run into a conflict with multiple definition providers giving redundant results; but maybe there's another way to resolve it? Part of my concern also comes from open issues like #209 and #200, which @rebornix suggested as features that could be handled externally. |
@doudou To clarify, you're correct that linting needs to be enabled explicitly, but some of the other features do not. |
I may look through some of the JS community's solutions to these issues. There's a lot of conflicting tooling there so I'd be curious how they worked around things. I know for my personal setup that the extensions are more 'single responsibility' vs this extension which is trying to do everything. |
Good question. I don't know of a way, but it's worth looking into. When I tried to guard against conflicts, I resorted to explicitly querying one extension from the other, which is less than optimal. I'll put some more thought into this as well. Looking to JS tools for inspiration is a good idea. |
I've started some changes in my fork of vscode-ruby for this and #263. I'm waiting to submit a PR because I'd like to hear some other opinions and feedback. Current status:
The I dug around to see if there was a way to automatically detect downstream providers, but couldn't come up with a strong solution. |
I think this is a positive direction. We want to offload work where possible and encourage an ecosystem of best-of-breed extensions rather than a single monolithic extension that moves forward at a glacial pace. Let @castwide lead the way with Another example - I want to use |
BTW, I prefer |
This will be addressed via #318 |
If language server features are going to be offloaded to other providers (whether castwide.solargraph or something else), it might be practical to make features like rcodetools, rubyLocate, and formatting optional, if not removing them altogether, since there are potential issues with multiple providers performing redundant functions or interfering with each other.
The text was updated successfully, but these errors were encountered: