Новая подсветка грамматики / синтаксиса в Atom - PullRequest
0 голосов
/ 20 июня 2020

Я пытаюсь создать новую, довольно простую грамматику для Atom, только для моих нужд редактирования текста. Либо так, либо вы сможете изменить грамматику Markdown. Моя проблема в том, что я не могу даже запустить тест ...

Это руководство , за которым я следил, я также пробовал руководство по полету Atom .

Вот мой пакет. json:

{
  "name": "language-mylanguage",
  "version": "0.0.0",
  "description": "Mylanguage language support in Atom",
  "engines": {
    "atom": "*"
  },
  "dependencies": {},
  "repository": {
    "type": "git",
    "url": ""
  },
  "bugs": {
    "url": ""
  },
  "license": "MIT"
}

И styles / language-mylanguage.less:

@import "ui-variables";

.mylanguage {
  color: red;
}
.text {
  color: blue;
}

И грамматики / mylanguage.cson:

'scopeName': 'source.mylanguage'
'name': 'Mylanguage'
'fileTypes': ['md', 'txt']

'patterns': [
    {
        'match': '\\bLorem\\b'
        'name': 'text.mylanguage'
    }
]

И, наконец, мой тестовый файл:

# H1
## H2
### H3
#### H4
Lorem Ipsum
[Text 1]
{Text 2}
%Text 3%
^Text 4^
> Text 5
++ Comment ++

Это единственные файлы, которые у меня есть в папке пакета. Я до сих пор пытался обновить через меню просмотра, а также выйти и перезапустить. Пожалуйста, помогите!

Изменить: исходя из кода, который у меня сейчас есть, я ожидал, что Лорем будет синим цветом, а остальные - красным.

1 Ответ

0 голосов
/ 21 июня 2020

Прежде всего, вы никогда не должны смешивать языковые грамматики и темы в одном пакете, они должны быть отдельными. Таким образом, другие могут использовать ваши определения грамматики с темой синтаксиса по своему усмотрению или способностям (подумайте о проблемах доступности).

Во-вторых, придерживайтесь соглашений об именах TextMate (которые также используются Atom и многие другие редакторы), поэтому другие темы могут выделить вашу грамматику. Таким образом, вместо использования селектора .text вам, вероятно, следует использовать что-то вроде .string.unquoted.*. В качестве побочного эффекта вы заметите, что вам не нужна собственная таблица стилей для выделения вашего языка.

Вот еще один совет: поместите курсор в любом месте вашего синтаксиса и запустите Editor : Log Cursor Scope из палитры команд. Это покажет область синтаксиса, используемую в позиции курсора.

...