Вся деятельность по разработке была перенесена в репозитории 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 <yavide_install_dir>/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). Для получения дополнительной информации посетите соответствующие репозитории.
Другие вопросы
См. Часто задаваемые вопросы.