diff --git a/CodeMaidShared/Logic/Cleaning/FileHeaderLogic.cs b/CodeMaidShared/Logic/Cleaning/FileHeaderLogic.cs index c9d19992..7af10031 100644 --- a/CodeMaidShared/Logic/Cleaning/FileHeaderLogic.cs +++ b/CodeMaidShared/Logic/Cleaning/FileHeaderLogic.cs @@ -93,20 +93,23 @@ private int GetHeaderLength(TextDocument textDocument, bool skipUsings) private string GetCurrentHeader(TextDocument textDocument, bool skipUsings) { - Microsoft.VisualStudio.Shell.ThreadHelper.ThrowIfNotOnUIThread(); + UIThread.Run(() => + { + ThreadHelper.ThrowIfNotOnUIThread(); - var currentHeaderLength = GetHeaderLength(textDocument, skipUsings); + var currentHeaderLength = GetHeaderLength(textDocument, skipUsings); - var headerBlockStart = textDocument.StartPoint.CreateEditPoint(); + var headerBlockStart = textDocument.StartPoint.CreateEditPoint(); - if (skipUsings) - { - var nbLinesToSkip = GetNbLinesToSkip(textDocument); + if (skipUsings) + { + var nbLinesToSkip = GetNbLinesToSkip(textDocument); - headerBlockStart.MoveToLineAndOffset(nbLinesToSkip + 1, 1); - } + headerBlockStart.MoveToLineAndOffset(nbLinesToSkip + 1, 1); + } - return headerBlockStart.GetText(currentHeaderLength + 1).Trim(); + return headerBlockStart.GetText(currentHeaderLength + 1).Trim(); + }); } private int GetNbLinesToSkip(TextDocument textDocument) @@ -141,39 +144,45 @@ private void InsertFileHeader(TextDocument textDocument, string settingsFileHead /// Only valid for languages containing "using" directive private void InsertFileHeaderAfterUsings(TextDocument textDocument, string settingsFileHeader) { - Microsoft.VisualStudio.Shell.ThreadHelper.ThrowIfNotOnUIThread(); + UIThread.Run(() => + { + ThreadHelper.ThrowIfNotOnUIThread(); - var currentHeader = GetCurrentHeader(textDocument, true).Trim(); + var currentHeader = GetCurrentHeader(textDocument, true).Trim(); - if (currentHeader.StartsWith(settingsFileHeader.Trim())) - { - return; - } + if (currentHeader.StartsWith(settingsFileHeader.Trim())) + { + return; + } - var headerBlockStart = textDocument.StartPoint.CreateEditPoint(); - var nbLinesToSkip = GetNbLinesToSkip(textDocument); + var headerBlockStart = textDocument.StartPoint.CreateEditPoint(); + var nbLinesToSkip = GetNbLinesToSkip(textDocument); - headerBlockStart.MoveToLineAndOffset(nbLinesToSkip + 1, 1); + headerBlockStart.MoveToLineAndOffset(nbLinesToSkip + 1, 1); - if (!settingsFileHeader.StartsWith(Environment.NewLine)) - { - settingsFileHeader = Environment.NewLine + settingsFileHeader; - } + if (!settingsFileHeader.StartsWith(Environment.NewLine)) + { + settingsFileHeader = Environment.NewLine + settingsFileHeader; + } - headerBlockStart.Insert(settingsFileHeader); + headerBlockStart.Insert(settingsFileHeader); + }); } private void InsertFileHeaderDocumentStart(TextDocument textDocument, string settingsFileHeader) { - Microsoft.VisualStudio.Shell.ThreadHelper.ThrowIfNotOnUIThread(); + UIThread.Run(() => + { + ThreadHelper.ThrowIfNotOnUIThread(); - var cursor = textDocument.StartPoint.CreateEditPoint(); - var existingFileHeader = cursor.GetText(settingsFileHeader.Length); + var cursor = textDocument.StartPoint.CreateEditPoint(); + var existingFileHeader = cursor.GetText(settingsFileHeader.Length); - if (!existingFileHeader.StartsWith(settingsFileHeader.Trim())) - { - cursor.Insert(settingsFileHeader); - } + if (!existingFileHeader.StartsWith(settingsFileHeader.Trim())) + { + cursor.Insert(settingsFileHeader); + } + }); } /// @@ -183,12 +192,15 @@ private void InsertFileHeaderDocumentStart(TextDocument textDocument, string set /// A string representing the first lines of the document private string ReadTextBlock(TextDocument textDocument) { - Microsoft.VisualStudio.Shell.ThreadHelper.ThrowIfNotOnUIThread(); + UIThread.Run(() => + { + ThreadHelper.ThrowIfNotOnUIThread(); - var maxNbLines = Math.Min(HeaderMaxNbLines, textDocument.EndPoint.Line); - var blockStart = textDocument.StartPoint.CreateEditPoint(); + var maxNbLines = Math.Min(HeaderMaxNbLines, textDocument.EndPoint.Line); + var blockStart = textDocument.StartPoint.CreateEditPoint(); - return blockStart.GetLines(1, maxNbLines); + return blockStart.GetLines(1, maxNbLines); + }); } private void ReplaceFileHeader(TextDocument textDocument, string settingsFileHeader) @@ -218,49 +230,55 @@ private void ReplaceFileHeader(TextDocument textDocument, string settingsFileHea /// Only valid for languages containing "using" directive private void ReplaceFileHeaderAfterUsings(TextDocument textDocument, string settingsFileHeader) { - Microsoft.VisualStudio.Shell.ThreadHelper.ThrowIfNotOnUIThread(); + UIThread.Run(() => + { + ThreadHelper.ThrowIfNotOnUIThread(); - var currentHeader = GetCurrentHeader(textDocument, true).Trim(); - var newHeader = settingsFileHeader.Trim(); + var currentHeader = GetCurrentHeader(textDocument, true).Trim(); + var newHeader = settingsFileHeader.Trim(); - if (string.Equals(currentHeader, newHeader)) - { - return; - } + if (string.Equals(currentHeader, newHeader)) + { + return; + } - var headerBlockStart = textDocument.StartPoint.CreateEditPoint(); - var nbLinesToSkip = GetNbLinesToSkip(textDocument); + var headerBlockStart = textDocument.StartPoint.CreateEditPoint(); + var nbLinesToSkip = GetNbLinesToSkip(textDocument); - headerBlockStart.MoveToLineAndOffset(nbLinesToSkip + 1, 1); + headerBlockStart.MoveToLineAndOffset(nbLinesToSkip + 1, 1); - var currentHeaderLength = GetHeaderLength(textDocument, true); + var currentHeaderLength = GetHeaderLength(textDocument, true); - if (!settingsFileHeader.StartsWith(Environment.NewLine)) - { - settingsFileHeader = Environment.NewLine + settingsFileHeader; - } + if (!settingsFileHeader.StartsWith(Environment.NewLine)) + { + settingsFileHeader = Environment.NewLine + settingsFileHeader; + } - headerBlockStart.ReplaceText(currentHeaderLength, settingsFileHeader, (int)vsEPReplaceTextOptions.vsEPReplaceTextKeepMarkers); + headerBlockStart.ReplaceText(currentHeaderLength, settingsFileHeader, (int)vsEPReplaceTextOptions.vsEPReplaceTextKeepMarkers); + }); } private void ReplaceFileHeaderDocumentStart(TextDocument textDocument, string settingsFileHeader) { - Microsoft.VisualStudio.Shell.ThreadHelper.ThrowIfNotOnUIThread(); + UIThread.Run(() => + { + ThreadHelper.ThrowIfNotOnUIThread(); - var currentHeader = GetCurrentHeader(textDocument, false).Trim(); - var newHeader = settingsFileHeader.Trim(); + var currentHeader = GetCurrentHeader(textDocument, false).Trim(); + var newHeader = settingsFileHeader.Trim(); - if (string.Equals(currentHeader, newHeader)) - { - return; - } + if (string.Equals(currentHeader, newHeader)) + { + return; + } - var headerBlockStart = textDocument.StartPoint.CreateEditPoint(); - var currentHeaderLength = GetHeaderLength(textDocument, false); + var headerBlockStart = textDocument.StartPoint.CreateEditPoint(); + var currentHeaderLength = GetHeaderLength(textDocument, false); - headerBlockStart.ReplaceText(currentHeaderLength, settingsFileHeader, (int)vsEPReplaceTextOptions.vsEPReplaceTextKeepMarkers); + headerBlockStart.ReplaceText(currentHeaderLength, settingsFileHeader, (int)vsEPReplaceTextOptions.vsEPReplaceTextKeepMarkers); + }); } #endregion Methods } -} \ No newline at end of file +}