Подтвердить что ты не робот

Где найти список областей для 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>

Где я могу найти список всех областей, поддерживаемых этими приложениями, поэтому я могу создать свой собственный стиль?

4b9b3361

Ответ 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 - те, которые представляют символы, например. &lt;, \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, который имеет typedefstruct). Большинство других языков будут вводить новые типы в качестве классов.
    • 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.