1
- import * as vscode from 'vscode ' ;
1
+ import * as fs from 'fs ' ;
2
2
import * as glob from 'glob' ;
3
3
import * as path from 'path' ;
4
- import * as fs from 'fs ' ;
5
- import { replaceRoutine , informationRoutine , insertRoutine } from './editorOperations' ;
4
+ import * as vscode from 'vscode ' ;
5
+ import { informationRoutine , insertRoutine , replaceRoutine } from './editorOperations' ;
6
6
import { IScript , IScriptQuickPickItem , ISwissKnifeContext } from './Interfaces' ;
7
7
8
8
9
9
let scripts : IScriptQuickPickItem [ ] = [ ] ;
10
10
let context : vscode . ExtensionContext ;
11
+
12
+ let extensionFolder : string ;
11
13
let userScriptsFolder : string ;
12
14
13
15
16
+
17
+ const show = ( ) => {
18
+ vscode . window . showQuickPick < IScriptQuickPickItem > ( scripts ) . then ( ( selectedItem : IScriptQuickPickItem | undefined ) => {
19
+ if ( selectedItem )
20
+ selectedItem . cb ( extensionContext ) ;
21
+ } ) ;
22
+ } ;
23
+
24
+
14
25
export function activate ( ctx : vscode . ExtensionContext ) {
15
26
context = ctx ;
16
27
17
- userScriptsFolder = path . join ( ctx . globalStorageUri . fsPath , "scripts" ) ;
28
+ const cmdShow = vscode . commands . registerCommand ( 'swissknife.show' , show ) ;
29
+ const cmdReload = vscode . commands . registerCommand ( 'swissknife.reload' , reload ) ;
30
+ const cmdOpen = vscode . commands . registerCommand ( 'swissknife.openScripts' , openUserScriptsFolder ) ;
31
+
32
+ extensionFolder = ctx . globalStorageUri . fsPath ;
33
+ userScriptsFolder = path . join ( extensionFolder , "scripts" ) ;
18
34
checkUserScriptsFolder ( ) ;
19
35
20
36
loadScripts ( ) ;
21
- vscode . commands . registerCommand ( 'swissknife.show' , show ) ;
22
- vscode . commands . registerCommand ( 'swissknife.reload' , reload ) ;
23
- vscode . commands . registerCommand ( 'swissknife.openScript' , openUserScriptsFolder ) ;
24
37
38
+ ctx . subscriptions . push ( cmdShow ) ;
39
+ ctx . subscriptions . push ( cmdReload ) ;
40
+ ctx . subscriptions . push ( cmdOpen ) ;
25
41
}
26
42
27
43
28
44
const reload = ( ) => {
29
45
loadScripts ( true ) ;
30
46
} ;
31
47
32
- const show = ( ) => {
33
- vscode . window . showQuickPick < IScriptQuickPickItem > ( scripts ) . then ( ( selectedItem : IScriptQuickPickItem | undefined ) => {
34
- if ( selectedItem )
35
- selectedItem . cb ( extensionContext ) ;
36
- } ) ;
37
- } ;
38
-
39
48
const openUserScriptsFolder = ( ) => {
40
49
vscode . env . openExternal ( vscode . Uri . file ( userScriptsFolder ) ) ;
41
50
} ;
@@ -58,6 +67,7 @@ const loadScripts = (clearCache = false) => {
58
67
59
68
const loadScriptsAt = ( path : string , clearCache : boolean ) => {
60
69
const promises : NodeRequire [ ] = [ ] ;
70
+
61
71
const matches = glob . sync ( path ) ;
62
72
matches . forEach ( m => {
63
73
console . log ( "Queueing script " + m ) ;
@@ -70,6 +80,7 @@ const loadScriptsAt = (path: string, clearCache: boolean) => {
70
80
} ) ;
71
81
72
82
Promise . all ( promises ) . then ( modules => {
83
+
73
84
modules . forEach ( ( m : any ) => {
74
85
if ( ! m . default ) return ; //not compliant
75
86
@@ -83,14 +94,10 @@ const loadScriptsAt = (path: string, clearCache: boolean) => {
83
94
84
95
85
96
const checkUserScriptsFolder = ( ) => {
86
- return new Promise ( ( resolve , reject ) => {
87
- if ( ! fs . existsSync ( userScriptsFolder ) )
88
- return fs . mkdir ( userScriptsFolder , ( err ) => {
89
- if ( err ) reject ( err ) ;
90
- else resolve ( ) ;
91
- } ) ;
92
- } ) ;
93
-
97
+ if ( ! fs . existsSync ( extensionFolder ) )
98
+ fs . mkdirSync ( extensionFolder ) ;
99
+ if ( ! fs . existsSync ( userScriptsFolder ) )
100
+ fs . mkdirSync ( userScriptsFolder ) ;
94
101
} ;
95
102
96
103
// this method is called when your extension is deactivated
0 commit comments