From 74d4525787ce1498524b70fa1bf1f68184453e72 Mon Sep 17 00:00:00 2001 From: Bela VanderVoort Date: Fri, 22 Dec 2023 12:19:17 -0600 Subject: [PATCH] Fix for NRE in VS (#1087) * Fix for NRE in VS * formatting --- .../source.extension.vsixmanifest | 2 +- .../source.extension.vsixmanifest | 2 +- .../FormattingService.cs | 6 ++---- .../CSharpier.VisualStudioShared/InfoBarService.cs | 7 ++++++- .../ReformatWithCSharpierOnSave.cs | 13 +++++-------- Src/CSharpier.VisualStudio/ChangeLog.md | 5 ++++- 6 files changed, 19 insertions(+), 16 deletions(-) diff --git a/Src/CSharpier.VisualStudio/CSharpier.VisualStudio/source.extension.vsixmanifest b/Src/CSharpier.VisualStudio/CSharpier.VisualStudio/source.extension.vsixmanifest index 315db38fe..39effc986 100644 --- a/Src/CSharpier.VisualStudio/CSharpier.VisualStudio/source.extension.vsixmanifest +++ b/Src/CSharpier.VisualStudio/CSharpier.VisualStudio/source.extension.vsixmanifest @@ -1,7 +1,7 @@ - + CSharpier CSharpier is an opinionated code formatter for c#. It uses Roslyn to parse your code and re-prints it using its own rules. https://github.com/belav/csharpier diff --git a/Src/CSharpier.VisualStudio/CSharpier.VisualStudio2019/source.extension.vsixmanifest b/Src/CSharpier.VisualStudio/CSharpier.VisualStudio2019/source.extension.vsixmanifest index 457782265..082c7ac76 100644 --- a/Src/CSharpier.VisualStudio/CSharpier.VisualStudio2019/source.extension.vsixmanifest +++ b/Src/CSharpier.VisualStudio/CSharpier.VisualStudio2019/source.extension.vsixmanifest @@ -1,7 +1,7 @@ - + CSharpier 2019 CSharpier is an opinionated code formatter for c#. It uses Roslyn to parse your code and re-prints it using its own rules. https://github.com/belav/csharpier diff --git a/Src/CSharpier.VisualStudio/CSharpier.VisualStudioShared/FormattingService.cs b/Src/CSharpier.VisualStudio/CSharpier.VisualStudioShared/FormattingService.cs index dbc532d9f..f1483d013 100644 --- a/Src/CSharpier.VisualStudio/CSharpier.VisualStudioShared/FormattingService.cs +++ b/Src/CSharpier.VisualStudio/CSharpier.VisualStudioShared/FormattingService.cs @@ -78,9 +78,7 @@ public void Format(Document document) } public bool ProcessSupportsFormatting(Document document) => - !( - this.cSharpierProcessProvider.GetProcessFor(document.FullName) - is NullCSharpierProcess - ); + this.cSharpierProcessProvider.GetProcessFor(document.FullName) + is not NullCSharpierProcess; } } diff --git a/Src/CSharpier.VisualStudio/CSharpier.VisualStudioShared/InfoBarService.cs b/Src/CSharpier.VisualStudio/CSharpier.VisualStudioShared/InfoBarService.cs index 904b19547..37d2727e9 100644 --- a/Src/CSharpier.VisualStudio/CSharpier.VisualStudioShared/InfoBarService.cs +++ b/Src/CSharpier.VisualStudio/CSharpier.VisualStudioShared/InfoBarService.cs @@ -74,7 +74,12 @@ public void ShowInfoBar(string message, IEnumerable? button } var actions = (buttons ?? Enumerable.Empty()) - .Select(o => o.IsHyperLink ? new InfoBarHyperlink(o.Text, o.Context) as InfoBarActionItem : new InfoBarButton(o.Text, o.Context)) + .Select( + o => + o.IsHyperLink + ? new InfoBarHyperlink(o.Text, o.Context) as InfoBarActionItem + : new InfoBarButton(o.Text, o.Context) + ) .ToArray(); var infoBarModel = new InfoBarModel( spans, diff --git a/Src/CSharpier.VisualStudio/CSharpier.VisualStudioShared/ReformatWithCSharpierOnSave.cs b/Src/CSharpier.VisualStudio/CSharpier.VisualStudioShared/ReformatWithCSharpierOnSave.cs index 6912bb47f..87647ffd1 100644 --- a/Src/CSharpier.VisualStudio/CSharpier.VisualStudioShared/ReformatWithCSharpierOnSave.cs +++ b/Src/CSharpier.VisualStudio/CSharpier.VisualStudioShared/ReformatWithCSharpierOnSave.cs @@ -28,7 +28,7 @@ public static async Task InitializeAsync(CSharpierPackage package) { await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); var dte = await package.GetServiceAsync(typeof(DTE)) as DTE; - new ReformatWithCSharpierOnSave(package, dte!); + _ = new ReformatWithCSharpierOnSave(package, dte!); } public int OnBeforeSave(uint docCookie) @@ -73,7 +73,7 @@ public int OnBeforeDocumentWindowShow(uint docCookie, int fFirstShow, IVsWindowF return VSConstants.S_OK; } - private Document FindDocument(uint docCookie) + private Document? FindDocument(uint docCookie) { try { @@ -81,12 +81,9 @@ private Document FindDocument(uint docCookie) var documentInfo = this.runningDocumentTable.GetDocumentInfo(docCookie); var documentPath = documentInfo.Moniker; - if (this.dte.ActiveDocument.FullName == documentPath) - { - return this.dte.ActiveDocument; - } - - return this.dte.Documents.Item(documentPath); + return this.dte.ActiveDocument?.FullName == documentPath + ? this.dte.ActiveDocument + : this.dte.Documents?.Item(documentPath); } catch (Exception ex) { diff --git a/Src/CSharpier.VisualStudio/ChangeLog.md b/Src/CSharpier.VisualStudio/ChangeLog.md index 9584a3c6e..07f80f9cb 100644 --- a/Src/CSharpier.VisualStudio/ChangeLog.md +++ b/Src/CSharpier.VisualStudio/ChangeLog.md @@ -1,4 +1,7 @@ -## [1.5.0] +## [1.5.1] +- Fix for occasional NRE + +## [1.5.0] - Fix issues with using 0.26.X - Better error handling and logging