@@ -4,10 +4,14 @@ import {
4
4
workspace ,
5
5
WorkspaceFolder ,
6
6
ExtensionMode ,
7
+ OutputChannel ,
8
+ window ,
7
9
} from 'vscode' ;
8
10
import { State } from 'vscode-languageclient/node' ;
9
11
import { LogLevel , Logger } from './logger' ;
10
12
import { Rslint } from './Rslint' ;
13
+ import { setupStatusBar } from './statusBar' ;
14
+ import { RegisterCommands } from './commands' ;
11
15
12
16
export class Extension implements Disposable {
13
17
private rslintInstances : Map < string , Rslint > = new Map ( ) ;
@@ -25,12 +29,26 @@ export class Extension implements Disposable {
25
29
this . logger . info ( 'Rslint extension activating...' ) ;
26
30
27
31
const folders = workspace . workspaceFolders ?? [ ] ;
32
+ const outputChannel = window . createOutputChannel (
33
+ 'Rslint Language Server' ,
34
+ 'log' ,
35
+ ) ;
36
+ const lspOutputChannel = window . createOutputChannel (
37
+ 'Rslint Language Server(LSP)' ,
38
+ ) ;
39
+
28
40
for ( const folder of folders ) {
29
- const workspaceRslint = this . createRslintInstance ( folder . name , folder ) ;
41
+ const workspaceRslint = this . createRslintInstance (
42
+ folder . name ,
43
+ folder ,
44
+ outputChannel ,
45
+ lspOutputChannel ,
46
+ ) ;
30
47
await workspaceRslint . start ( ) ;
31
48
this . setupStateChangeMonitoring ( workspaceRslint , folder . name ) ;
32
49
}
33
-
50
+ setupStatusBar ( this . context ) ;
51
+ RegisterCommands ( this . context , outputChannel , lspOutputChannel ) ;
34
52
this . logger . info ( 'Rslint extension activated successfully' ) ;
35
53
}
36
54
@@ -55,14 +73,21 @@ export class Extension implements Disposable {
55
73
public createRslintInstance (
56
74
id : string ,
57
75
workspaceFolder : WorkspaceFolder ,
76
+ outputChannel : OutputChannel ,
77
+ lspOutputChannel : OutputChannel ,
58
78
) : Rslint {
59
79
if ( this . rslintInstances . has ( id ) ) {
60
80
this . logger . warn ( `Rslint instance with id '${ id } ' already exists` ) ;
61
81
return this . rslintInstances . get ( id ) ! ;
62
82
}
63
83
64
84
// TODO: single file mode
65
- const rslint = new Rslint ( this , workspaceFolder ) ;
85
+ const rslint = new Rslint (
86
+ this ,
87
+ workspaceFolder ,
88
+ outputChannel ,
89
+ lspOutputChannel ,
90
+ ) ;
66
91
this . rslintInstances . set ( id , rslint ) ;
67
92
this . logger . debug ( `Created Rslint instance with id: ${ id } ` ) ;
68
93
return rslint ;
0 commit comments