2010-10-19 3 views
9

Я использую шаблон js.erb для рендеринга jQuery. При редактировании файла html.erb в TextMate, я часто использую удобный комбинацию клавиш, Ctrl +>, чтобы создать, а затем переключить следующие теги:TextMate js.erb: toggle <%= %>, <% %>

<%= %> 
<% %> 
<%- -%> 
<%# %> 

Этот ярлык не работает по умолчанию при редактировании JS .erb. В редакторе Bundle я нашел фрагмент под названием «Вставить ERB's <% ..%> или <% = ..%>" под «Ruby». Добавив «source.js» в селектор областей, я смог получить вставку для работы, но когда я нажал комбинацию клавиш несколько раз, вместо переключения тега я получил тег внутри тега:

<%= <%= %> %> 

Я попытался изменить область действия под названием «Toggle ERb Tags», но, похоже, я не могу переключиться на работу. Какие-либо предложения?

Update 19 ноября 2010:

Это больше не является проблемой в новой версии Textmate, который вышел на этой неделе: 1.5.10 (1623).

ответ

2

Это было исправлено с Textmate обновление 1.5.10 (1623).

0

Ваш Ruby on Rails Textmate bundle может быть устаревшим из-за изменений в Ruby 1.9.

Update your tmbundle и эта проблема должна исчезнуть.

+0

Спасибо за предложение, но это не решило проблему. Я обновил пакет Ruby on Rails, используя вашу ссылку и пакет Ruby (http://github.com/drnic/ruby-tmbundle). Похоже, есть некоторые интересные новые функции, но у меня такая же проблема с тегом, который переключается в js.erb-файлах. – balexand

+0

Ах, извините, что слышу. Модернизация исправила аналогичную проблему для меня. Надеюсь, вы выясните, в чем проблема! – Raphomet

2

Одним из возможных reasono, почему это так, что фрагмент кода, который генерирует угловые скобки для вас определяется следующим образом:

<%= $0 %> 

Это помещает этот текст в источник после того, как происходит закладка-триггера. $0 - это заполнитель для курсора; это окончательное место отдыха после завершения фрагмента. Поскольку курсор лежит в середине, и это простой фрагмент, многократное выполнение табулятора-триггера будет вставлять эти скобки.

Для достижения того, что вы хотите, вы должны сделать это в сценарии. Вы можете использовать любой язык сценариев, если вы правильно указываете строку shebang. Я не опытный скриптер, поэтому я попытаюсь решить это с помощью псевдокода.

if selected_text 
    if no_wrapping_angle_brackets 
     surround_with_angle_brackets 
    else 
     strip_angle_brackets 
else 
    if no_wrapping_angle_brackets 
     surround_with_angle_brackets 
    else 
     strip_angle_brackets 

Это не так много, но я надеюсь, что это помогает

1

Я просто столкнулся с этой проблемой, даже с обновленными TextMate и пакетами. Я исправил его, добавив source.js.rails в селектор области фрагмента «Вставить ERB <% ..%> или <% = ..%>». Убедитесь, что вы не изменяете селектор области для аналогичной команды «Toggle ERb Tags». Это правильно вставляет теги ERb и также переключает их, как ожидалось.

Смежные вопросы