Whole Tomato Software Forums
Whole Tomato Software Forums
Main Site | Profile | Register | Active Topics | Members | Search | FAQ
User name:
Password:
Save Password
Forgot your password?

 All Forums
 Visual Assist
 Feature Requests
 Active hyper-links in comments
 New Topic  Reply to Topic
 Printer Friendly
Author Previous Topic Topic Next Topic  

beef
Senior Member

Poland
42 Posts

Posted - Jun 12 2006 :  2:28:29 PM  Show Profile  Reply with Quote
Active hyper-links in comments - this is the feature I always dream about. Maybe 'http://...' links would be not so useful, but links to functions/classes (intelligent enough to track changes in the code) would be GREAT feature for me. What do you think? It is possible at all with VAX?

feline
Whole Tomato Software

United Kingdom
18939 Posts

Posted - Jun 12 2006 :  4:48:33 PM  Show Profile  Reply with Quote
in VS2003 and VS2005 there is the option:

IDE tools menu -> Options -> Text Editor -> All Languages -> Enable single-click URL navigation

that sounds like it should provide working links. as for "tracking changes" in the code, it sounds like you are after either alt-g or FSIW, both of which are existing features of VA.

zen is the art of being at one with the two'ness
Go to Top of Page

beef
Senior Member

Poland
42 Posts

Posted - Jun 12 2006 :  6:18:15 PM  Show Profile  Reply with Quote
Hm, 'Enable single-click URL navigation' seems to work only for URLs, which is not exactly my point, as I stated above. Alt+G and FSIW are great tools, but what I want is an another toy :) Imagine this:


// this function changes the way Foo() and Bar() saves their properties
void Blah();


Now, the magic thing: VAX recognizes, that Foo() and Bar() are the function names (it should be hard to do - if the existence of braces is not enough, it always can be some kind of enclosong pair, like {Foo()} for example), and paints underlined. When I double-click on Foo(), VAX moves the caret to Foo()'s definition. It's only a silly example, I would imagine dozens of applications for this feature, really :)
If you want the real-life example of such feature, take a look on the way in which Doxygen (and simiral tools) cross-links the documentation. With this feature implemented in VAX and little amount of work involved into the code documentation, we may resing Doxygen-like tools, at least for an internal usage.
Go to Top of Page

beef
Senior Member

Poland
42 Posts

Posted - Jun 12 2006 :  6:25:00 PM  Show Profile  Reply with Quote
quote:
Originally posted by beef

it should be hard to do



I mean, it shoulN'T be hard to do, of course :)
Go to Top of Page

support
Whole Tomato Software

5566 Posts

Posted - Jun 12 2006 :  7:53:53 PM  Show Profile  Reply with Quote
We often type Foo() in our code, Alt+G to do our work, return and Undo the typing of Foo().
Go to Top of Page

beef
Senior Member

Poland
42 Posts

Posted - Jun 13 2006 :  03:10:16 AM  Show Profile  Reply with Quote
quote:
Originally posted by support

We often type Foo() in our code, Alt+G to do our work, return and Undo the typing of Foo().


Yes, but NOT in comments! I don't want just one more way to replace FSIW and Alt+G. What I want is the cross-linked in-code documentation. Just like the way Doxygen do, but directly in the code, without all this java-doc clutter.
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
18939 Posts

Posted - Jun 13 2006 :  4:40:03 PM  Show Profile  Reply with Quote
assuming for the moment we are talking about C++ then you need:

myDataClass::foo()

to be placed into the comment, since foo() on its own is not going to get you anywhere. the same logic applies to C#. non class member functions in C++ are a separate problem.

from one point of view, at this point, all you are doing is specifying the text to copy and paste into FSIW. so instead of this two step process you are after a single key press to do this.

personally i see the appeal of this idea. my concern is over opening a can of worms / feature requests. sometimes it is hard to know where to draw the line

i can see reasons why alt-g is not a brilliant idea, since the there is no constraint on the text in the comment, and no context. there is nothing to stop me, as a user going:

// sdkfhsdkfhksjfh()

and then wanting to know why alt-g does not do something sensible
from this point of view being able to drop the text info FSIW makes sense to me, since it allows you more flexibility in what you put in the comment.

do you follow my logic here? personally i find the idea is quite appealing, i am just wondering how best to approach it, and if it really fits into VA.

zen is the art of being at one with the two'ness
Go to Top of Page

beef
Senior Member

Poland
42 Posts

Posted - Jun 14 2006 :  2:02:17 PM  Show Profile  Reply with Quote
quote:
Originally posted by feline

assuming for the moment we are talking about C++ then you need:

myDataClass::foo()

to be placed into the comment, since foo() on its own is not going to get you anywhere. the same logic applies to C#. non class member functions in C++ are a separate problem.



Doxygen seems to have some intelligence here, and determines the context by the comment position. But I agree, if it is possible in the documentation tool (which have, on the other hand, its own comment-syntax overhead), doesnt mean that it is simple and even possible in a tool like VAX.

quote:

from one point of view, at this point, all you are doing is specifying the text to copy and paste into FSIW. so instead of this two step process you are after a single key press to do this.



I'm not sure if I fully understand, but if you are proposing additional shortcut to open FSIW with symbol 'under the caret', then we are meeting half way. In other words, this is the solution :) What about this:
- I double click at the symbol in a comment (the entire word becomes selected), or I select it manually, or maybe just place the caret on the symbol..
- Shift+Alt+S
- FSIW dialog appears with the selected word already written in.

quote:

personally i see the appeal of this idea. my concern is over opening a can of worms / feature requests. sometimes it is hard to know where to draw the line



Ok, I understand :)
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
18939 Posts

Posted - Jun 14 2006 :  5:01:49 PM  Show Profile  Reply with Quote
the only problem with FSIW picking up the selected text in the IDE is that currently FSIW remembers your last search when you re-open it. so some of the time the last search will be replaced by the selected text, which will be unhelpful if this happens by accident.

in support of this idea, the find dialog will pick up the selected text when you launch it.

overall this seems sensible, and personally i can definitely see how it would help, so i have put in a feature request

case=1316

on a related front, since i keep meaning to look into doxygen how does its context work? does it simply assume that if i reference "length()" then it must be a member of the current class? what if this is from my base class? i am curious as to how it tries to solve this problem.

zen is the art of being at one with the two'ness
Go to Top of Page

beef
Senior Member

Poland
42 Posts

Posted - Jun 14 2006 :  7:17:26 PM  Show Profile  Reply with Quote
Hm, I am not a Doxygen Expert, but I think it works more or less like this:
1. The comment is binded to the item it refers to. There are strict rules for such binding, in general the item described is the one directly following the comment.
2. For each string in the comment, that is classified as the reference (braces at the end, dot inside, etc), the referenced item is searched 'bottom up' from the context of our commented item.

For example:

...some code...
//* This is a comment, Foo()!
C::Bar()
..some code..

The item commented is C::Bar(). Foo() is searched starting from class C, then through all base classes, then in the namespace in which the C is defined, and so on. I think it is similar to the way the C++ compiler (hence - VAX :) looks up for the symbol. Just start from the context of the commented item and go up, that's it.

As I sad, I am not a Doxygen expert, so I am not sure if it is done this way, at least, this is the way it CAN be done.
Go to Top of Page

beef
Senior Member

Poland
42 Posts

Posted - Jun 14 2006 :  7:19:55 PM  Show Profile  Reply with Quote
To be strict, doxygen comments starts with /** or ///, not //* :)
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
18939 Posts

Posted - Jun 15 2006 :  4:46:03 PM  Show Profile  Reply with Quote
interesting. one of these days i really should look into doxygen

zen is the art of being at one with the two'ness
Go to Top of Page

jpizzi
Tomato Guru

USA
642 Posts

Posted - Jun 16 2006 :  12:08:53 AM  Show Profile  Reply with Quote
The advantage that Doxygen has is the luxury to parse the entire build tree (assuming that you have set it up to do that) "off-line." By this I mean that Doxygen does not have to parse the code you are developing while you are developing it. It also can be setup (and, indeed, works better if you do) to have complete knowledge of the preprocessing options you desire, etc. You start up a Doxygen session and it runs. Then you go back to editing. (Well, you could run it simultaneously with editing code, but I wouldn't be too trustful of the results in the modules you are editing.).

Feline: yes, Doxygen is _really_ nice.

Joe Pizzi
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
18939 Posts

Posted - Jun 17 2006 :  12:24:11 PM  Show Profile  Reply with Quote
i tried doxygen a few times before, but never spent enough time with it to overcome the "i cannot find anything" problem. i would open up some massive great index page of all of our classes in IE, and then i was faced with the problem that a list of 4,000 classes was rather hard to use *sigh*

Firefox and its incremental find feature will be a bonus there.

what is really required is spending enough time with it to find out how to use it properly.

zen is the art of being at one with the two'ness
Go to Top of Page
  Previous Topic Topic Next Topic  
 New Topic  Reply to Topic
 Printer Friendly
Jump To:
© 2023 Whole Tomato Software, LLC Go To Top Of Page
Snitz Forums 2000