LINUX.ORG.RU

кастомная подсветка синтаксиса в vim

 , ,


1

2

есть хорошая штука: vim-gutentags, эта штука создает базу данных cscope или exuberant-ctags в реальном времени, можно ли что-то подобное сделать с подсветкой

например vim подсвечивает uint8_t, хотелось бы, чтобы vim подсвечивал созданные мной типы данных, например:

typedef enum {
    ERROR = -1,
    SUCCESS = 0,
} RetCode_t;

хотелось бы, чтобы он подсветил ```RetCode_t```, когда я его объявляю далее по тексту.

В vim, точнее NeoVim, подсветка осуществляется при помощи tree-sitter. Но я сомневаюсь, что он позволяет на лету добавлять определения. Или что это позволяет сделать хотя бы любой другой редактор во вселенной.

Но можно для своего проекта наверняка сделать override, чтобы подсвечивать фиксированный набор литералов. Хотя я пытался для другого языка, и с наскоку у меня не вышло. Потратил часа 3-4, и забросил.

Chiffchaff
()
Ответ на: комментарий от Chiffchaff

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

я не случайно привел в пример gutentags, он при каждом сохранении любого файла в дереве каталогов обновляет файлы cscope.out cscope.out.in и cscope.out.po, в теории возможно, чтобы что-то подобное обновляло файл синтаксиса и заставляло vim перегрузить этот файл при каждом сохранении редактируемого файла или открытии нового файла, вот я и думаю, может кто-то такое уже написал, а кто-то на форуме знает, как это называется

IvanRia
() автор топика

Попробуй neovim. При использовании LSP (clangd) он будет подсвечивать и кастомные типы, и кастомные операторы, и переменные, причем можно по-разному настроить подсветку локальных переменных и аргументов.

Реально полезно выделить цветом макросы, константы и глобальные переменные.

Это все будет работать из коробки, нужно только подобрать (и возможно закастомизировать цветовую схему).

Для себя я настроил схему так: https://pastebin.com/3QdYnxrx

kawaii_neko ★★★★
()