Skip to content

Introduce Profiles page to SUI#20199

Open
carlos-zamora wants to merge 2 commits intomainfrom
dev/cazamor/sui-rejuv/profiles
Open

Introduce Profiles page to SUI#20199
carlos-zamora wants to merge 2 commits intomainfrom
dev/cazamor/sui-rejuv/profiles

Conversation

@carlos-zamora
Copy link
Copy Markdown
Member

Summary of the Pull Request

Updates the settings UI to introduce a new Profiles page. This page includes:

  • a "Profile Defaults" navigator
  • a "Color Schemes" navigator (duplicated with top-level item)
  • an "add profile" button
  • a navigator for each profile

Validation Steps Performed

Scenarios:

  • settings search
  • breadcrumbs
  • navigate to individual profiles
  • update settings for a profile

PR Checklist

Related to #17000

auto subPage = crumb->SubPage();
for (const auto& item : _menuItemSource)
// Find the new profile VM by guid
if (const auto newProfileVM = _FindProfileVMByGuid(profileTag.OriginalProfileGuid()))
}
else if (*clickedItemTag == colorSchemesTag)
{
// Color Schemes page is a accessible from root level and within Profiles,
// Suppress the handler to avoid double-navigation
_colorSchemesPageViewModelChangedRevoker.revoke();

// Color Schemes page is a accessible from within Profiles and root level,
void MainPage::_NavigateToProfileHandler(const IInspectable& /*sender*/, winrt::guid profileGuid)
{
if (const auto profileNavItem = _FindProfileNavItem(profileGuid))
if (const auto profileVM = _FindProfileVMByGuid(profileGuid))
}

MUX::Controls::NavigationViewItem MainPage::_FindProfileNavItem(winrt::guid profileGuid) const
Editor::ProfileViewModel MainPage::_FindProfileVMByGuid(winrt::guid profileGuid) const
void _NavigateToProfileHandler(const IInspectable& sender, winrt::guid profileGuid);
void _NavigateToColorSchemeHandler(const IInspectable& sender, const IInspectable& args);
Microsoft::UI::Xaml::Controls::NavigationViewItem _FindProfileNavItem(winrt::guid profileGuid) const;
Editor::ProfileViewModel _FindProfileVMByGuid(winrt::guid profileGuid) const;
@carlos-zamora
Copy link
Copy Markdown
Member Author

Demo

image

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 8, 2026

@check-spelling-bot Report

⚠️ Dictionary not found

Problems were encountered retrieving check dictionaries (cspell:rust/dict/rust.txt cspell:css/dict/css.txt cspell:software-terms/dict/webServices.txt cspell:clojure/src/clojure.txt cspell:cpp/src/compiler-clang-attributes.txt cspell:k8s/dict/k8s.txt cspell:cpp/src/compiler-msvc.txt cspell:ada/dict/ada.txt cspell:java/src/java.txt cspell:python/src/python/python-lib.txt cspell:dotnet/dict/dotnet.txt cspell:public-licenses/src/additional-licenses.txt cspell:typescript/dict/typescript.txt cspell:html/dict/html.txt cspell:gaming-terms/dict/gaming-terms.txt cspell:powershell/dict/powershell.txt cspell:elixir/dict/elixir.txt cspell:r/src/r.txt cspell:golang/dict/go.txt cspell:cpp/src/stdlib-c.txt cspell:sql/src/sql.txt cspell:monkeyc/src/monkeyc_keywords.txt cspell:swift/src/swift.txt cspell:scala/dict/scala.txt cspell:cpp/src/template-strings.txt cspell:svelte/dict/svelte.txt cspell:cpp/src/stdlib-cpp.txt cspell:ruby/dict/ruby.txt cspell:sql/src/tsql.txt cspell:npm/dict/npm.txt cspell:latex/dict/latex.txt cspell:cpp/src/stdlib-cmath.txt cspell:php/dict/php.txt cspell:fullstack/dict/fullstack.txt cspell:cpp/src/compiler-gcc.txt cspell:cpp/src/stdlib-cerrno.txt cspell:public-licenses/src/generated/public-licenses.txt cspell:cpp/src/lang-jargon.txt cspell:lua/dict/lua.txt cspell:python/src/additional_words.txt cspell:dart/src/dart.txt cspell:haskell/dict/haskell.txt cspell:software-terms/dict/softwareTerms.txt cspell:django/dict/django.txt cspell:redis/dict/redis.txt cspell:python/src/common/extra.txt cspell:cpp/src/people.txt cspell:python/src/python/python.txt cspell:node/dict/node.txt cspell:shell/dict/shell-all-words.txt cspell:java/src/java-terms.txt cspell:cpp/src/lang-keywords.txt cspell:docker/src/docker-words.txt cspell:cpp/src/ecosystem.txt).

⚠️ For more information, see check-dictionary-not-found.

🔴 Please review

See the 📂 files view, the 📜action log, 👼 SARIF report, or 📝 job summary for details.

Unrecognized words (1)

VMBy

These words are not needed and should be removed notif

To accept these unrecognized words as correct and remove the previously acknowledged and now absent words, you could run the following commands

... in a clone of the git@github.com:microsoft/terminal.git repository
on the dev/cazamor/sui-rejuv/profiles branch (ℹ️ how do I use this?):

curl -s -S -L 'https://raw.githubusercontent.com/check-spelling/check-spelling/cfb6f7e75bbfc89c71eaa30366d0c166f1bd9c8c/apply.pl' |
perl - 'https://github.com/microsoft/terminal/actions/runs/25532415231/attempts/1' &&
git commit -m 'Update check-spelling metadata'
Available 📚 dictionaries could cover words (expected and unrecognized) not in the 📘 dictionary

This includes both expected items (2012) from .github/actions/spelling/expect/alphabet.txt .github/actions/spelling/expect/expect.txt .github/actions/spelling/expect/web.txt and unrecognized words (1)

Dictionary Entries Covers Uniquely
cspell:csharp/csharp.txt 32 2 2
cspell:aws/aws.txt 232 2 2
cspell:fonts/fonts.txt 536 1 1

Consider adding to the extra_dictionaries array (in the .github/actions/spelling/config.json file):

    "cspell:csharp/csharp.txt",
    "cspell:aws/aws.txt",
    "cspell:fonts/fonts.txt",

To stop checking additional dictionaries, put (in the .github/actions/spelling/config.json file):

"check_extra_dictionaries": []

Forbidden patterns 🙅 (1)

In order to address this, you could change the content to not match the forbidden patterns (comments before forbidden patterns may help explain why they're forbidden), add patterns for acceptable instances, or adjust the forbidden patterns themselves.

These forbidden patterns matched content:

Should be an
(?<=\s)a(?= (?:a(?!nd\s|s\s)|e(?!u)|i(?![ns]\s)|o(?!f\b|nc?e)|u(?!\d|biquitous|int|kr|n[ai]|r[ael]|s[aeiu]|short|tf\d*|t_|til|topia|uid|vula|v\b)|y(?!aml|arn|e|ie|oga|oung|y)))
Errors and Warnings ❌ (2)

See the 📂 files view, the 📜action log, 👼 SARIF report, or 📝 job summary for details.

❌ Errors and Warnings Count
⚠️ check-dictionary-not-found 54
❌ forbidden-pattern 2

See ❌ Event descriptions for more information.

✏️ Contributor please read this

By default the command suggestion will generate a file named based on your commit. That's generally ok as long as you add the file to your commit. Someone can reorganize it later.

If the listed items are:

  • ... misspelled, then please correct them instead of using the command.
  • ... names, please add them to .github/actions/spelling/allow/names.txt.
  • ... APIs, you can add them to a file in .github/actions/spelling/allow/.
  • ... just things you're using, please add them to an appropriate file in .github/actions/spelling/expect/.
  • ... tokens you only need in one place and shouldn't generally be used, you can add an item in an appropriate file in .github/actions/spelling/patterns/.

See the README.md in each directory for more information.

🔬 You can test your commits without appending to a PR by creating a new branch with that extra change and pushing it to your fork. The check-spelling action will run in response to your push -- it doesn't require an open pull request. By using such a branch, you can limit the number of typos your peers see you make. 😉

If the flagged items are 🤯 false positives

If items relate to a ...

  • binary file (or some other file you wouldn't want to check at all).

    Please add a file path to the excludes.txt file matching the containing file.

    File paths are Perl 5 Regular Expressions - you can test yours before committing to verify it will match your files.

    ^ refers to the file's path from the root of the repository, so ^README\.md$ would exclude README.md (on whichever branch you're using).

  • well-formed pattern.

    If you can write a pattern that would match it,
    try adding it to the patterns.txt file.

    Patterns are Perl 5 Regular Expressions - you can test yours before committing to verify it will match your lines.

    Note that patterns can't match multiline strings.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants