@@ -46,24 +46,15 @@ public class AnalysisService : IDisposable
46
46
"PSUseDeclaredVarsMoreThanAssigments"
47
47
} ;
48
48
49
- private List < string > activeRules ;
50
-
51
49
#endregion // Private Fields
52
50
53
51
54
52
#region Properties
55
53
56
- public string [ ] ActiveRules
57
- {
58
- get
59
- {
60
- return activeRules != null ? activeRules . ToArray ( ) : null ;
61
- }
62
- set
63
- {
64
- activeRules = new List < string > ( value ) ; // TODO check the argument
65
- }
66
- }
54
+ /// <summary>
55
+ /// Set of PSScriptAnalyzer rules used for analysis
56
+ /// </summary>
57
+ public string [ ] ActiveRules { get ; set ; }
67
58
68
59
/// <summary>
69
60
/// Gets or sets the path to a settings file (.psd1)
@@ -93,7 +84,7 @@ public AnalysisService(IConsoleHost consoleHost, string settingsPath = null)
93
84
this . analysisRunspace = RunspaceFactory . CreateRunspace ( InitialSessionState . CreateDefault2 ( ) ) ;
94
85
this . analysisRunspace . ThreadOptions = PSThreadOptions . ReuseThread ;
95
86
this . analysisRunspace . Open ( ) ;
96
- activeRules = new List < string > ( IncludedRules ) ;
87
+ ActiveRules = IncludedRules . ToArray ( ) ;
97
88
InitializePSScriptAnalyzer ( ) ;
98
89
}
99
90
catch ( Exception e )
@@ -145,18 +136,8 @@ public ScriptFileMarker[] GetSemanticMarkers(ScriptFile file)
145
136
}
146
137
147
138
/// <summary>
148
- /// Disposes the runspace being used by the analysis service.
139
+ /// Returns a list of builtin-in PSScriptAnalyzer rules
149
140
/// </summary>
150
- public void Dispose ( )
151
- {
152
- if ( this . analysisRunspace != null )
153
- {
154
- this . analysisRunspace . Close ( ) ;
155
- this . analysisRunspace . Dispose ( ) ;
156
- this . analysisRunspace = null ;
157
- }
158
- }
159
-
160
141
public IEnumerable < string > GetPSScriptAnalyzerRules ( )
161
142
{
162
143
List < string > ruleNames = new List < string > ( ) ;
@@ -166,7 +147,7 @@ public IEnumerable<string> GetPSScriptAnalyzerRules()
166
147
{
167
148
ps . Runspace = this . analysisRunspace ;
168
149
var ruleObjects = ps . AddCommand ( "Get-ScriptAnalyzerRule" ) . Invoke ( ) ;
169
- foreach ( var rule in ruleObjects )
150
+ foreach ( var rule in ruleObjects )
170
151
{
171
152
ruleNames . Add ( ( string ) rule . Members [ "RuleName" ] . Value ) ;
172
153
}
@@ -176,6 +157,19 @@ public IEnumerable<string> GetPSScriptAnalyzerRules()
176
157
return ruleNames ;
177
158
}
178
159
160
+ /// <summary>
161
+ /// Disposes the runspace being used by the analysis service.
162
+ /// </summary>
163
+ public void Dispose ( )
164
+ {
165
+ if ( this . analysisRunspace != null )
166
+ {
167
+ this . analysisRunspace . Close ( ) ;
168
+ this . analysisRunspace . Dispose ( ) ;
169
+ this . analysisRunspace = null ;
170
+ }
171
+ }
172
+
179
173
#endregion // public methods
180
174
181
175
#region Private Methods
@@ -284,7 +278,7 @@ private IEnumerable<PSObject> GetDiagnosticRecords(ScriptFile file)
284
278
}
285
279
else
286
280
{
287
- powerShell . AddParameter ( "IncludeRule" , activeRules . ToArray ( ) ) ;
281
+ powerShell . AddParameter ( "IncludeRule" , ActiveRules ) ;
288
282
}
289
283
290
284
diagnosticRecords = powerShell . Invoke ( ) ;
0 commit comments