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 835/247, Downloaded by 6750
created by
Vissale NEANG
script type
ftplugin
description
This script is for vim 7.0 or higher it provides an omnifunc cppcomplete function. You can use the omni completion (intellisense) in C and C++ files. This is a full vim script and you only need a ctags database. It's not finished yet but now you can : - 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.
rate this script | Life Changing Helpful Unfulfilling
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. |  |