/// <summary>
        ///     Performs outline of activated code file
        /// </summary>
        public void OutlineCode(ProjectItem activeProjectItem)
        {
            CodeElements elements;

            _displayedProjectItem = activeProjectItem;
            clearOutline();

            // get code elements in file
            try
            {
                elements = activeProjectItem.FileCodeModel.CodeElements;
            }
            catch (Exception e)

            {
                _log.Debug("Error finding elements in OutlineCode", e);
                return;
            }
            try
            {
                // get the regions
                var d = activeProjectItem.Document;
                var c = new RegionParser();
                _log.Debug("Identifying regions");

                var regionTask = c.GetRegions(d);
                var vp         = new ViewParser();


                Data = new OutlineItem();

                _log.Debug("Identifying Classes and methods");

                // "expand" each element
                for (var i = 1; i <= elements.Count; i++)
                {
                    createClassList(elements.Item(i), Data);
                }

                // set the "tracked" document to the current document
                CurrentDoc = d;

                regionTask.Wait();
                var regions = regionTask.Result;


                initSynctimer();

                _regions = new List <ICodeRegion>();
                if (regions != null)
                {
                    _regions.AddRange(regions);
                }

                //var result = vp.FindViews(activeProjectItem, views);
                Data.AddRegions(_regions);

                selectActiveCodeInTree();
                Data.ExpandAll();
            }
            catch (Exception e)
            {
                _log.Error("Failed OutlineCode2", e);
            }
        }