Zmiana / dodanie podświetlania składni języka w Sublime 2/3

Chcę zmienić / dodać podświetlanie składni dla języka w Sublime 2/3.

Na przykład chcę, aby słowo kluczowe this było kolorowe w JavaScript.

Jak mogę to zrobić?

Wiem, że w C:\Program Files\Sublime Text 3\Packages znajduje się plik preferencji JavaScript, ale nie wiem, co zmienić lub czy muszę utworzyć nowy plik preferencji JavaScript gdzieś w tym folderze %APPDATA%\Sublime Text 3.

Author: Niklas, 2013-08-06

4 answers

Podświetlanie składni jest kontrolowane przez motyw, którego używasz, dostępny przez Preferences -> Color Scheme. Motywy wyróżniają różne słowa kluczowe, funkcje, zmienne itp. poprzez użycie zakresów, które są zdefiniowane przez serię wyrażeń regularnych zawartych w pliku .tmLanguage w katalogu/pakiecie języka. Na przykład plik JavaScript.tmLanguage przypisuje zakresy source.js i variable.language.js do this słowo kluczowe. Ponieważ Sublime Text 3 używa formatu zip .sublime-package do przechowywania wszystkich domyślnych ustawień niełatwo edytować poszczególne pliki.

Niestety, nie wszystkie motywy zawierają wszystkie zakresy, więc musisz bawić się różnymi, aby znaleźć taki, który wygląda dobrze i daje podświetlenie, którego szukasz. Istnieje wiele tematów, które są zawarte w Sublime Text, a wiele innych jest dostępnych za pośrednictwem kontroli pakietu, które I wysoce polecam instalację, jeśli jeszcze tego nie zrobiłeś. Upewnij się, że przestrzegasz ST3 wskazówki .

Tak się składa, że opracowałem Neon Color Scheme, dostępne poprzez kontrolę pakietów, na które warto spojrzeć. Moim głównym celem, poza tym, że starałem się, aby szeroka gama języków wyglądała jak najlepiej, było zidentyfikowanie tak wielu różnych zakresów, jak tylko mogłem - o wiele więcej niż są zawarte w standardowych tematach. Chociaż definicja języka JavaScript nie jest tak dokładna, jak na przykład Python, Neon nadal ma o wiele większą różnorodność niż niektóre z wartości domyślne, takie jak Monokai lub Solarized.

jQuery podświetlane motywem neonowym

Powinienem zauważyć, że użyłem @ int3h ' S Better JavaScript definicja języka dla tego obrazu zamiast tego, który wysyła z Sublime. Można go zainstalować za pomocą sterowania pakietami.

UPDATE

Ostatnio odkryłem kolejną definicję języka zastępczego JavaScript- JavaScriptNext - ES6 Syntax. Ma więcej zakresów niż podstawowy JavaScript lub nawet lepszy JavaScript. Wygląda to tak samo kod:

JavaScriptNext

Ponadto, od kiedy napisałem tę odpowiedź, @skuroda wydał PackageResourceViewer poprzez kontrolę pakietów. Pozwala na bezproblemowe przeglądanie, edytowanie i/lub wyodrębnianie części lub całych pakietów .sublime-package. Tak więc, jeśli wybierzesz, możesz bezpośrednio edytować schematy kolorów zawarte w Sublime.

KOLEJNA AKTUALIZACJA

Wraz z wydaniem prawie wszystkich domyślnych pakietów na Githubie , zmiany nadchodzą szybko i wściekle. Na stara składnia JS została całkowicie przepisana, aby zawierać najlepsze części JavaScript obok składni ES6, a teraz jest w pełni zgodna z ES6, jak to tylko możliwe. ton innych zmian dokonano, aby pokryć narożniki i krawędzie, poprawić spójność i ogólnie poprawić. Nowa składnia została zawarta w najnowszym dev build 3111.

Jeśli chcesz użyć nowej składni z bieżącą beta build 3103, po prostu Sklonuj Github repo i link JavaScript (lub jakikolwiek język(y) chcesz) do katalogu Packages - znajdź go w swoim systemie wybierając Preferences -> Browse Packages.... Następnie po prostu wykonaj git pull w oryginalnym katalogu repo od czasu do czasu, aby odświeżyć wszelkie zmiany, a będziesz mógł cieszyć się najnowszymi i najlepszymi! Należy zauważyć, że repo korzysta z nowego .sublime-syntax format zamiast starego .tmLanguage, więc nie będą działać z kompilacjami ST3 sprzed 3084, ani ze ST2 (w obu przypadkach powinieneś mieć ulepszony do najnowszej wersji beta lub dev build anyway).

Obecnie poprawiam mój neonowy schemat kolorów, aby obsłużyć wszystkie nowe zakresy w nowej składni JS, ale większość powinna być już pokryta.

 88
Author: MattDMo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-05 12:04:36

W końcu znalazłem sposób, aby dostosować podane motywy.

Przejdź do C:\Program Files\Sublime Text 3\Packages i skopiuj + Zmień nazwę Color Scheme - Default.sublime-package na Color Scheme - Default.zip. Następnie rozpakuj go i skopiuj motyw, chcesz zmienić na %APPDATA%\Sublime Text 3\Packages\User. (W moim przypadku All Hallow's Eve.tmTheme).

Następnie można go otworzyć dowolnym edytorem tekstu i zmienić / dodać coś, na przykład do zmiany this w JavaScript:

<dict>
    <key>name</key>
    <string>Lang Variable</string>
    <key>scope</key>
    <string>variable.language</string>
    <key>settings</key>
    <dict>
        <key>foreground</key>
        <string>#FF0000</string>
    </dict>
</dict>

To zaznaczy this w plikach JavaScript na Czerwono. Możesz wybrać swój motyw Pod Preferences -> Color Scheme -> User -> <Your Name>.

 27
Author: Niklas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-06 22:43:17

Użyj wtyczki PackageResourceViewer zainstalowanej za pomocą kontroli pakietów (jak wspomniano przez MattDMo ). Pozwala to na nadpisanie skompresowanych zasobów, po prostu otwierając je w Sublime Text i zapisując plik. Automatycznie zapisuje tylko edytowane zasoby do %APPDATA% / Roaming/Sublime Text 3 / Packages / lub ~/.config / sublime-text-3 / Packages/.

Specyficzne dla op, po zainstalowaniu wtyczki wykonaj polecenie PackageResourceViewer: Open Resource. Następnie wybierz JavaScript, a następnie JavaScript.tmLanguage. To otworzy plik xml w edytorze. Możesz edytować dowolne definicje języka i zapisać plik. Spowoduje to napisanie nadpisującej kopii JavaScript.plik tmLanguage w katalogu użytkownika.

Ta sama metoda może być użyta do edycji definicji języka dowolnego języka w systemie.

 13
Author: chawkinsuf,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:34:25

"to" jest już kolorowe w Javascript.

Wyświetl- > składnia - > i wybierz język do podświetlenia.

 2
Author: Epirocks,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-10 09:03:22