Выделение синтаксиса ключевых слов в Monaco-Editor JavaScript

При использовании монако-редактора (0.15.6), встроенного в веб-страницу для редактирования javascript, подсветка / раскрашивание синтаксиса отображает неправильные цвета для свойств / функций объекта, если имя свойства или имя функции соответствует ключевому слову языка (например, 'delete' или 'бросать'). Подсветка / раскрашивание синтаксиса в VS Code не имеет такой же проблемы, поэтому задайтесь вопросом, есть ли способ исправить / переопределить это поведение при использовании monaco-editor в браузере. Вот пример выделения, когда объект имеет свойство с именем «удалить».

Вы заметите, что свойство с именем prop2 имеет правильный цвет, а свойство с именем delete - нет. Настройки темы и языка приведены ниже:

  monaco.editor.setTheme('vs-dark');
  monaco.languages.typescript.javascriptDefaults.setDiagnosticsOptions({
    noSemanticValidation: false,
    noSyntaxValidation: false,
  });
  monaco.languages.typescript.javascriptDefaults.setCompilerOptions({
    allowNonTsExtensions: true,
    experimentalDecorators: true,
    esModuleInterop: true,
    allowSyntheticDefaultImports: true,
    noImplicitAny: true,
    module: monaco.languages.typescript.ModuleKind.ESNext,
    target: monaco.languages.typescript.ScriptTarget.ESNext,
    allowJs: true,
    checkJs: true,
    noUnusedLocals: true,
    noFallthroughCasesInSwitch: true,
    noImplicitThis: true,
    typeRoots: ["node_modules/@types"]
  });

Любые советы приветствуются!

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
3
0
1 050
1

Ответы 1

Не уверен, но я думаю, это потому, что delete - зарезервированное слово. Все ваши объекты будут окрашены в одинаковые цвета. Но зарезервированные слова будут иметь другой цвет.

Да, я понимаю, что причина окраски в том, что слово зарезервировано; однако стараемся избежать такого поведения. VS Code не ведет себя подобным образом - это плохой пользовательский опыт, поэтому обратитесь за советом о том, как избежать / переопределить такое поведение.

crazydevopsguy 24.02.2019 11:22

Другие вопросы по теме