OmniCppComplete : C/C++ omni-completion with ctags database
script karma |
Rating 3412/1131,
Downloaded by 108815 |
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 : https://www.vim8.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.
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. |
ip used for rating: 103.230.141.187
|