@@ -7,42 +7,55 @@ import {
77 ScopeTypeInfo ,
88} from "@cursorless/cursorless-engine" ;
99import { VscodeApi } from "@cursorless/vscode-common" ;
10+ import { CURSORLESS_SCOPE_TREE_VIEW_ID } from "@cursorless/vscode-common" ;
1011import { isEqual } from "lodash" ;
11- import * as vscode from "vscode" ;
12+ import type {
13+ Event ,
14+ ExtensionContext ,
15+ TreeDataProvider ,
16+ TreeItemLabel ,
17+ TreeView ,
18+ TreeViewVisibilityChangeEvent ,
19+ } from "vscode" ;
20+ import {
21+ EventEmitter ,
22+ ThemeIcon ,
23+ TreeItem ,
24+ TreeItemCollapsibleState ,
25+ } from "vscode" ;
1226import { URI } from "vscode-uri" ;
1327import {
1428 ScopeVisualizer ,
1529 VisualizationType ,
1630} from "./ScopeVisualizerCommandApi" ;
1731
1832export const DONT_SHOW_TALON_UPDATE_MESSAGE_KEY = "dontShowUpdateTalonMessage" ;
19-
20- export class ScopeSupportTreeProvider
21- implements vscode . TreeDataProvider < MyTreeItem >
22- {
33+ export class ScopeTreeProvider implements TreeDataProvider < MyTreeItem > {
2334 private visibleDisposable : Disposer | undefined ;
24- private treeView : vscode . TreeView < MyTreeItem > ;
35+ private treeView : TreeView < MyTreeItem > ;
2536 private supportLevels : ScopeSupportLevels = [ ] ;
2637 private shownUpdateTalonMessage = false ;
2738
28- private _onDidChangeTreeData : vscode . EventEmitter <
39+ private _onDidChangeTreeData : EventEmitter <
2940 MyTreeItem | undefined | null | void
30- > = new vscode . EventEmitter < MyTreeItem | undefined | null | void > ( ) ;
31- readonly onDidChangeTreeData : vscode . Event <
32- MyTreeItem | undefined | null | void
33- > = this . _onDidChangeTreeData . event ;
41+ > = new EventEmitter < MyTreeItem | undefined | null | void > ( ) ;
42+ readonly onDidChangeTreeData : Event < MyTreeItem | undefined | null | void > =
43+ this . _onDidChangeTreeData . event ;
3444
3545 constructor (
3646 private vscodeApi : VscodeApi ,
37- private context : vscode . ExtensionContext ,
47+ private context : ExtensionContext ,
3848 private scopeProvider : ScopeProvider ,
3949 private scopeVisualizer : ScopeVisualizer ,
4050 private customSpokenFormGenerator : CustomSpokenFormGenerator ,
4151 private hasCommandServer : boolean ,
4252 ) {
43- this . treeView = vscodeApi . window . createTreeView ( "cursorless.scopeSupport" , {
44- treeDataProvider : this ,
45- } ) ;
53+ this . treeView = vscodeApi . window . createTreeView (
54+ CURSORLESS_SCOPE_TREE_VIEW_ID ,
55+ {
56+ treeDataProvider : this ,
57+ } ,
58+ ) ;
4659
4760 this . context . subscriptions . push (
4861 this . treeView ,
@@ -53,13 +66,13 @@ export class ScopeSupportTreeProvider
5366
5467 static create (
5568 vscodeApi : VscodeApi ,
56- context : vscode . ExtensionContext ,
69+ context : ExtensionContext ,
5770 scopeProvider : ScopeProvider ,
5871 scopeVisualizer : ScopeVisualizer ,
5972 customSpokenFormGenerator : CustomSpokenFormGenerator ,
6073 hasCommandServer : boolean ,
61- ) : ScopeSupportTreeProvider {
62- const treeProvider = new ScopeSupportTreeProvider (
74+ ) : ScopeTreeProvider {
75+ const treeProvider = new ScopeTreeProvider (
6376 vscodeApi ,
6477 context ,
6578 scopeProvider ,
@@ -77,7 +90,7 @@ export class ScopeSupportTreeProvider
7790 }
7891 }
7992
80- onDidChangeVisible ( e : vscode . TreeViewVisibilityChangeEvent ) {
93+ onDidChangeVisible ( e : TreeViewVisibilityChangeEvent ) {
8194 if ( e . visible ) {
8295 if ( this . visibleDisposable != null ) {
8396 return ;
@@ -197,30 +210,30 @@ export class ScopeSupportTreeProvider
197210function getSupportCategories ( ) : SupportCategoryTreeItem [ ] {
198211 return [
199212 new SupportCategoryTreeItem (
200- "Supported and present in editor " ,
213+ "Present " ,
201214 ScopeSupport . supportedAndPresentInEditor ,
202- vscode . TreeItemCollapsibleState . Expanded ,
215+ TreeItemCollapsibleState . Expanded ,
203216 ) ,
204217 new SupportCategoryTreeItem (
205- "Supported but not present in editor " ,
218+ "Not present" ,
206219 ScopeSupport . supportedButNotPresentInEditor ,
207- vscode . TreeItemCollapsibleState . Expanded ,
220+ TreeItemCollapsibleState . Expanded ,
208221 ) ,
209222 new SupportCategoryTreeItem (
210- "Supported using legacy pathways " ,
223+ "Legacy " ,
211224 ScopeSupport . supportedLegacy ,
212- vscode . TreeItemCollapsibleState . Expanded ,
225+ TreeItemCollapsibleState . Expanded ,
213226 ) ,
214227 new SupportCategoryTreeItem (
215228 "Unsupported" ,
216229 ScopeSupport . unsupported ,
217- vscode . TreeItemCollapsibleState . Collapsed ,
230+ TreeItemCollapsibleState . Collapsed ,
218231 ) ,
219232 ] ;
220233}
221234
222- class ScopeSupportTreeItem extends vscode . TreeItem {
223- public label : vscode . TreeItemLabel ;
235+ class ScopeSupportTreeItem extends TreeItem {
236+ public label : TreeItemLabel ;
224237
225238 /**
226239 * @param scopeTypeInfo The scope type info
@@ -237,7 +250,7 @@ class ScopeSupportTreeItem extends vscode.TreeItem {
237250 : `"${ scopeTypeInfo . spokenForm . preferred } "` ;
238251 const description = scopeTypeInfo . humanReadableName ;
239252
240- super ( label , vscode . TreeItemCollapsibleState . None ) ;
253+ super ( label , TreeItemCollapsibleState . None ) ;
241254
242255 const requiresTalonUpdate =
243256 scopeTypeInfo . spokenForm . type === "error" &&
@@ -279,16 +292,16 @@ class ScopeSupportTreeItem extends vscode.TreeItem {
279292 } ;
280293
281294 if ( scopeTypeInfo . isLanguageSpecific ) {
282- this . iconPath = new vscode . ThemeIcon ( "code" ) ;
295+ this . iconPath = new ThemeIcon ( "code" ) ;
283296 }
284297 }
285298}
286299
287- class SupportCategoryTreeItem extends vscode . TreeItem {
300+ class SupportCategoryTreeItem extends TreeItem {
288301 constructor (
289302 label : string ,
290303 public readonly scopeSupport : ScopeSupport ,
291- collapsibleState : vscode . TreeItemCollapsibleState ,
304+ collapsibleState : TreeItemCollapsibleState ,
292305 ) {
293306 super ( label , collapsibleState ) ;
294307 }
0 commit comments