@@ -4,10 +4,14 @@ import {
44 workspace ,
55 WorkspaceFolder ,
66 ExtensionMode ,
7+ OutputChannel ,
8+ window ,
79} from 'vscode' ;
810import { State } from 'vscode-languageclient/node' ;
911import { LogLevel , Logger } from './logger' ;
1012import { Rslint } from './Rslint' ;
13+ import { setupStatusBar } from './statusBar' ;
14+ import { RegisterCommands } from './commands' ;
1115
1216export class Extension implements Disposable {
1317 private rslintInstances : Map < string , Rslint > = new Map ( ) ;
@@ -25,12 +29,26 @@ export class Extension implements Disposable {
2529 this . logger . info ( 'Rslint extension activating...' ) ;
2630
2731 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+
2840 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+ ) ;
3047 await workspaceRslint . start ( ) ;
3148 this . setupStateChangeMonitoring ( workspaceRslint , folder . name ) ;
3249 }
33-
50+ setupStatusBar ( this . context ) ;
51+ RegisterCommands ( this . context , outputChannel , lspOutputChannel ) ;
3452 this . logger . info ( 'Rslint extension activated successfully' ) ;
3553 }
3654
@@ -55,14 +73,21 @@ export class Extension implements Disposable {
5573 public createRslintInstance (
5674 id : string ,
5775 workspaceFolder : WorkspaceFolder ,
76+ outputChannel : OutputChannel ,
77+ lspOutputChannel : OutputChannel ,
5878 ) : Rslint {
5979 if ( this . rslintInstances . has ( id ) ) {
6080 this . logger . warn ( `Rslint instance with id '${ id } ' already exists` ) ;
6181 return this . rslintInstances . get ( id ) ! ;
6282 }
6383
6484 // 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+ ) ;
6691 this . rslintInstances . set ( id , rslint ) ;
6792 this . logger . debug ( `Created Rslint instance with id: ${ id } ` ) ;
6893 return rslint ;
0 commit comments