2013-03-26 15 views
10

Używam Smarty do generowania szablonów html. Obecnie używam podświetlania html, co jest w większości w porządku, z wyjątkiem tego, że nie wyróżnia tagów smarty, ex {foreach} Próbowałem zainstalować pakiet Smarty, ale to nie wygląda najlepiej. Zasadniczo muszę mieć możliwość dodawania podświetlania czegokolwiek z nawiasami klamrowymi do standardowego kolorowania html. Czy to możliwe? Jak to zrobić?Wysublimowany tekst: jak dostosować podświetlanie składni?

+0

To rodzaj niejasnego pytania, więc mogę tylko niejasno powiedzieć, aby spróbować brackethighlighter2. – AGS

Odpowiedz

2

Prawdopodobnie musisz zmodyfikować swój .tmTheme, aby dodać własne wyróżnianie dla zakresów zdefiniowanych przez ustawienie składni Smarty. Powinien istnieć plik Smarty.tmlanguage w katalogu Packages/Smarty/Syntaxes. Jest to XML, więc może to być trochę trudne dla zwykłego czytania, ale jeśli rozumiesz wyrażenie regularne, a zakresy są inteligentnie nazywane, powinieneś być w stanie wymyślić jak zmodyfikować swój motyw.

24

Tło

@MattDMo ma rację, że plik .tmTheme jest główny plik który kontroluje podświetlenie. Jest to plik XML z serią Wyrażeń regularnych i znacznikami, które oznaczają, który RegEx dopasowuje dany typ elementu syntaktycznego.

Możesz wyszukiwać w GitHub i znajdować wiele osób, które już utworzyły pakiety Sublime Text zawierające pliki .tmTheme. Zauważ, że możesz bezpośrednio użyć pakietu stworzonego dla TextMate, ponieważ Sublime Text używa tych samych konwencji. (Jest to prawdą przynajmniej w zakresie .tmTheme i .tmPreferences pliki iść.)

Na przykład, byłem w stanie bezpośrednio wziąć podświetlanie składni pakiet dla języka Chuck pierwotnie wykonany dla TextMate i używać go SublimeText2. .tmTheme zadziałał natychmiast, kopiując plik używany w TextMate. Właśnie usunąłem dodatkowe niepotrzebne pliki, a następnie wprowadziłem kilka zmian do .tmTheme, a także dodano obsługę Menedżera pakietów.

Zobacz ten projekt tutaj: https://github.com/nathanleiby/ChucK.tmbundle.

Jak zainstalować nowe składnie

kontrolny pakiet

Idealnie, składnia już chcą wliczone jest dostępny do pobrania w Sublime Text kontroli pakietów. Wyszukaj w Kontroli pakietów i zainstaluj bezpośrednio. (Jeśli nie masz jeszcze kontrolnym, należy je dostać: https://github.com/wbond/package_control_channel/)

Ręcznie

Jeśli pobierzesz plik .tmTheme lub .tmBundle bezpośrednio, będziemy chcieli, aby skopiować go do odpowiednich pakietów folder w ST. Zauważ, że istnieje folder /Packages i /Packages/User. Dokumentacja ST2 sugeruje kopiowanie do tej ostatniej, ponieważ gwarantuje się jej zachowanie, nawet jeśli inne pakiety w głównym folderze zostaną skasowane/zmodyfikowane podczas aktualizacji.

na OSX, że katalog jest: ~/Library/Application Support/Sublime Text 2/Packages/User/

(Uwaga: Można wolą git clone pakiet do tego folderu, tak aby można było łatwo je zaktualizować.)

Jak stworzyć własną

Jeśli chcesz kopać i dostosować podświetlanie składni, oto kilka miejsc, aby rozpocząć.

  • Odświeżyć swoje wyrazy regularne.
  • Sublime Text documentation for syntax definitions
  • <ctrl> + <shift> + p. Ilekroć oglądasz plik, wybierz dowolne słowo i naciśnij tę kombinację klawiszy, a następnie spójrz na pasek stopki. Powinieneś zobaczyć serię opisów składniowych. Na przykład: Właśnie podświetliłem słowo w pliku SQL, którego szukam, a odpowiedź brzmiała: source.sql string.other.quoted.backtick.sql.
  • Prawdopodobnie wolisz przeanalizować składnię za pomocą JavaScript/JSON, a nie XML. Użyj PackageDev. Możesz to uzyskać za pomocą Kontroli Pakietu. Posiada polecenia pozwalające na przechodzenie między plikami .json (JSON) i .tmTheme (XML).
  • A related question on StackOverflow.

Zastrzeżenie

Może to być oczywiste, ale przydatność podświetlaniem składni, która jest związana Schemat kolorów został wybrany w Sublime Text. (Wysublimowany tekst 2 -> Preferencje -> Schemat kolorów -> ...)

Nie miałem jeszcze okazji zbadać/zweryfikować tego szczegółowo, ale wydaje się, że niektóre schematy kolorów mogą rozróżniać więcej/mniej typów elementów składniowych.

Bardzo polecam kolorystykę "Monokai" (szczególnie wariant "Monokai Soda") z tego powodu - zdaje się "uwydatniać kolory".

+1

Jeśli chcesz dobrze kontrastujący motyw z wieloma (dostosowywanymi) zakresami, sprawdź mój [Neon.tmTheme] (https://github.com/MattDMo/Neon.tmTheme). Jest on jasny na czarno i choć używam go przede wszystkim w Pythonie, dobrze wygląda z wieloma innymi językami, w tym HTML/CSS/JavaScript. I tak, masz rację stwierdzając, że niektóre schematy kolorów nie mają tak wielu zakresów jak inne. Zestawiłem kilka zakresów z innych schematów dla mojego motywu, więc mam nadzieję, że będzie tam coś, co możesz wykorzystać. Wszystko zależy jednak od tego, jak drobnoziarniste.Plik tmLanguage to. – MattDMo

+0

Dzięki @MattDMo - Dam ci szansę! Wygląda bardzo prosto i czysto. I dobrze wiedzieć, że moja obserwacja była na torze, że niektóre schematy kolorów wyróżniają się wśród bardziej/mniej syntaktycznych zakresów. – Nate

2

To całkiem proste

  1. Z 2 domyślnej instalacji Sublime Text
  2. Otwórz plik "Pakiety \ HTML \ HTML.tmLanguage", jeśli szukać ciąg <!-- można zauważyć, że (obecnie) nie to dwa odniesienia do "Smarty" skomentował. Anuluj te komentarze.
  3. W pliku wyszukaj ciąg znaków scopeName. Właściwie to jest klucz i skojarzony ciąg powinien być czymś podobnym do .
  4. Skopiuj ten ciąg do HTML.tmLanguage zamiast source.smarty (ciąg za kluczowy include na koniec ostatniego bloku po prostu un-skomentował)

to wszystko. Ciesz się

+2

Byłoby świetnie, gdybyś mógł wyjaśnić, gdzie jest "Pakiety \ HTML \ HTML.tmLanguage" lub jak otworzyć w Sublime Text. Nie znałbym tej informacji z mojej głowy. – bafromca

+2

W menu sublimetextu znajduje się łącze o nazwie '' 'browse packages'''. Spowoduje to otwarcie docelowego folderu twoich paczek (na przykład Findera lub Explorera). – svassr

Powiązane problemy