Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions OPTIONS.md
Original file line number Diff line number Diff line change
Expand Up @@ -265,6 +265,13 @@ These keys are also stored in `QuickLook.config`.

## QuickLook.Plugin.TextViewer.config options

### `<ShowLineNumbers>`
- Default: `True`
- Type: `Boolean`
- Description: Show line numbers in text previews. Toggle **Show line numbers** in the **…** menu when previewing a TXT file; the choice is saved for subsequent previews and application restarts.
- Example:
- `<ShowLineNumbers>False</ShowLineNumbers>` to hide line numbers.

### `<UseFormatDetector>`
- Default: `True`
- Type: `Boolean`
Expand Down
22 changes: 22 additions & 0 deletions QuickLook.Plugin/QuickLook.Plugin.TextViewer/Plugin.MoreMenu.cs
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@
using System.Collections.Generic;
using System.IO;
using System.Reflection;
using System.Windows;
using System.Windows.Controls;

namespace QuickLook.Plugin.TextViewer;

Expand All @@ -42,6 +44,26 @@ public IEnumerable<IMenuItem> GetMenuItems()
{
}

if (extension == ".txt" && _tvp is { } viewer)
{
var checkMark = new TextBlock
{
Text = "✓",
Visibility = viewer.ShowLineNumbers ? Visibility.Visible : Visibility.Hidden,
};
yield return new MoreMenuItem
{
Header = TranslationHelper.Get("Editor_ShowLineNumbers", translationFile),
Icon = checkMark,
Command = new RelayCommand(() =>
{
if (!ReferenceEquals(_tvp, viewer)) return;
viewer.ToggleLineNumbers();
checkMark.Visibility = viewer.ShowLineNumbers ? Visibility.Visible : Visibility.Hidden;
}),
};
}

var reopen = extension switch
{
// HTML <=> HTML TEXT
Expand Down
23 changes: 18 additions & 5 deletions QuickLook.Plugin/QuickLook.Plugin.TextViewer/TextViewerPanel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,8 @@ static TextViewerPanel()

public TextViewerPanel()
{
ShowLineNumbers = true;
ShowLineNumbers = SettingHelper.Get("ShowLineNumbers", true, "QuickLook.Plugin.TextViewer");
UpdateTextPadding();
WordWrap = true;
IsReadOnly = true;

Expand All @@ -89,10 +90,7 @@ public TextViewerPanel()
// The default LineNumberMargin in AvalonEdit often contains a thin Line element
// used as a visual separator between line numbers and the text.
// If found, set its Stroke to Transparent to hide the separator visually.
TextArea.LeftMargins
.OfType<System.Windows.Shapes.Line>()
.FirstOrDefault()
?.Stroke = Brushes.Transparent;
TextArea.LeftMargins.OfType<System.Windows.Shapes.Line>().FirstOrDefault()?.Stroke = Brushes.Transparent;

ContextMenu = new ContextMenu();
// Add "Copy" menu item.
Expand Down Expand Up @@ -131,6 +129,21 @@ public TextViewerPanel()
SearchPanel.Install(this);
}

public void ToggleLineNumbers()
{
if (_disposed) return;
ShowLineNumbers = !ShowLineNumbers;
UpdateTextPadding();
// AvalonEdit recreates the separator when numbers are enabled again.
TextArea.LeftMargins.OfType<System.Windows.Shapes.Line>().FirstOrDefault()?.Stroke = Brushes.Transparent;
SettingHelper.Set("ShowLineNumbers", ShowLineNumbers, "QuickLook.Plugin.TextViewer");
}

private void UpdateTextPadding()
{
Padding = new Thickness(ShowLineNumbers ? 0 : 6, 0, 0, 0);
}

public void Dispose()
{
_disposed = true;
Expand Down
29 changes: 29 additions & 0 deletions QuickLook.Plugin/QuickLook.Plugin.TextViewer/Translations.config
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

<Translations>
<ar>
<Editor_ShowLineNumbers>إظهار أرقام الأسطر</Editor_ShowLineNumbers>
<Editor_FontFamily>Consolas</Editor_FontFamily>
<Editor_Copy>انسخ</Editor_Copy>
<Editor_SelectAll>حدد الكل</Editor_SelectAll>
Expand All @@ -10,6 +11,7 @@
<MW_ReopenAsCsvPreview>إعادة فتح كمعاينة CSV</MW_ReopenAsCsvPreview>
</ar>
<ca>
<Editor_ShowLineNumbers>Mostra els números de línia</Editor_ShowLineNumbers>
<Editor_FontFamily>Consolas</Editor_FontFamily>
<Editor_Copy>Copia</Editor_Copy>
<Editor_SelectAll>Selecciona-ho tot</Editor_SelectAll>
Expand All @@ -18,6 +20,7 @@
<MW_ReopenAsCsvPreview>Torna a obrir com a previsualització CSV</MW_ReopenAsCsvPreview>
</ca>
<de>
<Editor_ShowLineNumbers>Zeilennummern anzeigen</Editor_ShowLineNumbers>
<Editor_FontFamily>Consolas</Editor_FontFamily>
<Editor_Copy>Kopieren</Editor_Copy>
<Editor_SelectAll>Alles markieren</Editor_SelectAll>
Expand All @@ -26,6 +29,7 @@
<MW_ReopenAsCsvPreview>Als CSV-Vorschau erneut öffnen</MW_ReopenAsCsvPreview>
</de>
<en>
<Editor_ShowLineNumbers>Show line numbers</Editor_ShowLineNumbers>
<Editor_FontFamily>Consolas</Editor_FontFamily>
<Editor_Copy>Copy</Editor_Copy>
<Editor_SelectAll>Select All</Editor_SelectAll>
Expand All @@ -34,6 +38,7 @@
<MW_ReopenAsCsvPreview>Reopen as CSV preview</MW_ReopenAsCsvPreview>
</en>
<es>
<Editor_ShowLineNumbers>Mostrar números de línea</Editor_ShowLineNumbers>
<Editor_FontFamily>Consolas</Editor_FontFamily>
<Editor_Copy>Copiar</Editor_Copy>
<Editor_SelectAll>Seleccionar Todo</Editor_SelectAll>
Expand All @@ -42,6 +47,7 @@
<MW_ReopenAsCsvPreview>Reabrir como vista previa CSV</MW_ReopenAsCsvPreview>
</es>
<fr>
<Editor_ShowLineNumbers>Afficher les numéros de ligne</Editor_ShowLineNumbers>
<Editor_FontFamily>Consolas</Editor_FontFamily>
<Editor_Copy>Copie</Editor_Copy>
<Editor_SelectAll>Tout sélectionner</Editor_SelectAll>
Expand All @@ -50,6 +56,7 @@
<MW_ReopenAsCsvPreview>Rouvrir en aperçu CSV</MW_ReopenAsCsvPreview>
</fr>
<it>
<Editor_ShowLineNumbers>Mostra numeri di riga</Editor_ShowLineNumbers>
<Editor_FontFamily>Consolas</Editor_FontFamily>
<Editor_Copy>Copia</Editor_Copy>
<Editor_SelectAll>Seleziona tutto</Editor_SelectAll>
Expand All @@ -58,6 +65,7 @@
<MW_ReopenAsCsvPreview>Riapri come anteprima CSV</MW_ReopenAsCsvPreview>
</it>
<ja-JP>
<Editor_ShowLineNumbers>行番号を表示</Editor_ShowLineNumbers>
<Editor_FontFamily>Consolas,Meiryo UI,MS UI Gothic,MS Gothic</Editor_FontFamily>
<Editor_Copy>コピー</Editor_Copy>
<Editor_SelectAll>すべて選択</Editor_SelectAll>
Expand All @@ -66,6 +74,7 @@
<MW_ReopenAsCsvPreview>CSV プレビューとして再度開く</MW_ReopenAsCsvPreview>
</ja-JP>
<ko>
<Editor_ShowLineNumbers>줄 번호 표시</Editor_ShowLineNumbers>
<Editor_FontFamily>Consolas,Malgun Gothic,Gulim</Editor_FontFamily>
<Editor_Copy>복사</Editor_Copy>
<Editor_SelectAll>모두 선택</Editor_SelectAll>
Expand All @@ -74,6 +83,7 @@
<MW_ReopenAsCsvPreview>CSV 미리보기로 다시 열기</MW_ReopenAsCsvPreview>
</ko>
<nb-NO>
<Editor_ShowLineNumbers>Vis linjenumre</Editor_ShowLineNumbers>
<Editor_FontFamily>Consolas</Editor_FontFamily>
<Editor_Copy>Kopier</Editor_Copy>
<Editor_SelectAll>Merk alt</Editor_SelectAll>
Expand All @@ -82,6 +92,7 @@
<MW_ReopenAsCsvPreview>Åpne på nytt som CSV-forhåndsvisning</MW_ReopenAsCsvPreview>
</nb-NO>
<nl-NL>
<Editor_ShowLineNumbers>Regelnummers weergeven</Editor_ShowLineNumbers>
<Editor_FontFamily>Consolas</Editor_FontFamily>
<Editor_Copy>Kopiëren</Editor_Copy>
<Editor_SelectAll>Alles selecteren</Editor_SelectAll>
Expand All @@ -90,6 +101,7 @@
<MW_ReopenAsCsvPreview>Opnieuw openen als CSV-voorbeeld</MW_ReopenAsCsvPreview>
</nl-NL>
<pl>
<Editor_ShowLineNumbers>Pokaż numery wierszy</Editor_ShowLineNumbers>
<Editor_FontFamily>Consolas</Editor_FontFamily>
<Editor_Copy>Kopiuj</Editor_Copy>
<Editor_SelectAll>Zaznacz wszystko</Editor_SelectAll>
Expand All @@ -98,6 +110,7 @@
<MW_ReopenAsCsvPreview>Otwórz ponownie jako podgląd CSV</MW_ReopenAsCsvPreview>
</pl>
<pt-BR>
<Editor_ShowLineNumbers>Mostrar números de linha</Editor_ShowLineNumbers>
<Editor_FontFamily>Consolas</Editor_FontFamily>
<Editor_Copy>Copiar</Editor_Copy>
<Editor_SelectAll>Selecionar tudo</Editor_SelectAll>
Expand All @@ -106,6 +119,7 @@
<MW_ReopenAsCsvPreview>Reabrir como visualização CSV</MW_ReopenAsCsvPreview>
</pt-BR>
<pt-PT>
<Editor_ShowLineNumbers>Mostrar números de linha</Editor_ShowLineNumbers>
<Editor_FontFamily>Consolas</Editor_FontFamily>
<Editor_Copy>Copiar</Editor_Copy>
<Editor_SelectAll>Selecionar tudo</Editor_SelectAll>
Expand All @@ -114,6 +128,7 @@
<MW_ReopenAsCsvPreview>Reabrir como pré-visualização CSV</MW_ReopenAsCsvPreview>
</pt-PT>
<ro>
<Editor_ShowLineNumbers>Afișează numerele liniilor</Editor_ShowLineNumbers>
<Editor_FontFamily>Consolas</Editor_FontFamily>
<Editor_Copy>Copiere</Editor_Copy>
<Editor_SelectAll>Selectați tot</Editor_SelectAll>
Expand All @@ -122,6 +137,7 @@
<MW_ReopenAsCsvPreview>Redeschideți ca previzualizare CSV</MW_ReopenAsCsvPreview>
</ro>
<ru-RU>
<Editor_ShowLineNumbers>Отображать номера строк</Editor_ShowLineNumbers>
<Editor_FontFamily>Consolas</Editor_FontFamily>
<Editor_Copy>Копировать</Editor_Copy>
<Editor_SelectAll>Выделить всё</Editor_SelectAll>
Expand All @@ -130,6 +146,7 @@
<MW_ReopenAsCsvPreview>Переоткрыть как предварительный просмотр CSV</MW_ReopenAsCsvPreview>
</ru-RU>
<tr-TR>
<Editor_ShowLineNumbers>Satır numaralarını göster</Editor_ShowLineNumbers>
<Editor_FontFamily>Consolas</Editor_FontFamily>
<Editor_Copy>Kopyala</Editor_Copy>
<Editor_SelectAll>Tümünü seç</Editor_SelectAll>
Expand All @@ -138,6 +155,7 @@
<MW_ReopenAsCsvPreview>CSV önizlemesi olarak yeniden aç</MW_ReopenAsCsvPreview>
</tr-TR>
<uk-UA>
<Editor_ShowLineNumbers>Показувати номери рядків</Editor_ShowLineNumbers>
<Editor_FontFamily>Consolas</Editor_FontFamily>
<Editor_Copy>Копіювати</Editor_Copy>
<Editor_SelectAll>Виділити Все</Editor_SelectAll>
Expand All @@ -146,6 +164,7 @@
<MW_ReopenAsCsvPreview>Перевідкрити як попередній перегляд CSV</MW_ReopenAsCsvPreview>
</uk-UA>
<vi>
<Editor_ShowLineNumbers>Hiển thị số dòng</Editor_ShowLineNumbers>
<Editor_FontFamily>Consolas</Editor_FontFamily>
<Editor_Copy>Sao chép</Editor_Copy>
<Editor_SelectAll>Chọn tất cả</Editor_SelectAll>
Expand All @@ -154,6 +173,7 @@
<MW_ReopenAsCsvPreview>Mở lại dưới dạng xem trước CSV</MW_ReopenAsCsvPreview>
</vi>
<zh-CN>
<Editor_ShowLineNumbers>显示行号</Editor_ShowLineNumbers>
<Editor_FontFamily>Consolas,Microsoft Yahei UI,Microsoft Yahei,SimSun</Editor_FontFamily>
<Editor_Copy>复制</Editor_Copy>
<Editor_SelectAll>全选</Editor_SelectAll>
Expand All @@ -162,62 +182,71 @@
<MW_ReopenAsCsvPreview>重新作为 CSV 预览打开</MW_ReopenAsCsvPreview>
</zh-CN>
<zh-TW>
<Editor_ShowLineNumbers>顯示行號</Editor_ShowLineNumbers>
<Editor_FontFamily>Consolas,Microsoft JhengHei UI,Microsoft JhengHei,MingLiU</Editor_FontFamily>
<Editor_Copy>複製</Editor_Copy>
<Editor_SelectAll>全選</Editor_SelectAll>
<MW_ReopenAsHtmlPreview>重新作為 HTML 預覽開啟</MW_ReopenAsHtmlPreview>
<MW_ReopenAsImagePreview>重新作為圖像預覽開啟</MW_ReopenAsImagePreview>
</zh-TW>
<mr>
<Editor_ShowLineNumbers>ओळ क्रमांक दाखवा</Editor_ShowLineNumbers>
<Editor_FontFamily>Consolas,Mangal,Nirmala UI</Editor_FontFamily>
<Editor_Copy>प्रतिलिपी करा</Editor_Copy>
<Editor_SelectAll>सर्व निवडा</Editor_SelectAll>
<MW_ReopenAsHtmlPreview>HTML पूर्वावलोकन म्हणून पुन्हा उघडा</MW_ReopenAsHtmlPreview>
<MW_ReopenAsImagePreview>प्रतिमा पूर्वावलोकन म्हणून पुन्हा उघडा</MW_ReopenAsImagePreview>
</mr>
<hi>
<Editor_ShowLineNumbers>पंक्ति संख्याएँ दिखाएँ</Editor_ShowLineNumbers>
<Editor_FontFamily>Consolas,Mangal,Nirmala UI</Editor_FontFamily>
<Editor_Copy>कॉपी करें</Editor_Copy>
<Editor_SelectAll>सभी चुनें</Editor_SelectAll>
<MW_ReopenAsHtmlPreview>HTML पूर्वावलोकन के रूप में फिर से खोलें</MW_ReopenAsHtmlPreview>
<MW_ReopenAsImagePreview>छवि पूर्वावलोकन के रूप में फिर से खोलें</MW_ReopenAsImagePreview>
</hi>
<he>
<Editor_ShowLineNumbers>הצג מספרי שורות</Editor_ShowLineNumbers>
<Editor_FontFamily>Consolas</Editor_FontFamily>
<Editor_Copy>העתק</Editor_Copy>
<Editor_SelectAll>בחר הכל</Editor_SelectAll>
<MW_ReopenAsHtmlPreview>פתח מחדש כתצוגה מקדימה של HTML</MW_ReopenAsHtmlPreview>
<MW_ReopenAsImagePreview>פתח מחדש כתצוגה מקדימה של תמונה</MW_ReopenAsImagePreview>
</he>
<hu-HU>
<Editor_ShowLineNumbers>Sorszámok megjelenítése</Editor_ShowLineNumbers>
<Editor_FontFamily>Consolas</Editor_FontFamily>
<Editor_Copy>Másolás</Editor_Copy>
<Editor_SelectAll>Mindet kijelöl</Editor_SelectAll>
<MW_ReopenAsHtmlPreview>Újranyitás HTML előnézetként</MW_ReopenAsHtmlPreview>
<MW_ReopenAsImagePreview>Újranyitás kép előnézetként</MW_ReopenAsImagePreview>
</hu-HU>
<id-ID>
<Editor_ShowLineNumbers>Tampilkan nomor baris</Editor_ShowLineNumbers>
<Editor_FontFamily>Consolas</Editor_FontFamily>
<Editor_Copy>Salin</Editor_Copy>
<Editor_SelectAll>Pilih Semua</Editor_SelectAll>
<MW_ReopenAsHtmlPreview>Buka ulang sebagai pratinjau HTML</MW_ReopenAsHtmlPreview>
<MW_ReopenAsImagePreview>Buka ulang sebagai pratinjau gambar</MW_ReopenAsImagePreview>
</id-ID>
<sk>
<Editor_ShowLineNumbers>Zobraziť čísla riadkov</Editor_ShowLineNumbers>
<Editor_FontFamily>Consolas</Editor_FontFamily>
<Editor_Copy>Kopírovať</Editor_Copy>
<Editor_SelectAll>Označiť všetko</Editor_SelectAll>
<MW_ReopenAsHtmlPreview>Znova otvoriť ako HTML náhľad</MW_ReopenAsHtmlPreview>
<MW_ReopenAsImagePreview>Znova otvoriť ako náhľad obrázka</MW_ReopenAsImagePreview>
</sk>
<el>
<Editor_ShowLineNumbers>Εμφάνιση αριθμών γραμμών</Editor_ShowLineNumbers>
<Editor_FontFamily>Consolas</Editor_FontFamily>
<Editor_Copy>Aντιγραφή</Editor_Copy>
<Editor_SelectAll>Επιλογή όλων</Editor_SelectAll>
<MW_ReopenAsHtmlPreview>Επανανοίξτε ως προεπισκόπηση HTML</MW_ReopenAsHtmlPreview>
<MW_ReopenAsImagePreview>Επανανοίξτε ως προεπισκόπηση εικόνας</MW_ReopenAsImagePreview>
</el>
<sv>
<Editor_ShowLineNumbers>Visa radnummer</Editor_ShowLineNumbers>
<Editor_FontFamily>Consolas</Editor_FontFamily>
<Editor_Copy>Kopiera</Editor_Copy>
<Editor_SelectAll>Markera allt</Editor_SelectAll>
Expand Down