2010-10-19 26 views
9

Sto utilizzando un modello js.erb per eseguire il rendering di jQuery. Quando si modifica un file html.erb in TextMate, ho spesso uso la comoda combinazione di tasti, ctrl +>, per creare e quindi alterna i seguenti tag:TextMate js.erb: toggle <%= %>, <% %>

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

Questa scorciatoia non funziona per impostazione predefinita quando si modifica js file .erb. Nell'editor di Bundle, ho trovato uno snippet chiamato "Inserisci ERb <% ..% o <% = ..%>" in "Ruby". Aggiungendo "source.js" al selettore scope sono stato in grado di far funzionare l'inserimento, ma quando ho premuto il tasto combo più volte, invece di attivare il tag ho inserito un tag all'interno di un tag come questo:

<%= <%= %> %> 

Ho provato a cambiare lo scope del comando chiamato "Toggle ERb Tags" ma non riesco a passare al lavoro. Eventuali suggerimenti?

aggiornamento 19 Nov 2010:

Questo non è più un problema nella nuova versione di TextMate che è uscito questa settimana: 1.5.10 (1623).

risposta

2

Questo è stato risolto con l'aggiornamento TextMate 1.5.10 (1623).

0

Il pacchetto Ruby on Rails Textmate potrebbe non essere aggiornato a causa delle modifiche apportate a Ruby 1.9.

Update your tmbundle e questo problema dovrebbe andare via.

+0

Grazie per il suggerimento, ma questo non ha risolto il problema. Ho aggiornato sia il pacchetto Ruby on Rails utilizzando il tuo link e il pacchetto Ruby (http://github.com/drnic/ruby-tmbundle). Sembra che ci siano alcune nuove fantastiche funzionalità, ma sto riscontrando lo stesso problema con il tag che attiva i file js.erb. – balexand

+0

Ah, mi dispiace sentirlo. L'aggiornamento ha risolto un problema simile per me. Spero che tu capisca qual è il problema! – Raphomet

2

One possibili reasono per cui questo è il caso è che il frammento che genera le parentesi angolari per voi è definito così:

<%= $0 %> 

Questo pone questo testo in vostra fonte dopo che si verifica la scheda-trigger. Lo $0 è un segnaposto per il cursore; è il luogo di riposo finale dopo il completamento del frammento. Poiché il cursore si trova nel mezzo e questo è un semplice frammento, ripetendo ripetutamente il trigger di tabulazione si annidano queste parentesi.

Per ottenere ciò che desideri, devi farlo in una sceneggiatura. È possibile utilizzare qualsiasi linguaggio di scripting purché si specifichi in modo appropriato la riga shebang. Non sono uno scripter esperto, quindi cercherò di risolverlo usando lo pseudocodice.

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 

Non è molto, ma spero che questo aiuta

1

Mi sono imbattuto anche in questo problema, anche con TextMate e bundle aggiornati. L'ho risolto aggiungendo source.js.rails al selettore di ambito dello snippet "Inserisci ERb's <% ..%> o <% = ..%>". Assicurarsi di non modificare il selettore di ambito per il comando "Attiva/disattiva tag ERB". Ciò inserisce correttamente i tag ERB e li attiva anche come previsto.

Problemi correlati