public static FlowDocument CreateTooltip(IEntity entity, bool useFullyQualifiedMemberNames = true)
        {
            var ambience = AmbienceService.GetCurrentAmbience();

            ambience.ConversionFlags = ConversionFlags.StandardConversionFlags | ConversionFlags.ShowDeclaringType;
            if (useFullyQualifiedMemberNames)
            {
                ambience.ConversionFlags |= ConversionFlags.UseFullyQualifiedEntityNames;
            }
            string header        = ambience.ConvertSymbol(entity);
            var    documentation = XmlDocumentationElement.Get(entity);

            ambience.ConversionFlags = ConversionFlags.ShowTypeParameterList;
            DocumentationUIBuilder b = new DocumentationUIBuilder(ambience);

            b.AddCodeBlock(header, keepLargeMargin: true);
            if (documentation != null)
            {
                foreach (var child in documentation.Children)
                {
                    b.AddDocumentationElement(child);
                }
            }
            return(b.CreateFlowDocument());
        }
        public void Initialize(Gtk.TreeView treeView)
        {
            TreeViewColumn column = new TreeViewColumn();

            CellRendererToggle toggleRenderer = new CellRendererToggle();

            toggleRenderer.Toggled += ToggleRendererToggled;
            column.PackStart(toggleRenderer, false);
            column.AddAttribute(toggleRenderer, "active", 0);

            var pixbufRenderer = new CellRendererPixbuf();

            column.PackStart(pixbufRenderer, false);
            column.AddAttribute(pixbufRenderer, "pixbuf", 1);

            CellRendererText textRenderer = new CellRendererText();

            column.PackStart(textRenderer, true);
            column.AddAttribute(textRenderer, "text", 2);
            column.Expand = true;

            treeView.AppendColumn(column);
            Ambience ambience = AmbienceService.GetAmbienceForFile(options.Document.FileName);

            foreach (IBaseMember member in GetValidMembers())
            {
                Store.AppendValues(false, ImageService.GetPixbuf(member.StockIcon, IconSize.Menu), ambience.GetString(member, member.MemberType == MemberType.Parameter ? OutputFlags.IncludeParameterName : OutputFlags.ClassBrowserEntries), member);
            }

            treeView.Model = store;
        }
            public override string ToString()
            {
                IAmbience ambience = AmbienceService.GetCurrentAmbience();

                ambience.ConversionFlags = ConversionFlags.ShowTypeParameterList;
                return(ambience.Convert(c));
            }
        public CodeCompletionItem(IEntity entity)
        {
            if (entity == null)
            {
                throw new ArgumentNullException("entity");
            }
            this.entity = entity;

            IAmbience ambience = AmbienceService.GetCurrentAmbience();

            ambience.ConversionFlags = entity is IClass ? ConversionFlags.ShowTypeParameterList : ConversionFlags.None;
            this.Text = ambience.Convert(entity);
            ambience.ConversionFlags = ConversionFlags.StandardConversionFlags;
            if (entity is IClass)
            {
                // Show fully qualified Type name (called UseFullyQualifiedMemberNames though)
                ambience.ConversionFlags |= ConversionFlags.UseFullyQualifiedMemberNames;
            }
            description    = ambience.Convert(entity);
            this.Image     = ClassBrowserIconService.GetIcon(entity);
            this.Overloads = 1;
            this.InsertGenericArguments = false;

            this.Priority = CodeCompletionDataUsageCache.GetPriority(entity.DotNetName, true);
        }
Beispiel #5
0
            public TypeDataProvider(MonoDevelop.Projects.DotNetProject project)
            {
                var dom = MonoDevelop.Projects.Dom.Parser.ProjectDomService.GetProjectDom(project);

                List          = new List <MonoDevelop.Projects.Dom.IType> (dom.Types);
                this.ambience = AmbienceService.GetAmbienceForLanguage(project.LanguageName);
            }
Beispiel #6
0
        void AddControlMembers(CompletionDataList list, IType controlClass,
                               Dictionary <string, string> existingAtts)
        {
            //add atts only if they're not already in the tag
            foreach (var prop in GetUniqueMembers <IProperty> (controlClass.GetProperties()))
            {
                if (prop.Accessibility == Accessibility.Public && (existingAtts == null || !existingAtts.ContainsKey(prop.Name)))
                {
                    if (GetPersistenceMode(prop) == System.Web.UI.PersistenceMode.Attribute)
                    {
                        list.Add(prop.Name, prop.GetStockIcon(), AmbienceService.GetSummaryMarkup(prop));
                    }
                }
            }

            //similarly add events
            foreach (var eve in GetUniqueMembers <IEvent> (controlClass.GetEvents()))
            {
                string eveName = "On" + eve.Name;
                if (eve.Accessibility == Accessibility.Public && (existingAtts == null || !existingAtts.ContainsKey(eveName)))
                {
                    list.Add(eveName, eve.GetStockIcon(), AmbienceService.GetSummaryMarkup(eve));
                }
            }
        }
Beispiel #7
0
            public TypeDataProvider(MonoDevelop.Projects.DotNetProject project)
            {
                var ctx = TypeSystemService.GetCompilation(project);

                List          = new List <ITypeDefinition> (ctx.MainAssembly.GetAllTypeDefinitions());
                this.ambience = AmbienceService.GetAmbience(project.LanguageName);
            }
Beispiel #8
0
        protected virtual IAmbience GetAmbience()
        {
            IAmbience ambience = AmbienceService.GetCurrentAmbience();

            ambience.ConversionFlags = ConversionFlags.ShowTypeParameterList;
            return(ambience);
        }
        public string GetDescription(int overload, int currentParameter)
        {
            StringBuilder result       = new StringBuilder();
            var           curParameter = currentParameter >= 0 && currentParameter < indexers [overload].Parameters.Count ? indexers [overload].Parameters [currentParameter] : null;

            if (curParameter != null)
            {
                string docText = AmbienceService.GetDocumentation(indexers [overload]);
                if (!string.IsNullOrEmpty(docText))
                {
                    var paramRegex = new Regex("(\\<param\\s+name\\s*=\\s*\"" + curParameter.Name + "\"\\s*\\>.*?\\</param\\>)", RegexOptions.Compiled);
                    var match      = paramRegex.Match(docText);
                    if (match.Success)
                    {
                        result.AppendLine();
                        string text = match.Groups [1].Value;
                        text = "<summary>" + AmbienceService.GetDocumentationSummary(indexers [overload]) + "</summary>" + text;
                        result.Append(AmbienceService.GetDocumentationMarkup(text, new AmbienceService.DocumentationFormatOptions {
                            HighlightParameter = curParameter.Name,
                            MaxLineLength      = 60
                        }));
                    }
                }
            }

            return(result.ToString());
        }
Beispiel #10
0
        public static TooltipInformation CreateTooltipInformation(ICompilation compilation, CSharpUnresolvedFile file, TextEditorData textEditorData, MonoDevelop.PlayScript.Formatting.PlayScriptFormattingPolicy formattingPolicy, IParameterizedMember entity, int currentParameter, bool smartWrap)
        {
            var tooltipInfo = new TooltipInformation();
            var resolver    = file.GetResolver(compilation, textEditorData.Caret.Location);
            var sig         = new SignatureMarkupCreator(resolver, formattingPolicy.CreateOptions());

            sig.HighlightParameter       = currentParameter;
            sig.BreakLineAfterReturnType = smartWrap;
            try {
                tooltipInfo.SignatureMarkup = sig.GetMarkup(entity);
            } catch (Exception e) {
                LoggingService.LogError("Got exception while creating markup for :" + entity, e);
                return(new TooltipInformation());
            }
            tooltipInfo.SummaryMarkup = AmbienceService.GetSummaryMarkup(entity) ?? "";

            if (entity is IMethod)
            {
                var method = (IMethod)entity;
                if (method.IsExtensionMethod)
                {
                    tooltipInfo.AddCategory(GettextCatalog.GetString("Extension Method from"), method.DeclaringTypeDefinition.FullName);
                }
            }
            int paramIndex = currentParameter;

            if (entity is IMethod && ((IMethod)entity).IsExtensionMethod)
            {
                paramIndex++;
            }
            paramIndex = Math.Min(entity.Parameters.Count - 1, paramIndex);

            var curParameter = paramIndex >= 0 && paramIndex < entity.Parameters.Count ? entity.Parameters [paramIndex] : null;

            if (curParameter != null)
            {
                string docText = AmbienceService.GetDocumentation(entity);
                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 = AmbienceService.GetDocumentationMarkup(entity, match.Groups [1].Value);
                        if (!string.IsNullOrWhiteSpace(text))
                        {
                            tooltipInfo.AddCategory(GettextCatalog.GetString("Parameter"), text);
                        }
                    }
                }

                if (curParameter.Type.Kind == TypeKind.Delegate)
                {
                    tooltipInfo.AddCategory(GettextCatalog.GetString("Delegate Info"), sig.GetDelegateInfo(curParameter.Type));
                }
            }
            return(tooltipInfo);
        }
        protected IAmbience GetAmbience()
        {
            IAmbience ambience = AmbienceService.GetCurrentAmbience();

            ambience.ConversionFlags = ConversionFlags.None;
            return(ambience);
        }
        public override void BuildNode(ITreeBuilder treeBuilder, object dataObject, ref string label, ref Gdk.Pixbuf icon, ref Gdk.Pixbuf closedIcon)
        {
            IEvent data = dataObject as IEvent;

            label = AmbienceService.GetAmbience(data).GetString(data, OutputFlags.ClassBrowserEntries | OutputFlags.IncludeMarkup);
            icon  = Context.GetIcon(data.StockIcon);
        }
        string IAssemblyBrowserNodeBuilder.GetDocumentationMarkup(ITreeNavigator navigator)
        {
            var method   = (IUnresolvedMethod)navigator.DataItem;
            var resolved = Resolve(navigator, method);

            if (GetMainAssembly(navigator) == null)
            {
                return(Mono.TextEditor.Utils.TextFileUtility.ReadAllText(method.Region.FileName));
            }
            StringBuilder result = new StringBuilder();

            result.Append("<big>");
            result.Append(Ambience.GetString(resolved, OutputFlags.AssemblyBrowserDescription | OutputFlags.IncludeConstraints));
            result.Append("</big>");
            result.AppendLine();

            AmbienceService.DocumentationFormatOptions options = new AmbienceService.DocumentationFormatOptions();
            options.MaxLineLength = -1;
            options.BigHeadings   = true;
            options.Ambience      = Ambience;
            result.AppendLine();

            result.Append(AmbienceService.GetDocumentationMarkup(resolved, AmbienceService.GetDocumentation(resolved), options));

            return(result.ToString());
        }
            public override string ToString()
            {
                IAmbience ambience = AmbienceService.GetCurrentAmbience();

                ambience.ConversionFlags = ConversionFlags.ShowParameterNames;
                return(ambience.Convert(property));
            }
Beispiel #15
0
            public override string ToString()
            {
                IAmbience ambience = AmbienceService.GetCurrentAmbience();

                ambience.ConversionFlags = ConversionFlags.None;
                return(ambience.Convert(evt));
            }
        protected override Gtk.Window CreateTooltipWindow(TextEditor editor, int offset, Gdk.ModifierType modifierState, TooltipItem item)
        {
            //create a message string from all the results
            var  results = (IList <Result>)item.Item;
            var  sb      = new StringBuilder();
            bool first   = false;

            foreach (var r in results)
            {
                if (!first)
                {
                    first = true;
                }
                else
                {
                    sb.AppendLine();
                }
                sb.Append(r.Level.ToString());
                sb.Append(": ");
                sb.Append(AmbienceService.EscapeText(r.Message));
            }

            //FIXME: use a nicer, more specialized tooltip window, with results formatting and hints about
            // commands and stuff
            var win = new LanguageItemWindow((ExtensibleTextEditor)editor, modifierState, null, sb.ToString(), null);

            if (win.IsEmpty)
            {
                return(null);
            }
            return(win);
        }
Beispiel #17
0
        void FindOverrides(object sender, EventArgs e)
        {
            MenuCommand              item           = (MenuCommand)sender;
            IMember                  member         = (IMember)item.Tag;
            IEnumerable <IClass>     derivedClasses = RefactoringService.FindDerivedClasses(member.DeclaringType, ParserService.AllProjectContents, false);
            List <SearchResultMatch> results        = new List <SearchResultMatch>();
            IAmbience                ambience       = AmbienceService.GetCurrentAmbience();

            ambience.ConversionFlags = ConversionFlags.UseFullyQualifiedMemberNames | ConversionFlags.ShowTypeParameterList;
            foreach (IClass derivedClass in derivedClasses)
            {
                if (derivedClass.CompilationUnit == null)
                {
                    continue;
                }
                if (derivedClass.CompilationUnit.FileName == null)
                {
                    continue;
                }
                IMember m = MemberLookupHelper.FindSimilarMember(derivedClass, member);
                if (m != null && !m.Region.IsEmpty)
                {
                    string            matchText = ambience.Convert(m);
                    SearchResultMatch res       = new SimpleSearchResultMatch(matchText, new TextLocation(m.Region.BeginColumn - 1, m.Region.BeginLine - 1));
                    res.ProvidedDocumentInformation = FindReferencesAndRenameHelper.GetDocumentInformation(m.DeclaringType.CompilationUnit.FileName);
                    results.Add(res);
                }
            }
            SearchResultPanel.Instance.ShowSearchResults(new SearchResult(
                                                             StringParser.Parse("${res:SharpDevelop.Refactoring.OverridesOf}", new string[, ] {
                { "Name", member.Name }
            }),
                                                             results
                                                             ));
        }
Beispiel #18
0
            public override string ToString()
            {
                IAmbience ambience = AmbienceService.GetCurrentAmbience();

                ambience.ConversionFlags = ConversionFlags.ShowReturnType | ConversionFlags.ShowModifiers;
                return(ambience.Convert(field));
            }
Beispiel #19
0
        static string GetName(IMember member, ConversionFlags flags)
        {
            IAmbience ambience = AmbienceService.GetCurrentAmbience();

            ambience.ConversionFlags = flags | ConversionFlags.ShowParameterNames | ConversionFlags.ShowTypeParameterList;
            return(ambience.Convert(member));
        }
Beispiel #20
0
        public string GetComponentTypeOf(Func <string, string> callback, string varName)
        {
            if (callback == null)
            {
                return("var");
            }

            string var = callback(varName);
            ITextEditorResolver textEditorResolver = CurrentContext.Document.GetContent <ITextEditorResolver> ();

            if (textEditorResolver != null)
            {
                ResolveResult result = textEditorResolver.GetLanguageItem(CurrentContext.Document.TextEditor.CursorPosition, var);
                if (result != null)
                {
                    IReturnType componentType = DomType.GetComponentType(CurrentContext.ProjectDom, result.ResolvedType);
                    if (componentType != null)
                    {
                        Ambience ambience = AmbienceService.GetAmbience(CurrentContext.Template.MimeType);
                        return(ambience != null?ambience.GetString(componentType, OutputFlags.IncludeGenerics) :  componentType.ToInvariantString());
                    }
                }
            }

            return("var");
        }
        public override TooltipInformation CreateTooltipInformation(bool smartWrap)
        {
            var tt = base.CreateTooltipInformation(smartWrap);

            tt.SignatureMarkup = member.Name;
            tt.SummaryMarkup   = AmbienceService.GetSummaryMarkup(member);
            return(tt);
        }
        public override TooltipInformation CreateTooltipInformation(bool smartWrap)
        {
            var tt = base.CreateTooltipInformation(smartWrap);

            tt.SignatureMarkup = cls.FullName;
            tt.SummaryMarkup   = AmbienceService.GetSummaryMarkup(cls.GetDefinition());
            return(tt);
        }
Beispiel #23
0
        public ImportSymbolCompletionData(MonoDevelop.Ide.Gui.Document doc, ImportSymbolCache cache, IType type)
        {
            this.doc   = doc;
            this.cache = cache;
//			this.data = doc.Editor;
            this.ambience = AmbienceService.GetAmbience(doc.Editor.MimeType);
            this.type     = type;
            this.unit     = doc.ParsedDocument;
        }
        protected Ambience GetAmbience()
        {
            CheckInitialized();

            IViewContent view = document.Window.ViewContent;
            string       file = view.IsUntitled ? view.UntitledName : view.ContentName;

            return(AmbienceService.GetAmbienceForFile(file));
        }
 void AddClasses(ArrayList items, ICollection <IClass> classes)
 {
     foreach (IClass c in classes)
     {
         IAmbience ambience = AmbienceService.GetCurrentAmbience();
         ambience.ConversionFlags = ConversionFlags.UseFullyQualifiedMemberNames | ConversionFlags.ShowTypeParameterList;
         items.Add(new ComboBoxItem(c, ambience.Convert(c), ClassBrowserIconService.GetIcon(c), true));
         AddClasses(items, c.InnerClasses);
     }
 }
        public ImportSymbolCompletionData(MonoDevelop.Ide.Gui.Document doc, ImportSymbolCache cache, IType type)
        {
            this.doc   = doc;
            this.cache = cache;
//			this.data = doc.Editor;
            this.ambience      = AmbienceService.GetAmbience(doc.Editor.MimeType);
            this.type          = type;
            this.unit          = doc.ParsedDocument;
            this.DisplayFlags |= ICSharpCode.NRefactory.Completion.DisplayFlags.IsImportCompletion;
        }
        public override TooltipInformation CreateTooltipInformation(bool smartWrap)
        {
            var tti = new TooltipInformation();

            tti.SignatureMarkup = "<i>(Module)</i> " + Module.ModuleName;
            tti.SummaryMarkup   = AmbienceService.EscapeText(Module.Description);
            tti.FooterMarkup    = Module.FileName;

            return(tti);
        }
Beispiel #28
0
 public ImportSymbolCompletionData(MonoDevelop.Ide.Gui.Document doc, ImportSymbolCache cache, ProjectDom dom, IType type)
 {
     this.doc      = doc;
     this.cache    = cache;
     this.dom      = dom;
     this.data     = doc.Editor;
     this.ambience = doc.Project != null ? doc.Project.Ambience : AmbienceService.GetAmbienceForFile(doc.FileName);
     this.type     = type;
     this.unit     = doc.CompilationUnit;
 }
Beispiel #29
0
 public override string ToString()
 {
     if (cachedStringRepresentation == null)
     {
         IAmbience ambience = AmbienceService.GetCurrentAmbience();
         ambience.ConversionFlags   = ConversionFlags.ShowParameterNames;
         cachedStringRepresentation = ambience.Convert(method);
     }
     return(cachedStringRepresentation);
 }
Beispiel #30
0
        public LanguageItemWindow(ExtensibleTextEditor ed, Gdk.ModifierType modifierState, ResolveResult result, string errorInformations, ICompilationUnit unit)
        {
            ProjectDom dom      = ed.ProjectDom;
            Ambience   ambience = AmbienceService.GetAmbience(ed.Document.MimeType);

            string tooltip = null;

            if (result != null && ed.TextEditorResolverProvider != null)
            {
                tooltip = ed.TextEditorResolverProvider.CreateTooltip(dom, unit, result, errorInformations, ambience, modifierState);
                if (result.ResolveErrors.Count > 0)
                {
                    StringBuilder sb = new StringBuilder();
                    sb.Append(tooltip);
                    sb.AppendLine();
                    sb.AppendLine();
                    sb.AppendLine(GettextCatalog.GetPluralString("Error:", "Errors:", result.ResolveErrors.Count));
                    for (int i = 0; i < result.ResolveErrors.Count; i++)
                    {
                        sb.Append('\t');
                        sb.Append(result.ResolveErrors[i]);
                        if (i + 1 < result.ResolveErrors.Count)
                        {
                            sb.AppendLine();
                        }
                    }
                    tooltip = sb.ToString();
                }
            }
            else
            {
                tooltip = errorInformations;
            }
            if (string.IsNullOrEmpty(tooltip))
            {
                IsEmpty = true;
                return;
            }

            var label = new MonoDevelop.Components.FixedWidthWrapLabel()
            {
                Wrap               = Pango.WrapMode.WordChar,
                Indent             = -20,
                BreakOnCamelCasing = true,
                BreakOnPunctuation = true,
                Markup             = tooltip,
            };

            this.BorderWidth = 3;
            Add(label);
            UpdateFont(label);

            EnableTransparencyControl = true;
        }