Добавьте больше видов подчеркивания цветом

#monaco-editor

#монако-редактор

Вопрос:

Я использую Monaco Editor для создания своей собственной среды разработки. Я использую provideHover для подчеркивания определенных типов кода. Похоже, что разные DiagnosticCategory или MarkerSeverity влияют на цвет подчеркивания. На данный момент кажется, что существует только 4 вида цветов подчеркивания.

 /* Diagnostics */
enum DiagnosticCategory {
    Warning = 0,
    Error = 1,
    Suggestion = 2,
    Message = 3
}
  

Кто-нибудь знает, как добавить больше видов подчеркивания цветом?

Ответ №1:

Форма и цвет подчеркивания определяются его классом CSS, например squiggly-error :

введите описание изображения здесь

Константы для соответствующих классов CSS объявлены в IntervalTree.ts в проекте VS Code:

 export const enum ClassName {
    EditorHintDecoration = 'squiggly-hint',
    EditorInfoDecoration = 'squiggly-info',
    EditorWarningDecoration = 'squiggly-warning',
    EditorErrorDecoration = 'squiggly-error',
    EditorUnnecessaryDecoration = 'squiggly-unnecessary',
    EditorUnnecessaryInlineDecoration = 'squiggly-inline-unnecessary',
    EditorDeprecatedInlineDecoration = 'squiggly-inline-deprecated'
}
  

Код, использующий эти константы, находится в markerDecorationsServiceImpl.ts (в коммутаторе на основе MarkerSeverity ).

Похоже, что он не предназначен для расширения с помощью конфигурации. Добавление другого типа подчеркивания, вероятно, потребовало бы изменений в классах vs core.