&Anders.Lund; &Anders.Lund.mail;
Андрей
Балагута

    uj2@mail.ru

Перевод на русский язык
Мария
Шикунова

    translation-team@basealt.ru

Обновление перевода
Олеся
Герасименко

    translation-team@basealt.ru

Редактирование перевода

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

В &kate; доступны несколько модулей. Есть два типа модулей: некоторые написаны на C++ (то есть на том же языке программирования, что и &kate;), другие — на Python. Далее рассмотрена разница между ними.

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

## Модули &kate;

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

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

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

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

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

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

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

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

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

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

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

- Открытие заголовочного файла — открывает соответствующий файл .h/[.cpp|.c]

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

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

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

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

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

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

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

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

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

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

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

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

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

Этот модуль предназначен для разработчиков и, скорее всего, не потребуется обычным пользователям. Он отображает стек вызовов, предоставленный 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;) или из файла.

Salma
Sultana
&TC.Hollingsworth; &TC.Hollingsworth.mail;

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

### Введение

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

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

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

Вывод сборки

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

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

- Вывод

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

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

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

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

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

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

Сборка

  Эта опция позволяет задать команду сборки. По умолчанию задана команда `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

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

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

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

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

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

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

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

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

## Модуль «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;&Tab; Вид Последние документы
&Ctrl;&Shift;&Tab; Вид Последние документы (в обратном порядке)

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

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

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

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

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

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

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

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

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

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

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

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

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

  Назад

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

  Вперёд

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

  Закладки

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

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

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

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

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

    Таблица

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Поле фильтра

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

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

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

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

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

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

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

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

### Введение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Martin
Gergov
&TC.Hollingsworth; &TC.Hollingsworth.mail;

## Модуль «&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 за большой вклад в написание данного раздела.

## Модуль открытия заголовочного файла

### Работа с модулем открытия заголовочного файла

При редактировании кода C или C++ эта команда позволяет переключаться между заголовочным файлом и соответствующим ему файлом C/C++.

Например, при редактировании файла `myclass.cpp` по этой команде будет открыт файл `myclass.h`, если он расположен в той же папке.

Команду возможно применить для пар следующих расширений файлов:

- Заголовочные файлы: h, H, hh, hpp
- Исходные файлы: c, cpp, cc, cp, cxx

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

F12 Файл Открыть .h/.cpp/.c

  Открывает заголовочный или исходный файл, соответствующий активному документу.

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

### Введение

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

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"
      }
    }

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

С помощью &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/references] Найти ссылки на текущий символ.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

На странице настройки модуля возможно установить стандартные значения перечисленных выше элементов меню. На этой странице также имеется поле, в котором возможно указать путь к файлу конфигурации сервера. Это файл &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.*$"
            },
            "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"],
                "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»).

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

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

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

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

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

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

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

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

#### Конфигурация сервера 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;, которая описана в этом руководстве.

&TC.Hollingsworth; &TC.Hollingsworth.mail;

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

### Введение

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

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

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

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

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

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

Искать

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

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

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

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

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

Заменить

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

Далее

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

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

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

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

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

Поиск

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

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

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

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

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

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

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

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

Папка

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

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

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

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

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

Фильтр

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

Исключить

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

Рекурсивно

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Martin
Gergov
&TC.Hollingsworth; &TC.Hollingsworth.mail;

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

### Введение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Название

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

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

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

Лицензия

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

Авторы

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

Типы файлов

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

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

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

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

Название

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

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

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

Фрагмент

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

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

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

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

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

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

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

Сценарии

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ömer
Faruk
ORUÇ
&TC.Hollingsworth; &TC.Hollingsworth.mail;

## Модуль 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; на постоянную синхронизацию терминала с текущим документом. Дополнительные сведения: .

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

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

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

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

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

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

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

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

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

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

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

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

#### Примеры:

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

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

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

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

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

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

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

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

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

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

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

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

&Daniel.Naber; &Daniel.Naber.mail;

## Модуль проверки &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.

&Daniel.Naber; &Daniel.Naber.mail;

## Модуль автодополнения для &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