Modern C/C++ integrated development environment
Clone or download
JBakamovic Integrate 'cxxd' & 'cxxd-vim' implementation.
Essentially, all C & C++ services (indexer, go-to-definition,
go-to-include, clang-format, etc.) have been extracted to 'cxxd'
repository whereas its corresponding Vim frontend counterpart has
been extracted to 'cxxd-vim' repository.

This in some way renders 'Yavide' project obsolete because all the core
functionality which has been originally brought by it is now moved to
other repositories.

For more details see:
  [1] https://github.com/JBakamovic/cxxd
  [2] https://github.com/JBakamovic/cxxd-vim
Latest commit ab05d99 Jul 13, 2018

README.markdown

Contents

Changes

  • 13th of July, 2018
    • Core functionality has been extracted to separate repositories:
      • cxxd, an implementation of C/C++ language server
      • cxxd-vim, a Vim frontend developed for cxxd
    • Yavide will include those as dependencies and will continue to function normally but all development activity and focus is now moved to those projects so in order to get more features and stability please start using them directly from your ordinary Vim config.
  • 2nd of December, 2017
  • 12th of February, 2017
    • Implemented type deduction service.
      • A mouse cursor hover over source code will give details about the underlying constructs (i.e. data types, function signatures, etc.).
  • 10th of February, 2017
    • Implemented Clang-based fixits & diagnostics service.
    • Implemented mechanism which enables sharing the same AST within multiple services:
      • E.g. Once the AST is built, semantic syntax highlighting and Clang fixits services will be able to share the same AST.
      • This will be especially important when more heavy-weight Clang-based services will come into play, such as indexer and auto-completion engine.
    • Refactored server-side code to decouple editor-specific integrations from the core implementation of services.
  • 19th of January, 2017
    • Polished some rough edges around syntax highlighting:
      • Implemented support for handling a set of overloaded functions or function templates (CursorKind.OVERLOADED_DECL_REF expressions)
      • Implemented support for handling dependent types (TypeKind.DEPENDENT expressions)
      • Implemented non-intrusive patch for clang.cindex enabling more flexible AST traversal
  • 28th of December, 2016
    • Implemented Clang-based source code syntax highlighting service (run cd <yavide_install_dir>/colors/yaflandia && git pull to get required colorscheme changes)
  • 1st of July, 2016
    • Implemented new generic client-server (async) framework which enables dispatching any kind of operations to run in a separate non-blocking background processes (so called services) and upon whose completion results can be reported back to the server ('Yavide').
    • Implemented 4 new services on top of the new async framework:

Installation

See Installation guide.

Usage

See Usage.

Screenshots

Yavide

See some GIFs in action.

More details ...

Features

  • Bundled and tweaked for C/C++ development
  • Project management
    • Create new projects or import existing code base into the new workspace
  • Project explorer
    • Explore the project using a tree-view widget
  • Project builder
    • Trigger your builds within the environment to run non-intrusively in background
  • Class browser
    • Featuring an overview of symbols defined in current unit (i.e. macro, struct, class, method, namespace, etc.)
  • Source code auto-completion
    • Backed by real C/C++ compiler back-end to ensure total correctness
  • Source code navigation
    • Featuring a fully automated tag generation system which keeps the symbol database up-to-date
  • Source code syntax highlighting based on libclang
    • Providing more rich syntax highlighting support than the one provided originally by Vim
  • Source code auto-formatting
    • clang-formatter support
  • Source code static analysis
    • Cppcheck support
  • Source code management client integration
    • Featuring integration of Git client
  • Many more miscellaneous features like:
    • Parenthesis auto-complete
    • Context-aware ordinary text auto-complete
    • Multiple-selection editing support
    • Code snippets
    • Color schemes support

Credits

This is an alphabetically ordered list of third-party Vim plugins currently utilized in the system:

FAQ

See FAQ.