Tuesday, July 31, 2007

Vim as a C++ IDE

First of all, hi everyone!

This is, probably, my 5th or 6th blog, but my first in English.

The reason for that is that I didn't find any motivation to write on a blog for a long time... so far! But this seems to be changed, last week I found myself with some kind of a problems in work... as good programmer geek I start to use Vim some time ago to do all my developments and I have no complains about that.
The problem is that I'm a little bit lazy and in some situations (specially when I'm working on big projects) I would like to have a good code completion while I'm programming.

Well, you can say that there is OmniCppComplete plugin for that, but the problem with that is not the plugin feature itself, is the background operation needed to make the plugin works: ctags

Yes, one of the best friends of Vim is the bad guy here.

The problem is that if you make a tag DB for your project OmniCppComplete will show complete options to everything inside your project no mater if you "include" the desired file or not, and more, if you try to complete an std::string you'll see where the problem is!

Ok, all that to say that I thought in create some sort of plugin that will automatize this hole process to me and do a little bit more.

This plugin will use some well know plugins already existed in Vim scripts page like:

TagList (ctags helper);
OmniCppComplete (code completion);
SourcecodeObedience (project index);
CRefvim (C reference manual);
CCase (ClearCase integration);
ShowMarks (Enable a visual mark for all "marks" in your file);
SnippetsEmu (TextMate like snippets);

Well... I need to think a little bit more about that, but I thought that putting this on a blog will help me stick firm on that :)