From 4d96f6497d56ad22b657d4b7a8931450372e484a Mon Sep 17 00:00:00 2001 From: Andreas Arvidsson Date: Tue, 14 Jan 2025 07:47:58 +0100 Subject: [PATCH 1/2] Hide legacy scope from scope visualizer in fully migrated languages --- .../src/ScopeTreeProvider.ts | 38 ++++++++++++++----- 1 file changed, 29 insertions(+), 9 deletions(-) diff --git a/packages/cursorless-vscode/src/ScopeTreeProvider.ts b/packages/cursorless-vscode/src/ScopeTreeProvider.ts index b9d1aa3d8b..e1b45a300b 100644 --- a/packages/cursorless-vscode/src/ScopeTreeProvider.ts +++ b/packages/cursorless-vscode/src/ScopeTreeProvider.ts @@ -112,7 +112,7 @@ export class ScopeTreeProvider implements TreeDataProvider { getChildren(element?: MyTreeItem): MyTreeItem[] { if (element == null) { void this.possiblyShowUpdateTalonMessage(); - return getSupportCategories(); + return getSupportCategories(this.hasLegacyScopes()); } if (element instanceof SupportCategoryTreeItem) { @@ -156,7 +156,15 @@ export class ScopeTreeProvider implements TreeDataProvider { } } - getScopeTypesWithSupport(scopeSupport: ScopeSupport): ScopeSupportTreeItem[] { + private hasLegacyScopes(): boolean { + return this.supportLevels.some( + (supportLevel) => supportLevel.support === ScopeSupport.supportedLegacy, + ); + } + + private getScopeTypesWithSupport( + scopeSupport: ScopeSupport, + ): ScopeSupportTreeItem[] { return this.supportLevels .filter( (supportLevel) => @@ -202,13 +210,25 @@ export class ScopeTreeProvider implements TreeDataProvider { } } -function getSupportCategories(): SupportCategoryTreeItem[] { - return [ - new SupportCategoryTreeItem(ScopeSupport.supportedAndPresentInEditor), - new SupportCategoryTreeItem(ScopeSupport.supportedButNotPresentInEditor), - new SupportCategoryTreeItem(ScopeSupport.supportedLegacy), - new SupportCategoryTreeItem(ScopeSupport.unsupported), - ]; +function getSupportCategories( + includeLegacy: boolean, +): SupportCategoryTreeItem[] { + return includeLegacy + ? [ + new SupportCategoryTreeItem(ScopeSupport.supportedAndPresentInEditor), + new SupportCategoryTreeItem( + ScopeSupport.supportedButNotPresentInEditor, + ), + new SupportCategoryTreeItem(ScopeSupport.supportedLegacy), + new SupportCategoryTreeItem(ScopeSupport.unsupported), + ] + : [ + new SupportCategoryTreeItem(ScopeSupport.supportedAndPresentInEditor), + new SupportCategoryTreeItem( + ScopeSupport.supportedButNotPresentInEditor, + ), + new SupportCategoryTreeItem(ScopeSupport.unsupported), + ]; } class ScopeSupportTreeItem extends TreeItem { From 79cb9f185515ef37fd6e50a3c7992d0047399463 Mon Sep 17 00:00:00 2001 From: Andreas Arvidsson Date: Tue, 14 Jan 2025 07:51:10 +0100 Subject: [PATCH 2/2] clean up --- .../src/ScopeTreeProvider.ts | 24 +++++++------------ 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/packages/cursorless-vscode/src/ScopeTreeProvider.ts b/packages/cursorless-vscode/src/ScopeTreeProvider.ts index e1b45a300b..75f3e20c8a 100644 --- a/packages/cursorless-vscode/src/ScopeTreeProvider.ts +++ b/packages/cursorless-vscode/src/ScopeTreeProvider.ts @@ -213,22 +213,14 @@ export class ScopeTreeProvider implements TreeDataProvider { function getSupportCategories( includeLegacy: boolean, ): SupportCategoryTreeItem[] { - return includeLegacy - ? [ - new SupportCategoryTreeItem(ScopeSupport.supportedAndPresentInEditor), - new SupportCategoryTreeItem( - ScopeSupport.supportedButNotPresentInEditor, - ), - new SupportCategoryTreeItem(ScopeSupport.supportedLegacy), - new SupportCategoryTreeItem(ScopeSupport.unsupported), - ] - : [ - new SupportCategoryTreeItem(ScopeSupport.supportedAndPresentInEditor), - new SupportCategoryTreeItem( - ScopeSupport.supportedButNotPresentInEditor, - ), - new SupportCategoryTreeItem(ScopeSupport.unsupported), - ]; + return [ + new SupportCategoryTreeItem(ScopeSupport.supportedAndPresentInEditor), + new SupportCategoryTreeItem(ScopeSupport.supportedButNotPresentInEditor), + ...(includeLegacy + ? [new SupportCategoryTreeItem(ScopeSupport.supportedLegacy)] + : []), + new SupportCategoryTreeItem(ScopeSupport.unsupported), + ]; } class ScopeSupportTreeItem extends TreeItem {