OmniCppComplete - C/C++ omni-completion with ctags database : vim online
Keywords: Vim, Vi IMproved, text editor, home, documentation, tips, scripts, news

OmniCppComplete : C/C++ omni-completion with ctags database
script karma | Rating 3287/1071, Downloaded by 96139 | Comments, bugs, improvements | Vim wiki
created by
Vissale NEANG
script type
ftplugin
description
This script is for vim 7.0 or higher, it provides C/C++ completion thanks to a ctags database. If you don't want a completion based on ctags there are solutions using compiler front ends (real C++ parsing) - "clang" with the following script : http://www.vim.org/scripts/script.php?script_id=3302 - "gccsense" : http://cx4a.org/software/gccsense Features : - Complete namespaces, classes, structs and union members. - Complete inherited members for classes and structs (single and multiple inheritance). - Complete attribute members eg: myObject->_child->_child etc... - Complete type returned by a function eg: myObject->get()->_child. - Complete the "this" pointer. - Complete a typedef. - Complete the current scope (global and class scope). - Complete an object after a cast (C and C++ cast). - Complete anonymous types (eg: struct {int a; int b;}g_Var; g_Var.???). It also works for a typedef of an anonymous type. Notes : - The script manage cached datas for optimization. - Ambiguous namespaces are detected and are not included in the context stack. - The parsed code is tokenized so you can run a completion even if the current instruction has bad indentation, spaces, comments or carriage returns between words (even if it is not realistic). ScreenShots : http://vissale.neang.free.fr/Vim/OmniCppComplete/ScreenShots/screenshots.htm
install details
1) Unzip the plugin to ~/.vim (unix) or %HOMEPATH%\vimfiles (windows) 2) Run Vim and type the following command : :helptags $HOME/.vim/doc or :helptags $HOME/vimfiles/doc 3) Type :h omnicppcomplete and please read the installation paragraph.
script versions (upload new version) Click on the package to download.
package | script version | date | Vim version | user | release notes
--- | --- | --- | --- | --- | ---
omnicppcomplete-0.41.zip | 0.41 | 2007-09-27 | 7.0 | Vissale NEANG | - It's recommended to update ctags to version 5.7 or higher - The plugin is now activated for C files - New value for OmniCpp_SelectFirstItem when the option is equal to 2 the first item is selected without inserting it to the text (patch from Marek Olszewski) - Bug when completing union members fixed with ctags 5.7 (reported by Willem-Jan de Hoog) - New option OmniCpp_LocalSearchDecl (patch from Roland Kuck) - Bug when tags=something,,somethingelse (reported by Tobias Pflug) - Bug with nested structure (reported by Mikhail Daen) - Bug where the script fails to detect the type of a variable when the ignorecase option is on (reported by Alexey Vakhov) - Error message when trying to use completion on a not yet saved Vim buffer (reported by Neil Bird) - Error message when trying to use completion on an file opened from a tselect command (reported by Henrique Andrade)
omnicppcomplete.zip | 0.4 | 2006-06-25 | 7.0 | Vissale NEANG | WARNING1: Please uninstall the previous version (remove at least autoload/cppomnicomplete.vim) WARNING2: Option names have changed, don't forget to update your .vimrc WARNING3: It's recommended to update ctags to the latest version (5.6) WARNING4: Default value for OmniCpp_NamespaceSearch option is now 1 - The script is renamed to OmniCppComplete according to the library script directory structure. - OmniCpp_ClassScopeCompletionMethod renamed to OmniCpp_DisplayMode - Fixed a bug where the quickfix list is modified after a completion. - OmniCpp_ShowPrototypeInAbbr option added. It allows to show the function signature in the abbreviation. - OmniCpp_ShowAccess option added. It allows to hide the access information in the popup menu. - The tags database format must be a ctags 5.6 database if you want to complete anonymous types. - Fixed current scope detection not working properly in destructors. - Don't show protected and private members according to the current scope. - Overloaded functions are now filtered properly. - New cache system using less memory. - The class scope of a method is now resolved properly with "using namespace" declarations. - OmniCpp_SelectFirstItem option added. It allows to not select the first item in the popup menu when 'completeopt' does not contain "longest". - Fixed the bug where a "random" item in the popup menu is selected by default when 'completeopt' does not contain "longest" option. - The script is now split in library scripts. - Cache added for 'using namespace' search in included files - Default value for OmniCpp_NamespaceSearch is now 1 (search only in the current buffer). - Namespace search automatically disabled for C files even if OmniCpp_NamespaceSearch != 0. - To avoid linear search in tags files, the ignorecase option is now disabled when getting tags datas (the user setting is restored after). - Fixed a bug where friend functions may crash the script and also crash vim.

| If you have questions or remarks about this site, visit the vimonline development pages. Please use this site responsibly. Questions about Vim should go to the maillist. Help Bram help Uganda. |  |