@@ -17,6 +17,7 @@ function suggestionToLabel(sug: Suggestion) {
17
17
}
18
18
19
19
export type Settings = {
20
+ ignoredLints ?: string ;
20
21
useWebWorker : boolean ;
21
22
lintSettings : LintConfig ;
22
23
} ;
@@ -36,10 +37,20 @@ export default class HarperPlugin extends Plugin {
36
37
settings = { useWebWorker : true , lintSettings : { } } ;
37
38
}
38
39
39
- if ( settings . useWebWorker ) {
40
- this . harper = new WorkerLinter ( ) ;
40
+ const oldSettings = await this . getSettings ( ) ;
41
+
42
+ if ( settings . useWebWorker != oldSettings . useWebWorker ) {
43
+ if ( settings . useWebWorker ) {
44
+ this . harper = new WorkerLinter ( ) ;
45
+ } else {
46
+ this . harper = new LocalLinter ( ) ;
47
+ }
41
48
} else {
42
- this . harper = new LocalLinter ( ) ;
49
+ await this . harper . clearIgnoredLints ( ) ;
50
+ }
51
+
52
+ if ( settings . ignoredLints !== undefined ) {
53
+ await this . harper . importIgnoredLints ( settings . ignoredLints ) ;
43
54
}
44
55
45
56
await this . harper . setLintConfig ( settings . lintSettings ) ;
@@ -54,10 +65,16 @@ export default class HarperPlugin extends Plugin {
54
65
await this . saveData ( settings ) ;
55
66
}
56
67
68
+ public async reinitialize ( ) {
69
+ const settings = await this . getSettings ( ) ;
70
+ await this . initializeFromSettings ( settings ) ;
71
+ }
72
+
57
73
public async getSettings ( ) : Promise < Settings > {
58
74
const usingWebWorker = this . harper instanceof WorkerLinter ;
59
75
60
76
return {
77
+ ignoredLints : await this . harper . exportIgnoredLints ( ) ,
61
78
useWebWorker : usingWebWorker ,
62
79
lintSettings : await this . harper . getLintConfig ( )
63
80
} ;
@@ -157,6 +174,10 @@ export default class HarperPlugin extends Plugin {
157
174
severity : 'error' ,
158
175
title : lint . lint_kind ( ) ,
159
176
message : lint . message ( ) ,
177
+ ignore : async ( ) => {
178
+ await this . harper . ignoreLint ( lint ) ;
179
+ await this . reinitialize ( ) ;
180
+ } ,
160
181
actions : lint . suggestions ( ) . map ( ( sug ) => {
161
182
return {
162
183
name : suggestionToLabel ( sug ) ,
0 commit comments