Зовнішні інструменти

За допомогою додатка Зовнішні інструменти можна викликати зовнішні програми, передаючи їм дані, які пов'язано із поточним документом, наприклад його адресу, каталог, текст або позначений фрагмент тексту. Після вмикання буде показано сторінку налаштовування, знімок якої наведено нижче. За допомогою цієї сторінки ви зможете змінити роботу наявних інструментів або вилучити їх. Так само, може бути додано потрібні вам інструменти. Пункти цих інструментів згодом з'являться у підменю Зовнішні інструменти меню Інструменти програми.

Додати нові зовнішні інструменти на сторінці налаштувань можна натисканням кнопки Додати. У відповідь буде показано контекстне меню, за допомогою якого можна або додати новий зовнішній інструмент, або додати наявний інструмент із попередньо визначеного списку, або додати нову категорію для упорядковування зовнішніх інструментів за категоріями. Так само, можна вносити зміни до наявних записів інструментів: двічі клацніть на відповідному пункті у списку або натисніть Змінити.... Натискання кнопки Вилучити вилучає запис інструмента зі списку.

Налаштовування зовнішніх інструментів

У відповідь на вибір редагування запису програма відкриває діалогове вікно налаштовування, за допомогою якого можна виконати коригування поведінки інструмента:

Як можна бачити, ви можете визначити багато елементів поведінки інструмента, зокрема:

Назва — назва інструмента, яку буде показано у меню.

Піктограма — необов'язкова піктограма, яку буде показано у меню.

Виконуваний файл — назва виконуваного файла — можна вказати повний шлях або просто назву програми, якщо виконуваний файл зберігається в одному з каталогів, описаних у змінній PATH.

Аргументи — необов'язкові аргументи, які передаються виконуваному файлу.

Вхідні дані — необов'язкові вхідні дані, які буде передано процесу за допомогою стандартного потоку вхідних даних (stdin).

Робочий каталог — робочий каталог, з якого буде запущено інструмент. Якщо значення буде порожнім, робочим каталогом буде каталог поточного документа.

Типи MIME — якщо встановлено, інструмент ставатиме активним, лише якщо відповідним буде тип MIME поточного документа.

Збереження — якщо задіяно, не зберігає нічого, зберігає поточний документ або зберігає усі документи.

Перезавантажити поточний документ після виконання — корисно, якщо до поточного файла внесено зміни на диску.

Виведення — визначає призначення даних стандартного виведення (stdout). Можна вибрати один з таких варіантів: Ігнорувати, Вставити у позиції курсора, Замінити позначений фрагмент тексту, Замінити поточний документ, Дописати до поточного документа, Вставити до нового документа, Скопіювати до буфера або Показати на панелі.

Команда редактора — необов'язкова команда, яку буде використано для виклику зовнішнього інструмента за допомогою вбудованого командного рядка.

Кнопку Типові параметри буде показано лише для інструментів, які постачаються разом із Kate. Якщо натиснути цю кнопку, усі параметри інструмента буде повернуто до типових (встановлених разом із програмою) значень.

Розгортання змінних

У деяких з полів редагування, зокрема полях Виконуваний файл, Аргументи, Вхідні дані і Робочий каталог, передбачено підтримку змінних, які буде замінено на значення під час виклику інструмента. Це позначається піктограмою {}, яку програма показує, коли фокус передається на одне з цих полів введення (див. у червоному колі):

Крім того, при наведенні вказівника миші на одне з таких полів для введення тексту програма показує панель підказки із поточним розгорнутим текстом. Також, натискання кнопки {} відкриває діалогове вікно, у якому наведено список усіх доступних змінних:

Ця можливість додає гнучкості у визначенні зовнішнього інструмента, оскільки усіх змінні у формі %{...} розгортаються під час виклику інструмента. Передбачено підтримку двох типів змінних:

  • %{назва-змінної}

  • %{назва-змінної:<значення>}

Якщо використано першу форму, %{назва-змінної}, програма просто замінить змінну її вмістом. Наприклад, змінну %{Document:FileName} буде замінено на назву файла поточного документа без шляху до нього. Якщо використано другу форму, %{назва-змінної:<значення>}, отримаємо <значення> як вміст. Наприклад, цим можна скористатися для розгортання змінної середовища за допомогою %{ENV:HOME} або можна отримати поточну дату у бажаному форматі, ось так: %{Date:yyyy-MM-dd}.

Ось підтримувані змінні:

Document:FileBaseName: базова назва файла поточного документа без шляху і суфікса назви.

Document:FileExtension: суфікс назви файла поточного документа.

Document:FileName: назва файла поточного документа без шляху.

Document:FilePath: повний шлях до поточного документа, включно із назвою файла.

Document:Text: вміст поточного документа.

Document:Path: повний шлях до поточного документа без назви файла.

Document:NativeFilePath: шлях до документа повністю, разом із назвою файла та роздільниками шляху операційної системи (зворотними похилими рисками у Windows).

Document:NativePath: шлях до документа повністю, без назви файла та роздільниками шляху операційної системи (зворотними похилими рисками у Windows).

Document:Cursor:Line: номер рядка поточної позиції текстового курсора у поточному документі (нумерація рядків починається з 0).

Document:Cursor:Column: номер позиції у рядку текстового курсора у поточному документі (нумерація рядків починається з 0).

Document:Cursor:XPos: компонент X загальної позиції курсора на екрані.

Document:Cursor:YPos: компонент Y загальної позиції курсора на екрані.

Document:Selection:Text: позначений текст у поточному документі.

Document:Selection:StartLine: номер початкового рядка для позначеного фрагмента поточного документа.

Document:Selection:StartColumn: номер позиції позиції у рядку для позначеного фрагмента поточного документа.

Document:Selection:EndLine: номер кінцевого рядка для позначеного фрагмента поточного документа.

Document:Selection:EndColumn: номер кінцевої позиції у рядку для позначеного фрагмента поточного документа.

Document:RowCount: кількість рядків у поточному документі.

Document:Variable:<змінна>: розгорнути довільні змінні документа.

Date:Locale: поточна дата у форматі поточної локалі.

Date:ISO: поточна дата (ISO).

Date:<значення>: поточна дата (у форматі, вказаному рядком форматування QDate).

Time:Locale: поточний час у форматі поточної локалі.

Time:ISO: поточний час (ISO).

Time:<значення>: поточний час (рядок у форматі QTime).

ENV:<значення>: доступ до змінних середовища.

JS:<вираз>: обробка простих інструкцій JavaScript.

PercentEncoded:<текст>: текст у кодуванні з використанням кодів спеціальних символів із символом відсотків.

UUID: створити UUID.

Список типових інструментів

До типового комплекту програми входять декілька інструментів. Втім, якщо у вас є ідеї щодо корисніших інструментів, будь ласка, повідомте про них на адресу , щоб розробники могли включити ці інструменти до наступних випусків програми. Усі типові інструменти, типово, буде показано на панелі списку. Втім, ви можете вносити зміни до списку, категоризувати пункти або навіть вилучити інструменти. Вилучені інструменти можна знову додати за допомогою натискання кнопки Додати на панелі налаштувань, як це описано вище.

git-cola

git-cola — графічний клієнт git, за допомогою якого можна без проблем створювати записи змін і вносити зміни до сховища. Якщо програму встановлено, доступ до неї можна також отримати введенням команди git-cola у командному рядку.

Назва: git-cola

Піктограма: git-cola

Виконуваний файл: git-cola

Аргументи: -r %{Document:Path}

Команда редактора: git-cola

gitk

gitk — також клієнтська програма git, за допомогою якої можна візуалізувати журнал змін у git.

Назва: gitk

Піктограма: git-gui

Виконуваний файл: gitk

Робочий каталог: %{Document:Path}

Команда редактора: gitk

git blame

Запускає git blame для полегшення стеження за змінами у git для поточного файла.

Назва: git blame

Виконуваний файл: git

Аргументи: gui blame %{Document:FileName}

Збереження: поточний документ

Робочий каталог: %{Document:Path}

Команда редактора: git-blame

Виконати скрипт оболонки

Запускає зовнішню Konsole, у якій виконує поточний документ. Скрипт має оголошувати у першому рядку свій інтерпретатор, ось так: #!/шлях/інтерпретатор.

Назва: Run Shell Script

Піктограма: system-run

Виконуваний файл: konsole

Аргументи: -e sh -c "cd %{Document:Path} && pwd && chmod -vc a+x %{Document:FileName} && ./%{Document:FileName} ; echo Press any key to continue. && read -n 1"

Збереження: поточний документ

Робочий каталог: %{Document:Path}

Команда редактора: run-script

Пошук у Google позначеного тексту

Пошук позначеного фрагмента тексту за допомогою рушія пошуку Google.

Назва: Google Selected Text

Піктограма: globe

Виконуваний файл: xdg-open

Аргументи: "https://www.google.com/search?q=%{Document:Selection:Text}"

Команда редактора: google

Вставити UUID

Вставляє новий UUID під час кожного виклику цієї дії.

Назва: Insert UUID

Виконуваний файл: echo

Аргументи: %{UUID}

Виведення: Вставити у позиції курсора

Команда редактора: uuid

Форматування Clang усього файла

Виконує clang-format для поточного файла на диску. Після обробки програма повторно завантажує документ.

Назва: Clang Format Full File

Виконуваний файл: clang-format

Аргументи: -i %{Document:FileName}

Робочий каталог: %{Document:Path}

Збереження: поточний документ

Перезавантажити: Так

Команда редактора: clang-format-file

Форматування Clang позначеного тексту

Запускає clang-format лише до позначеного тексту у поточному документі.

Назва: позначений для форматування Clang текст

Виконуваний файл: clang-format

Аргументи: -assume-fileName: %{Document:FileName}

Робочий каталог: %{Document:Path}

Вхідні дані: %{Document:Selection:Text}

Виведення: замінити позначений фрагмент тексту

Команда редактора: clang-format-selection

Попередній перегляд Qt Quick 2 (qmlscene)

Попередній перегляд поточного файла QML у qmlscene.

Назва: Qt Quick 2 Preview (qmlscene)

Виконуваний файл: qmlscene

Аргументи: %{Document:FileName}

Збереження: поточний документ

Робочий каталог: %{Document:Path}

Команда редактора: qml-preview

Форматування JSON усього файла

Форматування усього файла коду JSON.

Назва: JSON Format Full File

Піктограма: application-json

Виконуваний файл: jq

Аргументи: %{Document:FileName}

Збереження: поточний документ

Робочий каталог: %{Document:Path}

Виведення: Замінити поточний документ

Команда редактора: json-format-file

Форматування XML усього файла

Форматування усього файла коду XML.

Назва: JSON Format Full File

Піктограма: application-xml

Виконуваний файл: xmllint

Аргументи: --format %{Document:FileName}

Збереження: поточний документ

Робочий каталог: %{Document:Path}

Виведення: Замінити поточний документ

Команда редактора: xml-format-file