Исключение каталогов в Exuberant CTags

Я работаю с очень большой базой кода и считаю полезным выбирать, какие каталоги включены для использования с Exuberant Ctags.

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

Например, я могу исключить каталог tests , но только при обработке сторонних \ tests (под Windows). Проблема в том, что если я просто использую - exclude = tests , я исключаю слишком много каталогов, включая тестовый каталог в коде, над которым я активно работаю.

Вот некоторые вещи, которые я пробовал:

--exclude=thirdparty\tests
--exclude=thirdparty\\tests
--exclude=*\thirdparty\tests
--exclude=*\\thirdparty\\tests
--exclude=thirdparty/tests

Ctags молча игнорирует все это, о чем свидетельствует проверка файла тегов.

Как я могу исключить каталог, только если ему предшествует данный родительский каталог?

ДОБАВЛЕНО:

Вот мой вывод ctags --version :

Exuberant Ctags 5.8, Copyright (C) 1996-2009 Darren Hiebert
  Compiled: Jul  9 2009, 17:05:35
  Addresses: <dhiebert@users.sourceforge.net>, http://ctags.sourceforge.net
  Optional compiled features: +win32, +regex, +internal-sort
17
задан Codie CodeMonkey 19 November 2011 в 09:53
поделиться

1 ответ

В какой-то момент может быть проще определить список файлов, которые вы хотите проиндексировать; сохраните этот список в файл и используйте ctags -L <filename> для индексирования только немногих избранных.

Это позволяет вам использовать find(1) для сокращения каталогов, которые вы не хотите индексировать, например :

find . -path ./Documentation -prune -o -print > indexme

пропустит все файлы во всех подкаталогах ./Documentation.

16
ответ дан 30 November 2019 в 13:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: