Todas las actividades de desarrollo se han trasladado a los repositorios cxxd y cxxd-vim. Para mantenerse al día con los últimos desarrollos, se recomienda utilizar el complemento cxxd-vim. Consulte la primera sección de Preguntas frecuentes para obtener más detalles.
Contenido
- Cambios
- Instalación
- Uso
- Capturas de pantalla
- Características
- Créditos
- Preguntas frecuentes
Cambios
- 13 de julio de 2018
- La funcionalidad principal se ha extraído a repositorios separados:
- cxxd, una implementación del servidor de lenguaje C/C++
- cxxd-vim, una interfaz de Vim desarrollada para
cxxd
-
Yavide
los incluirá como dependencias y continuará funcionando normalmente, pero toda la actividad y el enfoque de desarrollo ahora se trasladarán a esos proyectos , por lo que para obtener más funciones y estabilidad, comience a usarlos directamente desde su configuración normal de Vim.
- 2 de diciembre de 2017
- Indexador basado en Clang implementado
- Implementación de búsqueda de todas las referencias basada en Clang
- Implementación de definición de acceso basada en Clang
- Go-to-include basado en Clang implementado
- Soporte implementado para clang-tidy
- Soporte implementado para bases de datos de compilación JSON.
- Mecanismos de almacenamiento en caché de unidades de traducción implementados
- Varias correcciones de errores y otras mejoras menores
- 12 de febrero de 2017
- Servicio de deducción de tipo implementado.
- Pasar el cursor del mouse sobre el código fuente brindará detalles sobre las construcciones subyacentes (es decir, tipos de datos, firmas de funciones, etc.).
- 10 de febrero de 2017
- Se implementó el servicio de diagnóstico y reparación basado en Clang.
- Mecanismo implementado que permite compartir el mismo AST dentro de múltiples servicios:
- Por ejemplo, una vez creado el AST, el resaltado de sintaxis semántica y los servicios de arreglos de Clang podrán compartir el mismo AST.
- Esto será especialmente importante cuando entren en juego servicios más pesados basados en Clang, como el indexador y el motor de autocompletado.
- Código del lado del servidor refactorizado para desacoplar las integraciones específicas del editor de la implementación principal de los servicios.
- 19 de enero de 2017
- Se pulieron algunas asperezas alrededor del resaltado de sintaxis:
- Soporte implementado para manejar un conjunto de funciones sobrecargadas o plantillas de funciones (expresiones CursorKind.OVERLOADED_DECL_REF)
- Soporte implementado para manejar tipos dependientes (expresiones TypeKind.DEPENDENT)
- Se implementó un parche no intrusivo para clang.cindex que permite un recorrido AST más flexible
- 28 de diciembre de 2016
- Se implementó el servicio de resaltado de sintaxis de código fuente basado en Clang (ejecute
cd /colors/yaflandia && git pull
para obtener los cambios requeridos en el esquema de colores)
- 1 de julio de 2016
- Se implementó un nuevo marco genérico cliente-servidor (asíncrono) que permite enviar cualquier tipo de operaciones para que se ejecuten en procesos en segundo plano separados y sin bloqueo (los llamados servicios) y, una vez finalizados, los resultados se pueden informar al servidor ('Yavide').
- Implementé 4 nuevos servicios además del nuevo marco asíncrono:
- Servicio de resaltado de sintaxis de código fuente sobre la marcha.
- Servicio de indexación de código fuente sobre la marcha.
- Servicio de formato automático de código fuente basado en Clang.
- Servicio de constructor de proyectos.
Instalación
Consulte la guía de instalación.
Uso
Ver uso.
Capturas de pantalla
Vea algunos GIF en acción.
Más detalles...
Características
- Integrado y modificado para el desarrollo en C/C++
- Gestión de proyectos
- Cree nuevos proyectos o importe la base de código existente al nuevo espacio de trabajo
- Explorador de proyectos
- Explore el proyecto usando un widget de vista de árbol
- Constructor de proyectos
- Active sus compilaciones dentro del entorno para que se ejecuten de forma no intrusiva en segundo plano.
- Navegador de clases
- Presenta una descripción general de los símbolos definidos en la unidad actual (es decir, macro, estructura, clase, método, espacio de nombres, etc.)
- Autocompletado de código fuente
- Respaldado por un compilador real de C/C++ para garantizar una corrección total
- Navegación del código fuente
- Con un sistema de generación de etiquetas totalmente automatizado que mantiene actualizada la base de datos de símbolos
- Resaltado de sintaxis del código fuente basado en
libclang
- Proporcionar un soporte de resaltado de sintaxis más rico que el proporcionado originalmente por
Vim
- Autoformato del código fuente
- Análisis estático del código fuente.
- Integración del cliente de gestión de código fuente
- Con integración del cliente
Git
- Muchas más funciones diversas como:
- Autocompletar paréntesis
- Autocompletar texto ordinario consciente del contexto
- Soporte de edición de selección múltiple
- Fragmentos de código
- Soporte de esquemas de color
Créditos
Esta es una lista ordenada alfabéticamente de complementos de Vim de terceros que se utilizan actualmente en el sistema:
- A (https://github.com/vim-scripts/a.vim)
- Clang_complete (https://github.com/Rip-Rip/clang_complete)
- NERDCommenter (https://github.com/scrooloose/nerdcommenter)
- NERDTree (https://github.com/scrooloose/nerdtree)
- SuperTab (https://github.com/ervandew/supertab)
- Barra de etiquetas (https://github.com/majutsushi/tagbar)
- UltiSnips (https://github.com/SirVer/ultisnips)
- vim-airline (https://github.com/bling/vim-airline)
- vim-autoclose (https://github.com/Townk/vim-autoclose)
- vim-fugitivo (https://github.com/tpope/vim-fugitivo)
- vim-gitgutter (https://github.com/airblade/vim-gitgutter)
- vim-multiple-cursors (https://github.com/terryma/vim-multiple-cursors)
- vim-pathogen (https://github.com/tpope/vim-pathogen)
Preguntas frecuentes
¿Por qué el enfoque de desarrollo se ha trasladado a cxxd y cxxd-vim?
TL;DR Haber separado un gran repositorio monolítico Yavide
en dos separados ( cxxd
y cxxd-vim
) nos brindó un diseño más modular, reutilizable, comprobable y flexible. Hay muchas otras ventajas de este enfoque que se mencionarán brevemente aquí, pero la parte importante ahora es que la lógica del frontend (por ejemplo, la implementación de la interfaz de usuario) ahora está separada de la implementación del backend (características del servidor de lenguaje C/C++). Ambos desarrollos ahora pueden impulsarse por separado y en paralelo. Además, cxxd-vim
se comporta como un complemento de Vim real, por lo que ya no necesitará utilizar scripts de instalación complicados, sino una forma normal de instalación como cualquier otro complemento de Vim disponible (por ejemplo, Vundle). Para muchos otros detalles, eche un vistazo a los repositorios respectivos.
Otras preguntas
Ver preguntas frecuentes.