@@ -11,32 +11,38 @@ This Source Code Form is subject to the terms of the
1111namespace VSCode . DebugAdapter
1212{
1313 /// <summary>
14- /// Провайдер вложенных переменных объекта
14+ /// Универсальный провайдер вложенных переменных
1515 /// </summary>
1616 public class ChildVariablesProvider : IVariablesProvider
1717 {
1818 private readonly int _threadId ;
1919 private readonly int _frameIndex ;
2020 private readonly int [ ] _path ;
21+ private readonly Func < IDebuggerService , int , int , int [ ] , Variable [ ] > _fetchFunc ;
2122
22- public ChildVariablesProvider ( int threadId , int frameIndex , int [ ] path )
23+ public ChildVariablesProvider (
24+ int threadId ,
25+ int frameIndex ,
26+ int [ ] path ,
27+ Func < IDebuggerService , int , int , int [ ] , Variable [ ] > fetchFunc )
2328 {
2429 _threadId = threadId ;
2530 _frameIndex = frameIndex ;
2631 _path = path ;
32+ _fetchFunc = fetchFunc ;
2733 }
2834
2935 public Variable [ ] FetchVariables ( IDebuggerService service )
3036 {
31- return service . GetVariables ( _threadId , _frameIndex , _path ) ;
37+ return _fetchFunc ( service , _threadId , _frameIndex , _path ) ;
3238 }
3339
3440 public IVariablesProvider CreateChildProvider ( int variableIndex )
3541 {
3642 var newPath = new int [ _path . Length + 1 ] ;
3743 Array . Copy ( _path , newPath , _path . Length ) ;
3844 newPath [ _path . Length ] = variableIndex ;
39- return new ChildVariablesProvider ( _threadId , _frameIndex , newPath ) ;
45+ return new ChildVariablesProvider ( _threadId , _frameIndex , newPath , _fetchFunc ) ;
4046 }
4147 }
4248}
0 commit comments