@@ -10,25 +10,29 @@ import { LanguageServiceLogger } from './logger';
10
10
import StyledTemplateLanguageService from './styled-template-language-service' ;
11
11
import { getSubstitution } from './substituter' ;
12
12
13
- export = ( mod : { typescript : typeof ts } ) => {
14
- return {
15
- create ( info : ts . server . PluginCreateInfo ) : ts . LanguageService {
16
- const logger = new LanguageServiceLogger ( info ) ;
17
- const config = loadConfiguration ( info . config ) ;
13
+ class LanguageServiceFactory {
14
+ public constructor (
15
+ private readonly typescript : typeof ts
16
+ ) { }
18
17
19
- logger . log ( 'config: ' + JSON . stringify ( config ) ) ;
18
+ public create ( info : ts . server . PluginCreateInfo ) : ts . LanguageService {
19
+ const logger = new LanguageServiceLogger ( info ) ;
20
+ const config = loadConfiguration ( info . config ) ;
20
21
21
- return decorateWithTemplateLanguageService ( mod . typescript , info . languageService , new StyledTemplateLanguageService ( mod . typescript , config , logger ) , {
22
- tags : config . tags ,
23
- enableForStringWithSubstitutions : true ,
24
- getSubstitution (
25
- templateString : string ,
26
- start : number ,
27
- end : number
28
- ) : string {
29
- return getSubstitution ( templateString , start , end , logger ) ;
30
- } ,
31
- } , { logger } ) ;
32
- } ,
33
- } ;
34
- } ;
22
+ logger . log ( 'config: ' + JSON . stringify ( config ) ) ;
23
+
24
+ return decorateWithTemplateLanguageService ( this . typescript , info . languageService , new StyledTemplateLanguageService ( this . typescript , config , logger ) , {
25
+ tags : config . tags ,
26
+ enableForStringWithSubstitutions : true ,
27
+ getSubstitution (
28
+ templateString : string ,
29
+ start : number ,
30
+ end : number
31
+ ) : string {
32
+ return getSubstitution ( templateString , start , end , logger ) ;
33
+ } ,
34
+ } , { logger } ) ;
35
+ }
36
+ }
37
+
38
+ export = ( mod : { typescript : typeof ts } ) => new LanguageServiceFactory ( mod . typescript ) ;
0 commit comments