# Подключаемый инструментарий

&kdevelop; содержит большое количество небольших инструментов, помогающих вам быстрее выполнить определённую задачу. Большинство из них реализованы в виде модулей. Это значит, что если они вам не нужны, вы можете их отключить их.

Это также значит, что если если вам не хватает каких-то функций, которые по-идее должны присутствовать в программе подобного рода, возможно они уже реализованы в виде модуля, отключенного по умолчанию. Например, в меню Файл может присутствовать пункт "Быстрое открытие", но только если включен соответствующий параметр в окне Проект-Параметры проекта.

Все модули реализуют класс KDevPlugin, определяемый в lib/interfaces/kdevplugin.h. Далее приведена выдержка из комментария к нему.

Базовым классом для всех модулей KDevelop является KDevPlugin. Модуль - это компонент, загружаемый в среде KDevelop во время её запуска или по запросу. Каждый модуль имеет свою область действия, они делятся на:

- Базовые

- Глобальные

- Модули работы с проектами

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

Для глобальных модулей требуется только сама среда KDevelop, интерфейс KDevProject и какие-либо данные, относящиеся к проектам, ими не используются. Например, модуль uimode позволяет выбирать графический интерфейс для среды разработки.

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

Как уже сказано выше, базовые модули не могут быть отключены. Отключить и включить глобальные модули можно в окне Настройка Настроить KDevelop..., на странице Модули. Модули работы с проектами включаются и отключаются в окне Проект Параметры проекта..., также на странице Модули. Загруженные модули могут влиять на многие параметры KDevelop. Например, они могут добавлять новые меню, панели инструментов, комбинации клавиш.

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

Ниже приведен список модулей, сгенерированный сценарием listplugins.sh. Для каждого модуля имеется файл .desktop с информацией нём, такой как его имя и описание, оно и приводится в списке.

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

Базовые модули

- ## Мастер приложений

  Мастер приложений

- ## Просмотрщик различий

  Просмотрщик различий

- ## Мастер создания файлов

  Мастер создания файлов

- ## Полноэкранный режим

  Полноэкранный режим

- ## Полезный совет

  Полезный совет

- ## Выбор интерфейса пользователя

  Предоставляет диалог выбора режима интерфейса пользователя.

- ## VCSManager

  Управление системами контроля версий

Глобальные модули

- ## Расшифровщик сокращений

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

- ## Документирование

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

- ## Список файлов

  Список открытых в данных момент файлов (полезно, когда они не помещаются на панели вкладок).

- ## Селектор файлов

  Средство просмотра списка файлов с поддержкой работы по сети.

- ## Фильтрация и вставка с помощью команд оболочки

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

- ## Интеграция Grep

  Интегрирует "find|grep" в KDevelop - позволяет производить быстрый поиск по нескольким файлам с использованием шаблонов или регулярных выражений.

- ## Встроенный эмулятор терминала

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

- ## Дополнение меню "Открыть с помощью"

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

- ## Средство опроса компонентов

  Графическое средство для выполнения запросов KTrader о зарегистрированных службах.

- ## Проверка регулярных выражений

  Средство для определения и проверки регулярных выражений на предмет соответствия их наиболее распространённым вариантам синтаксиса.

- ## Замена по проекту

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

- ## Сценарии

  Модуль сценариев позволяет автоматизировать работу с помощью KScript

- ## Заготовки кода

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

- ## Отображение структуры текста

  Отображает структуру документов в формате HTML и TEX, а также предоставляет возможности навигации по ним.

- ## Дополнение меню инструментов

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

- ## Интерфейс к Valgrind

  Valgrind - это средство нахождения проблем управления памятью в программах. http://developer.kde.org/~sewardj/

Модули работы с проектами

- ## Модуль Аннотации

  Модуль Аннотации

- ## Форматировщик исходного кода

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

- ## Закладки

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

- ## Обзор классов

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

- ## CopyTo

  Простой модуль передачи файлов на сервер, с помощью KIO.

- ## Интерфейс к CTags

  CTags - это средство навигации по коду, поддерживающее многие языки. Будучи загружено, оно предоставляет контекстное меню для нахождения описания и определения типа выбранного символа, а также диалог запроса. http://ctags.sourceforge.net/

- ## Сборка и распространение пакетов

  Помогает в сборке и распространении пакетов программ. В данное время поддерживается только формат RPM.

- ## Поддержка Doxygen

  Модуль поддержки doxygen предоставляет возможности контроля генерации проектной документации на основе содержимого исходных файлов. Для использования необходим doxygen. Подробнее об этом смотрите на http://www.doxygen.org.

- ## QuickOpen

  Предоставляет эффективное средство нахождения и открытия файлов и классов в больших проектах.

- ## Проверка безопасности

  Проверка безопасности кода

## Модули &kdevelop; для управления проектом

antproject | ANT (&Java;)
autoproject | Automake
customproject | Специальный проект
trollproject | Менеджер проектов, основанный на QMake

## Модули &kdevelop; по поддержке языков программирования

cppsupport | Поддержка C/C++
fortransupport | Поддержка Fortran
javasupport | Поддержка &Java;
perlsupport | Поддержка Perl
phpsupport | Поддержка PHP
pythonsupport | Поддержка Python

Далее некоторые модули будут рассмотрены более подробно

- ## Модуль `abbrev`

  Этот модуль заменяет сокращения на часто используемые части кода. Он активируется нажатием Ctrl Пробел. Например, вы ввели `"ife"` в редактор языка C++. Теперь нажмите CtrlПробел, и вы получите шаблон кода `if-else`. Набор поддерживаемых сокращений зависит от языка программирования. Например, для PHP вам вряд ли будут интересны сокращения кода для &Java;.

  Набор сокращений можно настраивать. Если модуль активен, то это можно сделать в окне Настройка Настроить KDevelop..., вкладка Сокращения

- ## Модуль `filter`

  Предоставляет две функции. Сервис Выполнить команду позволяет ввести команду оболочки. После нажатия на кнопке Запуск вывод команды будет помещён в буфер обмена.

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

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

      <menuchoice><guimenu>Edit</guimenu><guimenuitem>Copy</guimenuitem></menuchoice>

  . Но значительно проще ввести просто "Edit - Copy" и оставить утомительную работу по вставку тегов компьютеру. Для этого напишем маленький сценарий и сохраним его в файле с именем mef в домашнем каталоге:

      sed s/"^\(.*\) - \(.*\)\$"/"<menuchoice><guimenu>\1<\/guimenu><guimenuitem>\2<\/guimenuitem><\/menuchoice>"/

  Сделаем его исполняемым. Теперь ведите и выделите текст "Edit - Copy", затем вызовите меню Сервис Фильтровать выделение через команду... и запустите ~/mef. "Edit - Copy" будет заменено таким текстом:

      <menuchoice><guimenu>Edit</guimenu><guimenuitem>Copy</guimenuitem></menuchoice>

- ## Модуль &doxygen;

  Упрощает использования средства API-документирования &doxygen; (). Проект Запустить Doxygen приведёт к генерированию API-документации к текущему проекту, основываясь на конфигурационном файле `Doxyfile` в каталоге проекта.

  Более того, вы можете настроить &doxygen; через диалог Проект Параметры проекта.... Он подобен мастеру &doxywizard;.

- ## Модуль &ctags;

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

  Активируйте модуль через меню Сервис CTags.... При первом запуске, вам будет предложено создать базу данных поиска. При этом в каталоге проекта будет создан файл `tags`. Это текстовый файл со списком идентификаторов исходных файлов проекта.

  В такой базе данных вы можете выполнять поиск двумя способами: если Совпадение с регулярным выражением включено, вводимый вами текст будет интерпретироваться как регулярное выражение (стандарта POSIX) и сравниваться в существующими идентификаторами. Например, текст `.*Widget` приведёт к поиску всех идентификаторов, заканчивающихся на `Widget`. Иначе, поиск будет дословным.

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

  Для некоторых языков программирования, &ctags; распознаёт разные типы идентификаторов. например, в Python есть классы и функции, и вы можете выборочно искать отдельно либо классы, либо функции.

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

- ## Модуль `astyle`

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

- ## Модуль `regexptest`

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

  Вы можете выбрать синтаксис регулярного выражения. На текущий момент поддерживается стандарт POSIX, используемый командой &grep;, и расширенный стандарт POSIX, используемый в команде &egrep;.

  При вводе регулярного выражения, вам сразу будет сообщаться об ошибках в нём. Введением текста в Строка для проверки, вы можете проверить, подходит ли текст введённому вами выражению. В частности, если регулярно выражение содержит группы, такие как `([a-z])`, содержание подходящих подгрупп будет отображено в списке.