Как отключить синтаксис ошибки подсветкой Sublime Text 3 - PullRequest
0 голосов
/ 02 октября 2018

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

Единственная проблема заключается в том, что мой язык использует фигурные скобки, а не:и отступы.

Так что иногда, когда я набираю return, например, он подсвечивает возвращение красным.

Можно ли как-то отключить подсвечивание ошибок?

ВотПример: enter image description here

1 Ответ

0 голосов
/ 03 октября 2018

Решение о том, какой код является действительным и какой код является недействительным, происходит внутри определения синтаксиса (в данном случае Python.sublime-syntax в пакете Python).Любой код, который он считает неверным, обозначается как invalid, чтобы передать это, и ваша цветовая схема знает, как отображать код, который является недействительным определенным образом.

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

Если исходить из этого под другим углом, вместо изменения спецификации синтаксиса, чтобы узнать, что код действителен, вы можете замаскировать проблему, изменив свойцветовую схему, чтобы она не применяла какую-либо особую подсветку синтаксиса к области действия invalid.

Для проверки Monokai.sublime-color-scheme содержит следующее правило для того, чтобы сделать недопустимый код белым на красном:

{
    "name": "Invalid",
    "scope": "invalid",
    "foreground": "var(white2)",
    "background": "var(red2)"
},

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

Обратной стороной этого является то, что, поскольку синтаксис определил, что код недействителен, единственная применимая scope, которая применяется к нему, это область действия invalid;информация о том, что это ключевое слово специального языка, была утеряна.

Это означает, что в вашем случае return не будет отображаться как недопустимый, но также не будет выделен синтаксис «правильно» и будетотображаются в виде простого текста.

В зависимости от того, какая часть кода является недействительной, это может быть или не быть приемлемым компромиссом.

...