ctags не работает, когда класс определен как "class Gem :: SystemExitException" - PullRequest
4 голосов
/ 04 апреля 2010

Вы можете определить класс в пространстве имен следующим образом

class Gem
  class SystemExitException
  end
end

или

class Gem::SystemExitException
end

Когда код использует первый метод определения класса, ctags индексирует определение класса следующим образом:

SystemExitException     test_class.rb   /^  class SystemExitException$/;"      c       class:Gem

Вторым способом ctags индексирует его следующим образом:

Gem      rubygems/exceptions.rb  /^class Gem::SystemExitException < SystemExit$/;"       c

Проблема второго способа заключается в том, что вы не можете поместить курсор (в vim) на ссылкув «Gem :: SystemExitException» и перейти к определению класса.Ваш единственный выход - пролистать все (110!) Определения классов, которые начинаются с "Gem ::", и найти искомое.

Кто-нибудь знает об обходном пути?Может быть, я должен сообщить об этом сопровождающему ctags?

Ответы [ 2 ]

3 голосов
/ 09 апреля 2010

Параметр будет --extra = + q, но ctags поддерживает его только для C ++, Java и Eiffel.

http://ctags.sourceforge.net/faq.html#7

Так что да, вам придется запросить расширение режима + q для Ruby.

2 голосов
/ 27 декабря 2012

Патч для исправления этого поведения доступен по адресу http://www.mail-archive.com/geany@uvena.de/msg05290.html

...