@@ -28,9 +28,22 @@ public ParserStateEventArgs(ParserState state)
28
28
public ParserState State { get { return _state ; } }
29
29
}
30
30
31
+ public class ParseRequestEventArgs : EventArgs
32
+ {
33
+ private readonly VBComponent _component ;
34
+
35
+ public ParseRequestEventArgs ( VBComponent component )
36
+ {
37
+ _component = component ;
38
+ }
39
+
40
+ public VBComponent Component { get { return _component ; } }
41
+ public bool IsFullReparseRequest { get { return _component == null ; } }
42
+ }
43
+
31
44
public sealed class RubberduckParserState
32
45
{
33
- public event EventHandler ParseRequest ;
46
+ public event EventHandler < ParseRequestEventArgs > ParseRequest ;
34
47
35
48
// keys are the declarations; values indicate whether a declaration is resolved.
36
49
private readonly ConcurrentDictionary < Declaration , ResolutionState > _declarations =
@@ -291,12 +304,18 @@ public void AddBuiltInDeclarations(IHostApplication hostApplication)
291
304
}
292
305
}
293
306
294
- public void OnParseRequested ( )
307
+ /// <summary>
308
+ /// Requests reparse for specified component.
309
+ /// Omit parameter to request a full reparse.
310
+ /// </summary>
311
+ /// <param name="component">The component to reparse.</param>
312
+ public void OnParseRequested ( VBComponent component = null )
295
313
{
296
314
var handler = ParseRequest ;
297
315
if ( handler != null )
298
316
{
299
- handler . Invoke ( this , EventArgs . Empty ) ;
317
+ var args = new ParseRequestEventArgs ( component ) ;
318
+ handler . Invoke ( this , args ) ;
300
319
}
301
320
}
302
321
}
0 commit comments