sponsor Vim development Vim logo Vim Book Ad

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.
 

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.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 vim@vim.org after searching the archive. Help Bram help Uganda.
   
Sponsored by Web Concept Group Inc. SourceForge.net Logo