TextMate js.erb: переключатель <% =%>, <%%> - PullRequest
9 голосов
/ 19 октября 2010

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

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

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

<%= <%=  %> %>

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

Обновление от 19 ноября 2010 года:

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

Ответы [ 4 ]

2 голосов
/ 25 октября 2010

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

<%= $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

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

2 голосов
/ 18 июля 2011

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

1 голос
/ 16 сентября 2011

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

0 голосов
/ 19 октября 2010

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

Обновите свой пакет данных , и эта проблема должна исчезнуть.

...