public string GetLengthProperty(Func <string, string> callback, string varName) { if (callback == null) { return("Count"); } string var = callback(varName); ITextEditorResolver textEditorResolver = CurrentContext.DocumentContext.GetContent <ITextEditorResolver> (); if (textEditorResolver != null) { var result = textEditorResolver.GetLanguageItem(CurrentContext.Editor.LocationToOffset(CurrentContext.InsertPosition), var); if (result != null) { var returnType = result.GetReturnType(); if (returnType != null && !returnType.IsReferenceType) { return("Length"); } } } return("Count"); }
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) { var result = textEditorResolver.GetLanguageItem(CurrentContext.Document.Editor.Caret.Offset, var); if (result != null) { var componentType = GetElementType(result.Type); if (componentType.Kind != TypeKind.Unknown) { var generator = CodeGenerator.CreateGenerator(CurrentContext.Document); if (generator != null) { return(generator.GetShortTypeString(CurrentContext.Document, componentType)); } } } } return("var"); }
static string ResolveType(string identifier, SourceLocation location) { Document doc = IdeApp.Workbench.GetDocument(location.FileName); if (doc != null) { ITextEditorResolver textEditorResolver = doc.GetContent <ITextEditorResolver> (); if (textEditorResolver != null) { var rr = textEditorResolver.GetLanguageItem(doc.Editor.LocationToOffset(location.Line, 1), identifier); var ns = rr as Microsoft.CodeAnalysis.INamespaceSymbol; if (ns != null) { return(ns.ToDisplayString(Microsoft.CodeAnalysis.SymbolDisplayFormat.CSharpErrorMessageFormat)); } var result = rr as Microsoft.CodeAnalysis.INamedTypeSymbol; if (result != null && !(result.TypeKind == Microsoft.CodeAnalysis.TypeKind.Dynamic && result.ToDisplayString(Microsoft.CodeAnalysis.SymbolDisplayFormat.CSharpErrorMessageFormat) == "dynamic")) { return(result.ToDisplayString(new Microsoft.CodeAnalysis.SymbolDisplayFormat( typeQualificationStyle: Microsoft.CodeAnalysis.SymbolDisplayTypeQualificationStyle.NameAndContainingTypesAndNamespaces, miscellaneousOptions: Microsoft.CodeAnalysis.SymbolDisplayMiscellaneousOptions.EscapeKeywordIdentifiers | Microsoft.CodeAnalysis.SymbolDisplayMiscellaneousOptions.UseSpecialTypes))); } } } return(null); }
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 static ResolveResult GetResolveResult(MonoDevelop.Ide.Gui.Document doc) { ITextEditorResolver textEditorResolver = doc.GetContent <ITextEditorResolver> (); if (textEditorResolver != null) { return(textEditorResolver.GetLanguageItem(doc.Editor.Caret.Offset)); } return(null); }
public string GetLengthProperty(Func <string, string> callback, string varName) { if (callback == null) { return("Count"); } string var = callback(varName); ITextEditorResolver textEditorResolver = CurrentContext.Document.GetContent <ITextEditorResolver> (); if (textEditorResolver != null) { ResolveResult result = textEditorResolver.GetLanguageItem(CurrentContext.Document.TextEditor.GetPositionFromLineColumn(CurrentContext.InsertPosition.Line, CurrentContext.InsertPosition.Column), var); if (result != null && (result.ResolvedType.ArrayDimensions > 0 || result.ResolvedType.FullName == DomReturnType.String.FullName)) { return("Length"); } } return("Count"); }
static string ResolveType(string identifier, SourceLocation location) { Document doc = IdeApp.Workbench.GetDocument(location.Filename); if (doc != null) { ITextEditorResolver textEditorResolver = doc.GetContent <ITextEditorResolver> (); if (textEditorResolver != null) { ResolveResult rr = textEditorResolver.GetLanguageItem(doc.Editor.Document.LocationToOffset(location.Line, 1), identifier); NamespaceResolveResult ns = rr as NamespaceResolveResult; if (ns != null) { return(ns.Namespace); } MemberResolveResult result = rr as MemberResolveResult; if (result != null && (result.ResolvedMember == null || result.ResolvedMember is IType) && result.ResolvedType != null) { return(result.ResolvedType.FullName); } } } return(null); }
static string ResolveType(string identifier, SourceLocation location) { Document doc = IdeApp.Workbench.GetDocument(location.FileName); if (doc != null) { ITextEditorResolver textEditorResolver = doc.GetContent <ITextEditorResolver> (); if (textEditorResolver != null) { var rr = textEditorResolver.GetLanguageItem(doc.Editor.Document.LocationToOffset(location.Line, 1), identifier); var ns = rr as NamespaceResolveResult; if (ns != null) { return(ns.NamespaceName); } var result = rr as TypeResolveResult; if (result != null && !result.IsError) { return(result.Type.FullName); } } } return(null); }