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); }
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); }
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); }