

finding declarations, definitions, usages, etc.YCM also provides semantic IDE-like features in a number of languages, including:
UPDATETIME VIMR PLUS
In essence, YCM obsoletes the following Vim plugins because it has all of their features plus extra: You don't need to save your file or press any keyboard shortcut to trigger this, it "just happens" in the background. As Clang compiles your file and detects warnings or errors, they will be presented in various ways. The last thing that you can see in the demo is YCM's diagnostic display features (the little red X that shows up in the left gutter inspired by Syntastic) if you are editing a C-family file. , -> or :: while typing in insert mode (for C++ different triggers are used for other languages), the semantic engine is triggered (it can also be triggered with a keyboard shortcut see the rest of the docs). The demo also shows the semantic engine in use. It collects all of the identifiers in the current file and other files you visit (and your tags files) and searches them when you type (identifiers are put into per-filetype groups). After the filter, a complicated sorting system ranks the completion strings so that the most relevant ones rise to the top of the menu (so you usually need to press TAB just once).Īll of the above works with any programming language because of the identifier-based completion engine. So abc is a subsequence of xaybgc, but not of xbyxaxxc. This is a fancy way of saying that any input characters need to be present in a completion string in the order in which they appear in the input. The input needs to be a subsequence match of a completion. If the offered completions are not relevant enough, the user can continue typing to further filter out unwanted completions.Ī critical thing to notice is that the completion filtering is NOT based on the input being a string prefix of the completion(but that works too). Repeated presses of the TAB key cycle through the offered completions. When the user sees a useful completion string being offered, they press the TAB key to accept it. If the user doesn't find the completion suggestions relevant and/or just wants to type, they can do so the completion engine will not interfere. The user just types and the suggestions pop up by themselves. Here's an explanation of what happens in the short GIF demo above.įirst, realize that no keyboard shortcuts had to be pressed to get the list of completion candidates at any point in the demo.


UPDATETIME VIMR CODE
a Clang-based engine that provides native semantic code completion for C/C++/Objective-C/Objective-C++ (from now on referred to as "the C-family languages"),.an identifier-based engine that works with every programming language,.YouCompleteMe is a fast, as-you-type, fuzzy-search code completion engine for Vim. Semantic Completion for Other Languages.
