protected override void AddCodeMarkers(FileModel fileModel) { Dictionary <IMemberDeclaration, List <IVariableDeclaration> > variableDeclarations = new Dictionary <IMemberDeclaration, List <IVariableDeclaration> >(); foreach (IVariableDeclaration variable in fileModel.All <IVariableDeclaration>().Where(v => v.ExistsTextuallyInFile)) { IMemberDeclaration member = variable.EnclosingMember(); if (member.ExistsTextuallyInFile) { if (!variableDeclarations.ContainsKey(member)) { variableDeclarations[member] = new List <IVariableDeclaration>(); } variableDeclarations[member].Add(variable); } } foreach (KeyValuePair <IMemberDeclaration, List <IVariableDeclaration> > pair in variableDeclarations) { if (pair.Value.Count > 64) { pair.Key.AddCodeMarker(CodeMarkerId, this); } } }
public override void Execute(SolutionModel solutionModel, SelectionContext context) { FileModel fileModel; CodeSpan selection; if (!solutionModel.IsEditorSelection(context, out fileModel, out selection)) { return; } IMemberDeclaration memberDeclaration = fileModel.InnerMost <IMemberDeclaration>(selection); if (memberDeclaration.ExistsTextuallyInFile && !memberDeclaration.Identifier.CodeSpan.Intersects(selection)) { memberDeclaration.Identifier.Select(); } else { ITypeDeclaration typeDeclaration = fileModel.InnerMost <ITypeDeclaration>(selection); if (typeDeclaration.ExistsTextuallyInFile) { NavigateToTypeDeclaration(typeDeclaration, selection); } } }
protected string GetContextString() { IMemberDeclaration imd = FindAncestor <IMemberDeclaration>(); if (imd == null) { return(""); } return(imd.ToString()); }
private bool AreAllEnclosingClassesPublic(IMemberDeclaration memberDeclaration) { IClassDeclaration enclosingTypeDeclaration = memberDeclaration.EnclosingClass; bool isEnclosingClassPublic = enclosingTypeDeclaration.IsPublic(); while (isEnclosingClassPublic && enclosingTypeDeclaration.EnclosingClass.Exists) { enclosingTypeDeclaration = enclosingTypeDeclaration.EnclosingClass; isEnclosingClassPublic = enclosingTypeDeclaration.IsPublic(); } return isEnclosingClassPublic; }
private bool AreAllEnclosingClassesPublic(IMemberDeclaration memberDeclaration) { IClassDeclaration enclosingTypeDeclaration = memberDeclaration.EnclosingClass; bool isEnclosingClassPublic = enclosingTypeDeclaration.IsPublic(); while (isEnclosingClassPublic && enclosingTypeDeclaration.EnclosingClass.Exists) { enclosingTypeDeclaration = enclosingTypeDeclaration.EnclosingClass; isEnclosingClassPublic = enclosingTypeDeclaration.IsPublic(); } return(isEnclosingClassPublic); }
public override bool CanExecute(SolutionModel solutionModel, SelectionContext context) { FileModel fileModel; CodeSpan selection; if (!solutionModel.IsEditorSelection(context, out fileModel, out selection)) { return(false); } IMemberDeclaration member = fileModel.InnerMost <IMemberDeclaration>(selection); return(member.ExistsTextuallyInFile && member.Identifier.CodeSpan.Intersects(selection)); }
private IAssembly GetCurrentAssembly() { IAssembly assembly = this.assemblyBrowser.ActiveItem as IAssembly; if (assembly != null) { return(assembly); } IModule module = this.assemblyBrowser.ActiveItem as IModule; if (module != null) { return(module.Assembly); } ITypeReference typeReference = this.assemblyBrowser.ActiveItem as ITypeReference; if (typeReference != null) { IModule declaringModule = GetModule(typeReference); if (declaringModule != null) { return(declaringModule.Assembly); } } IMemberDeclaration memberDeclaration = this.assemblyBrowser.ActiveItem as IMemberDeclaration; if (memberDeclaration != null) { ITypeReference declaringType = memberDeclaration.DeclaringType as ITypeReference; if (declaringType != null) { IModule declaringModule = GetModule(declaringType); if (declaringModule != null) { return(declaringModule.Assembly); } } } return(null); }
public override void Execute(SolutionModel solutionModel, SelectionContext context) { FileModel fileModel; CodeSpan selection; if (!solutionModel.IsEditorSelection(context, out fileModel, out selection)) { return; } IMemberDeclaration memberDeclaration = fileModel.InnerMost <IMemberDeclaration>(selection); if (memberDeclaration.ExistsTextuallyInFile) { IMemberDeclaration nextMember = memberDeclaration.NextMember(); if (nextMember.ExistsTextuallyInFile) { nextMember.Identifier.NavigateTo(); } } }
private IExpression ConvertExternalVariableExpr(IMemberDeclaration externalDecl, string name, IType type) { foreach (var paramDecl in parameters) { if (paramDecl.Name == name && paramDecl.ParameterType.Equals(type)) { return(Builder.ParamRef(paramDecl)); } } IVariableDeclaration varDecl; if (conversions.TryGetValue(externalDecl, out varDecl)) { return(Builder.VarRefExpr(Builder.VarRef(varDecl))); } varDecl = Builder.VarDecl(name, type); conversions[externalDecl] = varDecl; context.AddStatementBeforeCurrent(Builder.ExprStatement(Builder.VarDeclExpr(varDecl))); return(Builder.VarRefExpr(Builder.VarRef(varDecl))); }
public override bool CanExecute(SolutionModel solutionModel, SelectionContext context) { FileModel fileModel; CodeSpan selection; if (!solutionModel.IsEditorSelection(context, out fileModel, out selection)) { return(false); } IMemberDeclaration memberDeclaration = fileModel.InnerMost <IMemberDeclaration>(selection); if (memberDeclaration.ExistsTextuallyInFile && !memberDeclaration.Identifier.CodeSpan.Intersects(selection)) { return(memberDeclaration.Is <IMethodDeclaration>() || memberDeclaration.Is <IPropertyDeclaration>() || memberDeclaration.Is <IConstructorDeclaration>() || memberDeclaration.Is <IStaticConstructorDeclaration>()); } else { return(fileModel.InnerMost <ITypeDeclaration>(selection).ExistsTextuallyInFile); } }
public static IMemberDeclaration PreviousMember(this IMemberDeclaration declaration) { return(declaration.EnclosingClass.ContainedMembers().Where(x => x.CodeSpan.StartLocation < declaration.CodeSpan.StartLocation).Last()); }
private void GenerateDocumentation(IMemberDeclaration memberDeclaration) { DocCommentInfo documentation = DocCommentFactory.GenerateDocCommentInfo(memberDeclaration); memberDeclaration.DocComment = memberDeclaration.Language.DocComment(documentation.ToString()); }
public static IObjExpr GetByMember(IMemberDeclaration param) => GetByMemberDeclaration(param) ?? GetByInterfaceMember(param);
public static IMemberDeclaration NextMember(this IMemberDeclaration declaration) { return(declaration.EnclosingClass.ContainedMembers().Where(x => x.IdentifierCodeSpan().StartLocation > declaration.IdentifierCodeSpan().StartLocation).First()); }
public virtual void CloseMember(IMemberDeclaration imd) { Close(imd); CloseOutput(imd); }
public virtual void AddMember(IMemberDeclaration imd) { AddOutput(imd); }
public virtual void OpenMember(IMemberDeclaration imd) { Open(imd); OpenOutput(); }
public override void VisitMemberDeclaration(IMemberDeclaration decl) { Builder.AddDeclaredMemberName(decl.CompiledName); }
protected override void InitializeForCodeGeneration() { base.InitializeForCodeGeneration(); NodeType = NodeType.None; Instance = default(Formula); Member = default(IMemberDeclaration); }