public override void Run() { SortOptionsDialog dlg = new SortOptionsDialog(); dlg.Owner = SD.Workbench.MainWindow; if (dlg.ShowDialog() == true) { StringComparer comparer = SortOptions.CaseSensitive ? StringComparer.CurrentCulture : StringComparer.CurrentCultureIgnoreCase; if (SortOptions.IgnoreTrailingWhitespaces) { comparer = new IgnoreTrailingWhitespaceComparer(comparer); } if (SortOptions.SortDirection == SortDirection.Descending) { comparer = new DescendingStringComparer(comparer); } ITextEditor editor = SD.GetActiveViewContentService <ITextEditor>(); if (editor != null) { if (editor.SelectionLength > 0) { int start = editor.Document.GetLineByOffset(editor.SelectionStart).LineNumber; int end = editor.Document.GetLineByOffset(editor.SelectionStart + editor.SelectionLength).LineNumber; SortLines(editor.Document, start, end, comparer, SortOptions.RemoveDuplicates); } else { SortLines(editor.Document, 1, editor.Document.LineCount, comparer, SortOptions.RemoveDuplicates); } } } }
public override void Run() { SortOptionsDialog dlg = new SortOptionsDialog(); dlg.Owner = SD.Workbench.MainWindow; if (dlg.ShowDialog() == true) { StringComparer comparer = SortOptions.CaseSensitive ? StringComparer.CurrentCulture : StringComparer.CurrentCultureIgnoreCase; if (SortOptions.IgnoreTrailingWhitespaces) comparer = new IgnoreTrailingWhitespaceComparer(comparer); if (SortOptions.SortDirection == SortDirection.Descending) comparer = new DescendingStringComparer(comparer); ITextEditor editor = SD.GetActiveViewContentService<ITextEditor>(); if (editor != null) { if (editor.SelectionLength > 0) { int start = editor.Document.GetLineByOffset(editor.SelectionStart).LineNumber; int end = editor.Document.GetLineByOffset(editor.SelectionStart + editor.SelectionLength).LineNumber; SortLines(editor.Document, start, end, comparer, SortOptions.RemoveDuplicates); } else { SortLines(editor.Document, 1, editor.Document.LineCount, comparer, SortOptions.RemoveDuplicates); } } } }