Как создать ctags для мокко-тестов

Я пытаюсь проиндексировать свои тесты с помощью ctags, чтобы мне было легче прыгать с плагином CtrlP vim. Тесты в кофейном скрипте. Это то, что у меня есть в моей конфигурации ~/.ctags, чтобы найти блоки описания.

--regex-coffee=/^[ \t]*(describe+[ \t]+\"(.+?)\")+[ ,]+*->.*$/\1/t,test/

Он находит блоки описания в порядке, и вот как выглядит файл ctags

User_resource_spec.coffee   tests/e2e/User_resource_spec.coffee 1;" F
assert  tests/e2e/User_resource_spec.coffee /^assert = require("assert")$/;"    v
describe "Create User"  tests/e2e/User_resource_spec.coffee /^describe "Create User", ->$/;"    t
describe "Users"    tests/e2e/User_resource_spec.coffee /^  describe "Users", ->$/;"    t
should  tests/e2e/User_resource_spec.coffee /^should = require("should")$/;"    v

У меня проблема в том, что когда я делаю

:tag describe "Create User"

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

describe "Create User"

чтобы просто

describe 

потом снова работает. Я предполагаю, что это не работает из-за пробелов и кавычек.

Что-то странное, однако, заключается в том, что когда я ставлю точки и подчеркивания вместо пробелов и избавляюсь от кавычек, это все равно не работает. Как и я все еще не могу перейти к этому тегу. Тем не менее, другие теги с символами подчеркивания и точками работают нормально.

Я не могу изменить теги, чтобы просто «описать», потому что я хочу различать тесты.

Как заставить ctags работать с пробелами и кавычками. Или, если это невозможно сделать, то что было бы лучшим решением для перехода к конкретным тестам мокко в vim.


person whitehead1415    schedule 20.10.2013    source источник
comment
describe "Users" работает?   -  person romainl    schedule 20.10.2013


Ответы (1)


Вы должны избегать кавычек:

:tag describe \"Create Users\"

Это очень много, почему бы вам просто не сделать следующее?

:tag des<Tab>

В нем будут перечислены describe \"Create Users\" и describe \"Users\", а также показано, почему :tag describe "Create Users" не работает (неэкранированные кавычки).

Обратите внимание, что Vim по умолчанию использует поиск по всему слову для :tag и друзей; вы можете использовать поиск регулярных выражений, чтобы сделать процесс более детерминированным:

:tag /Crea<Tab>
person romainl    schedule 20.10.2013