Вся деятельность по разработке была перенесена в репозитории cxxd и cxxd-vim. Чтобы быть в курсе последних событий, рекомендуется использовать плагин cxxd-vim. Более подробную информацию смотрите в первом разделе FAQ.
Содержание
- Изменения
- Установка
- Использование
- Скриншоты
- Функции
- Кредиты
- Часто задаваемые вопросы
Изменения
- 13 июля 2018 г.
- Основные функции были извлечены в отдельные репозитории:
- cxxd, реализация языкового сервера C/C++.
- cxxd-vim, интерфейс Vim, разработанный для
cxxd
-
Yavide
включит их в качестве зависимостей и продолжит нормально функционировать, но вся деятельность по разработке и фокус теперь перенесены на эти проекты , поэтому, чтобы получить больше функций и стабильности, начните использовать их непосредственно из вашей обычной конфигурации Vim.
- 2 декабря 2017 г.
- Реализован индексатор на основе Clang.
- Реализован поиск всех ссылок на основе Clang.
- Реализован переход к определению на основе Clang.
- Реализован переход к включению на основе Clang.
- Реализована поддержка clang-tidy.
- Реализована поддержка баз данных компиляции JSON.
- Реализованы механизмы кэширования единиц трансляции.
- Различные исправления ошибок и другие мелкие улучшения.
- 12 февраля 2017 г.
- Реализован сервис выведения типа.
- Наведение курсора мыши на исходный код предоставит подробную информацию о базовых конструкциях (т. е. типах данных, сигнатурах функций и т. д.).
- 10 февраля 2017 г.
- Реализован сервис исправлений и диагностики на основе Clang.
- Реализован механизм, позволяющий использовать один и тот же AST в нескольких сервисах:
- Например, после создания AST службы подсветки семантического синтаксиса и исправления Clang смогут использовать один и тот же AST.
- Это будет особенно важно, когда в игру вступят более тяжелые сервисы на основе Clang, такие как индексатор и механизм автозаполнения.
- Переработан серверный код, чтобы отделить интеграцию, специфичную для редактора, от базовой реализации сервисов.
- 19 января 2017 г.
- Исправлены некоторые неровности вокруг подсветки синтаксиса:
- Реализована поддержка обработки набора перегруженных функций или шаблонов функций (выражения CursorKind.OVERLOADED_DECL_REF).
- Реализована поддержка обработки зависимых типов (выражения TypeKind.DEPENDENT).
- Реализован неинтрузивный патч для clang.cindex, обеспечивающий более гибкое прохождение AST.
- 28 декабря 2016 г.
- Реализована служба подсветки синтаксиса исходного кода на основе Clang (запустите
cd /colors/yaflandia && git pull
чтобы получить необходимые изменения цветовой схемы).
- 1 июля 2016 г.
- Реализована новая универсальная клиент-серверная (асинхронная) структура, которая позволяет запускать любые виды операций в отдельных неблокирующих фоновых процессах (так называемых службах) и о результатах завершения которых можно сообщить обратно на сервер («Yavide»).
- Реализованы 4 новых сервиса поверх новой асинхронной структуры:
- Служба подсветки синтаксиса исходного кода «на лету».
- Служба индексирования исходного кода «на лету».
- Служба автоматического форматирования исходного кода на основе Clang.
- Услуга строителя проектов.
Установка
См. Руководство по установке.
Использование
См. Использование.
Скриншоты
Посмотрите некоторые GIF-изображения в действии.
Подробнее...
Функции
- В комплекте и настроен для разработки на C/C++.
- Управление проектом
- Создавайте новые проекты или импортируйте существующую базу кода в новое рабочее пространство.
- Обозреватель проекта
- Изучите проект с помощью виджета в виде дерева.
- Разработчик проекта
- Запускайте сборки в среде для ненавязчивой работы в фоновом режиме.
- Браузер классов
- Содержит обзор символов, определенных в текущем модуле (т. е. макроса, структуры, класса, метода, пространства имен и т. д.).
- Автодополнение исходного кода
- Поддерживается реальным компилятором C/C++ для обеспечения полной корректности.
- Навигация по исходному коду
- Благодаря полностью автоматизированной системе генерации тегов, которая поддерживает актуальность базы данных символов.
- Подсветка синтаксиса исходного кода на основе
libclang
- Обеспечение более широкой поддержки подсветки синтаксиса, чем та, которая изначально предоставлялась
Vim
- Автоформатирование исходного кода
- поддержка
clang-formatter
- Статический анализ исходного кода
- Интеграция клиента управления исходным кодом
- Благодаря интеграции клиента
Git
- Еще много разных функций, таких как:
- Автозаполнение скобок
- Контекстно-зависимое автозаполнение обычного текста
- Поддержка редактирования с множественным выбором
- Фрагменты кода
- Поддержка цветовых схем
Кредиты
Это упорядоченный по алфавиту список сторонних плагинов Vim, используемых в настоящее время в системе:
- А (https://github.com/vim-scripts/a.vim)
- Clang_complete (https://github.com/Rip-Rip/clang_complete)
- NERDCommenter (https://github.com/scrooloose/nerdcommenter)
- NERDTree (https://github.com/scrooloose/nerdtree)
- СуперТаб (https://github.com/ervandew/supertab)
- Панель тегов (https://github.com/majutsushi/tagbar)
- UltiSnips (https://github.com/SirVer/ultisnips)
- vim-airline (https://github.com/bling/vim-airline)
- vim-autoclose (https://github.com/Townk/vim-autoclose)
- vim-fugitive (https://github.com/tpope/vim-fugitive)
- vim-gitgutter (https://github.com/airblade/vim-gitgutter)
- vim-multiple-cursors (https://github.com/terryma/vim-multiple-cursors)
- vim-pathogen (https://github.com/tpope/vim-pathogen)
Часто задаваемые вопросы
Почему фокус разработки был перенесен на cxxd и cxxd-vim?
TL;DR Разделив один большой монолитный репозиторий Yavide
на два отдельных ( cxxd
и cxxd-vim
), мы получили более модульный, многоразовый, тестируемый и гибкий дизайн. У этого подхода есть много других преимуществ, все из которых следует кратко отметить здесь, но сейчас важной частью является то, что логика внешнего интерфейса (например, реализация пользовательского интерфейса) теперь отделена от внутренней реализации (функции сервера на языке C/C++). Оба эти развития теперь могут осуществляться отдельно и параллельно. Более того, cxxd-vim
ведет себя как настоящий плагин Vim, поэтому вам больше не придется использовать хакерские сценарии установки, а будет обычный способ установки, как и для любого другого плагина Vim (например, Vundle). Для получения дополнительной информации посетите соответствующие репозитории.
Другие вопросы
См. Часто задаваемые вопросы.