示例#1
0
 public Rewriter(MyWalker walker, ProjectItemDetailsType projectItemDetails, ICleanupOption options) : base(options)
 {
     this.walker             = walker;
     this.projectItemDetails = projectItemDetails;
     semanticModel           = projectItemDetails.SemanticModel;
     WorkingDocument         = projectItemDetails.ProjectItemDocument;
 }
        protected virtual async Task RunAsync(ProjectItem item)
        {
            ProjectItemDetails = new ProjectItemDetailsType(item);

            if (IsReportOnlyMode)
            {
                await RefreshResultAsync(item.ToSyntaxNode());
            }

            UNModifiedProjectItemDetails = ProjectItemDetails;

            var initialSourceNode = CleanUpAsync(ProjectItemDetails.InitialSourceNode);

            if (!IsReportOnlyMode)
            {
                try
                {
                    var result = await initialSourceNode;
                    await SaveResultAsync(result);
                }
                catch (Exception ex)
                {
                    ErrorNotification.WriteErrorToFile(ex);
                }
            }
        }
        protected virtual SyntaxNode RefreshResult(SyntaxNode initialSourceNode)
        {
            var newDocument = ProjectItemDetails.ProjectItemDocument.WithSyntaxRoot(initialSourceNode);

            TidyCSharpPackage.Instance.RefreshSolution(newDocument.Project.Solution);
            ProjectItemDetails = new ProjectItemDetailsType(ProjectItemDetails.ProjectItem);
            return(ProjectItemDetails.InitialSourceNode);
        }
        protected virtual void AsyncRun(ProjectItem item)
        {
            ProjectItemDetails = new ProjectItemDetailsType(item);

            var initialSourceNode = CleanUp(ProjectItemDetails.InitialSourceNode);

            SaveResult(initialSourceNode);
        }
        protected async virtual Task <SyntaxNode> RefreshResultAsync(SyntaxNode initialSourceNode)
        {
            if (UNModifiedProjectItemDetails != null && UNModifiedProjectItemDetails.InitialSourceNode.ToFullString().Replace("\r", "")
                .Equals(initialSourceNode.ToFullString().Replace("\r", "")))
            {
                ProjectItemDetails = new ProjectItemDetailsType(ProjectItemDetails.ProjectItem);
                return(ProjectItemDetails.InitialSourceNode);
            }

            if (ProjectItemDetails.ProjectItemDocument != null)
            {
                var newDocument = ProjectItemDetails.ProjectItemDocument.WithSyntaxRoot(initialSourceNode);
                await TidyCSharpPackage.Instance.RefreshSolutionAsync(newDocument.Project.Solution);
            }

            ProjectItemDetails = new ProjectItemDetailsType(ProjectItemDetails.ProjectItem);
            return(ProjectItemDetails.InitialSourceNode);
        }
示例#6
0
 public MyWalker(ProjectItemDetailsType projectItemDetails, ICleanupOption options)
 {
     this.projectItemDetails = projectItemDetails;
     semanticModel           = projectItemDetails.SemanticModel;
 }
 public Rewriter(ProjectItemDetailsType projectItemDetails, ICleanupOption options) : base(options)
 {
     this.projectItemDetails = projectItemDetails;
 }
        public static SyntaxNode SimplifyVariableDeclarationsHelper(ProjectItemDetailsType projectItemDetails, ICleanupOption options)
        {
            var initialSourceNode = new Rewriter(projectItemDetails, options).Visit(projectItemDetails.InitialSourceNode);

            return(initialSourceNode);
        }
 public Rewriter(ProjectItemDetailsType projectItemDetails, ICleanupOption options) : base(options)
 {
     semanticModel = projectItemDetails.SemanticModel;
 }
示例#10
0
 public Rewriter(ProjectItemDetailsType projectItemDetails)
 {
     semanticModel = projectItemDetails.SemanticModel;
 }
示例#11
0
 public Rewriter(ProjectItemDetailsType projectItemDetails, bool isReportOnlyMode, ICleanupOption options)
     : base(isReportOnlyMode, options)
 {
     semanticModel = projectItemDetails.SemanticModel;
 }