vim-lsp-cxx-highlight es un complemento de vim que proporciona resaltado semántico C/C++/Cuda/ObjC utilizando el protocolo del servidor de idiomas.
Este proyecto se ha archivado porque ya no es necesario resaltarlo, ya que la mayoría de los servidores y clientes LSP ahora admiten tokens semánticos.
El propósito original de este proyecto era brindar un buen resaltado semántico a vim/nvim para C++ mucho antes de que se estandarizara mediante el análisis de extensiones no estándar de cquery y ccls.
Tiene más sentido que un cliente LSP (integrado o un complemento separado) implemente el resaltado tal como está estandarizado ahora.
¿Cómo se diferencia este complemento de color_coded y chromatica?
vim-lsp-cxx-highlight no compila ni analiza los archivos fuente. Recibe todos sus datos de resaltado semántico a través del protocolo del servidor de idiomas. La principal ventaja de este complemento es que está escrito completamente en vimscript.
La idea de esto surgió de vscode-cquery y de ver cómo utiliza cquery para proporcionar resaltado semántico.
Izquierda: sin complemento, derecha: vim-lsp-cxx-highlight + ccls
El complemento requiere vim
o neovim
. Para vim
se recomiendan +timers
y +byte_offset
, pero no son obligatorios.
Además, se requiere un servidor de idiomas compatible y un cliente de servidor de idiomas.
Se admiten los siguientes servidores de idiomas y extensiones de protocolo:
consultar
$cquery/publishSemanticHighlighting
- resaltado semántico$cquery/setInactiveRegions
- regiones omitidas por el preprocesadorccls
$ccls/publishSemanticHighlight
- resaltado semántico$ccls/publishSkippedRegions
- regiones omitidas por el preprocesadorsonido metálico
Se admiten los siguientes clientes de servidor de idiomas:
Usando vim-plug (o use el administrador de complementos de su elección)
Plug ' prabirshrestha/vim-lsp ' " vim-lsp
" or
Plug ' autozimu/LanguageClient-neovim ' " LanguageClient-neovim
" or
Plug ' neoclide/coc.nvim ' " coc.nvim
" or
Plug ' neovim/nvim-lsp ' " nvim-lsp
Plug ' jackguo380/vim-lsp-cxx-highlight '
Usando el administrador de paquetes nativo de vim8 (ejecute este comando en una terminal)
git clone https://github.com/jackguo380/vim-lsp-cxx-highlight.git ~ /.vim/pack/vendor/start/vim-lsp-cxx-highlight
Para cquery
se necesitan las siguientes opciones de inicialización:
{
"highlight" : { "enabled" : true },
"emitInactiveRegions" : true
}
Para ccls
se necesitan las siguientes opciones de inicialización:
{
"highlight" : { "lsRanges" : true }
}
Para clangd
coc-settings.json
debe tener:
{
"clangd.semanticHighlighting" : true ,
"coc.preferences.semanticTokensHighlights" : false
}
Para obtener un ejemplo de configuración de vim-lsp, consulte esto
Para ver un ejemplo de configuración de LanguageClient-neovim, consulte esto
Para ver un ejemplo de coc.nvim coc-settings.json, consulte esto
Para obtener un ejemplo de configuración de nvim-lsp, consulte esto
El complemento debería funcionar sin ninguna configuración adicional. Pero si no le gustan las configuraciones predeterminadas, consulte :help vim-lsp-cxx-highlight
vim-lsp-cxx-highlight ahora es compatible con las propiedades de texto de Vim 8.1 (consulte :help textprop
).
Qué mejora el uso de propiedades de texto:
La compatibilidad con esta función se ha probado en la versión 8.1.1722
de Vim; las versiones anteriores pueden tener problemas. Se recomienda actualizar a esta versión o posterior.
Para habilitar:
let g: lsp_cxx_hl_use_text_props = 1
Nota: Esto ahora está habilitado automáticamente para vim versión 8.2 o superior
Esta es una característica experimental, por lo que puede tener bastantes errores. ¡Por favor presente informes de errores!
Licencia MIT