Где найти список всех возможных ключей для tm-тем для подсветки синтаксиса?

В файле tmTheme для моего текущего текстового редактора есть несколько опций, в том числе те, что в коде ниже. Есть ли где-нибудь список, определяющий все возможные теги, которые могут быть включены в этот список (например, background, inactiveSelection, findHighlight и т. д.)?

<dict>

<key>background</key>
<string>#1a1a1a</string>

<key>caret</key>
<string>#B6ECF9AF</string>

<key>foreground</key>
<string>#ecf0f1</string>

<key>invisibles</key>
<string>#F3FFB51A</string>

<key>lineHighlight</key>
<string>#2a2a2a</string>

<key>selection</key>
<string>#e74c3c55</string>

<key>selectionForeground</key>
<string>#ffffff</string>

<key>findHighlight</key>
<string>#e74c3c</string>

<key>inactiveSelection</key>
<string>#e74c3c77</string>

<key>gutter</key>
<string>#2a2a2a</string>

<key>gutterForeground</key>
<string>#ffffff</string>

<key>guide</key>
<string>#222222</string>

<key>activeGuide</key>
<string>#ffffff</string>

</dict>

Другой пример с еще большим количеством тегов: Другая тема

Если это актуально, я использую VSCode.




Ответы (1)


Имена областей tmLanguage основаны на соглашении, поэтому окончательного списка нет. Тем не менее, раздел «Соглашения об именах» в нижней части этой страницы руководства по TextMate достаточно исчерпывающий.

Вы также можете проверить, какие области выделены темами VSCode по умолчанию, см., например, dark_plus.json и dark_vs.json (на котором основан/включает первый).

Наконец, начиная с VSCode 1.9.0, есть встроенная команда для проверки областей tmLanguage (Developer: Inspect TM Scopes). Это даст вам много информации о том, как токен в местоположении курсора ограничен/выделен:

Существует также расширение Scope Info, которое делает очень похожие вещи, но при наведении (что я лично предпочитаю с точки зрения удобства использования). Однако в нем перечислены только имена областей, не включая какую-либо дополнительную информацию, которую имеет встроенный инспектор VSCode.

person Gama11    schedule 08.02.2017
comment
Самая важная часть того, что я пытался выяснить здесь, — это просто выглядывание из-за информации при наведении: эта область может быть массивом имен областей. Мне было трудно понять, как указать такую ​​иерархию: "scope": ["text.html.markdown", "invalid.illegal.expected-dictionary-separator.json"] - person kshetline; 22.04.2021