private static object GetCodeHint(ITextSnapshot textSnapshot, IdeServices ideServices,
                                          int start, int len)
        {
            object hint;

            try
            {
                hint = CollapsedHintCreator.GetHint(
                    new SnapshotSpan(textSnapshot,
                                     start, len)
                    , ideServices);
            }
            catch (Exception ex)
            {
                hint = @"unable to generate hint, please see log (%appdata%\Roaming\nicologies\vbsharpoutliner.log) for details";
                var srcCode = textSnapshot.GetText(start, Math.Min(len, textSnapshot.Length - start));
                Logger.WriteLog(ex, srcCode);
            }
            return(hint);
        }
Example #2
0
        public List <TagSpan <IOutliningRegionTag> > GetOutlineSpan(SyntaxNode node, ITextSnapshot textSnapshot,
                                                                    IdeServices ideServices)
        {
            var ret      = new List <TagSpan <IOutliningRegionTag> >();
            var switcher = node as SwitchStatementSyntax;

            if (switcher == null)
            {
                return(ret);
            }
            var hint = CollapsedHintCreator.GetHint(
                new SnapshotSpan(textSnapshot, node.FullSpan.Start, node.FullSpan.Length),
                ideServices);
            var span = new TagSpan <IOutliningRegionTag>(
                new SnapshotSpan(textSnapshot,
                                 switcher.OpenBraceToken.FullSpan.Start - 1,
                                 switcher.CloseBraceToken.FullSpan.End - switcher.OpenBraceToken.FullSpan.Start - 1),
                new OutliningRegionTag(isDefaultCollapsed: false, isImplementation: true,
                                       collapsedForm: "...",
                                       collapsedHintForm: hint));

            ret.Add(span);
            return(ret);
        }
Example #3
0
        public List <TagSpan <IOutliningRegionTag> > GetOutlineSpan(SyntaxNode node, ITextSnapshot textSnapshot,
                                                                    IdeServices ideServices)
        {
            var ret            = new List <TagSpan <IOutliningRegionTag> >();
            var text           = node.Parent.GetText();
            var isOneLineBlock = text.Lines.Count <= 2;

            if (isOneLineBlock)
            {
                return(ret);
            }
            var hint = CollapsedHintCreator.GetHint(
                new SnapshotSpan(textSnapshot, node.Parent.FullSpan.Start, node.Parent.FullSpan.Length),
                ideServices);
            var span = new TagSpan <IOutliningRegionTag>(
                new SnapshotSpan(textSnapshot,
                                 node.FullSpan.Start - 1,
                                 GetSpanLength(node)),
                new OutliningRegionTag(isDefaultCollapsed: false, isImplementation: true,
                                       collapsedForm: "...", collapsedHintForm: hint));

            ret.Add(span);
            return(ret);
        }