Esempio n. 1
0
        private void ShowArrays()
        {
            if (_dte.Mode == vsIDEMode.vsIDEModeDebug && _dte.Debugger.CurrentStackFrame != null)
            {
                if (_arraysPending && _toolActive)
                {
                    _arraysPending = false;

                    string language = _dte.Debugger.CurrentStackFrame.Language;
                    switch (language)
                    {
                    case "C#":
                        _arrayLoader = new CsArrayLoader();
                        break;

                    case "F#":
                        _arrayLoader = new FsArrayLoader();
                        break;

                    case "Basic":
                        _arrayLoader = new VbArrayLoader();
                        break;

                    //case "C++":
                    //  arrayLoader = new CppArrayLoader();
                    //  break;
                    default:
                        _arrayLoader = GetLanguageLoader();
                        if (_arrayLoader != null)
                        {
                            break;
                        }

                        ClearVisualizer();
                        Label msg = new Label
                        {
                            Content = string.Format("Sorry, currently {0} is not supported.", language)
                        };
                        mainPanel.Children.Add(msg);
                        return;
                    }
                    _parsers = new ParsersCollection(_arrayLoader, _loadedParsers);
                    LoadScopeArrays();
                }
            }
        }
        public ParsersCollection(IArrayLoader arrayLoader, IEnumerable <Type> selectedParsers)
        {
            if (selectedParsers == null)
            {
                throw new ArgumentNullException(nameof(selectedParsers));
            }

            _arrayLoader = arrayLoader ?? throw new ArgumentNullException(nameof(arrayLoader));
            _parsers     = new List <ITypeParser>();

            foreach (Type parserType in selectedParsers)
            {
                AddParser((ITypeParser)Activator.CreateInstance(parserType));
            }

            AddParser(new DefaultParser(arrayLoader)); //must be last!
        }
Esempio n. 3
0
 public DefaultParser(IArrayLoader arrayLoader)
 {
     this._arrayLoader = arrayLoader;
 }