У меня есть исходные файлы, содержащие макросы, загруженные с помощью проприетарной цепочки инструментов сборки. К сожалению, Neovim не имеет плагина для файла конфигурации (emProject от SEGGER) и не распознает эти макросы. В результате они не обнаруживаются clangd. Есть ли способ настроить поведение clangd?
В частности, я хотел бы отключить затенение участков кода между макросами. Я использую Neovim, lsp-config, clangd и mason, все настройки основаны на конфигурации NChad.
Я не уверен, как neovim оценивает эти условные директивы и делает ли он это вообще сам. Возможно, вы обнаружите, что Vi и Vim SE лучше подготовлены к ответу на этот вопрос.
@KamilCuk Это то, чего я не знал. К сожалению, HighCommander4 предоставил работающее решение. Итак, я искал настройку clangd.
Если вы используете clangd 17 или более позднюю версию, раскраску неактивных областей кода можно отключить, добавив следующее в конфигурацию clangd:
SemanticTokens:
DisabledKinds: [InactiveCode]
Примечание: вышесказанное относится к клиентам, которые не реализуют расширение textDocument/inactiveRegions
Language Server Protocol и, таким образом, возвращаются к раскрашиванию неактивных областей кода с помощью textDocument/semanticTokens
.
Для клиентов, которые реализуют textDocument/inactiveRegions
(например, vscode-clangd), должны быть специфичные для клиента параметры настройки внешнего вида неактивных регионов (например, параметр "clangd.inactiveRegions.useBackgroundHighlight"
в vscode-clangd).
Вы спрашиваете, как настроить clang или как отключить окраску (где «раскраска» — это свойство neovim)? Вы изучали что-то вроде stackoverflow.com/questions/67887552/… ?