Где найти список областей для Sublime2 (или textMate?)
в файлах .tmTheme ключ области определяет, как элемент выделяется:
<dict>
<key>name</key>
<string>HTML: Attribute Values</string>
<key>scope</key>
<string>meta.tag string.quoted, meta.tag string.quoted constant.character.entity</string>
<key>settings</key>
<dict>
<key>background</key>
<string>#FFFFFF</string>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#2aa198</string>
</dict>
</dict>
Где я могу найти список всех областей, поддерживаемых этими приложениями, поэтому я могу создать свой собственный стиль?
Ответы
Ответ 1
К сожалению, похоже, что такого всеобъемлющего списка не существует.
Однако, если вы нажмете Shift + Ctrl + P в SublimeText 2, строка состояния в нижней части экрана отобразит полный список всех клавиш сферы действия, которые применяются к персонажу сразу после позиции курсора.
Вы можете использовать этот метод, чтобы найти ключи области для всего, что вам нужно, в SublimeText.
Ответ 2
Скопировать/вставить (но преобразовать HTML в Markdown) из текущей версии раздела "Соглашения об именах" в Руководство по грамматике языка TextMate:
-
comment
- для комментариев.
-
line
- комментарии к линиям, мы дополнительно специализируемся на том, что тип символа начала комментария может быть извлечен из области видимости.
-
double-slash
- // comment
-
double-dash
- -- comment
-
number-sign
- # comment
-
percentage
- % comment
- character - другие типы комментариев строки.
-
block
- многострочные комментарии, такие как /* … */
и <!-- … -->
.
-
documentation
- встроенная документация.
-
constant
- различные формы констант.
-
numeric
- те, которые представляют числа, например. 42
, 1.3f
, 0x4AB1U
.
-
character
- те, которые представляют символы, например. <
, \e
, \031
.
-
escape
- escape-последовательности, такие как \e
, были бы constant.character.escape
.
-
language
- константы (как правило), предоставляемые языком, которые являются "особыми", такими как true
, false
, nil
, YES
, NO
и т.д.
-
other
- другие константы, например. цвета в CSS.
-
entity
- объект относится к большей части документа, например к главе, классу, функции или тегу. Мы не охватываем весь объект как entity.*
(для этого мы используем meta.*
). Но мы используем entity.*
для "заполнителей" в более крупном объекте, например. если объект является главой, мы использовали бы entity.name.section
для заголовка главы.
-
name
- мы называем более крупный объект.
-
function
- имя функции.
-
type
- имя объявления типа или класса.
-
tag
- имя тега.
-
section
- имя - название раздела/заголовка.
-
other
- другие объекты.
-
inherited-class
- имя суперкласса/базового слова.
-
attribute-name
- имя атрибута (главным образом в тегах).
-
invalid
- материал, который недействителен.
-
illegal
- незаконный, например. амперсанд или более низкий символ в HTML (который не является частью сущности/тега).
-
deprecated
- для устаревших вещей, например. используя функцию API, которая устарела или использует стиль со строгим HTML.
-
keyword
- ключевые слова (если они не попадают в другие группы).
-
control
- в основном связаны с управлением потоком, например, continue
, while
, return
и т.д.
-
operator
- операторы могут быть текстовыми (например, or
) или быть символами.
-
other
- другие ключевые слова.
-
markup
- это для языков разметки и обычно применяется к более крупным подмножествам текста.
-
underline
- подчеркнутый текст.
-
link
- это для ссылок, в качестве удобства это получается из markup.underline
, так что если нет правила темы, которое специально предназначено для markup.underline.link
, то оно наследует стиль подчеркивания.
-
bold
- полужирный текст (текст, который является сильным и похожим, предпочтительно должен быть получен из этого имени).
-
heading
- заголовок раздела. Необязательно укажите уровень заголовка в качестве следующего элемента, например markup.heading.2.html
для <h2>…</h2>
в HTML.
-
italic
- курсивный текст (текст, который выделен и аналогичен, предпочтительно должен быть получен из этого имени).
-
list
- список элементов.
-
numbered
- пронумерованные элементы списка.
-
unnumbered
- ненумерованные элементы списка.
-
quote
- цитируемый (иногда цитируемый блок) текст.
-
raw
- текст, который является дословным, например. списки кодов. Обычно проверка орфографии отключена для markup.raw
.
-
other
- другие конструкции разметки.
-
meta
- метаобъект обычно используется для разметки больших частей документа. Например, вся строка, объявляющая функцию, будет meta.function
, а подмножества будут storage.type
, entity.name.function
, variable.parameter
и т.д., И только последний будет оформлен в стиле. Иногда мета-часть области будет использоваться только для ограничения более общего элемента, который используется в стиле, однако большинство временных метаданных используются в селекторах областей для активации элементов пакета. Например, в Objective-C существует мета-область для объявления интерфейса класса и реализации, позволяющая тем же самым вкладкам-триггерам расширяться по-разному, в зависимости от контекста.
-
storage
- вещи, относящиеся к "хранилищу".
-
type
- тип чего-то, class
, function
, int
, var
и т.д.
-
modifier
- модификатор хранилища, такой как static
, final
, abstract
и т.д.
-
string
- строки.
-
quoted
- цитируемые строки.
-
single
- одиночные кавычки: 'foo'
.
-
double
- строки с двойными кавычками: "foo"
.
-
triple
- тройные цитируемые строки: """Python"""
.
-
other
- другие типы цитирования: $'shell'
, %s{...}
.
-
unquoted
- для таких вещей, как here-docs и here-strings.
-
interpolated
- строки, которые "оцениваются": date
, $(pwd)
.
-
regexp
- регулярные выражения: /(\w+)/
.
-
other
- другие типы строк (редко должны использоваться).
-
support
- вещи, предоставляемые каркасом или библиотекой, должны быть ниже support
.
-
function
- функции, предоставляемые каркасом/библиотекой. Например NSLog
в Objective-C есть support.function
.
-
class
- когда среда/библиотека предоставляет классы.
-
type
- типы, предоставляемые инфраструктурой/библиотекой, вероятно, используются только для языков, полученных из C, который имеет typedef
(и struct
). Большинство других языков будут вводить новые типы в качестве классов.
-
constant
- константы (магические значения), предоставляемые каркасом/библиотекой.
-
variable
- переменные, предоставляемые каркасом/библиотекой. Например NSApp
в AppKit.
-
other
- вышеупомянутое должно быть исчерпывающим, но для всего остального используйте support.other
.
-
variable
- переменные. Не все языки позволяют легко идентифицировать (и, следовательно, разметку) этих.
-
parameter
- когда переменная объявлена как параметр.
-
language
- зарезервированные языковые переменные, такие как this
, super
, self
и т.д.
-
other
- другие переменные, такие как $some_variables
.
Ответ 3
Есть несколько больших текстовых пакетов, которые вы можете использовать для этого.
Установка управления пакетами
Перейдите в https://sublime.wbond.net/ и нажмите "Установка" и следуйте инструкциям, чтобы установить диспетчер пакетных файлов.
Пакеты, отображающие текущую область действия
Я знаю пару возвышенных текстовых пакетов, которые отображают текущую область действия в строке состояния.
Установка одного из вышележащих пакетов
Чтобы установить пакет с возвышенным диспетчером текстовых пакетов, откройте sublime text command palette (ctrl+shift+p
) и выберите команду Package Control: Install Package
, а затем выберите один из вышеуказанных пакетов.
Ответ 4
Области из файлов tmLanguage, которые различаются для каждого синтаксиса. Вы можете найти список соглашений об именах областей в http://manual.macromates.com/en/language_grammars
Ответ 5
В дополнение к отличным ответам, уже опубликованным, вкладка Scopes Stats TMTheme Editor отображает полезный список все области в 236 цветовых темах, с наиболее часто используемыми областями вверху.
Ответ 6
Нет набора списков областей, они создаются синтаксисом для каждого типа файла. Например, ваш синтаксис может указывать, что область function
является storage.type.function.js
. Если ваша тема поддерживает это напрямую, он будет использовать этот цвет, в противном случае он вернется к storage.type.function
, затем storage.type
, а затем storage
, пытаясь найти цвет в вашей теме.
Поскольку вы создаете свой собственный стиль, я бы рекомендовал установить ScopeStatus (CTRL + SHIFT + P, затем установите пакет, затем ScopeStatus). Глядя на файл с помощью синтаксиса, на который вы хотите сосредоточиться, сделайте CTRL + SHIFT + P, затем "Масштаб: показать в строке состояния". Теперь вы можете переместить курсор на различные элементы, чтобы увидеть, какую область они дают, и вы можете использовать их для определения цветов.
Вы можете проверить свои темы, чтобы узнать, что они делают, перейдите в "Настройки- > Обзор пакетов", чтобы открыть папку, в которой хранятся ваши пакеты. Я установил "Тема - Феникс", в которой есть папка и папка "Цветовая схема". В одном из файлов темы я нашел 16 цветов, которые использовались для различных областей:
keyword.operator.class, constant.other, source.php.embedded.line
variable, support.other.variable, string.other.link, entity.name.tag, entity.other.attribute-name, meta.tag, declaration.tag
constant.numeric, constant.language, support.constant, constant.character, variable.parameter, punctuation.section.embedded, keyword.other.unit
entity.name.class, entity.name.type.class, support.type, support.class
string, constant.other.symbol, entity.other.inherited-class, markup.heading
keyword.operator, constant.other.color
entity.name.function, meta.function-call, support.function, keyword.other.special-method, meta.block-level
keyword, storage, storage.type, entity.name.tag.css
invalid
meta.separator
invalid.deprecated
markup.inserted.diff, markup.deleted.diff, meta.diff.header.to-file, meta.diff.header.from-file
markup.inserted.diff, meta.diff.header.to-file
markup.deleted.diff, meta.diff.header.from-file
meta.diff.header.from-file, meta.diff.header.to-file
meta.diff.range
Различные темы могут иметь разные настройки, поскольку ключевое слово .operator.class в первой группе может иметь свой собственный цвет или быть таким же, как meta.diff.range.
Ответ 7
См. справочное руководство на возвышенном сайте ниже: