File tree Expand file tree Collapse file tree 6 files changed +50
-21
lines changed Expand file tree Collapse file tree 6 files changed +50
-21
lines changed Original file line number Diff line number Diff line change 19
19
],
20
20
"main" : " ./dist/extension.js" ,
21
21
"contributes" : {
22
+ "keybindings" :[
23
+ {
24
+ "command" : " tutorialkit.delete" ,
25
+ "key" : " Shift+Backspace" ,
26
+ "when" : " focusedView == tutorialkit-lessons-tree"
27
+ }
28
+ ],
22
29
"commands" : [
23
30
{
24
31
"command" : " tutorialkit.select-tutorial" ,
Original file line number Diff line number Diff line change 1
1
import { cmd } from '.' ;
2
2
import * as vscode from 'vscode' ;
3
3
import { Node } from '../models/Node' ;
4
+ import { getLessonsTreeView } from '../global-state' ;
4
5
5
- export async function deleteUnit ( node : Node ) {
6
- await vscode . workspace . fs . delete ( node . path , { recursive : true } ) ;
6
+ export async function deleteUnit ( selectedNode : Node | undefined , selectedNodes : Node [ ] | undefined ) {
7
+ let nodes : readonly Node [ ] = ( selectedNodes ? selectedNodes : [ selectedNode ] ) . filter ( ( node ) => node !== undefined ) ;
8
+
9
+ if ( nodes . length === 0 ) {
10
+ nodes = getLessonsTreeView ( ) . selection ;
11
+ }
12
+
13
+ for ( const node of nodes ) {
14
+ await vscode . workspace . fs . delete ( node . path , { recursive : true } ) ;
15
+ }
7
16
8
17
return cmd . refresh ( ) ;
9
18
}
Original file line number Diff line number Diff line change 1
1
import * as vscode from 'vscode' ;
2
2
import { extContext } from '../extension' ;
3
- import { LessonsTreeDataProvider , setLessonsTreeDataProvider } from '../views/lessonsTree' ;
3
+ import { LessonsTreeDataProvider } from '../views/lessonsTree' ;
4
+ import { setLessonsTreeDataProvider , setLessonsTreeView } from '../global-state' ;
4
5
5
6
export async function loadTutorial ( uri : vscode . Uri ) {
6
7
const treeDataProvider = new LessonsTreeDataProvider ( uri , extContext ) ;
7
8
8
9
await treeDataProvider . init ( ) ;
9
10
11
+ const treeView = vscode . window . createTreeView ( 'tutorialkit-lessons-tree' , {
12
+ treeDataProvider,
13
+ canSelectMany : true ,
14
+ } ) ;
15
+
10
16
setLessonsTreeDataProvider ( treeDataProvider ) ;
17
+ setLessonsTreeView ( treeView ) ;
11
18
12
- extContext . subscriptions . push (
13
- vscode . window . createTreeView ( 'tutorialkit-lessons-tree' , {
14
- treeDataProvider,
15
- canSelectMany : true ,
16
- } ) ,
17
- treeDataProvider ,
18
- ) ;
19
+ extContext . subscriptions . push ( treeView , treeDataProvider ) ;
19
20
20
21
vscode . commands . executeCommand ( 'setContext' , 'tutorialkit:tree' , true ) ;
21
22
}
Original file line number Diff line number Diff line change 1
- import { getLessonsTreeDataProvider } from '../views/lessonsTree ' ;
1
+ import { getLessonsTreeDataProvider } from '../global-state ' ;
2
2
3
3
export default ( ) => {
4
4
getLessonsTreeDataProvider ( ) . refresh ( ) ;
Original file line number Diff line number Diff line change
1
+ import type { TreeView } from 'vscode' ;
2
+ import type { LessonsTreeDataProvider } from './views/lessonsTree' ;
3
+ import type { Node } from './models/Node' ;
4
+
5
+ let lessonsTreeDataProvider : LessonsTreeDataProvider ;
6
+ let lessonsTreeView : TreeView < Node > ;
7
+
8
+ export function getLessonsTreeDataProvider ( ) {
9
+ return lessonsTreeDataProvider ;
10
+ }
11
+
12
+ export function getLessonsTreeView ( ) {
13
+ return lessonsTreeView ;
14
+ }
15
+
16
+ export function setLessonsTreeDataProvider ( provider : LessonsTreeDataProvider ) {
17
+ lessonsTreeDataProvider = provider ;
18
+ }
19
+
20
+ export function setLessonsTreeView ( treeView : TreeView < Node > ) {
21
+ lessonsTreeView = treeView ;
22
+ }
Original file line number Diff line number Diff line change @@ -8,16 +8,6 @@ import { METADATA_FILES } from '../models/tree/constants';
8
8
9
9
export const tutorialMimeType = 'application/tutorialkit.unit' ;
10
10
11
- let lessonsTreeDataProvider : LessonsTreeDataProvider ;
12
-
13
- export function getLessonsTreeDataProvider ( ) {
14
- return lessonsTreeDataProvider ;
15
- }
16
-
17
- export function setLessonsTreeDataProvider ( provider : LessonsTreeDataProvider ) {
18
- lessonsTreeDataProvider = provider ;
19
- }
20
-
21
11
export class LessonsTreeDataProvider implements vscode . TreeDataProvider < Node > , vscode . Disposable {
22
12
private _tutorial ! : Node ;
23
13
private _tutorialName : string ;
You can’t perform that action at this time.
0 commit comments