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);
					}
				}
			}
		}