Синтаксис Highlight Confusion / Fail in vim - PullRequest
0 голосов
/ 15 ноября 2018

Предположим, у вас есть следующая строка в вашем файле .js (x) и вы используете VIM в качестве вашего любимого текстового редактора

if (foundArray = decodeURIComponent(location.hash).toLowerCase().match(/^#\/([0-9a-zäüöß\-_]+)?\/*$/i)) {

Зелье /* этого регулярного выражения будетзаставить VIM выделять все следующие строки серым цветом, поскольку предполагается, что все последующие символы закомментированы.

Кто-нибудь испытывает такие же проблемы?Любые предложения для обходных путей, сценариев / плагинов с подсветкой синтаксиса?

РЕДАКТИРОВАТЬ

Я попытался с минимальной конфигурации VIM (и vim -u minimalconfig).Те же результаты ...

Содержимое минимальной конфигурации:

set nocompatible
filetype on
filetype plugin indent on
syntax on
syntax enable
set background=dark

1 Ответ

0 голосов
/ 21 ноября 2018

Да, это предел включенной подсветки синтаксиса JavaScript.Существуют альтернативные средства подсветки JavaScript, которые подходят для этого случая:

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

Или переписать свой JavaScript, чтобы избежать наличия /* в литерале регулярного выражениянапример, одним из:

  • Используйте {0,} для нуля или более вместо *.
  • Поместите шаблон в строку и создайте его явно с помощьюRegexp('^#/…', 'i') - тогда /* будет находиться внутри строковой константы, что не смущает подсветку.
...