2012-09-28 13 views
5

Mam pewne problemy z wbudowanego w podświetlanie składni dla stron JSP w Sublime Text 2.Sublime Text 2 Podświetlanie składni JSP Problemy

Patrz kod po białej linii na linię 11/12: tag HTML jest <strong> wyświetlane tutaj poprawnie.

Kod przed tą linią nie jest poprawnie barwiony: Drugi znacznik zamykający JSP (%>) jest w kolorze czerwonym, ale powinien być w kolorze pomarańczowym, podobnie jak pierwszy, a znaczniki HTML wewnątrz są rozpoznawane jako kod Java, choć uważam, że zakresy (widoczne z CTRL+SHIFT+ALT+P jako text.html.jsp) nie zmieniają się.

JSP Syntax Highlighting in Sublime Text 2 (Theme: "Monokai Soda", edited colors of JSP start/end tags

Jeśli zrobić to samo z <?php lub <? uruchamianie i zamykanie tagów ?> problem nie istnieje, wszystkie kolory wydają się być tuż potem.

Czy ktoś miał ten sam problem? Upewniłem się, że składnia jest ustawiona na JavaServerPages (JSP).

Myślę, że problem dotyczy tych linii w HTML.tmLanguage pliku (zakres JSP jest wewnątrz zakresu HTML):

<dict> 
    <key>embedded-code</key> 
    <dict> 
     <key>patterns</key> 
     <array> 
      <dict> 
       <key>include</key> 
       <string>#ruby</string> 
      </dict> 
      <dict> 
       <key>include</key> 
       <string>#php</string> 
      </dict> 
      <!-- 
      <dict> 
       <key>include</key> 
       <string>#smarty</string> 
      </dict> 
      --> 
      <dict> 
       <key>include</key> 
       <string>#python</string> 
      </dict> 
     </array> 
    </dict> 

Nie ma to dla JSP. Ale ja tylko zgaduję ... Jakieś pomysły?

Odpowiedz

2

udało mi się zmodyfikować HTML.tmLanguage i Java Server Pages (JSP).tmLanguage pliki teraz ... niektóre mecze dla Ruby nadpisałeś zakresy jsp wewnątrz tagów HTML <script> i usunąłem dopasowanie do klamrowych, a dodatkowo dodałem kilka text.html.jsp obejmuje do kilku definicji zakresu .


skopiowane mój plik .tmTheme i umieścić go w folderze User pakietu jako User.tmTheme. I dodaje te linie do tego pliku na dole:

<dict> 
     <key>name</key> 
     <string>Embedded Code Punctuation</string> 
     <key>scope</key> 
     <string>punctuation.section.embedded</string> 
     <key>settings</key> 
     <dict> 
      <key>fontStyle</key> 
      <string>bold</string> 
      <key>foreground</key> 
      <string>#FD971F</string> 
     </dict> 
    </dict> 
    <dict> 
     <key>name</key> 
     <string>Embedded Java Code Directive</string> 
     <key>scope</key> 
     <string>punctuation.section.directive</string> 
     <key>settings</key> 
     <dict> 
      <key>foreground</key> 
      <string>#FD971F</string> 
     </dict> 
    </dict> 
    <dict> 
     <key>name</key> 
     <string>Embedded Java Code</string> 
     <key>scope</key> 
     <string>source.java.embedded.html</string> 
     <key>settings</key> 
     <dict> 
      <key>foreground</key> 
      <string>#F8F8F2</string> 
     </dict> 
    </dict> 
    <dict> 
     <key>name</key> 
     <string>Embedded Java Code String</string> 
     <key>scope</key> 
     <string>string.quoted.double.java</string> 
     <key>settings</key> 
     <dict> 
      <key>foreground</key> 
      <string>#E6DB74</string> 
     </dict> 
    </dict> 

I następnie edytować te dwa pliki w folderach HTML i Java i wykomentowane jakiś zawiera Ruby i rzeczy.

Patrz pliki tutaj:

HTML.tmLanguage
Java Server Pages (JSP).tmLanguage
JavaScript.tmLanguage

+0

Jakie zmiany zrobiłeś? Możesz udostępnic? Mam podobny problem z podświetlaniem JSP. – yokuyuki

+1

Poprawiłem powyższą odpowiedź i połączyłem pliki. – dennis

+0

Dzięki! Działa jak marzenie. – yokuyuki