forked from DonJayamanne/pythonVSCode
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Logic to control Pylance auto-indent experiment #19722
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Conversation
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
karthiknadig
previously approved these changes
Aug 24, 2022
karthiknadig
approved these changes
Aug 24, 2022
luabud
reviewed
Aug 24, 2022
luabud
approved these changes
Aug 25, 2022
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.
Updated
NodeLanguageServerAnalysisOptions
to pass a newautoIndentSupport
initialization option to Pylance. This is set to true if the user is in the"pylanceAutoIndent"
experiment andeditor.formatOnType
is enabled.Additionally, if the user is in the experiment and
formatOnType
is not set in the Python-specific config settings, we will set it to true. Users can opt out of the experiment by setting it to false in the[python]
settings, like this:If the user is not in the experiment, we will unset the Python-specific
formatOnType
setting (if present), unless it is set to false. I was concerned that users might opt-out and then get removed from and added back into the experiment. If that happens, I don't want them to need to opt out again. Happy to remove this logic if this scenario won't happen.Since this code is temporary, I chose not to integrate it into
PythonSettings
in any way. Assuming we decide to enable this feature for everyone at some point, we'll remove this code and change the default ofeditor.formatOnType
for Pylance users to true via Pylance'spackage.json
:Users running internal (-dev) builds of Pylance will be treated as bring in the experiment treatment group. Otherwise we would always unset
editor.formatOnType
for them which would make testing awkward.Also includes a related change in
LanguageClientMiddleware
to return the Python view ofeditor.formatOnType
so Pylance can include it in its settings telemetry event.