Skip to content

Move F# options to native Unified Settings - #20877

Open
matteo-prosperi wants to merge 5 commits into
dotnet:mainfrom
matteo-prosperi:dev/maprospe/usx
Open

matteo-prosperi wants to merge 5 commits into
dotnet:mainfrom
matteo-prosperi:dev/maprospe/usx

Conversation

@matteo-prosperi

@matteo-prosperi matteo-prosperi commented Oct 27, 2026 •

Copy link
Copy Markdown

Description

Move F# editor and Interactive options to native Unified Settings with independent roaming and a one-time import that preserves existing native customizations. Replace the legacy options pages, split Quick Info description width into a checkbox and dependent integer, and retain the external compiler setting.

Editor and language-service Debug builds passed with zero warnings or errors. All 35 regression cases passed through an isolated net472 harness; manifest, formatting, and whitespace checks passed. The standard test project is blocked by a net472/net11.0 reference mismatch. Installed VS UI, cross-machine roaming, and export/import round trips were not tested.

image image image image image image image image

Checklist

  • Test cases added

  • Performance benchmarks added in case of performance changes — not applicable

  • Release notes entry updated:

    Please make sure to add an entry with short succinct description of the change as well as link to this pull request to the respective release notes file, if applicable.

    Release notes files:

    • If anything under src/Compiler has been changed, please make sure to make an entry in docs/release-notes/.FSharp.Compiler.Service/<version>.md, where <version> is usually "highest" one, e.g. 42.8.200
    • If language feature was added (i.e. LanguageFeatures.fsi was changed), please add it to docs/release-notes/.Language/preview.md
    • If a change to FSharp.Core was made, please make sure to edit docs/release-notes/.FSharp.Core/<version>.md where version is "highest" one, e.g. 8.0.200.

    Information about the release notes entries format can be found in the documentation.
    Example:

    If you believe that release notes are not necessary for this PR, please add NO_RELEASE_NOTES label to the pull request.

Read editor and Interactive configuration from USX, import legacy values once, and enable independent roaming. Remove legacy options pages while retaining the external compiler setting.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions

github-actions Bot commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor

✅ No release notes required

matteo-prosperi and others added 2 commits October 27, 2026 13:19
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Use one refresh gate per subscription for initialization and notifications in both editor and Interactive configuration. Cover overlapping initial reads and callbacks with four controlled regression cases.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

@abonie abonie left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖🕵️ AI review — verify independently.

Comment thread vsintegration/src/FSharp.VS.FSI/sessions.fs
matteo-prosperi and others added 2 commits October 29, 2026 09:55
Use hidden-navigation categories for the legacy groups and retain the Interactive window order. Model restart requirements with metadata and make cache factor dependent on in-memory cross-project references. Update the manifest validator and localization assets.

Capture one immutable Interactive configuration for executable selection, arguments, and process tracking. Cover layout and startup consistency with regression tests.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Use one migration-complete flag and skip the whole import when native F# customizations exist. Register the Compiler provider asynchronously, fix external resource resolution, and hide its redundant heading. Add migration and provider registration regressions.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: New

Development

Successfully merging this pull request may close these issues.

2 participants