public OverrideCompletionData(int declarationBegin, IMember m, CSharpResolver contextAtCaret) : base(m) { this.declarationBegin = declarationBegin; this.contextAtCaret = contextAtCaret; var ambience = new CSharpAmbience(); ambience.ConversionFlags = ConversionFlags.ShowTypeParameterList | ConversionFlags.ShowParameterList | ConversionFlags.ShowParameterNames; this.CompletionText = ambience.ConvertSymbol(m); }
public CSharpAmbienceTests() { ambience = new CSharpAmbience(); mscorlib = CecilLoaderTests.Mscorlib; var loader = new CecilLoader(); loader.IncludeInternalMembers = true; myLib = loader.LoadAssemblyFile(typeof(CSharpAmbienceTests).Assembly.Location); compilation = new SimpleCompilation(myLib, mscorlib); }
public CSharpAmbienceTests() { ambience = new CSharpAmbience(); mscorlib = CecilLoaderTests.Mscorlib; var loader = new CecilLoader(); loader.IncludeInternalMembers = true; myLib = loader.LoadAssemblyFile(typeof(CSharpAmbienceTests).Assembly.Location); compilation = new SimpleCompilation(myLib, mscorlib); }
public TypeLookupResponse GetTypeLookupResponse(TypeLookupRequest request) { var res = _bufferParser.ParsedContent(request.Buffer, request.FileName); var loc = new TextLocation(request.Line, request.Column); var resolveResult = ResolveAtLocation.Resolve(res.Compilation, res.UnresolvedFile, res.SyntaxTree, loc); var response = new TypeLookupResponse(); var ambience = new CSharpAmbience() { ConversionFlags = AmbienceFlags, }; if (resolveResult == null || resolveResult is NamespaceResolveResult) response.Type = ""; else { response.Type = resolveResult.Type.ToString(); IEntity entity = null; if (resolveResult is CSharpInvocationResolveResult) { var result = resolveResult as CSharpInvocationResolveResult; entity = result.Member; response.Type = ambience.ConvertSymbol(result.Member); } else if (resolveResult is LocalResolveResult) { var result = resolveResult as LocalResolveResult; response.Type = ambience.ConvertVariable(result.Variable); } else if (resolveResult is MemberResolveResult) { var result = resolveResult as MemberResolveResult; entity = result.Member; response.Type = ambience.ConvertSymbol(result.Member); } else if (resolveResult is TypeResolveResult) { ambience.ConversionFlags |= ConversionFlags.UseFullyQualifiedTypeNames; response.Type = ambience.ConvertType(resolveResult.Type); } if (resolveResult.Type is UnknownType) response.Type = "Unknown Type: " + resolveResult.Type.Name; if (resolveResult.Type == SpecialType.UnknownType) response.Type = "Unknown Type"; if (request.IncludeDocumentation && entity != null) { var project = _solution.ProjectContainingFile(request.FileName); response.Documentation = new DocumentationFetcher().GetDocumentation(project, entity, _config); } } return response; }
public VariableCompletionData(IVariable variable) { if (variable == null) throw new ArgumentNullException("variable"); Variable = variable; IAmbience ambience = new CSharpAmbience(); DisplayText = variable.Name; Description = ambience.ConvertVariable(variable); CompletionText = Variable.Name; this.Image = CompletionImage.Field.BaseImage; }
void GenerateHeader() { CSharpAmbience ambience = new CSharpAmbience(); ambience.ConversionFlags = ConversionFlags.StandardConversionFlags; var stringBuilder = new StringBuilder(); var formatter = new ParameterHighlightingOutputFormatter(stringBuilder, highlightedParameterIndex); ambience.ConvertEntity(Method, formatter, FormattingOptionsFactory.CreateSharpDevelop()); var inlineBuilder = new HighlightedInlineBuilder(stringBuilder.ToString()); inlineBuilder.SetFontWeight(formatter.parameterStartOffset, formatter.parameterLength, FontWeights.Bold); header.Inlines.Clear(); header.Inlines.AddRange(inlineBuilder.CreateRuns()); }
public EntityCompletionData(IEntity entity) { if (entity == null) throw new ArgumentNullException("entity"); this.entity = entity; IAmbience ambience = new CSharpAmbience(); ambience.ConversionFlags = entity is ITypeDefinition ? ConversionFlags.ShowTypeParameterList : ConversionFlags.None; DisplayText = entity.Name; this.CompletionText = ambience.ConvertEntity(entity); ambience.ConversionFlags = ConversionFlags.StandardConversionFlags; if (entity is ITypeDefinition) { // Show fully qualified Type name ambience.ConversionFlags |= ConversionFlags.UseFullyQualifiedTypeNames; } this.Image = ICSharpCode.AvalonEdit.CodeCompletion.CompletionImage.GetImage(entity); }
public override void BuildNode (ITreeBuilder treeBuilder, object dataObject, NodeInfo nodeInfo) { var method = (IUnresolvedMethod)dataObject; var dt = new DefaultResolvedTypeDefinition (GetContext (treeBuilder), method.DeclaringTypeDefinition); var resolved = (DefaultResolvedMethod)Resolve (treeBuilder, method, dt); var ambience = new CSharpAmbience (); try { nodeInfo.Label = MonoDevelop.Ide.TypeSystem.Ambience.EscapeText (ambience.ConvertSymbol (resolved)); } catch (Exception) { nodeInfo.Label = method.Name; } if (method.IsPrivate || method.IsInternal) nodeInfo.Label = DomMethodNodeBuilder.FormatPrivate (nodeInfo.Label); nodeInfo.Icon = Context.GetIcon (resolved.GetStockIcon ()); }
public TypeLookupResponse GetTypeLookupResponse(TypeLookupRequest request) { var res = _bufferParser.ParsedContent(request.Buffer, request.FileName); var loc = new TextLocation(request.Line, request.Column); var resolveResult = ResolveAtLocation.Resolve(res.Compilation, res.UnresolvedFile, res.SyntaxTree, loc); var response = new TypeLookupResponse(); var ambience = new CSharpAmbience() { ConversionFlags = AmbienceFlags, }; if (resolveResult == null || resolveResult is NamespaceResolveResult) response.Type = ""; else if (resolveResult != null) { response.Type = resolveResult.Type.ToString(); if (resolveResult is CSharpInvocationResolveResult) { var result = resolveResult as CSharpInvocationResolveResult; response.Type = ambience.ConvertEntity(result.Member); } else if (resolveResult is LocalResolveResult) { var result = resolveResult as LocalResolveResult; response.Type = ambience.ConvertVariable(result.Variable); } else if (resolveResult is MemberResolveResult) { var result = resolveResult as MemberResolveResult; response.Type = ambience.ConvertEntity(result.Member); } else if (resolveResult is TypeResolveResult) { ambience.ConversionFlags |= ConversionFlags.UseFullyQualifiedTypeNames; response.Type = ambience.ConvertType(resolveResult.Type); } if (resolveResult.Type is UnknownType) response.Type = "Unknown Type: " + resolveResult.Type.Name; if (resolveResult.Type == SpecialType.UnknownType) response.Type = "Unknown Type"; } return response; }
FlowDocumentScrollViewer GenerateHeader() { CSharpAmbience ambience = new CSharpAmbience(); ambience.ConversionFlags = ConversionFlags.StandardConversionFlags; var stringBuilder = new StringBuilder(); var formatter = new ParameterHighlightingOutputFormatter(stringBuilder, highlightedParameterIndex); ambience.ConvertEntity(Method, formatter, FormattingOptionsFactory.CreateSharpDevelop()); var documentation = XmlDocumentationElement.Get(Method); ambience.ConversionFlags = ConversionFlags.ShowTypeParameterList; DocumentationUIBuilder b = new DocumentationUIBuilder(ambience); string parameterName = null; if (Method.Parameters.Count > highlightedParameterIndex) parameterName = Method.Parameters[highlightedParameterIndex].Name; b.AddSignatureBlock(stringBuilder.ToString(), formatter.parameterStartOffset, formatter.parameterLength, parameterName); DocumentationUIBuilder b2 = new DocumentationUIBuilder(ambience); b2.ParameterName = parameterName; b2.ShowAllParameters = false; if (documentation != null) { foreach (var child in documentation.Children) { b2.AddDocumentationElement(child); } } content = new FlowDocumentScrollViewer { Document = b2.CreateFlowDocument(), VerticalScrollBarVisibility = ScrollBarVisibility.Auto }; var flowDocument = b.CreateFlowDocument(); flowDocument.PagePadding = new Thickness(0); // default is NOT Thickness(0), but Thickness(Auto), which adds unnecessary space return new FlowDocumentScrollViewer { Document = flowDocument, VerticalScrollBarVisibility = ScrollBarVisibility.Auto }; }
protected override object CreateFancyDescription() { var ambience = new CSharpAmbience(); ambience.ConversionFlags = ConversionFlags.StandardConversionFlags | ConversionFlags.ShowDeclaringType; string header = ambience.ConvertSymbol(Entity); var documentation = XmlDocumentationElement.Get(Entity); ambience.ConversionFlags = ConversionFlags.ShowTypeParameterList; var b = new CSharpDocumentationBuilder(ambience); b.AddCodeBlock(header, keepLargeMargin: true); if (documentation != null) { foreach (var child in documentation.Children) { b.AddDocumentationElement(child); } } var flowDocument = b.CreateFlowDocument(); flowDocument.PagePadding = new Thickness(0); // default is NOT Thickness(0), but Thickness(Auto), which adds unnecessary space return new FlowDocumentScrollViewer { Document = flowDocument, VerticalScrollBarVisibility = ScrollBarVisibility.Auto }; }
private ICompletionData CompletionData(IEntity entity) { ICompletionData completionData = null; if (entity.Documentation != null) { completionData = new CompletionData(_signature, _completionText, _signature + Environment.NewLine + DocumentationConverter.ConvertDocumentation(entity.Documentation)); } else { var ambience = new CSharpAmbience { ConversionFlags = ConversionFlags.ShowParameterList | ConversionFlags.ShowParameterNames | ConversionFlags.ShowReturnType | ConversionFlags.ShowBody | ConversionFlags.ShowTypeParameterList }; var documentationSignature = ambience.ConvertEntity(entity); if (_wantDocumentation) { string documentation = new DocumentationFetcher().GetDocumentation(_project, entity); var documentationAndSignature = documentationSignature + Environment.NewLine + documentation; completionData = new CompletionData(_signature, _completionText, documentationAndSignature); } else { completionData = new CompletionData(_signature, _completionText, documentationSignature); } } return completionData; }
void GenerateHeader() { CSharpAmbience ambience = new CSharpAmbience(); ambience.ConversionFlags = ConversionFlags.StandardConversionFlags; var stringBuilder = new StringBuilder(); TokenWriter formatter = new ParameterHighlightingOutputFormatter(stringBuilder, highlightedParameterIndex); ambience.ConvertSymbol(Method, formatter, FormattingOptionsFactory.CreateSharpDevelop()); var documentation = XmlDocumentationElement.Get(Method); ambience.ConversionFlags = ConversionFlags.ShowTypeParameterList; var inlineBuilder = new HighlightedInlineBuilder(stringBuilder.ToString()); header.Inlines.Clear(); header.Inlines.AddRange(inlineBuilder.CreateRuns()); }
public override IMember ImplementMember (RefactorerContext ctx, IType cls, IMember member, IReturnType privateImplementationType) { if (privateImplementationType != null) { // Workaround for bug in the code generator. Generic private implementation types are not generated correctly when they are generic. Ambience amb = new CSharpAmbience (); string tn = amb.GetString (privateImplementationType, OutputFlags.IncludeGenerics | OutputFlags.UseFullName | OutputFlags.UseIntrinsicTypeNames); privateImplementationType = new DomReturnType (tn); } return base.ImplementMember (ctx, cls, member, privateImplementationType); }
void AppendPropertyComment (StringBuilder builder, string indent, IProperty property) { if (property.Parameters != null) { CSharpAmbience ambience = new CSharpAmbience (); foreach (IParameter para in property.Parameters) { builder.Append (Environment.NewLine); builder.Append (indent); builder.Append ("/// <param name=\""); builder.Append (para.Name); builder.Append ("\">\n"); builder.Append (indent); builder.Append ("/// A <see cref=\""); builder.Append (ambience.GetString (para.ReturnType, OutputFlags.ClassBrowserEntries | OutputFlags.UseFullName | OutputFlags.UseNETTypeNames)); builder.Append ("\"/>\n"); builder.Append (indent); builder.Append ("/// </param>"); } } }
void AppendMethodComment (StringBuilder builder, string indent, IMethod method) { CSharpAmbience ambience = new CSharpAmbience (); if (method.Parameters != null) { foreach (IParameter para in method.Parameters) { builder.Append (Environment.NewLine); builder.Append (indent); builder.Append ("/// <param name=\""); builder.Append (para.Name); builder.Append ("\">\n"); builder.Append (indent); builder.Append ("/// A <see cref=\""); builder.Append (ambience.GetString (para.ReturnType, OutputFlags.ClassBrowserEntries | OutputFlags.UseFullName | OutputFlags.UseNETTypeNames)); builder.Append ("\"/>\n"); builder.Append (indent); builder.Append ("/// </param>"); } } if (method.ReturnType != null && method.ReturnType.FullName != "System.Void") { builder.Append (Environment.NewLine); builder.Append (indent); builder.Append("/// <returns>\n"); builder.Append (indent); builder.Append ("/// A <see cref=\""); builder.Append (ambience.GetString (method.ReturnType, OutputFlags.ClassBrowserEntries | OutputFlags.UseFullName | OutputFlags.UseNETTypeNames)); builder.Append ("\"/>\n"); builder.Append (indent); builder.Append ("/// </returns>"); } }
private ICompletionData CompletionData(IEntity entity) { ICompletionData completionData; if (entity.Documentation != null) { completionData = new CompletionData(_signature, _completionText, _signature + _config.TextEditorOptions.EolMarker + DocumentationConverter.ConvertDocumentation(entity.Documentation, _config)); } else { var ambience = new CSharpAmbience { ConversionFlags = ConversionFlags.ShowParameterList | ConversionFlags.ShowParameterNames | ConversionFlags.ShowReturnType | ConversionFlags.ShowBody | ConversionFlags.ShowTypeParameterList }; var documentationSignature = ambience.ConvertSymbol(entity); if (_wantDocumentation) { string documentation = new DocumentationFetcher().GetDocumentation(_project, entity, _config); var documentationAndSignature = documentationSignature + _config.TextEditorOptions.EolMarker + documentation; completionData = new CompletionData(_signature, _completionText, documentationAndSignature); } else { completionData = new CompletionData(_signature, _completionText, documentationSignature); } } return completionData; }
private void AddMethodHeader(CompletionData completionData, IMethod method) { var methodDefinition = method.MemberDefinition; if (_wantMethodHeader) { var snippetGenerator = new SnippetGenerator(false); completionData.MethodHeader = snippetGenerator.Generate(methodDefinition); } if (_wantSnippet) { var snippetGenerator = new SnippetGenerator(true); completionData.Snippet = snippetGenerator.Generate(methodDefinition); } if (_wantReturnType) { var returnTypeAmbience = new CSharpAmbience { ConversionFlags = ConversionFlags.ShowReturnType }; completionData.ReturnType = returnTypeAmbience.ConvertSymbol(method).Split(' ').First(); } }
private ICompletionData CompletionData(IEntity entity) { ICompletionData completionData = null; if (entity.Documentation != null) { completionData = new CompletionData(_signature, _completionText, _signature + Environment.NewLine + DocumentationConverter.ConvertDocumentation(entity.Documentation)); } else { IDocumentationProvider docProvider = null; if (entity.ParentAssembly.AssemblyName != null) { docProvider = XmlDocumentationProviderFactory.Get(entity.ParentAssembly.AssemblyName); } var ambience = new CSharpAmbience { ConversionFlags = ConversionFlags.ShowParameterList | ConversionFlags.ShowParameterNames | ConversionFlags.ShowReturnType | ConversionFlags.ShowBody | ConversionFlags.ShowTypeParameterList }; var documentationSignature = ambience.ConvertEntity(entity); if (docProvider != null) { DocumentationComment documentationComment = docProvider.GetDocumentation(entity); if (documentationComment != null) { var documentation = documentationSignature + Environment.NewLine + DocumentationConverter.ConvertDocumentation( documentationComment.Xml.Text); completionData = new CompletionData(_signature, _completionText, documentation); } else { completionData = new CompletionData(_signature, _completionText, documentationSignature); } } else { completionData = new CompletionData(_signature, _completionText, documentationSignature); } } return completionData; }
public IEnumerable<QuickFix> GetCurrentFileMembersAsFlatWithoutAccessModifiers(CurrentFileMembersRequest request) { var context = new BufferContext(request, this._parser); var result = new List<QuickFix>(); foreach (var item in context.ParsedContent.UnresolvedFile.TopLevelTypeDefinitions) { result.Add(new QuickFix() { FileName = item.Region.FileName , Line = item.Region.BeginLine , Column = item.Region.BeginColumn , EndLine = item.Region.EndLine , EndColumn = item.Region.EndColumn , Text = item.Name }); } var members = context.ParsedContent.UnresolvedFile.TopLevelTypeDefinitions .SelectMany(x => x.Members); foreach (var item in members) { var ambience = new CSharpAmbience(); ambience.ConversionFlags = ConversionFlags.ShowParameterList | ConversionFlags.ShowParameterNames; var memberTitle = ambience.ConvertSymbol(item.Resolve(context.ResolveContext)); var qf = new QuickFix() { FileName = item.Region.FileName , Line = item.Region.BeginLine , Column = item.Region.BeginColumn , EndLine = item.Region.EndLine , EndColumn = item.Region.EndColumn , Text = memberTitle }; result.Add(qf); } return result.OrderBy(x => x.Text); }