ASan и другие анализаторы
Для запуска valgrind локально: VALGRIND=1 make test
.
Для запуска Clang ASan/UBSan локально: CC=clang make CMAKE_FLAGS="-DCLANG_ASAN_UBSAN=ON"
.
Сборка lint проверяет изменённые строки и их непосредственных соседей, чтобы стимулировать постепенное обновление устаревшего стиля в соответствии с нашим стилем (см. [#3174][3174] для получения дополнительной информации).
CI для freebsd и openbsd работает на [sourcehut].
sudo pkg install tmux # Если вам нужен tmux.
lldb build/bin/nvim -c nvim.core
# Чтобы получить полную обратную трассировку:
# 1. Пересоберите с отладочной информацией.
rm -rf nvim.core build
gmake CMAKE_BUILD_TYPE=RelWithDebInfo CMAKE_EXTRA_FLAGS="-DCI_BUILD=ON -DMIN_LOG_LEVEL=3" nvim
# 2. Запустите неудачный тест, чтобы создать новый основной файл.
TEST_FILE=test/functional/foo.lua gmake functionaltest
lldb build/bin/nvim -c nvim.core
Просмотрите отчёт Clang, чтобы увидеть потенциальные ошибки, обнаруженные анализатором Clang scan-build.
git log --oneline --no-merges --grep clang
scan-build
следующим образом:
rm -rf build/
scan-build --use-analyzer=/usr/bin/clang make
Просмотрите отчёт PVS, чтобы увидеть потенциальные ошибки, найденные PVS Studio.
{id}
— это идентификатор предупреждения PVS):
PVS/V{id}: {description}
git log --oneline --no-merges --grep PVS
./scripts/pvscheck.sh
, чтобы запустить PVS локально.Coverity работает с основной сборкой. Чтобы просмотреть дефекты, просто запросите доступ; вы будете одобрены.
{id}
— CID (идентификатор Coverity); (пример)):
coverity/{id}: {description}
git log --oneline --no-merges --grep coverity
Кодирование
Вы можете запустить линтер локально с помощью:
make lint
На этапе lint загружается [основной список ошибок], и они исключаются, поэтому сообщаются только ошибки lint, связанные с локальными изменениями.
Можно линтировать один файл (но это не исключает устаревших ошибок):
./src/clint.py src/nvim/ops.c
В репозитории есть файл конфигурации .clang-format
, который (в основном) соответствует [руководству по стилю]. Вы можете использовать clang-format
для форматирования кода с помощью оператора gq
в Nvim:
if !empty(findfile('.clang-format', ';'))
setlocal formatprg=clang-format\ -style=file
endif
ctags
, предоставляемый вашим дистрибутивом, не поддерживается и не распознает многие сигнатуры функций в исходном коде Neovim.)Проверка
Чтобы помочь в проверке запросов на вытягивание, начните с [этого контрольного списка][review-checklist].
Проверку можно выполнить на GitHub, но вы можете обнаружить, что её проще выполнять локально. Используя [hub
][hub], вы можете создать новую ветку с содержимым запроса на вытягивание, например, [#1820][1820]:
hub checkout https://github.com/neovim/neovim/pull/1820
Используйте [git log -p master..FETCH_HEAD
][git-history-filtering], чтобы перечислить все коммиты в функциональной ветке, которых нет в ветке master
; -p
показывает разницу каждого коммита. Чтобы показать всю окружающую функцию изменения в качестве контекста, используйте аргумент -W
также.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )