OmniCppComplete : C++ completion omnifunc with a ctags database
script karma |
Rating 708/200,
Downloaded by 5029 |
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++ 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
PROGRESS report and TODO list :
- Fixing bugs [in progress]
- Namespace alias. [paused]
- Improving type detection. [paused]
- Overloaded operators detection (eg: ->, *, [ ], ( ) etc...)
- Function signature completion.
- Add pointer to member completion (operator ->* and .*) eg: (myObject->*ptr).???
- Update comments of the script.
- Some optimizations...
- Fix futur bugs...
- Improve my english... |
|
install details |
Please read installation details in the documentation. |
|
script versions (upload new version)
Click on the package to download.
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. |
|