LINUX.ORG.RU

cscope создание и поддержка базы данных

 ,


0

1

Доброго времени суток

пользуюсь cscope в связке с vim, проект не большой, так что проблем нет, но вот что интересует - я вношу правки в файл (к примеру main.c, добавляю несколько строчек) в принципе проблем нет, но раздражает, что после внесения правок все теги в базе данных уже не на своем месте, то есть после поиска тега я оказываюсь на несколько строк вверху или внизу от реального местоположения тега в тексте программы.

вот в чем вопрос - можно-ли соединить оперцию сохранения файла в vim с обновлением базы cscope

и еще один вопрос - для больших проектов база cscope собирается несколько секунд, это плохо, есть ли какой-то патч, с которым cscope обновляет только недавно редактированные файлы, как это делает make (компилирует только изменившиеся файлы)

★★★

можно-ли соединить оперцию сохранения файла в vim с обновлением базы cscope

:h BufWrite

и еще один вопрос - для больших проектов база cscope собирается несколько секунд, это плохо, есть ли какой-то патч, с которым cscope обновляет только недавно редактированные файлы, как это делает make (компилирует только изменившиеся файлы)

Дёргай внешний скрипт.

mord0d ★★★★★
()
Ответ на: комментарий от mord0d

Дёргай внешний скрипт.

в смысле написать скрипт для пересборки базы cscope

IvanR ★★★
() автор топика

gutentags поддерживает и cscope. Он автоматически в фоне обновляет базу с настройками в стиле:

let g:gutentags_generate_on_new = 1
let g:gutentags_generate_on_missing = 1
let g:gutentags_generate_on_write = 1
let g:gutentags_generate_on_empty_buffer = 0
xaizek ★★★★★
()
Ответ на: комментарий от xaizek

Выглядит как полезный плагин (прочие обёртки над ctags — лажа полная). Забрал, благодарю. :3

mord0d ★★★★★
()
Последнее исправление: mord0d (всего исправлений: 1)
Ответ на: комментарий от mord0d

В документации сказано, что интерфейс ctags поддерживается. Если uctags от него отошёл, то gutentags не при делах.

xaizek ★★★★★
()
Ответ на: комментарий от xaizek

Если uctags от него отошёл, то gutentags не при делах.

Дословно копирую из :h gutentags:

This means you probably want Exuberant Ctags or Universal Ctags. The basic old BSD Ctags WON’T WORK. Other language-specific versions may or may not work. Check with their help or man page.

Я ведь не поленился, установил Universal Ctags (uctags) и… фейл.

Но я также не поленился и установил Exuberant Ctags (exctags), и… снова фейл!

Бинго! ☺

Но всё же отчасти оно работает как заявлено: ctags из базовой системы FreeBSD не работает. ☺

mord0d ★★★★★
()
Последнее исправление: mord0d (всего исправлений: 1)
Ответ на: комментарий от xaizek

С сишкой оно прекрасно работает, да. Но сишка — не единственный язык. ☺

mord0d ★★★★★
()
13 февраля 2021 г.
Ответ на: комментарий от xaizek

в общем, только теперь установил gutentags, но есть проблема, решение я не нашел, как запретить gutentags индексировать файлы в определенных директориях и в файлах с определенными расширениями? для ctags есть переменная [code]g:gutentags_ctags_exclude[/code] но для cscope такой нет

IvanR ★★★
() автор топика
Последнее исправление: IvanR (всего исправлений: 2)
Ответ на: комментарий от xaizek

в gutentags есть файл update_scopedb.sh, в нем наверно можно.

IvanR ★★★
() автор топика
Ответ на: комментарий от xaizek

да, вроде с помощью этой переменной починилось.

IvanR ★★★
() автор топика
Ответ на: комментарий от IvanR

Не за что. Тему можно пометить как решённую.

xaizek ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.