refactor: cache file formatting configuration requests #1048
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.
#1034 introduced
workspace/configurationrequests asking for file-specific options (indent size, use spaces for indent).This caused an issue with one particular editor where it dead locks until certain timeout due to server triggering a request from within client-initiated request. While this is clearly a bug in the editor, I've decided to help the cause and avoid those requests if possible.
Instead of re-triggering it all the time on certain actions, trigger it initially during handling of the
textDocument/didOpennotification and then cache and use the cache response from then. While this could result in wrong indentation settings if user changes those after opening the file, I think it's a corner case that is not that important. The cached options are dropped when the file is closed.Also respect client's
workspace/configurationcapability and don't make the configuration request if it's not supported.Fixes #1049