Принцип работы модуля проектов — предоставлять структурированный список файлов, относящихся к проекту, со следующими свойствами:
Обеспечение структурированного просмотра файлов
Упрощение и ускорение открытия и переключения проектов
Поддержка поиска и замены в проекте
Обеспечение функции простого автодополнения
Упрощение быстрого открытия файлов в проекте
Поддержка сборки проектов
Подключив модуль проекта на странице параметров Kate, откройте файл в проекте, чтобы появилась боковая панель со списком всех проектов и их отдельных файлов, как показано на снимке ниже:
Как это видно на снимке, текущий активный проект — это «Kate», и его содержимое отображено в качестве разворачиваемого списка. Чтобы открыть тот или иной файл в редакторе, просто щёлкните по нему левой кнопкой мыши. Также предусмотрено контекстное меню, с помощью которого возможно открывать файлы в других приложениях, например файл с расширением .ui — в Qt Designer.
Чтобы активировать фильтр, начните вводить название файла в поле поиска, которое расположено под списком.
Основная идея — избавить пользователя от необходимости открывать проект вручную, такая функция даже не предусмотрена. При открытии файла модуль проектов быстро сканирует папки на предмет наличия файла .kateproject. Если такой файл найден, проект будет загружен автоматически.
Более того, если открыть в Kate другой документ, относящийся к другому проекту, модуль автоматически сделает этот проект текущим, поэтому активным всегда будет нужный проект. Конечно, также поддерживается переключение между проектами с помощью поля со списком.
В редактор Kate встроен модуль «Поиск и замена», отображающийся на боковой панели, которая расположена в нижней части окна. Загрузив проект, откройте боковую панель модуля поиска и замены и переключите режим на поиск и замену в текущем проекте:
Модуль предоставляет простые средства автодополнения на основе CTags, учитывая данные относящихся к проекту файлов. При первоначальном открытии проекта CTags анализирует все файлы проекта в фоновом потоке и сохраняет информацию CTags в /tmp. Этот файл затем используется для всплывающего окна автодополнения в Kate.
Для сравнения: без такого автодополнения Kate поддерживает показ вариантов автодополнения только для тех слов, которые используются в текущем файле. Поэтому автодополнение в модуле проектов намного эффективнее.
Если отсутствует CTags, пассивное всплывающее окно предупреждает об этой проблеме. Также следует отметить, что файл CTags в /tmp очищается при выходе из Kate, поэтому модуль не засоряет папки ненужными файлами.
Ещё одна особенность — это поддержка модуля для сборки ПО, что обеспечивает автоматическую корректную настройку.
В модуле проектов предусмотрена функция автозагрузки. Список файлов доступен в системе управления версиями. Для этого в параметрах настройки должна быть включена автоматическая загрузка репозиториев для соответствующей системы управления версиями (по умолчанию — включена):
Достаточно просто создать файл .kateproject в корневой папке проекта. Например, для проекта «Kate» файл .kateproject будет выглядеть следующим образом:
{
"name": "Kate",
"files": [
{
"git": 1
}
]
}
Содержимое файла написано с помощью синтаксиса JSON. Название проекта — «Kate», и файлы, содержащиеся в нём, должны быть прочитаны из Git.
Вместо git также допустимо использовать subversion (svn) или mercurial (hg). Если выполнять чтение файлов из системы управления версиями не требуется, можно просто вызвать Kate из командной строки:
kate /path/to/folder
или следующим образом указать программе рекурсивно загружать файлы из каталогов:
{
"name": "Kate",
"files": [
{
"directory": "kate",
"filters": [
"*.cpp",
"*.h",
"*.ui",
"CMakeLists.txt",
"Find*.cmake"
],
"recursive": 1,
"hidden": 1
}
],
"exclude_patterns" : [
"^build/.*"
]
}
Здесь вложенные папки и фильтры определяют, что является частью проекта. Также можно совместить управление версиями и управление файлами на основе фильтров. Получение скрытых файлов не будет выполняться, если опция "hidden" установлена в значение «0». "exclude_patterns" — список шаблонов регулярных выражений, которые можно использовать для исключения папок и файлов из иерархии проекта. В рассматриваемом примере будет исключены все файлы и папки в каталоге build корневого каталога.
Если требуется добавить поддержку сборки, можно создать такой файл .kateproject:
{
"name": "Kate",
"files": [
{
"git": 1
}
],
"build": {
"directory": "build",
"build": "make all",
"clean": "make clean",
"install": "make install",
"targets": [
{
"name": "all",
"build_cmd": "ninja"
"run_cmd": "./bin/kate"
},
{
"name": "kate",
"build_cmd": "ninja kate-bin"
}
]
}
}
Указанные выше цели затем появятся в Модуле сборки в разделе «Цели, созданные модулем». Если указан массив "targets", то "build", "clean" и "install" игнорируются. Каждый элемент массива указывает цель. "name" представляет собой имя цели, "build_cmd" используется для сборки цели, а "run_cmd" — для запуска цели. Важнее всего "directory" — это место выполнения команд.
Если файл .kateproject отслеживается системой управления версиями, но возникла необходимость изменить конфигурацию для определённого рабочего места, необходимые изменения возможно сохранить в отдельном файле с именем .kateproject.local. Содержимое этого файла будет приоритетнее содержимого файла .kateproject.
С помощью → (Alt+1) возможно открыть в нижней части редактора панель Текущий проект с четырьмя вкладками:
Эмулятор терминала, запускающийся в корневой папке проекта.
При вводе символов в панель поиска будет запущен поиск и показаны имена функций, классов, символов и так далее, а также тип файла и номер строки.
Выберите элемент в списке, чтобы перейти к соответствующей строке в исходном файле.
Нажмите кнопку Начать анализ... для запуска статического анализа кода C и C++ с помощью cppcheck и формирования отчёта с отображением имени файла, номера строки, степени серьёзности (стиль, предупреждение и так далее) и самой найденной ошибки.
Выберите элемент в списке, чтобы перейти к соответствующей строке в исходном файле.
Текст, введённый в этой вкладке, будет сохранён в файле
.kateproject.notes.




