public override bool IsValidInContext(MonoDevelop.Ide.Editor.DocumentContext context) { return(base.IsValidInContext(context) && context.HasProject && context.Project.HasFlavor <AddinProjectFlavor> ()); }
public TestSemanticHighlighting(MonoDevelop.Ide.Editor.TextEditor editor, MonoDevelop.Ide.Editor.DocumentContext documentContext) : base(editor, documentContext) { }
public override bool IsValidInContext(MonoDevelop.Ide.Editor.DocumentContext context) { return(context.Name != null && context.Name.EndsWith(".cs", FilePath.PathComparison)); }
public static Task <TooltipInformation> CreateTooltipInformation(CancellationToken ctoken, MonoDevelop.Ide.Editor.TextEditor editor, MonoDevelop.Ide.Editor.DocumentContext ctx, ISymbol entity, bool smartWrap, bool createFooter = false, SemanticModel model = null) { if (ctx != null) { if (ctx.ParsedDocument == null || ctx.AnalysisDocument == null) { LoggingService.LogError("Signature markup creator created with invalid context." + Environment.NewLine + Environment.StackTrace); } } var tooltipInfo = new TooltipInformation(); // if (resolver == null) // resolver = file != null ? file.GetResolver (compilation, textEditorData.Caret.Location) : new CSharpResolver (compilation); var sig = new SignatureMarkupCreator(ctx, editor != null ? editor.CaretOffset : 0); sig.SemanticModel = model; sig.BreakLineAfterReturnType = smartWrap; return(Task.Run(() => { if (ctoken.IsCancellationRequested) { return null; } try { tooltipInfo.SignatureMarkup = sig.GetMarkup(entity); } catch (Exception e) { LoggingService.LogError("Got exception while creating markup for :" + entity, e); return new TooltipInformation(); } if (ctoken.IsCancellationRequested) { return null; } tooltipInfo.SummaryMarkup = Ambience.GetSummaryMarkup(entity) ?? ""; // if (entity is IMember) { // var evt = (IMember)entity; // if (evt.ReturnType.Kind == TypeKind.Delegate) { // tooltipInfo.AddCategory (GettextCatalog.GetString ("Delegate Info"), sig.GetDelegateInfo (evt.ReturnType)); // } // } if (entity is IMethodSymbol) { var method = (IMethodSymbol)entity; if (method.IsExtensionMethod) { tooltipInfo.AddCategory(GettextCatalog.GetString("Extension Method from"), method.ContainingType.Name); } } if (createFooter) { tooltipInfo.FooterMarkup = sig.CreateFooter(entity); } return tooltipInfo; })); }
internal static Task <TooltipInformation> CreateTooltipInformation(MonoDevelop.Ide.Editor.TextEditor editor, MonoDevelop.Ide.Editor.DocumentContext ctx, ISymbol sym, int currentParameter, bool smartWrap, CancellationToken cancelToken) { var tooltipInfo = new TooltipInformation(); var sig = new SignatureMarkupCreator(ctx, editor != null ? editor.CaretOffset : 0); sig.HighlightParameter = currentParameter; sig.BreakLineAfterReturnType = smartWrap; return(Task.Run(() => { if (cancelToken.IsCancellationRequested) { return null; } try { tooltipInfo.SignatureMarkup = sig.GetMarkup(sym); } catch (Exception e) { LoggingService.LogError("Got exception while creating markup for :" + sym, e); return new TooltipInformation(); } tooltipInfo.SummaryMarkup = Ambience.GetSummaryMarkup(sym) ?? ""; if (cancelToken.IsCancellationRequested) { return null; } if (sym is IMethodSymbol) { var method = (IMethodSymbol)sym; if (method.IsExtensionMethod && method.ReducedFrom != null && method.ReducedFrom.ContainingType != null) { tooltipInfo.AddCategory(GettextCatalog.GetString("Extension Method from"), method.ReducedFrom.ContainingType.Name); } } int paramIndex = currentParameter; // if (Symbol is IMethodSymbol && ((IMethodSymbol)Symbol).IsExtensionMethod) // paramIndex++; var list = GetParameterList(sym); paramIndex = Math.Min(list.Length - 1, paramIndex); var curParameter = paramIndex >= 0 && paramIndex < list.Length ? list [paramIndex] : null; if (curParameter != null) { string docText = Ambience.GetDocumentation(sym); if (!string.IsNullOrEmpty(docText)) { string text = docText; Regex paramRegex = new Regex("(\\<param\\s+name\\s*=\\s*\"" + curParameter.Name + "\"\\s*\\>.*?\\</param\\>)", RegexOptions.Compiled); Match match = paramRegex.Match(docText); if (match.Success) { text = Ambience.GetDocumentationMarkup(sym, match.Groups [1].Value); if (!string.IsNullOrWhiteSpace(text)) { tooltipInfo.AddCategory(GettextCatalog.GetString("Parameter"), text); } } } if (curParameter.Type.TypeKind == TypeKind.Delegate) { tooltipInfo.AddCategory(GettextCatalog.GetString("Delegate Info"), sig.GetDelegateInfo(curParameter.Type)); } } return tooltipInfo; })); }
public override Task <TooltipInformation> CreateTooltipInformation(MonoDevelop.Ide.Editor.TextEditor editor, MonoDevelop.Ide.Editor.DocumentContext ctx, int currentParameter, bool smartWrap, CancellationToken cancelToken) { return(CreateTooltipInformation(editor, ctx, Symbol, currentParameter, smartWrap, cancelToken)); }
public override Task <TooltipInformation> CreateTooltipInformation(MonoDevelop.Ide.Editor.TextEditor editor, MonoDevelop.Ide.Editor.DocumentContext ctx, int currentParameter, bool smartWrap, CancellationToken cancelToken) { var sig = new SignatureMarkupCreator(ctx, editor != null ? editor.CaretOffset : 0) { HighlightParameter = currentParameter }; return(Task.FromResult(new TooltipInformation { SignatureMarkup = sig.GetArrayIndexerMarkup(arrayType) })); }