<appendix id="plugin-tools"> <title >Подключаемый инструментарий</title> <indexterm zone="plugin-tools"> <primary >модули</primary ></indexterm> <para >&kdevelop; содержит большое количество небольших инструментов, помогающих вам быстрее выполнить определённую задачу. Большинство из них реализованы в виде модулей. Это значит, что если они вам не нужны, вы можете их отключить их.</para> <para >Это также значит, что если если вам не хватает каких-то функций, которые по-идее должны присутствовать в программе подобного рода, возможно они уже реализованы в виде модуля, отключенного по умолчанию. Например, в меню Файл может присутствовать пункт "Быстрое открытие", но только если включен соответствующий параметр в окне Проект-Параметры проекта. </para> <para >Все модули реализуют класс KDevPlugin, определяемый в lib/interfaces/kdevplugin.h. Далее приведена выдержка из комментария к нему.</para> <para >Базовым классом для всех модулей KDevelop является KDevPlugin. Модуль - это компонент, загружаемый в среде KDevelop во время её запуска или по запросу. Каждый модуль имеет свою область действия, они делятся на: <itemizedlist> <listitem ><simpara >Базовые</simpara ></listitem> <listitem ><simpara >Глобальные</simpara ></listitem> <listitem ><simpara >Модули работы с проектами</simpara ></listitem> </itemizedlist> </para> <para >Базовые (Core) модули - это глобальные модули с важной функциональностью, и поэтому их отключение в настройках невозможно.</para> <para >Для глобальных модулей требуется только сама среда KDevelop, интерфейс KDevProject и какие-либо данные, относящиеся к проектам, ими не используются. Например, модуль uimode позволяет выбирать графический интерфейс для среды разработки. </para> <para >Модули работы с проектами требуют наличия загруженного проекта и, обычно, сами загружаются/освобождаются вместе с проектами. Пример такого модуля - Менеджер Automake - загружается только при открытии проектов, использующих Automake для сборки. </para> <para >Как уже сказано выше, базовые модули не могут быть отключены. Отключить и включить глобальные модули можно в окне <menuchoice ><guimenu >Настройка</guimenu > <guimenuitem >Настроить KDevelop...</guimenuitem ></menuchoice >, на странице <guibutton >Модули</guibutton >. Модули работы с проектами включаются и отключаются в окне <menuchoice ><guimenu >Проект</guimenu > <guimenuitem >Параметры проекта...</guimenuitem ></menuchoice >, также на странице <guibutton >Модули</guibutton >. Загруженные модули могут влиять на многие параметры KDevelop. Например, они могут добавлять новые меню, панели инструментов, комбинации клавиш. </para> <para >Отключенные модули не добавляют свои элементы в меню и вообще не загружаются в память. </para> <para >Ниже приведен список модулей, сгенерированный сценарием listplugins.sh. Для каждого модуля имеется файл .desktop с информацией нём, такой как его имя и описание, оно и приводится в списке.</para> <para >Модули сгруппированы по области действия (базовые, глобальные, работы с проектами).</para> <para >Базовые модули</para> <itemizedlist> <listitem ><formalpara id="KDevAppWizard"> <title >Мастер приложений</title> <para >Мастер приложений</para ></formalpara ></listitem> <listitem ><formalpara id="KDevDiff"> <title >Просмотрщик различий</title> <para >Просмотрщик различий</para ></formalpara ></listitem> <listitem ><formalpara id="KDevFileCreate"> <title >Мастер создания файлов</title> <para >Мастер создания файлов</para ></formalpara ></listitem> <listitem ><formalpara id="KDevFullScreen"> <title >Полноэкранный режим</title> <para >Полноэкранный режим</para ></formalpara ></listitem> <listitem ><formalpara id="KDevTipOfDay"> <title >Полезный совет</title> <para >Полезный совет</para ></formalpara ></listitem> <listitem ><formalpara id="KDevUIChooser"> <title >Выбор интерфейса пользователя</title> <para >Предоставляет диалог выбора режима интерфейса пользователя.</para ></formalpara ></listitem> <listitem ><formalpara id="KDevVCSManager"> <title >VCSManager</title> <para >Управление системами контроля версий </para ></formalpara ></listitem> </itemizedlist> <para >Глобальные модули</para> <itemizedlist> <listitem ><formalpara id="KDevAbbrev"> <title >Расшифровщик сокращений</title> <para >Предоставляет поддержку для настраиваемых сокращений - коротких слов, которые заменяются на часто используемые структуры кода.</para ></formalpara ></listitem> <listitem ><formalpara id="KDevDocumentation"> <title >Документирование</title> <para >Модуль документации позволяет упростить работу с документацией.</para ></formalpara ></listitem> <listitem ><formalpara id="KDevfilelist"> <title >Список файлов</title> <para >Список открытых в данных момент файлов (полезно, когда они не помещаются на панели вкладок).</para ></formalpara ></listitem> <listitem ><formalpara id="KDevFileSelector"> <title >Селектор файлов</title> <para >Средство просмотра списка файлов с поддержкой работы по сети.</para ></formalpara ></listitem> <listitem ><formalpara> <title >Фильтрация и вставка с помощью команд оболочки</title> <para >Предоставляет функции работы с текстом в редакторе с использованием утилит командной строки.</para ></formalpara ></listitem> <listitem ><formalpara id="KDevGrepView"> <title >Интеграция Grep</title> <para >Интегрирует "find|grep" в KDevelop - позволяет производить быстрый поиск по нескольким файлам с использованием шаблонов или регулярных выражений.</para ></formalpara ></listitem> <listitem ><formalpara id="KDevKonsoleView"> <title >Встроенный эмулятор терминала</title> <para >Предоставляет встроенную консоль для быстрого вызова командной строки.</para ></formalpara ></listitem> <listitem ><formalpara id="KDevOpenWith"> <title >Дополнение меню "Открыть с помощью"</title> <para >Этот модуль предоставляет различные возможности открытия файлов, используя контекстные меню KDevelop.</para ></formalpara ></listitem> <listitem ><formalpara id="KDevPartExplorer"> <title >Средство опроса компонентов</title> <para >Графическое средство для выполнения запросов KTrader о зарегистрированных службах.</para ></formalpara ></listitem> <listitem ><formalpara id="KDevRegexpTest"> <title >Проверка регулярных выражений</title> <para >Средство для определения и проверки регулярных выражений на предмет соответствия их наиболее распространённым вариантам синтаксиса.</para ></formalpara ></listitem> <listitem ><formalpara id="KDevReplace"> <title >Замена по проекту</title> <para >Этот модуль предоставляет интерактивные возможности поиска и замены по файлам в проекте. Сначала проводится поиск по строке или регулярному выражению, далее выбор с предпросмотром и применение замен из списка доступных вариантов.</para ></formalpara ></listitem> <listitem ><formalpara id="KDevscripting"> <title >Сценарии</title> <para >Модуль сценариев позволяет автоматизировать работу с помощью KScript</para ></formalpara ></listitem> <listitem ><formalpara id="Code_Snippets"> <title >Заготовки кода</title> <para >Модуль сохранения часто используемых частей кода в одно место для быстрого доступа к ним</para ></formalpara ></listitem> <listitem ><formalpara id="KDevTextTools"> <title >Отображение структуры текста</title> <para >Отображает структуру документов в формате HTML и TEX, а также предоставляет возможности навигации по ним.</para ></formalpara ></listitem> <listitem ><formalpara id="KDevTools"> <title >Дополнение меню инструментов</title> <para >Предоставляет возможности добавления в меню пунктов вызова внешних приложений.</para ></formalpara ></listitem> <listitem ><formalpara id="KDevvalgrind"> <title >Интерфейс к Valgrind</title> <para >Valgrind - это средство нахождения проблем управления памятью в программах. http://developer.kde.org/~sewardj/</para ></formalpara ></listitem> </itemizedlist> <para >Модули работы с проектами</para> <itemizedlist> <listitem ><formalpara id="KDevannotation"> <title >Модуль Аннотации</title> <para >Модуль Аннотации</para ></formalpara ></listitem> <listitem ><formalpara id="KDevAStyle"> <title >Форматировщик исходного кода</title> <para >Модуль для форматирования кода по установленным правилам.</para ></formalpara ></listitem> <listitem ><formalpara id="KDevBookmarks"> <title >Закладки</title> <para >Модуль, который обеспечивает навигацию и просмотр активных закладок в коде, а также их сохранение в проекте.</para ></formalpara ></listitem> <listitem ><formalpara id="KDevClassView"> <title >Обзор классов</title> <para >Этот модуль отображает список классов в проекте, включая методы и атрибуты а также предоставляет возможности навигации по коду.</para ></formalpara ></listitem> <listitem ><formalpara id="KDevcopyto"> <title >CopyTo</title> <para >Простой модуль передачи файлов на сервер, с помощью KIO.</para ></formalpara ></listitem> <listitem ><formalpara id="KDevCTags2"> <title >Интерфейс к CTags</title> <para >CTags - это средство навигации по коду, поддерживающее многие языки. Будучи загружено, оно предоставляет контекстное меню для нахождения описания и определения типа выбранного символа, а также диалог запроса. http://ctags.sourceforge.net/</para ></formalpara ></listitem> <listitem ><formalpara id="KDevdistpart"> <title >Сборка и распространение пакетов</title> <para >Помогает в сборке и распространении пакетов программ. В данное время поддерживается только формат RPM.</para ></formalpara ></listitem> <listitem ><formalpara id="KDevDoxygen"> <title >Поддержка Doxygen</title> <para >Модуль поддержки doxygen предоставляет возможности контроля генерации проектной документации на основе содержимого исходных файлов. Для использования необходим doxygen. Подробнее об этом смотрите на http://www.doxygen.org.</para ></formalpara ></listitem> <listitem ><formalpara id="KDevQuickOpen"> <title >QuickOpen</title> <para >Предоставляет эффективное средство нахождения и открытия файлов и классов в больших проектах.</para ></formalpara ></listitem> <listitem ><formalpara id="KDevSecurity"> <title >Проверка безопасности</title> <para >Проверка безопасности кода</para ></formalpara ></listitem> </itemizedlist> <table id="table-project-parts"> <title >Модули &kdevelop; для управления проектом</title> <tgroup cols="2" ><tbody> <row> <entry >antproject</entry> <entry >ANT (&Java;)</entry> </row> <row> <entry >autoproject</entry> <entry >Automake</entry> </row> <row> <entry >customproject</entry> <entry >Специальный проект</entry> </row> <row> <entry >trollproject</entry> <entry >Менеджер проектов, основанный на QMake</entry> </row> </tbody ></tgroup> </table> <table> <title >Модули &kdevelop; по поддержке языков программирования</title> <tgroup cols="2"> <tbody> <row ><entry >cppsupport</entry ><entry >Поддержка C/C++</entry ></row> <row ><entry >fortransupport</entry ><entry >Поддержка Fortran</entry ></row> <row ><entry >javasupport</entry ><entry >Поддержка &Java;</entry ></row> <row ><entry >perlsupport</entry ><entry >Поддержка Perl</entry ></row> <row ><entry >phpsupport</entry ><entry >Поддержка PHP</entry ></row> <row ><entry >pythonsupport</entry ><entry >Поддержка Python</entry ></row> </tbody ></tgroup> </table> <para >Далее некоторые модули будут рассмотрены более подробно</para> <itemizedlist> <listitem> <formalpara> <title >Модуль <command >abbrev</command ></title> <indexterm zone="plugin-tools" ><primary ><command >abbrev</command ></primary ></indexterm> <para >Этот модуль заменяет сокращения на часто используемые части кода. Он активируется нажатием <keycombo ><keycap >Ctrl</keycap > <keycap >Пробел</keycap ></keycombo >. Например, вы ввели <literal >"ife"</literal > в редактор языка C++. Теперь нажмите <keycombo ><keycap >Ctrl</keycap ><keycap >Пробел</keycap ></keycombo >, и вы получите шаблон кода <literal >if-else</literal >. Набор поддерживаемых сокращений зависит от языка программирования. Например, для PHP вам вряд ли будут интересны сокращения кода для &Java;. </para> </formalpara> <para >Набор сокращений можно настраивать. Если модуль активен, то это можно сделать в окне <menuchoice ><guimenu >Настройка</guimenu > <guimenuitem >Настроить KDevelop...</guimenuitem ></menuchoice >, вкладка <guibutton >Сокращения</guibutton > </para> </listitem> <listitem> <formalpara id="KDevFilter"> <title >Модуль <command >filter</command ></title> <indexterm zone="plugin-tools" ><primary ><command >filter</command ></primary ></indexterm> <para >Предоставляет две функции. <menuchoice ><guimenu >Сервис</guimenu > <guimenuitem >Выполнить команду</guimenuitem ></menuchoice > позволяет ввести команду оболочки. После нажатия на кнопке <guibutton >Запуск</guibutton > вывод команды будет помещён в буфер обмена. </para> </formalpara> <para >Вторая функция доступна через пункт меню <menuchoice ><guimenu >Сервис</guimenu ><guimenuitem >Фильтровать выделение через команду...</guimenuitem ></menuchoice >. Для её использования выделите текст в редакторе. Выделенный текст будет передан на стандартный ввод указанной команде, а в вместо него будет вставлен вывод команды. </para> <para >Например, принаписании документации часто требуется ссылаться на команды меню. Например, для команды Скопировать из меню Правка нужно написать: <programlisting ><menuchoice><guimenu>Edit</guimenu><guimenuitem>Copy</guimenuitem></menuchoice></programlisting >. Но значительно проще ввести просто "Edit - Copy" и оставить утомительную работу по вставку тегов компьютеру. Для этого напишем маленький сценарий и сохраним его в файле с именем mef в домашнем каталоге: <programlisting >sed s/"^\(.*\) - \(.*\)\$"/"<menuchoice><guimenu>\1<\/guimenu><guimenuitem>\2<\/guimenuitem><\/menuchoice>"/</programlisting > Сделаем его исполняемым. Теперь ведите и выделите текст "Edit - Copy", затем вызовите меню <menuchoice ><guimenu >Сервис</guimenu ><guimenuitem >Фильтровать выделение через команду...</guimenuitem ></menuchoice > и запустите ~/mef. "Edit - Copy" будет заменено таким текстом: <programlisting ><menuchoice><guimenu>Edit</guimenu><guimenuitem>Copy</guimenuitem></menuchoice></programlisting> </para> </listitem> <listitem> <formalpara> <title >Модуль &doxygen;</title> <indexterm zone="plugin-tools" ><primary >&doxygen;</primary ></indexterm> <indexterm zone="plugin-tools" ><primary >средство документирования</primary ></indexterm> <indexterm zone="plugin-tools" ><primary >API-документация</primary ></indexterm> <para >Упрощает использования средства API-документирования &doxygen; (<ulink url="http://www.doxygen.org" ></ulink >). <menuchoice ><guimenu >Проект</guimenu > <guimenuitem >Запустить Doxygen</guimenuitem ></menuchoice > приведёт к генерированию API-документации к текущему проекту, основываясь на конфигурационном файле <filename >Doxyfile</filename > в каталоге проекта. </para> </formalpara> <para >Более того, вы можете настроить &doxygen; через диалог <menuchoice ><guimenu >Проект</guimenu > <guimenuitem >Параметры проекта...</guimenuitem ></menuchoice >. Он подобен мастеру &doxywizard;. </para> </listitem> <listitem> <formalpara> <title >Модуль &ctags;</title> <indexterm zone="plugin-tools" ><primary >&ctags;</primary ></indexterm> <para >Этот инструмент является расширением обзора классов, основанным на программе ctags, и поддерживает больше языков программирования. </para> </formalpara> <para >Активируйте модуль через меню <menuchoice ><guimenu >Сервис</guimenu > <guimenuitem >CTags...</guimenuitem ></menuchoice >. При первом запуске, вам будет предложено создать базу данных поиска. При этом в каталоге проекта будет создан файл <filename >tags</filename >. Это текстовый файл со списком идентификаторов исходных файлов проекта. </para> <para >В такой базе данных вы можете выполнять поиск двумя способами: если <guilabel >Совпадение с регулярным выражением</guilabel > включено, вводимый вами текст будет интерпретироваться как регулярное выражение (стандарта POSIX) и сравниваться в существующими идентификаторами. Например, текст <literal >.*Widget</literal > приведёт к поиску всех идентификаторов, заканчивающихся на <literal >Widget</literal >. Иначе, поиск будет дословным. </para> <para >При поиске будет выводиться список подходящих идентификаторов, сопровождающийся номерами строк с их объявлениями. Чтобы перейти к объявлению, щёлкните на идентификаторе. </para> <para >Для некоторых языков программирования, &ctags; распознаёт разные типы идентификаторов. например, в Python есть классы и функции, и вы можете выборочно искать отдельно либо классы, либо функции. </para> <para >База данных не обновляется каждый раз при изменении исходников. Поэтому вам нужно самостоятельно периодично обновлять её с помощью кнопки <guibutton >Обновить</guibutton >. </para> </listitem> <listitem> <formalpara> <title >Модуль <command >astyle</command ></title> <indexterm zone="plugin-tools" ><primary ><command >astyle</command ></primary ></indexterm> <indexterm zone="plugin-tools" ><primary ><application >Оформление исходного кода</application ></primary ></indexterm> <indexterm zone="plugin-tools" ><primary >выставление отступов</primary ></indexterm> <para >Astyle - это модуль для форматирования кода в соответствии с определённым набором файлов. </para> </formalpara> </listitem> <listitem> <formalpara> <title >Модуль <command >regexptest</command ></title> <indexterm zone="plugin-tools" ><primary ><command >regexptest</command ></primary ></indexterm> <indexterm zone="plugin-tools" ><primary >отладка</primary ><secondary >регулярные выражения</secondary ></indexterm> <indexterm zone="plugin-tools" ><primary >регулярные выражения</primary ><secondary >отладка</secondary ></indexterm> <para >Составление регулярных выражений может быть долгой работой, обычно первая попытка поиска по введённому выражению выводит много результатов. Модуль regexptest позволяет вам напрямую отслеживать изменения в регулярном выражении. он активируется через <menuchoice ><guimenu >Сервис</guimenu > <guimenuitem >Проверить регулярное выражение...</guimenuitem ></menuchoice >. </para> </formalpara> <para >Вы можете выбрать синтаксис регулярного выражения. На текущий момент поддерживается стандарт POSIX, используемый командой &grep;, и расширенный стандарт POSIX, используемый в команде &egrep;. </para> <para >При вводе регулярного выражения, вам сразу будет сообщаться об ошибках в нём. Введением текста в <guilabel >Строка для проверки</guilabel >, вы можете проверить, подходит ли текст введённому вами выражению. В частности, если регулярно выражение содержит группы, такие как <literal >([a-z])</literal >, содержание подходящих подгрупп будет отображено в списке. </para> </listitem> <!-- <listitem> <formalpara> <title >The <command >konsole</command > Plugin</title> <indexterm zone="plugin-tools" ><primary ><command >konsole</command ></primary ></indexterm> <indexterm zone="plugin-tools" ><primary >terminal</primary ><secondary >embedded</secondary ></indexterm> <para ></para> </formalpara> </listitem> --> </itemizedlist> </appendix > <!-- plugin-tools --> <!-- ====================================================================== -->