Toutes les activités de développement ont été déplacées vers les référentiels cxxd et cxxd-vim. Pour suivre les derniers développements, il est encouragé à utiliser le plugin cxxd-vim. Voir la première section de la FAQ pour plus de détails.
Contenu
- Changements
- Installation
- Usage
- Captures d'écran
- Caractéristiques
- Crédits
- FAQ
Changements
- 13 juillet 2018
- Les fonctionnalités de base ont été extraites dans des référentiels séparés :
- cxxd, une implémentation du serveur de langage C/C++
- cxxd-vim, une interface Vim développée pour
cxxd
-
Yavide
les inclura en tant que dépendances et continuera à fonctionner normalement, mais toutes les activités de développement et l'accent sont désormais déplacés vers ces projets. Afin d'obtenir plus de fonctionnalités et de stabilité, veuillez commencer à les utiliser directement à partir de votre configuration Vim ordinaire.
- 2 décembre 2017
- Implémentation d'un indexeur basé sur Clang
- Implémentation de toutes les références basées sur Clang
- Implémentation d'une définition basée sur Clang
- Implémentation d'un go-to-include basé sur Clang
- Prise en charge implémentée de clang-tidy
- Prise en charge implémentée des bases de données de compilation JSON
- Implémentation de mécanismes de mise en cache des unités de traduction
- Diverses corrections de bugs et autres petites améliorations
- 12 février 2017
- Service de déduction de type mis en œuvre.
- Un survol du curseur de la souris sur le code source donnera des détails sur les constructions sous-jacentes (c'est-à-dire les types de données, les signatures de fonctions, etc.).
- 10 février 2017
- Implémentation d'un service de réparation et de diagnostic basé sur Clang.
- Mécanisme implémenté qui permet de partager le même AST au sein de plusieurs services :
- Par exemple, une fois l'AST construit, les services de coloration syntaxique sémantique et de correction de Clang pourront partager le même AST.
- Cela sera particulièrement important lorsque des services plus lourds basés sur Clang entreront en jeu, tels que l'indexeur et le moteur d'auto-complétion.
- Code côté serveur refactorisé pour dissocier les intégrations spécifiques à l'éditeur de l'implémentation principale des services.
- 19 janvier 2017
- Correction de quelques aspérités autour de la coloration syntaxique :
- Prise en charge implémentée pour la gestion d'un ensemble de fonctions ou de modèles de fonctions surchargés (expressions CursorKind.OVERLOADED_DECL_REF)
- Prise en charge implémentée de la gestion des types dépendants (expressions TypeKind.DEPENDENT)
- Implémentation d'un correctif non intrusif pour clang.cindex permettant une traversée AST plus flexible
- 28 décembre 2016
- Implémentation d'un service de coloration syntaxique du code source basé sur Clang (exécutez
cd /colors/yaflandia && git pull
pour obtenir les modifications de schéma de couleurs requises)
- 1er juillet 2016
- Implémentation d'un nouveau framework client-serveur générique (asynchrone) qui permet de répartir tout type d'opérations à exécuter dans des processus d'arrière-plan distincts non bloquants (appelés services) et dont les résultats peuvent être signalés au serveur (« Yavide »).
- Implémentation de 4 nouveaux services en plus du nouveau framework asynchrone :
- Service de coloration syntaxique du code source à la volée.
- Service d'indexation de code source à la volée.
- Service de formatage automatique du code source basé sur Clang.
- Service de création de projets.
Installation
Voir Guide d'installation.
Usage
Voir Utilisation.
Captures d'écran
Découvrez quelques GIF en action.
Plus de détails...
Caractéristiques
- Regroupé et peaufiné pour le développement C/C++
- Gestion de projet
- Créez de nouveaux projets ou importez la base de code existante dans le nouvel espace de travail
- Explorateur de projet
- Explorez le projet à l'aide d'un widget arborescent
- Constructeur de projet
- Déclenchez vos builds dans l'environnement pour qu'ils s'exécutent de manière non intrusive en arrière-plan
- Navigateur de classe
- Présentant un aperçu des symboles définis dans l'unité actuelle (c'est-à-dire macro, structure, classe, méthode, espace de noms, etc.)
- Complétion automatique du code source
- Soutenu par un véritable back-end de compilateur C/C++ pour garantir une exactitude totale
- Navigation dans le code source
- Doté d'un système de génération d'étiquettes entièrement automatisé qui maintient la base de données de symboles à jour
- Coloration de la syntaxe du code source basée sur
libclang
- Fournir un support de coloration syntaxique plus riche que celui fourni à l'origine par
Vim
- Formatage automatique du code source
- prise en charge du formateur
clang-formatter
- Analyse statique du code source
- Intégration du client de gestion du code source
- Avec l'intégration du client
Git
- De nombreuses autres fonctionnalités diverses telles que :
- Remplissage automatique des parenthèses
- Remplissage automatique de texte ordinaire sensible au contexte
- Prise en charge de l'édition à sélection multiple
- Extraits de code
- Prise en charge des schémas de couleurs
Crédits
Il s'agit d'une liste alphabétique des plugins Vim tiers actuellement utilisés dans le système :
- Un (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)
- Barre de balises (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-fugitive (https://github.com/tpope/vim-fugitive)
- 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)
FAQ
Pourquoi l'accent sur le développement a-t-il été déplacé vers cxxd et cxxd-vim ?
TL;DR Avoir séparé un grand référentiel Yavide
monolithique en deux référentiels distincts ( cxxd
& cxxd-vim
) nous a apporté une conception plus modulaire, réutilisable, testable et flexible. Cette approche présente de nombreux autres avantages qui doivent tous être brièvement notés ici, mais la partie importante est maintenant que la logique frontale (par exemple, l'implémentation de l'interface utilisateur) est désormais séparée de l'implémentation backend (fonctionnalités du serveur de langage C/C++). Ces deux développements peuvent désormais être menés séparément et en parallèle. De plus, cxxd-vim
se comporte comme un vrai plugin Vim, vous n'aurez donc plus besoin d'utiliser des scripts d'installation hacky mais une méthode d'installation régulière comme pour n'importe quel autre plugin Vim (par exemple Vundle). Pour de nombreux autres détails, veuillez consulter les référentiels respectifs.
Autres questions
Voir FAQ.