Как выделить ctags, сгенерированные универсальными Ctags в Vim?

Единственный найденный мной плагин, выделяющий ctags, - это TagHighlight, который использует Обильные Ctags. Кажется, что Exuberant Ctags заброшены, и я думаю, что в целом можно сделать вывод, что Universal-Ctags - лучший выбор. Можно ли использовать Универсальные КТэги для выделения пользовательских типов в Vim (например, объектов)?
Должен быть способ сделать это вручную, но я ничего не нашел.

Пользуюсь Неовимом.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
1 011
2

Ответы 2

Тот факт, что TagHighlight не публиковал новые версии в последние годы, не означает, что плагин больше не работает. Последняя активность на Bitbucket была год назад; это вполне может быть просто зрелый плагин. API Vim очень стабилен, а обратная совместимость очень важна для Bram, поэтому вы все равно можете использовать плагин, даже если уже нет активного сопровождающего.

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

Я не сказал ничего плохого о TagHighlight, кроме того факта, что он требует Exuberant Ctags и не работает (насколько я могу судить) с Universal Ctags. «Устаревшая» часть предназначалась для Exuberant Ctags.

rect0x51 14.11.2018 10:53

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

rect0x51 14.11.2018 10:56

О, я ошибочно приписал заброшенную часть самому плагину. Плагин Easytags по умолчанию использует Exuberant ctags (или практически все, что называется ctags, найденное в PATH), но его можно настроить для использования другого инструмента. Я думаю, что до тех пор, пока вызов и вывод совместимы, это не должно быть проблемой.

Ingo Karkat 14.11.2018 11:27

@ rect0x51 Универсальные Ctags должны быть почти незаменимой заменой Exuberant Ctags, поэтому они должны работать OOtB.

Hauleth 14.11.2018 11:41

Наконец-то я заставил его работать (был небольшой нюанс).

vim-easytags имеет функцию проверки версии, которая в основном сопоставляет вывод команды ctags --version с некоторым регулярным выражением, чтобы извлечь номер версии. По какой-то причине при использовании универсальных Ctags выводятся следующие данные:

Universal Ctags 0.0.0(45968eff), Copyright (C) 2015 Universal Ctags Team
Universal Ctags is derived from Exuberant Ctags.
Exuberant Ctags 5.8, Copyright (C) 1996-2009 Darren Hiebert
...

Регулярное выражение ошибочно принимает версию за 0.0.0.
Есть несколько решений, среди которых:

  1. Полностью отключить проверку версии
  2. Сделайте регулярное выражение более надежным
  3. Перепишите проверку версии, чтобы также учитывать универсальные Ctags.

Вариант 1 меня устраивает.

Другие вопросы по теме