[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: C Integrated Development Environment

dman wrote:

> On Fri, Feb 01, 2002 at 09:09:34AM +1000, john wrote:
> | dman wrote:
> |
> | > On Thu, Jan 31, 2002 at 01:35:38AM -0500, Scott Henson wrote:
> | > | Im setting up a machine for a friend and he needs an IDE for developing
> | > | C and C++.  Anyone have a recomendation on a good one he could use.
> | >
> | > I recommend Debian for the IDE!!
> | >
> | > What do I mean by that?  Well, here is a major difference between MS
> | > Windows and UNIX (others have contributed to this conclusion as well) :
> |
> | <snip>
> |
> | > The moral of the story : learn to use UNIX to its full extent and
> | > you'll need nothing else.  As a bonus, all those utilities are useful
> | > even when you're not coding!
> |
> | Actually, as much as it shames me to admit it, there is one feature
> | in the VC6 M$ bloat thing IDE I really want to see on a Unix
> | platform, and that's the incredibly powerful way it can back
> | reference callers, classes etc. Perhaps it's me, but I just can't
> | get ctags etc to work the same way, and my LISP is too weak to make
> | emacs do it.
> Is this what you're looking for?
>     You have some file open in a buffer and it contains the following
>     snippet of C code :
>             local_var = my_function( an_argument ) ;
>     You want to see what 'my_function' looks like.
> If so, ctags is your man.
> Here's how I use it :
> Sit in "$my_proj_dir" and run
>     ctags --recurse=yes --extra=+q --excmd=pattern src
> (well, the options are really in ~/.ctags)
> Now you have a file named "tags" that contains the tags.
> Start up gvim or vim *with $my_proj_dir as $PWD*.  If you want to go
> to a tag
>     :tag <name>
> (with tab-completion)
> If you have the above senario, press ^] to jump to the tag matching
> the text under the cursor.  Press ^T to jump back to the previous tag
> on the tag stack (ie after you've press ^] a few times).
> The key issues I ran into are
>     1)  the tags file contains paths relative to the directory ctags
>         was run from
>     2)  your editor must be able to find the tags file
> You can have multiple tags files, one for each subdirectory or
> whatever, but that seems to me like it would be harder to manage.  Get
> used to the commands so that you can just use tags or :e to open files
> and keep the current directory always at the top of your project
> directory.  (if you google a bit you'll surely come across an article
> I read a while back explaining techniques for managing tags in a
> project)
> -D

Hi all,

What VC6 does (and I stress this is the ONLY thing I like about it!!).

I right click on a function call in the source code, and I get a pop-up list of
all objects and methods that call it. This list is in a treeview, so I can see
full dependency information. If the method I chose is overloaded, or the class
in question has multiple inhertance it may add a list to allow me to refine the
search before I get the dependency tree.

Not only that, but I can then open a file up the 'stack hierarchy' at exactly
the line where the method (or it's referrer) is called.

Now, to be even more cool, if I do exactly the same thing in the 'Object
Browser' window I can navigate in the other direction. (ie who this method
calls, who they call etc etc all in a treeview.)

This is incredibly useful when re-factoring legacy code, or when checking that a
new name/method doesnt hide another name we need.

ctags doesnt cut it, it's not good enough for C++ as far as I can tell - it
doesnt understand the C++ language, although it is great for C.

And having had a look at Eclipse I cant be bothered at this point to work out
how to make the damn thing run properly. I suspect it wants an entire JDK
installation under it's own directory!!

If you know a way to get Ctags or some other tagging system to play nice please
let me know. Even better if it integrates with Emacs.

John P Foster
Senoir Research Scientist
Golden Orb Pty Ltd

Reply to: