# Работа с модулями

Все модули подключаются в диалоге настройки параметров. В этом диалоге также возможно настроить сами модули, если это предусмотрено.

## Модули &kate;

Модули &kate; позволяют воспользоваться дополнительными функциями редактора. Подключение того или иного модуля расширяет функционал &kate;, иногда даже добавляя новые пункты меню и ярлыки. Количество одновременно подключённых модулей не ограничено. Откройте окно настройки параметров: Настройка Настроить &kate;... — выберите пункт Приложение Модули и установите флажки для подключения соответствующих модулей.

Доступны следующие модули:

- Внешние программы — запуск внешних программ

- Просмотр стека вызовов — инструмент для просмотра стека вызовов C и C++

- Модуль для сборки ПО — сборка и обработка сообщений об ошибках

- Закрыть кроме/только... — закрывает группу документов, в зависимости от пути или расширения

- Выбор цвета — предпросмотр известных цветов

- CTags — поиск определений и объявлений с помощью индекса CTags

- Предварительный просмотр документа — предварительный просмотр документа в целевом формате

- Переключатель документов — переключатель документов с поведением как у переключателя окон по &Alt;

- Обзор файловой системы — панель для просмотра файловой системы

- Иерархический просмотр документов — просмотр открытых документов в дереве папок

- &gdb; — простой интерфейс к отладчику &gdb;

- Модуль проектов — интеграция с &git;, а также с другими системами управления версиями

- Replicode — конструктивистский язык программирования ИИ и исполняемые модули

- Клиент LSP — поддержка Language Server Protocol

- Поиск и замена — поиск и замена в открытых документах, папках и проектах на диске

- Управление фрагментами — управление фрагментами кода с возможностью их загрузки из Интернета

- Модуль SQL — выполнение запросов SQL к базам данных

- Просмотр идентификаторов — извлекает и показывает идентификаторы C/C++ из исходного кода

- Встроенный терминал — быстрый вызов терминала, основанного на виджете &konsole;

- Текстовый фильтр — выполнение операций с текстом с помощью командной строки

- Автодополнение для &XML; — перечисляет элементы &XML;, их атрибуты, значения атрибутов и записи, разрешённые DTD

- Проверка &XML; — проверка правильности &XML; с использованием xmllint

## Внешние программы

Модуль Внешние программы позволяет вызывать внешние приложения, передавая им данные, которые связаны с текущим документом (например, его URL-адрес, каталог, текст или выделенный фрагмент). После включения модуля появляется страница настройки (она показана далее), на которой возможно изменить или удалить существующие программы. Также возможно добавить новые программы. После добавления они появятся в подменю Внешние программы меню Сервис.

На странице настройки возможно добавить новые внешние программы, нажав кнопку Добавить. После этого появится всплывающее меню, которое позволяет добавить новую внешнюю программу, добавить существующую программу из предустановленного списка или добавить новую категорию для организации внешних программ. Существующие программы возможно изменить либо по двойному щелчку, либо нажатием кнопки Изменить.... Кнопка Удалить позволяет удалить выбранные программы.

### Настройка внешних программ

При редактировании программы открывается диалог, который позволяет выполнить тонкую настройку:

Возможно задать много параметров, в частности:

- `Название` — название программы, которое затем появится в меню.

  `Значок` — необязательный значок, который показан в меню.

  `Исполняемый файл` — название исполняемого файла. Следует указать либо полный путь, либо просто название программы (если исполняемый файл хранится в одном из каталогов, описанных переменной среды `PATH`).

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

  `Ввод` — необязательные входные данные, которые передаются процессу через stdin.

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

  `Типы MIME` — если значение указано, программа становится активной только в том случае, если тип MIME текущего документа соответствует указанному.

  `Сохранение до запуска` — при вызове не сохраняется ничего, сохраняется текущий документ или сохраняются все документы.

  `Активация`, триггер для выполнения программы. Влияет только на текущий активный документ и срабатывает только в том случае, если тип 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.

### Список стандартных программ

По умолчанию поставляются несколько программ. Если у пользователя имеются ещё какие-либо полезные инструменты, рекомендуется сообщить о них в список рассылки kwrite-devel@kde.org (чтобы разработчики смогли добавить их в список стандартных). Все стандартные программы по умолчанию показаны в списке. Все эти программы возможно изменить в соответствии с потребностями пользователя (например, изменить категорию или даже удалить программу из списка). Удалённые программы возможно вернуть в список нажатием кнопки Добавить на странице настройки.

### 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

### Запуск сценария оболочки

Запускает внешнюю консоль, в которой выполняется текущий документ. Сценарий долженобъявлять в первой строке свой интерпретатор с помощью следующей последовательности символов: `#!/путь/интерпретатор`.

- `Название`: Запуск сценария оболочки

  `Значок`: 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

  `Значок`: globe

  `Исполняемый файл`: xdg-open

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

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

### Вставка UUID

Вставляет новый UUID при каждом вызове этого действия.

- `Название`: Вставка UUID

  `Исполняемый файл`: echo

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

  `Выходные данные`: Вставить в текущей позиции

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

### Форматирование Clang всего файла

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

- `Название`: Форматирование Clang всего файла

  `Исполняемый файл`: 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 (qmlscene)

  `Исполняемый файл`: qmlscene

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

  `Сохранение до запуска`: Текущий документ

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

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

### Форматирование JSON всего файла

Форматировать весь файл кода JSON.

- `Название`: Форматирование JSON всего файла

  `Значок`: application-json

  `Исполняемый файл`: jq

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

  `Сохранение до запуска`: Текущий документ

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

  `Выходные данные`: Заменить текущий документ

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

### Форматирование XML всего файла

Форматировать весь файл кода XML.

- `Название`: Форматирование JSON всего файла

  `Значок`: application-xml

  `Исполняемый файл`: xmllint

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

  `Сохранение до запуска`: Текущий документ

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

  `Выходные данные`: Заменить текущий документ

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

## Модуль просмотра стека вызовов

### Работа с модулем «Просмотр стека вызовов»

Этот модуль предназначен для разработчиков и, скорее всего, не потребуется обычным пользователям. Он отображает стек вызовов, предоставленный GDB, в виде списка в панели &kate;. При щелчке по элементу списка выбранный файл будет открыт на строке с нужным номером. Этот модуль работает со стеком вызовов, сгенерированным на пользовательском компьютере, но также может работать и со стеком вызовов других людей, например, с помощью `/home/dummy/qt-copy/…/qwidget.cpp`. Чтобы это сработало, требуется проиндексировать каталоги, в которых находится исходный код.

Иногда может существовать несколько файлов с одинаковыми именами, например

- `kdegraphics/okular/generators/dvi/config.h`
- `kdepim-runtime/resources/gmail/saslplugin/config.h`

Чтобы сделать правильный выбор, модуль учитывает последние две части в адресе пути, в таком случае это

- `dvi/config.h`
- `saslplugin/config.h`

И затем модуль обычно находит нужный файл.

Индексирование основной ветки и побочной приведёт к конфликту.

### Настройка

На странице настройки добавьте каталоги, содержащие исходный код.

Просмотр стека вызовов
Настройка путей в панели просмотра стека вызовов

Чтобы начать индексирование, нажмите кнопку OK. Когда индексирование завершится, откройте панель Просмотрщик стека вызовов.

Теперь возможно загрузить стек вызовов из буфера обмена (например, после нажатия Скопировать в буфер обмена в &drkonqi;) или из файла.

## Модуль для сборки ПО

### Введение

Модуль для сборки ПО позволяет выполнять такие действия, как сборка, очистка или компиляция проекта.

### Работа с модулем для сборки ПО

Этот модуль добавляет панель Вывод сборки в нижнюю часть окна, а также меню Сборка в строке меню. Панель позволяет настраивать параметры цели сборки, а меню возможно использовать для выполнения действий сборки, очистки и компиляции.

Вывод сборки

На панели Вывод сборки доступны две вкладки:

- Параметры цели

- Вывод

#### Вкладка «Параметры цели»

Вкладка «Параметры цели» используется для настройки различных целей сборки и определения наборов целей.

Чтобы изменить имя или команду, дважды щёлкните левой кнопкой мыши по записи в таблице и в раскрывающемся списке выберите активный набор целей. Чтобы определить значение по умолчанию, установите флажок напротив каждой нужной цели.

Доступны следующие параметры для настройки нового набора целей:

Рабочий каталог

- Эта опция позволяет настроить путь к проекту. Оставьте поле пустым для использования каталога текущего документа.

Сборка

- Эта опция позволяет задать команду сборки. По умолчанию задана команда `make`.

Очистка

- Эта опция позволяет задать команду очистки. По умолчанию задана команда `make clean`.

Конфигурация

- Эта опция позволяет задать команду конфигурации. По умолчанию задана команда `cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/usr/local ../`.

В верхней части модуля сборки располагается панель инструментов со следующими кнопками:

- Собрать выбранную цель
- Добавить цель
- Создать набор целей
- Скопировать команду или набор целей
- Удалить текущий набор целей

#### Вкладка «Вывод»

Вкладка «Вывод» отображает вывод консоли, сгенерированный последней командой.

Чтобы отобразить или скрыть следующие категории вывода, используйте ползунок в верхней части модуля:

Полный вывод, Разобранный вывод, Ошибки и предупреждения или Только ошибки

Каждая строка содержит сообщение, имя файла и номер строки (когда эта информация доступна). При щелчке по ошибке или предупреждении будет открыт соответствующий файл, в котором курсор будет установлен на соответствующий номер строки.

Чтобы перейти к предыдущей ошибке, нажмите &Alt;&Shift;&Left;. Чтобы перейти к следующей ошибке, нажмите &Alt;&Shift;&Right;.

### Структура меню

Сборка Выбрать цель...

- Выбрать цель из списка целей, составленного пользователем.

Сборка Собрать цель по умолчанию

- Собрать цель, установленную как цель по умолчанию в активном наборе целей.

Сборка Собрать предыдущую цель

- Перейти к предыдущей цели, настроенной пользователем.

Сборка Завершить

- Прекратить сборку цели.

&Ctrl;&Alt;&Left; Сборка Предыдущая ошибка

- Переместить курсор к предыдущей ошибке в документе.

&Ctrl;&Alt;&Right; Сборка Следующая ошибка

- Переместить курсор к следующей ошибке в документе.

### Благодарности

Автор модуля для сборки ПО &kate; — Kåre Särs.

Благодарим участника «Google Code-In 2011» Salma Sultana за большой вклад в написание данного раздела.

## Модуль «Закрыть кроме/только...»

### Введение

Этот модуль позволяет закрывать группу документов в зависимости от их расширения или пути.

### Работа с модулем «Закрыть кроме/только...»

Допустим, в &kate; открыты следующие документы:

- /tmp/subfolder/test.h
- /tmp/test.cpp
- /tmp/test.txt

Тогда будут доступны следующие варианты закрытия документов, как показано на снимке ниже:

Закрыть все, кроме

Чтобы включить или отключить диалоговое окно подтверждения, установите или снимите флажок напротив последнего элемента списка. Выбранная опция будет применена к обоим действиям.

### Структура меню

Файл Закрыть все, кроме

- Закрывает все открытые документы, кроме тех, путь или расширение которых соответствуют выбранной опции в меню.

Файл Закрыть только

- Закрывает все открытые документы, путь или расширение которых соответствуют выбранной опции в меню.

## Модуль выбора цвета

### Введение

Этот модуль добавляет встроенную панель предварительного просмотра и выбора цветов в тексте (например, `#FFFFFF`, `white`).

Чтобы подключить этот модуль, откройте диалог настройки параметров &kate; (Настройка Настроить &kate;...). Затем выберите пункт Выбор цвета и закройте диалог.

### Настройка

На странице параметров модуля выбора цвета в диалоге настройки &kate; возможно задать указанные далее параметры поведения этого модуля.

Предварительный просмотр известных названий цветов

- Следует ли показывать панель выбора цвета для известных названий цветов (например, `skyblue`). Список названий цветов доступен на этой странице.

Поле просмотра цвета после его описания

- Следует ли размещать встроенную панель предварительного просмотра после описания цвета в тексте.

Шаблон определения шестнадцатеричного кода цвета

- Здесь возможно выбрать самый подходящий вариант для цветов, используемых в коде.

## Модуль «CTags»

### Введение

CTags создаёт файл индекса (или тегов) языковых объектов, найденных в исходных файлах, который позволяет быстро и легко находить эти элементы с помощью этого модуля в &kate;.

Тег указывает на языковой объект, для которого доступна (либо создана) запись индекса.

Создание тегов поддерживается для следующих языков программирования.

### Настройка

Модуль «CTags» использует два разных файла баз данных для индексирования.

Добавить или удалить каталоги, содержащие в себе исходный код, а также обновить общую базу данных CTags возможно на странице настройки CTags в диалоге настройки &kate;.

#### Общее индексирование

Параметры CTags
Настройка глобальной базы данных CTags

В нижней части страницы параметров возможно указать команду CTags.

Для получения дополнительных сведений обо всех доступных параметрах ознакомьтесь с man-страницей CTags в «Центре справки KDE» (также возможно указать &URL;-адрес man:/ctags непосредственно в &konqueror;).

Чтобы начать индексирование, нажмите кнопку Обновить. Когда индексирование завершится, закройте диалог.

#### Индексирование текущего сеанса

Чтобы настроить индексирование текущего сеанса, откройте панель CTags.

Индексируемые файлы

- Эта вкладка позволяет добавить или удалить каталоги, содержащие в себе исходный код, а также обновить общую базу данных CTags.

База данных

- Параметры базы данных
  Настройка базы данных сеанса CTags

  Выберите другой файл базы данных CTags, настройте команду CTags или верните команду, используемую по умолчанию.

### Работа с модулем «CTags»

Чтобы перейти к строке, содержащей интересующий языковой объект наподобие функции, символа и так далее, наведите на него указатель мыши, а затем выберите одно из действий в меню CTags.

По умолчанию действия в меню CTags не имеют назначенных комбинаций клавиш. Для их настройки используйте редактор комбинаций клавиш.

Либо воспользуйтесь вкладкой Поиск на панели CTags.

При вводе символов в поле поиска запустится поиск и будут показаны совпавшие имена таких языковых объектов, как функции, классы, символы и так далее, а также тип файла и его имя.

Выберите элемент в списке, чтобы перейти к соответствующей строке в исходном файле.

### Структура меню

CTags Перейти на шаг назад

- Возвращает к предыдущему результату поиска в журнале поиска.

CTags Поиск текущего текста

- Открывает на панели CTags вкладку Поиск и отображает все языковые объекты, соответствующие выбранному тексту, в виде списка.

CTags Перейти к объявлению

- Если курсор находится в объекте-определении, будет открыт документ, содержащий соответствующее объявление, если необходимо, и активирован его просмотр (курсор при этом будет помещён в начало объявления).

CTags Перейти к определению

- Если курсор находится в объекте-объявлении, будет открыт документ, содержащий соответствующее определение, если необходимо, активирован его просмотр (курсор при этом будет помещён в начало определения).

## Модуль «Предварительный просмотр документа»

### Введение

Этот модуль позволяет выполнить предварительный просмотр финального формата редактируемого документа в режиме реального времени на боковой панели. Таким образом, при редактировании, например, текста &Markdown; или &SVG;-изображения результат будет сразу же отображаться рядом с исходным текстом.

Для отображения предварительного просмотра используется модуль &kparts;, который в данный момент указан как предпочитаемый для типа &MIME; документа. Если такой модуль &kparts; не указан, предварительный просмотр недоступен.

Чтобы изменить предпочитаемый модуль, откройте раздел Привязки файлов в параметрах системы и измените Приоритет компонентов на вкладке Встраивание.

### Некоторые доступные модули &kparts;

Тип &MIME; | Модуль &kparts;
Текст &Markdown; | KMarkdownWebViewPart или OkularPart
Изображение &SVG; | SVGPart
Файлы графического интерфейса &Qt; | KUIViewerPart
Файлы графов DOT | KGraphViewerPart

### Структура меню

Вид Боковые панели Показать панель «Предварительный просмотр»

- Включает или отключает отображение предварительного просмотра на боковой панели &kate;.

### Интерфейс

Кнопки в верхней части окна предварительного просмотра позволяют выполнять следующие действия:

- Закрепить окно предварительного просмотра для выбранного документа. Выбор этой опции позволяет продолжить предварительный просмотр этого документа даже в том случае, когда пользователь перевёл фокус на другой документ внутри того же окна &kate;.

- Включить или отключить автоматическое обновление предварительного просмотра содержимого текущего документа.

- Вручную обновить предварительный просмотр содержимого текущего документа.

- Раскрывающееся меню с действиями модуля &kparts;

## Модуль переключателя документов

### Структура меню

&Ctrl; Вид Последние документы

&Ctrl;&Shift; Вид Последние документы (в обратном порядке)

- Открывает список последних открытых документов:

  Последние открытые документы

  Чтобы двигаться по списку вперёд, удерживайте нажатой клавишу &Ctrl; и используйте клавишу . Для движения в обратную сторону нажмите также клавишу &Shift;.

  Чтобы двигаться по списку, удерживайте нажатой комбинацию клавиш &Ctrl; и используйте клавиши «Вверх», «Вниз», «Home» или «End». Нажатие клавиши с буквой позволяет выполнять циклический переход по всем пунктам в списке с соответствующей первой буквой. Если отпустить клавиши быстрого доступа, представление переключится на выбранный документ в списке.

## Модуль обзора файловой системы

Модуль «Обзор файловой системы» — это средство просмотра папок, позволяющее открывать файлы из отображаемой папки в текущем окне.

### Структура меню

Вид Боковые панели Показать панель «Просмотр файловой системы»

- Включает или отключает отображение панели просмотра файловой системы &kate;.

### Интерфейс

Модуль просмотра файловой системы состоит из следующих элементов:

Панель инструментов

- Панель инструментов содержит стандартные кнопки навигации:

  Назад

- Выполняет переход в папку, предшествующую текущей в журнале смены папок. Кнопка недоступна, если в журнале переходов такая папка отсутствует.

Вперёд

- Выполняет переход в папку, расположенную следующей в журнале смены папок. Кнопка недоступна, если в журнале переходов такая папка отсутствует.

Закладки

- Открывает вложенное меню для операций редактирования и добавления закладок и создания папок для хранения закладок.

Папка текущего документа

- При нажатии этой кнопки в области просмотра папок будет показана папка, в которой содержится текущий активный документ, если это возможно. Эта кнопка недоступна, если активный документ является новым, несохранённым файлом или папка, в которой он находится, не может быть определена.

Параметры

- Список

- Показывает только имена файлов.

Таблица

- Показывает Имя, Дату изменения и Размер файлов.

Разворачиваемый список

- Аналог «Списка», но папки возможно развернуть для просмотра содержимого.

Разворачиваемая таблица

- Этот режим также позволяет разворачивать папки, но при этом показываются дополнительные столбцы, доступные в режиме «Таблица».

Показывать скрытые файлы

- Показывает файлы, которые обычно скрыты операционной системой.

Автоматически синхронизировать с текущим документом

- Когда эта опция включена, модуль будет автоматически переходить в папку открытого на данный момент документа каждый раз, когда будут производиться изменения.

Расположение (строка пути)

- Отображает путь к текущей открытой папке, аналогично &dolphin;. Чтобы перейти в любую папку, просто щёлкните по её названию. Также возможно нажать кнопку со стрелкой рядом с названием папки, чтобы открыть список подкаталогов этой папки. Возможно также выбрать одну из точек входа, щёлкнув по крайнему левому значку строки пути (этот значок отображает текущую точку входа).

  Щелчок справа от текста в строке пути вызовет поле ввода, где возможно ввести путь к папке. В строке адреса предусмотрены подсказки в виде списка ранее введённых адресов. Чтобы выбрать один из этих адресов, нажмите кнопку со стрелкой, расположенную справа от текста.

  В строке адреса предусмотрено автоматическое дополнение названий папок. Способ дополнения возможно выбрать с помощью контекстного меню текстовой записи.

Область просмотра папок

- Стандартный просмотр папок &kde;.

Поле фильтра

- Поле фильтра предоставляет возможность выбрать типы файлов для показа в области просмотра папок. Фильтр использует стандартные маски, которые разделяются пробелами. Возможно ввести, например, `*.cpp *.h *.moc`

  Для просмотра всех файлов введите один символ звёздочки (`*`).

  Фильтр сохраняет последние 10 значений. Для использования одного из сохранённых значений нажмите кнопку со стрелкой, расположенную справа от текста фильтра, и выберите необходимое значение фильтра. Отключить фильтр возможно нажатием кнопки Очистить текст, расположенной слева от стрелки открытия раскрывающегося списка.

### Настройка

Для настройки модуля перейдите на страницу Просмотр файловой системы в диалоге настройки &kate;.

Панель инструментов

- Для настройки кнопок на панели инструментов модуля переместите нужные функции в список Выбранные действия и упорядочите их с помощью кнопок со стрелками, расположенных сбоку от списка.

## Модуль списка документов

### Введение

Список документов отображает список всех документов, открытых на текущий момент в &kate;. У изменённых файлов появляется маленькое изображение дискеты (слева от заголовка).

В верхней части списка документов находится панель инструментов со следующими кнопками:

- Создать новый документ
- Открыть существующий документ
- Предыдущий документ
- Следующий документ
- Сохранить текущий документ
- Сохранить текущий элемент под новым именем

По умолчанию список документов представлен в режиме дерева, которое отображает структуру папок всех открытых в данный момент документов. Также доступен режим списка, отображающий все документы простым списком. Чтобы переключить режим, щёлкните правой кнопкой мыши по списку и выберите нужный вариант в меню Режим просмотра.

Если в режиме списка открыть два или более файлов с одинаковыми именами (расположенных в разных папках), к имени второго файла добавится «(2)» и так далее. Во всплывающей подсказке к этому файлу будет показано его полное имя, включая путь к нему, что позволяет легко выбрать нужный файл.

Чтобы отобразить документ в текущей активной створке, щёлкните по названию документа в списке.

В контекстном меню присутствуют некоторые стандартные действия из меню Файл.

Здесь также присутствуют действия диспетчера файлов: переименовать или удалить файл. Чтобы скопировать в буфер обмена полный путь к документу, выберите пунктКопировать путь к файлу.

Чтобы упорядочить список, щёлкните по нему правой кнопкой мыши и выберите опцию Сортировать. Доступны следующие варианты:

По имени документа

- Упорядочивает документы по именам в алфавитном порядке.

По пути к документу

- Упорядочивает документы по пути к ним в алфавитном порядке.

По порядку открытия

- Упорядочивает документы по порядку их открытия.

По умолчанию список документов визуализирует журнал, выделяя названия последних документов фоновым цветом. Если документ был отредактирован, добавляется дополнительный цвет. Самый последний документ сделан самым заметным, что позволяет быстро найти его. Эту функцию возможно отключить на странице Документы диалога настройки.

По умолчанию список документов расположен слева от области редактирования.

### Структура меню

&Alt;Вверх Вид Предыдущий документ

- Открывает документ, отображаемый над текущим открытым документом в списке «Документы».

&Alt;Вниз Вид Следующий документ

- Открывает документ, отображаемый под текущим открытым документом в списке «Документы».

Вид Показать активный документ

- Показывает текущий открытый документ в списке «Документы».

### Настройка

Подсветка фона

- В этом разделе возможно включить или отключить затенение фона последних документов, а также выбрать, какие цвета использовать, если оно включено.

Сортировать по

- Устанавливает принцип упорядочения документов. Этот параметр также возможно указать с помощью щелчка правой кнопкой мыши по списку документов.

Режим просмотра

- Доступны две опции, влияющие на отображение панели «Документы». Опция Дерево документов отобразит иерархическую структуру документов, а опция Список документов отобразит документы простым списком.

Показывать полный путь

- Если включён режим просмотра «Дерево документов», записи папок на панели документов будут содержать не только название папки, но и полный путь к ней в файловой системе. Эти данные не отображаются в режиме просмотра «Список документов».

Показывать панель инструментов

- Если включён режим просмотра «Дерево документов» и этот параметр, над списком документов отображается панель инструментов (она содержит, например, кнопку Сохранить). Снимите флажок, если эту панель инструментов следует скрыть.

Показывать кнопку закрытия

- Если этот параметр включён, &kate; при наведении указателя на открытые документы будет отображать кнопку закрытия.

## Модуль «&gdb;»

### Введение

Этот модуль предоставляет простой интерфейс к популярному отладчику проектов &GNU;.

Перед началом работы с модулем настоятельно рекомендуется ознакомиться с &gdb;. Более подробные сведения об использовании &gdb; доступны на веб-сайте &gdb;.

Модуль &gdb; подключается в разделе «Модули» диалога настройки &kate;.

Чтобы модуль работал корректно, требуется исходный файл (любого типа, который поддерживается &gdb;) и исполняемая программа.

При компиляции с помощью &gcc;/`g++` рекомендуется использовать аргумент командной строки ``-ggdb``.

Когда всё будет подготовлено, откройте исходный файл в &kate;, введите путь к исполняемому файлу на вкладке Параметры панели Отладка и для запуска отладки выберите в меню Отладка Начать отладку.

### Структура меню и панели инструментов

Все эти функции доступны в меню &kate;, и большинство из них доступно также на панели «Отладка».

Вид Боковые панели Показать панель «Отладка»

- Отображает панель, содержащую вывод &gdb;, используемую командную строку &gdb; и другие параметры.

Вид Боковые панели Показать панель «Лок. переменные и стек»

- Показывает список всех загруженных в данный момент переменных и их значений и обратную трассировку &gdb;.

Отладка Цели

- Открывает вложенное меню, состоящее из списка целей (исполняемых программ).

Отладка Начать отладку

- Запускает &gdb; с заданной целью.

Отладка Завершить отладку

- Останавливает &gdb;.

Отладка Начать отладку заново

- Перезапускает &gdb;.

Отладка Поставить точку останова / Прервать

- Устанавливает точку останова в текущей позиции курсора.

Отладка Войти

- Выполняет текущее выражение (вызов функции будет отлажен).

Отладка Перейти к следующей строке

- Выполняет текущее выражение (вызов функции не будет отлажен).

Отладка Выйти

- Продолжает выполнение, пока выполняемая программа не завершится.

Отладка Перейти в позицию курсора

- Перемещает программный счётчик (следующее выполнение).

Отладка Выполнить до курсора

- Выполняет программу, пока она не дойдёт до текущей позиции курсора.

Отладка Продолжить

- Игнорирует точки останова и выполняет программу, пока она не завершится (успешно или нет).

Отладка Показать значение

- Отображает значение переменной, на которую в данный момент указывает курсор.

Настройка Видимые панели инструментов Модуль &gdb;

- Отображает панель инструментов отладки.

### Панель «Отладка»

Панель Отладка состоит из нескольких вкладок:

Вывод &gdb;

- Содержит вывод из &gdb; и командную строку &gdb;.

  Вкладка «Вывод GDB» Вкладка «Вывод GDB».

  Вкладка Вывод GDB, отображающая результат текущего сеанса отладки.

Параметры

- Исполняемый файл

- Путь к исполняемому файлу для отладки.

Рабочий каталог

- Текущий рабочий каталог, относящийся к цели.

Аргументы

- Аргументы для программы.

Удерживать фокус

- Удерживать фокус в командной строке &gdb;.

Перенаправлять ввод и вывод

- Открывает на панели Отладка новую вкладку Ввод и вывод, в которой доступны просмотр вывода выполняемой программы и возможность ввода в неё.

Вкладка «Параметры» Вкладка «Параметры»

Вкладка Параметры, отображающая параметры текущего сеанса отладки.

Ввод и вывод

- Содержит область, в которой отображается вывод из выполняемой программы, и командную строку, которая обеспечивает возможность ввода в неё.

  Вкладка «Ввод и вывод» Вкладка «Ввод и вывод».

  Вкладка Ввод и вывод, отображающая вывод простой тестовой программы.

### Локальные переменные и стек

Боковая панель Стек содержит список отформатированного стека вызовов, возвращённого из &gdb;.

Панель «Стек» модуля &gdb; Панель «Стек».

Панель Стек модуля &gdb;.

Боковая панель Локальные переменные состоит из списка всех загруженных в данный момент переменных из программы и соответствующих значений.

Панель «Локальные переменные» модуля &gdb; Панель «Локальные переменные».

Панель Локальные переменные модуля &gdb;.

### Благодарности

Благодарим участника «Google Code-In 2011» Martin Gergov за большой вклад в написание данного раздела.

## Модуль проектов

### Введение

Принцип работы модуля проектов — предоставлять структурированный список файлов, относящихся к проекту, со следующими свойствами:

1. Обеспечение структурированного просмотра файлов

2. Упрощение и ускорение открытия и переключения проектов

3. Поддержка поиска и замены в проекте

4. Обеспечение функции простого автодополнения

5. Упрощение быстрого открытия файлов в проекте

6. Поддержка сборки проектов

### Структурированный просмотр файлов

Подключив модуль проекта на странице параметров &kate;, откройте файл в проекте, чтобы появилась боковая панель со списком всех проектов и их отдельных файлов, как показано на снимке ниже:

Просмотр проектов

Как это видно на снимке, текущий активный проект — это «Kate», и его содержимое отображено в качестве разворачиваемого списка. Чтобы открыть тот или иной файл в редакторе, просто щёлкните по нему левой кнопкой мыши. Также предусмотрено контекстное меню, с помощью которого возможно открывать файлы в других приложениях, например файл с расширением `.ui` — в Qt Designer.

Чтобы активировать фильтр, начните вводить название файла в поле поиска, которое расположено под списком.

### Переключение между проектами

Основная идея — избавить пользователя от необходимости открывать проект вручную, такая функция даже не предусмотрена. При открытии файла модуль проектов быстро сканирует папки на предмет наличия файла `.kateproject`. Если такой файл найден, проект будет загружен автоматически.

Более того, если открыть в &kate; другой документ, относящийся к другому проекту, модуль автоматически сделает этот проект текущим, поэтому активным всегда будет нужный проект. Конечно, также поддерживается переключение между проектами с помощью поля со списком.

### Поиск и замена в проектах

В редактор &kate; встроен модуль «Поиск и замена», отображающийся на боковой панели, которая расположена в нижней части окна. Загрузив проект, откройте боковую панель модуля поиска и замены и переключите режим на поиск и замену в текущем проекте:

Поиск в проектах

### Простое автодополнение

Модуль предоставляет простые средства автодополнения на основе CTags, учитывая данные относящихся к проекту файлов. При первоначальном открытии проекта CTags анализирует все файлы проекта в фоновом потоке и сохраняет информацию CTags в `/tmp`. Этот файл затем используется для всплывающего окна автодополнения в &kate;.

Для сравнения: без такого автодополнения &kate; поддерживает показ вариантов автодополнения только для тех слов, которые используются в текущем файле. Поэтому автодополнение в модуле проектов намного эффективнее.

Автодополнение в проектах

Если отсутствует CTags, пассивное всплывающее окно предупреждает об этой проблеме. Также следует отметить, что файл CTags в `/tmp` очищается при выходе из &kate;, поэтому модуль не засоряет папки ненужными файлами.

### Быстрое открытие файлов

Так как щелчки мышью по файлам в разворачиваемом списке — не самый быстрый способ открыть их, в &kate; предусмотрен механизм быстрого открытия, который активируется с помощью комбинации клавиш &Ctrl;&Alt;O. В результате получается вот такой список:

Быстрый переход

Чтобы активировать фильтр, начните вводить название файла. Доступна навигация с помощью клавиш со стрелками и клавиш Page Up/Down. При нажатии клавиши &Enter; будет открыт выбранный файл, при нажатии &Esc; — закрыт быстрый переход.

Список быстрого перехода также содержит последний открытый файл. Иногда это очень удобно: при открытии быстрого перехода будет автоматически выбран последний открытый файл, и останется только нажать клавишу &Enter;, чтобы его открыть.

### Поддержка сборки проекта

Ещё одна особенность — это поддержка модуля для сборки ПО, что обеспечивает автоматическую корректную настройку.

### Создание проектов

#### Автоматическая загрузка проектов

В модуле проектов предусмотрена функция автозагрузки. Список файлов доступен в системе управления версиями. Для этого в параметрах настройки должна быть включена автоматическая загрузка репозиториев для соответствующей системы управления версиями (по умолчанию — включена):

Параметры модуля проектов

#### Создание проектов вручную

Достаточно просто создать файл `.kateproject` в корневой папке проекта. Например, для проекта «Kate» файл `.kateproject` будет выглядеть следующим образом:

    {
      "name": "Kate"
    , "files": [ { "git": 1 } ]
    }

Содержимое файла написано с помощью синтаксиса &JSON;. Название проекта — «Kate», и файлы, содержащиеся в нём, должны быть прочитаны из &git;.

Вместо `git` также допустимо использовать subversion (`svn`) или mercurial (`hg`). Если выполнять чтение из системы управления версиями не требуется, возможно следующим образом указать ей рекурсивно загружать файлы из каталогов:

    {
      "name": "Kate"
    , "files": [ { "directory": "kate", "filters": ["*.cpp", "*.h", "*.ui", "CMakeLists.txt", "Find*.cmake"], "recursive": 1 } ]
    }

В таком случае вложенные папки и фильтры определяют, что является частью проекта. Также возможно совместно использовать управление версиями и файлы, основанные на фильтрах.

Если требуется добавить поддержку модуля для сборки ПО, создайте такой файл `.kateproject`:

    {
      "name": "Kate"
    , "files": [ { "git": 1 } ]
    , "build": {
        "directory": "build"
      , "build": "make all"
      , "clean": "make clean"
      , "install": "make install"
      }
    }

Если файл `.kateproject` отслеживается системой управления версиями, но возникла необходимость изменить конфигурацию для определённого рабочего места, необходимые изменения возможно сохранить в отдельном файле с именем `.kateproject.local`. Содержимое этого файла будет приоритетнее содержимого файла `.kateproject`.

### Текущий проект

С помощью &Alt;1 Проекты Перейти... возможно открыть в нижней части редактора панель Текущий проект с четырьмя вкладками:

Текущий проект

Панель терминала

- Эмулятор терминала, запускающийся в корневой папке проекта.

Индекс кода

- При вводе символов в панель поиска будет запущен поиск и показаны имена функций, классов, символов и так далее, а также тип файла и номер строки.

  Выберите элемент в списке, чтобы перейти к соответствующей строке в исходном файле.

Анализ кода

- Нажмите кнопку Начать анализ... для запуска статического анализа кода C и C++ с помощью `cppcheck` и формирования отчёта с отображением имени файла, номера строки, степени серьёзности (стиль, предупреждение и так далее) и самой найденной ошибки.

  Выберите элемент в списке, чтобы перейти к соответствующей строке в исходном файле.

Примечания

- Текст, введённый в этой вкладке, будет сохранён в файле `.kateproject.notes`.

### Меню «Проекты»

Меню Проекты позволяет переключаться между текущими открытыми проектами. Отображается модулем проектов.

&Ctrl;&Alt;&Left; Проекты Назад

- Перейти к предыдущему проекту.

&Ctrl;&Alt;&Right; Проекты Вперёд

- Перейти к следующему проекту.

&Alt;1 Проекты Перейти...

- Открывает область Текущий проект в нижней части окна редактора.

## Модуль «Клиент LSP»

Модуль предоставляет множество языковых функций, таких как дополнение кода, навигация по коду или поиск ссылок на основе протокола языкового сервера.

Как только модуль будет активирован на странице модулей, в диалоге настройки &kate; появится новый раздел под названием «Клиент LSP».

### Структура меню

Далее, в описании пунктов меню, также приводятся соответствующие команды (если таковые имеются). В документации этих команд доступны дополнительная информация и интерпретация (они могут варьироваться в зависимости от используемого языка программирования). Фраза «текущий символ» относится к символу, соответствующему текущей позиции курсора, как это определено языком и реализацией сервера.

Клиент LSP Перейти к определению

- [textDocument/definition] Перейти к определению текущего символа.

Клиент LSP Перейти к объявлению

- [textDocument/declaration] Перейти к объявлению текущего символа.

Клиент LSP Перейти к определению типа

- [textDocument/typeDefinition] Перейти к определению типа текущего символа.

Клиент LSP Найти ссылки

- [textDocument/references] Найти ссылки на текущий символ.

Клиент LSP Найти реализации

- [textDocument/implementation] Найти реализации текущего символа.

Клиент LSP Подсветить

- [textDocument/documentHighlight] Подсветить ссылки на текущий символ в текущем документе.

Клиент LSP Наведение

- [textDocument/hover] Информация о текущем символе при наведении.

Клиент LSP Форматировать

- [textDocument/formatting] [textDocument/rangeFormatting] Форматировать текущий документ или текущий выделенный фрагмент.

Клиент LSP Переименовать

- [textDocument/rename] Переименовать текущий символ.

Клиент LSP Быстрое исправление

- [textDocument/codeAction, workspace/executeCommand] Рассчитывает и применяет быстрое исправление для диагностики в текущей позиции (или строке).

Клиент LSP Показывать документацию в списке автодополнения

- Показывать документацию выделенного объекта в списке автодополнения.

Клиент LSP Включить справку сигнатуры при автодополнении

- Также показывать справку сигнатуры в списке автодополнения.

Клиент LSP Включать объявление в ссылках

- Запрашивать включение объявления символа при запросе ссылок.

Клиент LSP Добавлять скобки при дополнении функций

- Автоматически добавлять пару скобок после автоматического дополнения названия функции.

Клиент LSP Показывать информацию при наведении

- Показывать информацию при наведении (указателя мыши). Независимо от значения этого параметра, запрос этих данных всегда возможно инициировать вручную.

Клиент LSP Форматировать при наборе

- [document/onTypeFormatting] Форматировать части документа при наборе определённых символов пользователем. Например, при наборе символа переноса строки возможно создать отступ или выполнить любое другое действие, определяемое сервером LSP. Сценарии расстановки отступов в редакторе могут пытаться сделать то же самое (в зависимости от режима расстановки), поэтому не рекомендуется включать оба соответствующих параметра одновременно.

Клиент LSP Добавочная синхронизация документа

- Отправлять для обработки сервером отдельные части документа во время редактирования, а не весь документ (если на сервере предусмотрена поддержка такого режима обработки).

Клиент LSP Подсвечивать место перехода

- Предоставить временный визуальный сигнал после выполнения перехода (к определению, объявлению и так далее).

Клиент LSP Показывать уведомления о диагностике

- [textDocument/publishDiagnostics] Обрабатывать и показывать уведомления о диагностике, отправляемые сервером.

Клиент LSP Показывать подсветку диагностики

- Добавить подсветку текста для диапазонов, указанных в диагностике.

Клиент LSP Показывать отметки диагностики

- Отмечать в документе строки, указанные в диагностике.

Клиент LSP Перейти на вкладку диагностики

- Перейти на вкладку диагностики в панели модуля.

Клиент LSP Закрыть все не относящиеся к диагностике вкладки

- Закрыть все вкладки, не относящиеся к диагностике (например, ссылки), на панели модуля.

Клиент LSP Перезапустить сервер LSP

- Перезапустить сервер LSP текущего документа.

Клиент LSP Перезапустить все серверы LSP

- Остановить все серверы LSP и затем перезапустить их.

### Поддержка перехода к идентификаторам

Клиент LSP Client позволяет перейти к любому идентификатору в проекте или текущем файле. Чтобы перейти к какому-либо идентификатору в файле, воспользуйтесь панелью «Клиент LSP: структура идентификаторов», расположенной в правой части окна Kate. В этой панели приводится список всех идентификаторов, обнаруженных сервером в текущем документе.

#### Настройка структуры идентификаторов клиента LSP

По умолчанию все идентификаторы упорядочены по порядку в документе, но также возможно выполнить сортировку по алфавиту. Для этого следует щёлкнуть по панели правой кнопкой мыши и выбрать пункт «Сортировать по алфавиту».

По умолчанию панель отображает идентификаторы в виде дерева, но с помощью контекстного меню также возможно представить их в виде списка.

#### Поддержка глобального перехода к идентификаторам

Чтобы перейти к любому идентификатору в проекте, следует открыть диалог перехода с помощью комбинации клавиш &Ctrl;&Alt;p. При открытии диалог пуст, но по мере набора текста пользователем будут появляться соответствующие идентификаторы. Качество совпадений, а также возможности фильтрации зависят от используемого сервера. Например, clangd поддерживает неточную фильтрацию, а какой-либо другой сервер может не поддерживать эту возможность.

### Другие возможности

Поддерживается команда переключения заголовка источника clangd. Чтобы переключить заголовок источника в проекте C или C++ следует либо выбрать пункт контекстного меню «Переключить заголовок источника», либо нажать клавишу F12.

Для быстрого перехода к идентификатору возможно навести указатель мыши на символ и затем использовать комбинацию &Ctrl; + левая кнопка мыши.

### Настройка

На странице настройки модуля возможно установить стандартные значения некоторых перечисленных выше элементов меню. На этой странице также имеется поле, в котором возможно указать путь к файлу конфигурации сервера. Это файл &JSON;, который позволяет указать сервер LSP для запуска (и последующего обмена данными с помощью stdin/stdout). Для удобства включена конфигурация по умолчанию (она доступна на странице настройки модуля). Чтобы сделать дальнейшие пояснения доступнее, здесь приводится фрагмент этой конфигурации:

    {
        "servers": {
            "bibtex": {
                "use": "latex",
                "highlightingModeRegex": "^BibTeX$"
            },
            "c": {
                "command": ["clangd", "-log=error", "--background-index"],
                "commandDebug": ["clangd", "-log=verbose", "--background-index"],
                "url": "https://clang.llvm.org/extra/clangd/",
                "highlightingModeRegex": "^(C|ANSI C89|Objective-C)$"
            },
            "cpp": {
                "use": "c",
                "highlightingModeRegex": "^(C\\+\\+|ISO C\\+\\+|Objective-C\\+\\+)$"
            },
            "d": {
                "command": ["dls", "--stdio"],
                "url": "https://github.com/d-language-server/dls",
                "highlightingModeRegex": "^D$"
            },
            "fortran": {
                "command": ["fortls"],
                "rootIndicationFileNames": [".fortls"],
                "url": "https://github.com/hansec/fortran-language-server",
                "highlightingModeRegex": "^Fortran.*$"
            },
            "javascript": {
                "command": ["typescript-language-server", "--stdio"],
                "rootIndicationFileNames": ["package.json", "package-lock.json"],
                "url": "https://github.com/theia-ide/typescript-language-server",
                "highlightingModeRegex": "^JavaScript.*$",
                "documentLanguageId": false
            },
            "latex": {
                "command": ["texlab"],
                "url": "https://texlab.netlify.com/",
                "highlightingModeRegex": "^LaTeX$"
            },
            "go": {
                "command": ["go-langserver"],
                "commandDebug": ["go-langserver", "-trace"],
                "url": "https://github.com/sourcegraph/go-langserver",
                "highlightingModeRegex": "^Go$"
            },
            "python": {
                "command": ["python3", "-m", "pyls", "--check-parent-process"],
                "url": "https://github.com/palantir/python-language-server",
                "highlightingModeRegex": "^Python$"
            },
            "rust": {
                "command": ["rls"],
                "path": ["%{ENV:HOME}/.cargo/bin", "%{ENV:USERPROFILE}/.cargo/bin"],
                "rootIndicationFileNames": ["Cargo.lock", "Cargo.toml"],
                "url": "https://github.com/rust-lang/rls",
                "highlightingModeRegex": "^Rust$"
            },
            "ocaml": {
                "command": ["ocamlmerlin-lsp"],
                "url": "https://github.com/ocaml/merlin",
                "highlightingModeRegex": "^Objective Caml.*$"
            }
        }
    }

Обратите внимание, что каждая запись «command» может быть массивом или строкой (в этом случае она будет поделена на записи массива). Кроме того, также учитывается запись верхнего уровня «global» (рядом с записью «server»); подробнее об этом далее. Поиск указанного исполняемого файла выполняется обычным способом, то есть с помощью переменной `PATH`. Если исполняемый файл установлен в каком-либо нестандартном расположении, может потребоваться развернуть соответствующий путь. В расположении, которое хранится в обычной переменной `PATH`, можно воспользоваться (символической)ссылкой или сценарием-обёрткой. Как показано выше, также можно указать «path» (расположение, в котором будет выполнен поиск после стандартных мест).

Во всех записях «command», «root» и «path» будет выполняться расширение переменных.

Инструкцией «highlightingModeRegex» можно воспользоваться для привязки режима подсветки, который используется &kate;, к идентификатору языка сервера. Если регулярное выражение не указано, используется сам идентификатор языка. Если запись «documentLanguageId» установлена в значение «false», идентификатор языка не предоставляется серверу при открытии документа. Это может подойти для серверов, которые определяют тип документа точнее, чем способ на основе режима &kate;.

Кроме того, каждый объект записи сервера может также иметь запись «initializationOptions», данные которой передаются серверу как часть метода «initialize». Если такая запись присутствует, данные записи «settings» будут переданы серверу с помощью уведомления «workspace/didChangeConfiguration».

Применяются различные этапы переопределения и слияния.

- Пользовательская конфигурация (загруженная из файла) переопределяет (внутреннюю) конфигурацию по умолчанию

- Запись «lspclient» в конфигурации проекта `.kateproject` переопределяет предыдущие записи

- Полученная в результате обработки запись «global» используется как дополнение (не переопределение) любой из записей сервера

Для каждой комбинации (root, servertype) используется один экземпляр сервера. Если значение «root» указано как абсолютный путь, оно используется без обработки. В противном случае оно считается указанным относительно projectBase (как определено в модуле проектов), если это применимо, или иным образом связанным с каталогом документа. Если значение не указано и «rootIndicationFileNames» представляет собой массив имён файлов, то выбирается родительский каталог текущего документа, содержащий такой файл. Последний резервный вариант для «root» — домашний каталог пользователя. Полученное в результате такой обработки значение «root» определяет, требуется ли для документа отдельный экземпляр сервера. Если такой экземпляр нужен, значение «root» будет передано как rootUri/rootPath.

Рекомендуется не указывать значение root, так как оно не так важно для сервера (хотя ситуации могут быть разными). Если экземпляров сервера будет немного, они будут работать эффективнее и обеспечивать «более широкое» поле зрения, чем в случае использования многих отдельных экземпляров сервера.

Как упоминалось ранее, в некоторых записях выполняется расширение переменных. Использование этой возможности в сочетании со «сценарием-обёрткой» позволяет гибко подстроиться к самым разным обстоятельствам. Например, рассмотрим сценарий разработки Python, состоящий из нескольких проектов (например, репозиториев git), каждый из которых имеет свою виртуальную среду. При использовании стандартной конфигурации у сервера языка Python не будет информации о виртуальной среде. Но это можно исправить следующим образом. Сначала следует ввести следующий текст в поле «Параметры сервера пользователя» модуля клиента LSP:

    {
            "servers":
            {
                    "python":
                    {
                            "command": ["pylsp_in_env"], ["%{Project:NativePath}"],
                            "root": "."
                    }
            }
    }

Корневая запись выше относится к каталогу проекта и обеспечивает запуск отдельного языкового сервера для каждого проекта (что необходимо в этом случае, так как каждый проект имеет собственную уникальную виртуальную среду).

`pylsp_in_env` — это небольшой «сценарий-обёртка», который следует поместить в `PATH` со следующим (требует редактирования) содержимым:

    #!/bin/bash
    cd $1
    # run the server (python-lsp-server) within the virtualenv
    # (i.e. with virtualenv variables setup)
    # so source the virtualenv
    source XYZ
    # server mileage or arguments may vary
    exec myserver

#### Конфигурация сервера LSP

Каждый сервер LSP имеет свой собственный способ настройки; для конфигурации могут использоваться средства, специфичные для языка или инструмента, например, `tox.ini` (в том числе для python), `.clang-format` для форматирования в стиле C++. Такая конфигурация затем может также использоваться другими (отличными от LSP) инструментами (такими как tox или clang-format). Кроме того, некоторые серверы LSP загружают конфигурацию из пользовательских файлов (например, `.ccls`). Более того, настраиваемая конфигурация сервера также может быть передана с помощью LSP (протокол): смотрите вышеупомянутые записи «initializationOptions» и «settings» в конфигурации сервера.

Поскольку применяются различные уровни переопределения и слияния, в приведённом далее примере определённые пользователем параметры конфигурации клиента корректируют некоторые из параметров конфигурации python-language-server.

    {
        "servers": {
            "python": {
                "settings": {
                    "pyls": {
                        "plugins": {
                            "pylint": {
                                "enable": true
                            }
                        }
                    }
                }
            }
        }
    }

К сожалению, конфигурация сервера LSP зачастую не очень хорошо документирована, поэтому только изучение исходного кода позволяет найти способы настройки и набор доступных параметров конфигурации. В частности, сервер из приведённого выше примера поддерживает намного больше параметров в «settings». Ознакомьтесь с документацией другого клиента LSP, содержащей примеры серверов других языков и соответствующие параметры настройки, которые возможно легко и просто преобразовать в конфигурацию &JSON;, которая описана в этом руководстве.

#### Подавление диагностики сервера LSP

Иногда диагностические данные могут оказаться не слишком полезны. Диагностикаможет быть лишней, особенно если диагностических сообщений слишком много (часто однотипных). В некоторых случаях поток сообщенийможно скорректировать по языку программирования (на сервере). Например, механизм настройки clangd позволяет корректировать некоторые аспекты диагностики. Тем не менее, способ корректировки не всегда очевиден, а также желаемая корректировка может быть невозможна из-за ограничений сервера или внутренней ошибки.

Поэтому в модуле предусмотрена поддержка подавления диагностических сообщений (она похожа, например, на подавление valgrind). Самую тонкую настройку возможно выполнить с помощью ключа «suppressions» в (объединённой) конфигурации &JSON;.

    {
        "servers": {
            "c": {
                "suppressions": {
                    "rulename": ["filename", "foo"],
                    "clang_pointer": ["", "clang-tidy", "clear_pointer"],
                }
            }
        }
    }

Каждое (корректное) правило имеет произвольное имя и определяется массивом длины 2 или 3, в котором указано регулярное выражение для установления соответствия (полного) имени файла, регулярное выражение для установления соответствия диагностического текста и необязательное регулярное выражение для установления соответствия (диапазона исходного кода) текста, к которому применяется диагностика.

Помимо вышеупомянутой тонкой настройки, в контекстном меню на вкладке диагностики также предусмотрено добавление и удаление подавлений, которые точно соответствуют определённому диагностическому тексту (либо глобально (любой файл), либо локально (конкретный рассматриваемый файл)). Эти подавления хранятся и загружаются из конфигурации сеанса.

#### Устранение неполадок сервера LSP

Одно дело описать настройку (нестандартного) сервера LSP для какого-либо языка программирования, другое же — сделать так, чтобы сервер работал без каких-либо проблем. К счастью, обычно сервер работает именно так. Впрочем, иногда могут возникать сложности из-за случайно допущенных неточностей в параметрах настройки или более серьёзных проблем с самим сервером. Второй вариант может проявлять себя в виде сообщения о неудачных попытках запустить сервер, которое появляется на вкладке вывода данных &kate;. Следует учитывать, что такие сообщения представляют собой лишь сообщения верхнего уровня или хода обработки, а не подробные диагностические сообщения, а также могут не содержать данных о том, что фактически является другим процессом (сервер LSP).

Обычный способ диагностики заключается в том, чтобы добавить к команде запуска (языкового сервера) один или несколько флагов; это включает (дополнительное) журналирование (в какой-либо файл или стандартный поток ошибок), если оно не выполняется по умолчанию. Если затем запустить &kate; из командной строки, возможно, получится узнать о проблеме больше.

Информацию также можно получить, изучив обмен данными между клиентом LSP &kate; и сервером LSP. Опять же, на последнем обычно есть средства трассировки. Клиент LSP также предоставляет дополнительную трассировку отладки (в stderr) при вызове &kate; с должным образом экспортированной переменной среды `QT_LOGGING_RULES=katelspclientplugin=true`.

## Модуль поиска и замены

### Введение

Модуль «Поиск и замена» позволяет провести поиск по тексту или по регулярным выражениям сразу в нескольких файлах. Поиск возможно провести во всех открытых файлах, всех файлах в одном каталоге и (опционально) его подкаталогах или в активном файле. Возможно даже установить фильтр по имени файла, например, чтобы произвести поиск только в файлах с определённым расширением.

### Интерфейс

#### Поисковый запрос

В верхней части панели поиска файлов всегда отображаются следующие опции:

- Возможно открыть сразу несколько вкладок поиска. Чтобы открыть новую вкладку, позволяющую произвести другой поиск, просто нажмите кнопку открытия новой вкладки, расположенную в верхнем левом углу панели поиска.

- Кнопка в верхнем правом углу панели поиска в файлах позволяет переключаться между отображением дополнительных функций для режима поиска в папке и отображением результатов поиска в нижней части панели.

Искать

- В это поле следует вводить текст для поиска. Поддерживается простой текст или регулярные выражения (если соответствующая функция включена).

Заменить на (текстовое поле)

- Заменяющий текст, который будет добавлен в файл(ы) вместо текста в текстовом поле Искать.

Выполнить поиск

- Закончив настройку, нажмите кнопку Выполнить поиск. Для выполнения поиска также возможно нажать клавишу &Enter; в текстовом поле Искать.

Заменить

- Закончив настройку, нажмите кнопку Заменить, чтобы произвести замену текста, введённого в текстовом поле Искать, на текст, указанный в текстовом поле Заменить на. Для выполнения замены также возможно нажать клавишу &Enter; в текстовом поле Заменить на.

Далее

- Перейти к следующему элементу в результатах поиска, при необходимости переключившись на другой файл.

Заменить отмеченные

- То же самое, что и кнопка Заменить, однако сработает только на отмеченных файлах.

#### Параметры поиска в папке

Эти параметры отображаются под вышеупомянутыми параметрами запроса. Если вместо этого отображаются результаты поиска, нажмите кнопку , чтобы отобразить параметры поиска в папке.

Поиск

- Предусмотрено три варианта: В открытых файлах — поиск по всем файлам, открытым на данный момент в &kate;, В папке — поиск внутри папки и (опционально) во вложенных папках, В текущем файле — в текущем активном файле.

  Если подключён модуль проектов, возможно также произвести поиск в текущем проекте или во всех открытых проектах.

С учётом регистра

- Ограничить результаты поиска только теми, которые содержат ту же комбинацию прописных и строчных букв, что и поисковый запрос.

Регулярные выражения

- Позволяет использовать в поиске регулярные выражения вместо простого текста.

Развернуть результаты

- Показать все результаты, найденные в каждом файле, а не просто список файлов, которые содержат поисковый запрос.

Папка

- Возможно ввести путь к папке, в которой требуется выполнить поиск. Например, чтобы выполнить поиск в исходном коде &kate;, введите `~/development/kde/kate/`. Эта функция доступна только при использовании режима В папке.

Выбрать файл или папку

- Нажмите эту кнопку, чтобы указать расположение папки с помощью диспетчера файлов. Кнопка активна только в режиме поиска В папке.

- Нажмите эту кнопку, чтобы указать в поле Папка родительскую папку текущей выбранной папки. Кнопка активна только в режиме поиска В папке.

- Эта кнопка позволяет указать в поле Папка папку текущего открытого документа. Кнопка активна только в режиме поиска В папке.

Фильтр

- Позволяет выполнять поиск только в тех файлах, которые соответствуют определённому шаблону. Например, чтобы провести поиск только по файлам, написанным на C++, введите `*.cpp`. Чтобы выполнить поиск в файлах, начинающихся с «kate», введите `kate*`. Поддерживается ввод нескольких фильтров, которые между собой следует разделять запятой (`,`). Эта функция недоступна при использовании режима В открытых файлах.

Исключить

- Функция, противоположная Фильтру: исключает из поиска те файлы, которые соответствуют определённому шаблону. Поддерживается ввод нескольких шаблонов, которые между собой следует разделять запятой (`,`). Эта функция недоступна при использовании режима В открытых файлах.

Рекурсивно

- Если этот флажок установлен, &kate; проведёт поиск также и во вложенных папках выбранного каталога. Эта функция доступна только в режиме В папке.

Искать в скрытых файлах

- Если этот флажок установлен, &kate; проведёт поиск также и в скрытых файлах и папках, которые обычно не отображаются операционной системой. Эта функция доступна только в режиме В папке.

Следовать по символическим ссылкам

- Модуль поиска в файлах обычно не обрабатывает символические ссылки. Когда эта функция активирована, модуль будет выполнять переход по ним и осуществлять поиск в файлах или папках, на которые они ссылаются. Эта функция доступна только в режиме В папке.

  Символические ссылки могут ссылаться на родительскую папку текущей папки, в которой производится поиск, либо на другие папки, содержащие символические ссылки на свои родительские папки. Если эта опция включена и в папке, в которой производится поиск, содержится такая ссылка, &kate; будет повторно переходить по ссылке и выполнять поиск, то есть он никогда не будет завершён.

Искать в двоичных файлах

- Если этот флажок установлен, &kate; будет также производить поиск по файлам, которые не являются текстовыми файлами.

#### Результаты поиска

Результаты поиска отображаются под параметрами запроса. Если вместо этого отображаются параметры поиска в папке, нажмите кнопку . Результаты поиска также начнут отображаться автоматически после того, как поиск будет произведён.

Результаты поиска отображают список файлов, содержащих искомый текст, а также количество найденных в каждом из них совпадений.

Чтобы просмотреть список совпадений в файле, просто щёлкните по стрелке разворачивания, расположенной слева от названия этого файла (если была выбрана опция Развернуть результаты, список уже будет развёрнут). Для каждого найденного совпадения будет показан номер строки и её содержимое (с поисковым запросом, выделенным полужирным шрифтом).

Чтобы открыть файл, в котором был найден искомый текст, просто дважды щёлкните по нему левой кнопкой мыши. Файл будет открыт в &kate;, если это требуется. Также возможно переместить курсор к расположению конкретного совпадения: сделайте в списке двойной щелчок по этому совпадению, а не по имени файла.

### Структура меню

&Ctrl;&Alt;F Правка Поиск в файлах

- Открыть панель поиска и замены.

Правка Перейти к следующему совпадению

- Перейти к следующему совпадению из результатов поиска модулем поиска и замены.

Правка Перейти к предыдущему совпадению

- Перейти к предыдущему совпадению из результатов поиска модулем поиска и замены.

Вид Боковые панели Показать панель «Поиск и замена»

- Включить или отключить отображение панели Поиск и замена.

## Модуль «Фрагменты» &kate;

### Введение

«Фрагменты» &kate; — это модуль, предназначенный для экономии времени; с его помощью добавляется поддержка так называемых «фрагментов» (многократно используемый исходный код, машинный код или текст). Модуль также поддерживает автодополнение кода и &javascript;.

### Структура меню

Вид Боковые панели Показать панель «Фрагменты»

- Показывает панель фрагментов, содержащую все фрагменты комплекта, которые соответствуют типу текущего открытого файла.

Сервис Создать фрагмент

- Создать новый фрагмент, представляющий собой текст для многократного использования, который возможно вставить в любую часть любого документа.

### Панель фрагментов

Панель фрагментов &kate; Панель фрагментов &kate;.

Панель фрагментов &kate;.

На панели отображается список комплектов фрагментов, а также опции создания собственных комплектов, получения их из Интернета или загрузки из локального файла. Для каждого комплекта предусмотрен флажок, который возможно использовать для его активации или деактивации. Также имеются кнопки для редактирования и удаления существующих комплектов.

#### Загрузка файлов комплектов фрагментов

Комплекты фрагментов возможно загрузить из Интернета. Достаточно нажать кнопку Получить новые фрагменты, и откроется окно со списком комплектов фрагментов, доступных для загрузки. После загрузки комплект следует активировать.

#### Создание и редактирование комплектов

Чтобы создать новый комплект фрагментов, нажмите кнопку Создать комплект. Появится диалоговое окно, в котором следует указать название файла фрагментов, лицензию и автора. Указав необходимые данные, нажмите кнопку OK.

Редактор фрагментов Редактор комплектов.

Интерфейс редактора комплектов.

В редакторе комплектов фрагментов доступны следующие параметры:

Название

- Появляется в списке фрагментов на панели, а также по нему выполняется поиск при использовании функции автодополнения кода.

Пространство имён

- Префикс при использовании функции автодополнения кода.

Лицензия

- Позволяет выбрать лицензию для комплекта фрагментов.

Авторы

- Позволяет ввести имена авторов файла фрагментов.

Типы файлов

- Позволяет выбрать типы файлов, к которым должен применяться комплект фрагментов. По умолчанию установлено значение «», поэтому комплект будет применяться ко всем файлам. Установленное значение возможно изменить, указав, например, `C++`, или выбрав готовый вариант из списка. Возможно установить более одного типа, если удерживать нажатой клавишу &Shift; при их добавлении.

#### Создание и редактирование фрагментов

Редактор фрагментов Редактор фрагментов.

Интерфейс редактора фрагментов.

Название

- Название будет показано в списке автодополнения.

Комбинация клавиш

- Нажатие этой комбинации позволяет вставить фрагмент в документ.

Фрагмент

- Текст, который будет вставлен в документ.

  Фрагмент может содержать поля, которые возможно редактировать. Циклический переход между ними выполняется с помощью клавиши . В тексте шаблона возможно использовать следующие выражения для создания полей:

  `${`имя_поля`}` создаёт простое редактируемое поле. При редактировании все последующие вхождения того же `имени_поля` будут копиями содержимого первого поля.

  `${`имя_поля=значение по умолчанию`}` используется для указания значения по умолчанию для поля. `Значением по умолчанию` может быть любое выражение &javascript;.

  `${`имя_поля`=`текст`}` позволяет указать фиксированную строку в качестве значения по умолчанию.

  `${функция(`другое_поле1`, `другое_поле2`, ...)}` используется для создания поля, которое будет содержать актуальный результат выполнения функции &javascript; при каждом редактировании. Более подробные сведения доступны на вкладке Сценарии.

  `${курсор}` используется для отметки конечной позиции курсора после ввода всех других данных.

Сценарии

- Вспомогательные функции &javascript; для использования во фрагментах.

  Все функции &javascript; должны возвращать содержимое, которое требуется поместить в поле шаблона в виде строки.

  Функции вызываются в области, в которой находится содержимое всех редактируемых полей шаблона в виде локальных переменных. Например, во фрагменте, содержащем `${`поле`}`, будет присутствовать переменная с именем `поле`, значением которой будет актуальное содержимое поля шаблона. Эти переменные могут быть использованы в функции статически либо переданы в качестве аргумента с использованием синтаксиса `${функция(поле)}` или `${`поле2=функция(поле)`}` в строке фрагмента.

  Возможно использовать программный интерфейс для работы со сценариями &kate;, чтобы получить обозначенный фрагмент текста, весь текст, имя файла и другие данные с помощью соответствующих методов объектов `document` и `view`. Дополнительные сведения доступны в документации программного интерфейса для работы со сценариями.

### Использование фрагментов

Пример использования фрагментов Доступ к фрагментам с помощью боковой панели и раскрывающегося списка.

Процесс выбора из списка фрагментов.

Получить доступ к фрагментам возможно двумя способами:

- Выбрать фрагмент на боковой панели.

- Использовать во время редактирования комбинацию клавиш &Ctrl;Пробел для просмотра всех фрагментов в удобном окне и выбора нужного. Эта комбинация клавиш обеспечивает функциональность, аналогичную дополнению кода.

Если во фрагменте содержатся переменные (кроме `${cursor}`), курсор будет автоматически перемещён к первому вхождению переменной, после чего программа перейдёт в состояние ожидания ввода текста. Переход к следующей переменной выполняется с помощью клавиши .

### Благодарности

Автор модуля «Фрагменты» &kate; — Joseph Wenninger.

Благодарим участника «Google Code-In 2011» Martin Gergov за большой вклад в написание данного раздела.

## Модуль SQL

### Введение

SQL (structured query language, «язык структурированных запросов») — это специальный язык для обновления, удаления и запроса информации из баз данных.

Модуль SQL позволяет:

- Создать базу данных

- Подключиться к существующим базам данных

- Вставить и удалить данные из базы данных

- Выполнить запрос

- Отобразить результаты в таблице

### Подключение к базе данных

Выберите пункт Добавить подключение... в меню SQL или на панели инструментов, а затем укажите драйвер базы данных &Qt;, который следует использовать (среди доступных вариантов: QSQLITE, QMYSQL3, QMYSQL, QODBC3, QODBC, QPSQL7 и QPSQL). Если нужный драйвер отсутствует в списке, его потребуется установить. Затем нажмите кнопку Далее.

Если выбранная база данных использует файл для сохранения данных, просто укажите путь к этому файлу и нажмите кнопку Далее. Если для работы с ней требуется подключение к серверу, введите имя хоста сервера, имя пользователя, пароль и другую информацию, которая запрашивается драйвером, а затем нажмите кнопку Далее.

Затем укажите название подключения и нажмите кнопку Завершить.

### Выполнение запросов

#### INSERT/DELETE/UPDATE

С помощью модуля SQL возможно вставлять, удалять и обновлять данные с помощью так же, как из командной строки или из программы. Просто введите запрос и нажмите кнопку Выполнить запрос на панели инструментов или выберите пункт меню SQL Выполнить запрос (&Ctrl;E).

##### Примеры запросов

`INSERT`

-     INSERT INTO имя_таблицы ("запись1", "запись2", "запись3", "запись4", "запись5")
      VALUES ("значение1", "значение2", "значение3", "значение4", "значение5" )

`DELETE`

-     DELETE FROM имя_таблицы WHERE name = "текст"

`UPDATE`

-     UPDATE имя_таблицы SET "запись1" = "текст", "запись2" = "текст", "запись3" = "текст", "запись4" = "текст", "запись5" = "текст"

#### SELECT

После выполнения запроса `SELECT` результат будет представлен либо в виде таблицы на панели Вывод данных SQL в нижней части &kate; или в виде текста на панели Текстовый вывод SQL. Если имеется какая-либо ошибка, она будет показана в текстовом выводе.

##### Пример запроса `SELECT`

    SELECT * FROM имя_таблицы

На панели инструментов Вывод данных SQL доступны несколько кнопок:

Подогнать размеры столбцов

- Изменяет размеры столбцов так, чтобы они соответствовали содержимому.

Подогнать размеры строк

- Изменяет размеры строк так, чтобы они соответствовали содержимому.

Копировать

- Выбирает всё содержимое таблицы и копирует его в буфер обмена.

Экспорт

- Экспортирует всё содержимое таблицы в файл, буфер обмена или текущий документ в формате значений, разделённых запятыми.

Очистить

- Удаляет всё из таблицы.

Цвета таблицы возможно изменить в разделе SQL параметров настройки (Настройка Настроить &kate;... ).

### Просмотр

Возможно просматривать базу данных с помощью боковой панели Схема базы данных, расположенной в левой части окна редактора. Отображаемая информация зависит от того, какой драйвер базы данных используется.

Чтобы обновить этот список, щёлкните правой кнопкой мыши в любом месте боковой панели и выберите опцию Обновить. Чтобы создать запрос к записи в списке, щёлкните правой кнопкой мыши по записи, выберите в контекстном меню пункт Создать запрос и затем выберите тип запроса (SELECT, UPDATE, INSERT или DELETE).

### Структура меню

SQL Добавить подключение...

- Добавляет новое подключение с помощью драйвера базы данных.

SQL Удалить подключение

- Удаляет выбранное подключение.

SQL Изменить подключение...

- Позволяет изменить параметры текущего подключения.

Подключения

- Все созданные подключения к базам данных отображены в списке между элементами меню Изменить подключение... и Выполнить запрос. Чтобы отправить запрос к соответствующей базе данных или внести изменения в эту базу данных, просто выберите один из этих пунктов.

&Ctrl;E SQL Выполнить запрос

- Выполняет запрос пользователя.

### Благодарности

Автор модуля SQL — Marco Mentasti.

Благодарим участника «Google Code-In 2011» Ömer Faruk ORUÇ за большой вклад в написание данного раздела.

## Модуль просмотра идентификаторов

### Работа с модулем «Закрыть кроме/только...»

Этот модуль позволяет разработчикам просматривать символы (функции, макросы и структуры) из исходного кода.

Чтобы просмотреть код, щёлкните по соответствующему элементу обработанной информации.

В настоящее время поддерживаются следующие языки:

C/C++, &Java;, Perl, PHP, Python, Ruby, XSLT, Tcl/Tk, Fortran

Список возможностей:

- Режим списка или дерева
- Включение или отключение сортировки
- Показ или скрытие параметров функций
- Разворачивание или сворачивание иерархического списка
- Автообновление при изменении документа
- Обработка кода, основанная на способах подсветки синтаксиса из &kde-frameworks;

### Структура меню

&Ctrl;\ Вид Боковые панели Показать панель «Список идентификаторов»

- Включает или отключает отображение панели просмотра идентификаторов &kate;.

### Настройка

Просмотр идентификаторов

Выбор параметров обработки по умолчанию

## Модуль встроенного терминала

Встроенный эмулятор терминала — это копия терминала &konsole; &kde;, созданная для удобства пользователя. Чтобы открыть терминал, выберите пункт меню Вид Боковые панели Показать панель терминала (при отображении панель получит фокус ввода). Если подключена функция Синхронизировать терминал с текущим документом автоматически (если возможно), каталог в терминале будет при возможности изменён на каталог текущего документа после показа или внесения изменений в текущий документ.

По умолчанию окно терминала расположено в нижней части редактора под областью редактирования.

&konsole; возможно настроить с помощью контекстного меню (доступно по щелчку правой кнопкой мыши). Более подробные сведения доступны в руководстве пользователя &konsole;.

Встроенный эмулятор терминала предоставляется модулем «Терминал».

### Структура меню

Вид Боковые панели Показать панель терминала

- Включает или отключает отображение встроенного эмулятора терминала.

  Терминал будет создан при первичной активации модуля.

  При отображении эмулятор терминал получает фокус, поэтому возможно сразу же начать вводить команды. Если активирована функция Синхронизировать терминал с текущим документом автоматически (если возможно) на странице Терминал в главном диалоге настройки параметров, в сеансе командной оболочки в качестве текущего будет использоваться каталог активного документа, если это локальный файл.

Сервис Перенаправить в терминал

- Перенаправляет выделенный текст во встроенный эмулятор терминала. После текста не будет добавлен символ новой строки.

Сервис Синхронизировать терминал с текущим документом

- Во встроенном терминале текущим станет каталог активного документа.

  Также возможно настроить &kate; на постоянную синхронизацию терминала с текущим документом. Дополнительные сведения: konsole-config.

Сервис Активировать/Деактивировать терминал

- Переключает фокус с текущего документа на терминал и наоборот.

### Настройка

Модуль терминала возможно настроить на странице Терминал в диалоге настройки редактора.

Доступны следующие опции:

Синхронизировать терминал с текущим документом автоматически (если возможно)

- Встроенный терминал изменит текущий каталог на каталог активного документа после запуска и после того, как новый документ получит фокус. Если эта функция не включена, все действия по навигации в терминале потребуется выполнять вручную.

Установить переменную среды EDITOR равной «kate -b»

- Устанавливает переменную среды `EDITOR` в такое значение, чтобы программы, работающие во встроенном терминале и автоматически открывающие файлы в редакторе, открывали их в &kate; вместо обычного текстового редактора командной оболочки. Продолжить использование терминала будет возможно только после закрытия редактируемого файла в &kate; (в этом случае вызывающая программа получит сообщение о завершении редактирования файла).

Скрыть &konsole; при нажатии клавиши «Esc»

- Эта опция позволяет закрыть встроенный терминал нажатием клавиши &Esc;. Могут возникнуть конфликты с приложениями терминала, в которых используется клавиша &Esc; (например, с vim). Добавьте такие приложения в расположенное ниже поле для ввода текста. Пункты списка следует разделять запятой.

## Модуль текстового фильтра

### Работа с модулем текстового фильтра

Этот модуль используется для обработки выделенного текста с помощью команд терминала. Выделенный текст используется в качестве входных данных команды. В зависимости от выбранного пользователем варианта, выходные данные будут либо использованы для замены выделенного текста, либо скопированы в буфер обмена.

### Примеры:

- `less /etc/fstab` — вставить содержимое этого файла или скопировать его в буфер обмена

- `wc` — посчитать строки, слова и символы выбранного текста и вставить эти данные в документ или скопировать их в буфер обмена

- `sort` — отсортировать строки выбранного текста и вставить результат в документ или скопировать его в буфер обмена

### Структура меню

&Ctrl;\ Сервис Применить заданный командой фильтр...

- Открывает диалог текстового фильтра:

  Диалог текстового фильтра

  Введите в поле команду оболочки или выберите предыдущую команду из журнала.

  Копировать результат (не вставлять)

- Копировать результат в буфер обмена, не изменяя документ.

Объединить STDOUT и STDERR

- Если флажок установлен, вывод STDOUT и STDERR будет объединён и сообщений об ошибках не будет. Если флажок снят, STDERR выводится как отдельное пассивное сообщение.

## Модуль проверки &XML;

Данный модуль помогает проверить документ &XML; на допустимость и правильность формата.

Когда модуль проверяет текущий файл, в нижней части главного окна &kate; выводится список ошибок и предупреждений. Чтобы перейти к конкретной ошибке в файле, выберите соответствующий элемент в списке. Если в файле есть тег DOCTYPE, то для проверки допустимости синтаксиса будет использоваться указанный этим тегом DTD. Поиск файла DTD будет проводиться относительно расположения файла текущего документа, то есть, если тег документа указан как DTD/xhtml1-transitional.dtd, а файл документа расположен по адресу `/home/peter/test.xml`, программа ожидает, что файл DTD находится по адресу `/home/peter/DTD/xhtml1-transitional.dtd`. Приложением поддерживается и внешние DTD, указанные с помощью http-адреса.

Если в файле отсутствует параметр doctype, то проверяется правильность формата.

Более подробные сведения об &XML; доступны на официальных страницах &XML; W3C.

Для работы модуля требуется внешняя команда `xmllint`, входящая в состав библиотеки libxml2. Без неё он не сможет правильно работать.

Чтобы подключить этот модуль, откройте диалог настройки параметров &kate; (Настройка Настроить &kate;...), выберите пункт Проверка &XML; в разделе Приложение / Модули и закройте диалог.

### Структура меню

&XML; Проверить корректность &XML;

- Запуск проверки, как объяснено выше.

### Благодарности

Авторские права на модуль Проверка &XML; &kate;: © &Daniel.Naber; &Daniel.Naber.mail;, 2002.

Авторские права на документацию: © &Daniel.Naber;, 2002.

## Модуль автодополнения для &XML;

Этот модуль позволяет получать подсказки о том, что разрешено в определённой позиции в файле &XML;, в соответствии с DTD файла. Будут перечислены возможные элементы, атрибуты, значения атрибутов или объекты, в зависимости от положения курсора (например, все объекты перечислены, если символ слева от курсора — «&»). Также возможно закрыть ближайший открытый тег слева.

Для работы модуля необходим файл DTD в формате &XML;, созданный программой на Perl `dtdparse`. DTD в таком формате называется «мета DTD». Некоторые из мета DTD устанавливаются вместе с программой. Они доступны в каталоге `katexmltools/```qtpaths` `--paths GenericDataLocation`` , который также является папкой по умолчанию при выборе опции Назначить мета DTD.... Чтобы создавать свои файлы мета DTD, загрузите программу `dtdparse` с веб-сайта http://dtdparse.sourceforge.net.

### Использование

Запустите &kate; и откройте диалог настройки: Настройка Настроить &kate;.... Затем выберите Автодополнение для &XML; на странице Приложение Модули и закройте окно. После этого выберите &XML;Назначить мета DTD.... Если документ не содержит значения «DOCTYPE» или тип документа неизвестен, потребуется указать расположение файла мета DTD в файловой системе. В ином случае будет автоматически загружен файл мета DTD, совпадающий с DOCTYPE текущего документа.

Теперь модуль возможно использовать при вводе текста:

< (клавиша «меньше чем»)

- При нажатии этой клавиши будет показан список возможных элементов (если только курсор уже не находится внутри тега). Следует отметить, что сейчас эту возможность нельзя использовать для вставки элемента верхнего уровня (например, «<html>»).

</(клавиша «меньше чем» + косая черта)

- При вводе этих символов будет предложено закрыть текущий элемент (ближайший открытый тег слева от курсора). Чтобы подтвердить, нажмите клавишу &Enter;. В отличие от пункта меню Закрыть элемент, это сработает только при назначенном DTD.

" (кавычки)

- При нажатии клавиши «кавычки» будет показан список возможных значений атрибутов (если они есть), если курсор находится внутри тега.

(пробел)

- При нажатии клавиши «пробел» будет показан список возможных атрибутов для текущего элемента, если курсор находится внутри тега.

& (клавиша «&»)

- При нажатии этой клавиши будет показан список именованных объектов.

### Возможности и ограничения

Чтобы проверить все функциональные возможности и ограничения, загрузите файл`katexmltools/testcases.xml` в каталог``qtpaths` `--paths GenericDataLocation`` редактора &kate; и следуйте инструкциям из этого файла.

### Структура меню

&Ctrl;&Enter; &XML; Вставить элемент...

- Открыть диалоговое окно, позволяющее вставить элемент &XML;. Символы <, > и закрывающий тег будут вставлены автоматически. Если перед этим был выбран текст, он будет автоматически заключён в открывающий и закрывающий теги. Если файл мета DTD был назначен с помощью пункта меню Назначить мета DTD..., в этом диалоговом окне также будет возможно завершать все элементы, которые вставляются в текущей позиции курсора.

&Ctrl;< &XML; Закрыть элемент

- Проверить текст на наличие незакрытых тегов и закрыть их соответствующими закрывающими тегами. Поиск начинается с позиции курсора и осуществляется в направлении справа налево. Если не будет найден открытый тег, ничего не произойдёт.

&XML; Назначить мета DTD...

- Указать, какой файл мета DTD следует использовать для текущего документа. Обратите внимание, что параметры не будут сохранены и их потребуется задать повторно при следующем запуске &kate;.

### Благодарности

Авторские права на модуль «Автодополнение для &XML;» &kate;: © &Daniel.Naber; &Daniel.Naber.mail;, 2001, 2002

&kde; SC версия 4 © Tomáš Trnka, 2010

Авторские права на документацию: © &Daniel.Naber;, 2001, 2002