2010-10-19 32 views
9

Tôi đang sử dụng mẫu js.erb để hiển thị một số jQuery. Khi chỉnh sửa một tập tin html.erb trong TextMate, tôi thường xuyên sử dụng các phím combo thuận tiện, ctrl +>, để tạo ra và sau đó chuyển đổi các thẻ sau:TextMate js.erb: chuyển đổi <%= %>, <% %>

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

Phím tắt này không hoạt động theo mặc định khi chỉnh sửa js .erb. Trong Trình chỉnh sửa nhóm, tôi đã tìm thấy một đoạn mã có tên "Chèn ERb là <% ..%> hoặc <% = ..%>" trong "Ruby". Bằng cách thêm "source.js" vào bộ chọn phạm vi, tôi có thể chèn công việc, nhưng khi tôi nhấn tổ hợp phím nhiều lần, thay vì chuyển đổi thẻ, tôi nhận thẻ bên trong thẻ như sau:

<%= <%= %> %> 

Tôi đã thử thay đổi phạm vi của lệnh có tên "Chuyển đổi thẻ ERB" nhưng tôi dường như không thể chuyển sang làm việc. Bất kỳ đề xuất?

Cập nhật ngày 19 tháng 11 năm 2010:

này không còn là một vấn đề trong phiên bản mới của Textmate rằng ra trong tuần này: 1.5.10 (1623).

Trả lời

2

này đã được cố định với Textmate cập nhật 1.5.10 (1623).

0

Gói văn bản Ruby on Rails của bạn có thể đã lỗi thời do những thay đổi trong Ruby 1.9.

Update your tmbundle và sự cố này sẽ biến mất.

+0

Cảm ơn đề xuất, nhưng điều đó không giải quyết được vấn đề. Tôi đã cập nhật cả gói Ruby on Rails bằng liên kết của bạn và gói Ruby (http://github.com/drnic/ruby-tmbundle). Dường như có một số tính năng mới thú vị, nhưng tôi đang gặp vấn đề tương tự với thẻ chuyển đổi trong các tệp js.erb. – balexand

+0

Ah, xin lỗi khi nghe điều đó. Nâng cấp cố định một vấn đề tương tự cho tôi. Tôi hy vọng bạn tìm ra vấn đề là gì! – Raphomet

2

Một reasono thể lý do tại sao đây là trường hợp là đoạn mã mà tạo ra các dấu ngoặc nhọn cho bạn được định nghĩa như sau:

<%= $0 %> 

này đặt văn bản này vào nguồn của bạn sau khi tab-trigger xuất hiện. $0 là trình giữ chỗ cho con trỏ; đó là nơi an nghỉ cuối cùng sau khi đoạn trích được hoàn thành. Vì con trỏ nằm ở giữa và đây là một đoạn mã đơn giản, việc thực hiện nhiều lần trình kích hoạt tab sẽ làm tổ các dấu ngoặc này.

Để đạt được những gì bạn muốn, bạn phải làm điều đó trong tập lệnh. Bạn có thể sử dụng bất kỳ ngôn ngữ kịch bản nào miễn là bạn chỉ định một cách thích hợp dòng shebang. Tôi không phải là một người viết kinh nghiệm thành thạo nên tôi sẽ cố giải quyết điều này bằng cách sử dụng mã giả.

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 

Đó không phải là nhiều nhưng tôi hy vọng điều này sẽ giúp

1

Tôi cũng đã gặp sự cố này, ngay cả với các gói TextMate và gói được cập nhật. Tôi đã sửa lỗi bằng cách thêm source.js.rails vào bộ chọn phạm vi của đoạn mã "Chèn ERb’s <% ..%> hoặc <% = ..%>". Đảm bảo bạn không thay đổi bộ chọn phạm vi cho lệnh tương tự "Chuyển đổi thẻ ERb". Điều này chèn các thẻ ERB một cách chính xác và cũng chuyển đổi chúng như mong đợi.

Các vấn đề liên quan