Alle Entwicklungsaktivitäten wurden in die Repositorys cxxd und cxxd-vim verschoben. Um mit den neuesten Entwicklungen Schritt zu halten, wird die Verwendung des cxxd-vim-Plugins empfohlen. Weitere Einzelheiten finden Sie im ersten Abschnitt der FAQ.
Inhalt
- Änderungen
- Installation
- Verwendung
- Screenshots
- Merkmale
- Credits
- FAQ
Änderungen
- 13. Juli 2018
- Die Kernfunktionalität wurde in separate Repositorys extrahiert:
- cxxd, eine Implementierung des C/C++-Sprachservers
- cxxd-vim, ein für
cxxd
entwickeltes Vim-Frontend
-
Yavide
wird diese als Abhängigkeiten einbeziehen und weiterhin normal funktionieren, aber alle Entwicklungsaktivitäten und der Schwerpunkt werden jetzt auf diese Projekte verlagert . Um mehr Funktionen und Stabilität zu erhalten, beginnen Sie bitte damit, sie direkt aus Ihrer normalen Vim-Konfiguration zu verwenden.
- 2. Dezember 2017
- Clang-basierter Indexer implementiert
- Clang-basierte Find-All-Referenzen implementiert
- Clang-basierte Go-to-Definition implementiert
- Clang-basiertes Go-to-include implementiert
- Unterstützung für clang-tidy implementiert
- Unterstützung für JSON-Kompilierungsdatenbanken implementiert
- Implementierung von Caching-Mechanismen für Übersetzungseinheiten
- Diverse Bugfixes und weitere kleinere Verbesserungen
- 12. Februar 2017
- Typabzugsdienst implementiert.
- Wenn Sie mit der Maus über den Quellcode fahren, erhalten Sie Details zu den zugrunde liegenden Konstrukten (z. B. Datentypen, Funktionssignaturen usw.).
- 10. Februar 2017
- Implementierung eines Clang-basierten Fixits- und Diagnosedienstes.
- Implementierter Mechanismus, der die gemeinsame Nutzung desselben AST innerhalb mehrerer Dienste ermöglicht:
- Sobald beispielsweise der AST erstellt ist, können die Dienste für semantische Syntaxhervorhebung und Clang-Fixits denselben AST verwenden.
- Dies wird besonders wichtig sein, wenn umfangreichere Clang-basierte Dienste ins Spiel kommen, wie etwa Indexer und Autovervollständigungs-Engines.
- Überarbeiteter serverseitiger Code, um editorspezifische Integrationen von der Kernimplementierung der Dienste zu entkoppeln.
- 19. Januar 2017
- Einige Ecken und Kanten rund um die Syntaxhervorhebung wurden geglättet:
- Implementierte Unterstützung für die Behandlung einer Reihe überladener Funktionen oder Funktionsvorlagen (CursorKind.OVERLOADED_DECL_REF-Ausdrücke)
- Unterstützung für die Behandlung abhängiger Typen implementiert (TypeKind.DEPENDENT-Ausdrücke)
- Nicht-intrusiver Patch für clang.cindex implementiert, der eine flexiblere AST-Durchquerung ermöglicht
- 28. Dezember 2016
- Clang-basierter Quellcode-Syntax-Hervorhebungsdienst implementiert (führen Sie
cd /colors/yaflandia && git pull
aus, um die erforderlichen Farbschemaänderungen zu erhalten)
- 1. Juli 2016
- Implementierung eines neuen generischen Client-Server-Frameworks (asynchron), das es ermöglicht, Vorgänge aller Art in separaten, nicht blockierenden Hintergrundprozessen (sogenannten Diensten) auszuführen und deren Abschlussergebnisse an den Server („Yavide“) zurückgemeldet werden können.
- 4 neue Dienste zusätzlich zum neuen asynchronen Framework implementiert:
- On-the-Fly-Dienst zur Hervorhebung der Quellcode-Syntax.
- On-the-Fly-Indizierungsdienst für Quellcode.
- Clang-basierter Dienst zur automatischen Formatierung von Quellcode.
- Projekterstellungsservice.
Installation
Siehe Installationsanleitung.
Verwendung
Siehe Nutzung.
Screenshots
Sehen Sie sich einige GIFs in Aktion an.
Weitere Details ...
Merkmale
- Gebündelt und optimiert für die C/C++-Entwicklung
- Projektmanagement
- Erstellen Sie neue Projekte oder importieren Sie die vorhandene Codebasis in den neuen Arbeitsbereich
- Projekt-Explorer
- Erkunden Sie das Projekt mit einem Baumansicht-Widget
- Projektentwickler
- Lösen Sie Ihre Builds in der Umgebung aus, damit sie unaufdringlich im Hintergrund ausgeführt werden
- Klassenbrowser
- Mit einer Übersicht über die in der aktuellen Einheit definierten Symbole (z. B. Makro, Struktur, Klasse, Methode, Namespace usw.)
- Automatische Vervollständigung des Quellcodes
- Unterstützt durch ein echtes C/C++-Compiler-Backend, um absolute Korrektheit zu gewährleisten
- Quellcode-Navigation
- Ausgestattet mit einem vollautomatischen Tag-Generierungssystem, das die Symboldatenbank auf dem neuesten Stand hält
- Hervorhebung der Quellcode-Syntax basierend auf
libclang
- Bietet umfassendere Unterstützung für die Syntaxhervorhebung als ursprünglich von
Vim
bereitgestellt
- Automatische Formatierung des Quellcodes
-
clang-formatter
Unterstützung
- Statische Analyse des Quellcodes
- Integration des Quellcode-Management-Clients
- Mit Integration des
Git
Clients
- Viele weitere verschiedene Funktionen wie:
- Automatische Vervollständigung von Klammern
- Kontextbezogene automatische Vervollständigung von gewöhnlichem Text
- Unterstützung für Mehrfachauswahl-Bearbeitung
- Codeausschnitte
- Unterstützung für Farbschemata
Credits
Dies ist eine alphabetisch geordnete Liste der Vim-Plugins von Drittanbietern, die derzeit im System verwendet werden:
- 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)
- Tagbar (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
Warum wurde der Entwicklungsschwerpunkt auf cxxd und cxxd-vim verlagert?
TL;DR Die Aufteilung eines großen monolithischen Yavide
Repositorys in zwei separate ( cxxd
und cxxd-vim
) brachte uns ein modulareres, wiederverwendbareres, testbareres und flexibleres Design. Es gibt viele weitere Vorteile dieses Ansatzes, die hier alle kurz aufgeführt werden sollen. Der wichtige Teil besteht nun darin, dass die Frontend-Logik (z. B. UI-Implementierung) jetzt von der Backend-Implementierung (C/C++-Sprachserverfunktionen) getrennt ist. Beide Entwicklungen können nun getrennt und parallel vorangetrieben werden. Darüber hinaus verhält sich cxxd-vim
wie ein echtes Vim-Plugin, sodass Sie keine hackigen Installationsskripte mehr verwenden müssen, sondern eine normale Installationsmethode verwenden, genau wie bei jedem anderen Vim-Plugin da draußen (z. B. Vundle). Für viele weitere Details werfen Sie bitte einen Blick in die jeweiligen Repositories.
Andere Fragen
Siehe FAQ.