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
 VA Hashtag feature requests
 New Topic  Reply to Topic
 Printer Friendly
Author Previous Topic Topic Next Topic  

StefanEgo
Ketchup Master

56 Posts

Posted - Apr 14 2015 :  02:44:31 AM  Show Profile  Reply with Quote
Hi,

great work with the VA Hashtags. This resolves the longest waiting feature request I had for VS (and also hoped that one time VAX would provide this). Really nice work. Our whole development team loves this new feature and it made us to buy renewal licenses. ;-)

That said, I'd have a few ideas. Maybe some of these might be added at one time? Would really appreciate it.

1. Ability to exclude certain hashtags.
Some third party code (like boost, libxml, fcollada, etc.) uses #XXX in their comments which obviously aren't meant to be used as VA Hashtags. Some way to filter these out would be great.
Example for cases where this applies atm:
LibXML: xmlschemas.c - line 7890:
* @flagAll: the specific flag for "#all"

#all here being a doxygen marker.

I'm thinking of being able to right-click on these (invalid) entries in the VA Hashtags window and select "Exclude". These would then be no longer displayed at all in the VA Hashtags list.
Changing the code is kinda suboptimal, since we do not want to change 3rd-party code due to the maintenance overhead this would bring when upgrading the 3rd-party code/libs.

2. Ability to do and AND filtering in the VA Hashtags search box.
For instance if I want to display all hashtags containing Foo and Bar I atm can only search for one or another but not list both hastags at the same time.
Use-case: Using VA Hahstags as a TODO list we mark issues either with a prefix by name or by category. I'm assigned to Category1 and I also have my personal TODOs. Therefore I'd like to see all hashtags containing my name and "Category1" but none of the others.

3. Autocomplete for the searchbox
Assume I have a hashtag named "Foo".
Writing "F" in the searchbox could already bring up a suggestion list of all existing Hashtags starting with F, so I can select "Foo" directly.

4. Nested Hashtags
We normally tag our hashtags with a name and a priority. So atm we use for instance
NameLow or NameHigh to create hashtags with a given priority.
It would be great if these would/could be listed in a nested form (aka: first the name, then the priority).
Alternatively nesting could also work for multiple tags in the same line. So instead of writing (like atm): #NameLow and #NameHigh we'd then write:
#Name #Low
or
#Name #High

resulting in a list like:
Name
|- Low
[...]
|- High
[...]
Low
|- Name
[...]
High
|- Name
[...]

Edited by - StefanEgo on Apr 15 2015 03:48:01 AM

accord
Whole Tomato Software

United Kingdom
3287 Posts

Posted - Apr 14 2015 :  7:24:21 PM  Show Profile  Reply with Quote
I'm glad you like VA Hashtags

Ignoring VA Hashtags is sensible idea, I have put in a feature request for that:

case=89097

Idea 2: I have good news! You can do it by adding space to the filter box, something like: foo bar

BTW, this trick also works in Find Symbol Dialog (alt+shift+f), Open File Dialog (alt+shift+o) and the Method List (alt+m).

3. Autocomplete. I don't really understand this. While you type, the items appear down it's like an autocomplete, since you can select the item you want down there. The autocomplete would complete the word in the filter editbox, leaving you with only one item down. But the 2 are kind of similar, aren't they? Selecting from a popup or from the down there is the same thing with a different flavor, if you will

4. Currently, the nesting is used when there is more than one identical hashtag somewhere in the source code.
I think that if you use filtering with space, it can solve this problem for you as well. What do you think?
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
18724 Posts

Posted - Apr 14 2015 :  7:39:06 PM  Show Profile  Reply with Quote
Point 2, especially since you seem to be grouping tags, searching for more than one tag at the same time is interesting. I think you are doing something different to two search strings with a space, since the tags can be quite different. I have put a feature request in for this:

case=89099

Point 4, we are picking tags up from comments, free text, so I am not sure how reliably we could group them. Also, wouldn't searching for 2 tags at the same time largely cover this, in a fairly reliable manor?

zen is the art of being at one with the two'ness

Edited by - feline on Apr 14 2015 7:47:37 PM
Go to Top of Page

accord
Whole Tomato Software

United Kingdom
3287 Posts

Posted - Apr 14 2015 :  8:56:12 PM  Show Profile  Reply with Quote
2. Regarding space:

quote:
Use-case: Using VA Hahstags as a TODO list we mark issues either with a prefix by name or by category. I'm assigned to Category1 and I also have my personal TODOs. Therefore I'd like to see all hashtags containing my name and "Category1" but none of the others.


Given hashtags like #Category1MemoryLeakJohn and #Category1PossibleCrashJohn, "Category1 John" will produce this two, for example, but not #Category1MemoryLeakJack.
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
18724 Posts

Posted - Apr 14 2015 :  10:54:15 PM  Show Profile  Reply with Quote
accord and I are thinking about this differently. I was thinking you wanted to see, for example, all tags called "TODO" and "Category1" at the same time, as if you had the comment:

// #TODO #Category1

which is interesting, but quite different to long tags. For long tags use space, as accord has explained.

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

StefanEgo
Ketchup Master

56 Posts

Posted - Apr 15 2015 :  02:29:20 AM  Show Profile  Reply with Quote
Thanks for adding the two feature requests.

@2: Sorry for the unclear description. Feline got me right. What I'm actually looking for is an "ored"-search of the words I enter so to get a list of all hashtags containing any of the specified words (in contrast to the current AND-search behavior).

@3: You are absolutely right that in the current state, this feature request wouldn't make much sense. I was merely already thinking of having the "ored"-search behavior (@2) in place, in which case the autocomplete would be benefitial IMO (of course without @2 being added, it's not useful at all as you pointed out).

@4: The point here would also be to have this feature in combination with @2. Having that, we'd set-up the search string just once (think about 1 name plus 4-5 categories) and then navigate through the item (task) list only (without touching the searchstring anymore). The point would be that it would consider only hashtags in the same line as combined/nested. I agree that in general this behavior might not be suitable for everybody, therefore making it optional (with a flag/toggable icon) would be nice.
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
18724 Posts

Posted - Apr 15 2015 :  3:10:23 PM  Show Profile  Reply with Quote
I must admit I am in two minds about point 4. I see the appeal, but I am wary of assigning structure to tags, even when they are on the same line. Given you have been working without VA Hashtags, since it is new, have you actually been ordering your tags in priority order? Or are they just grouped somewhat randomly?

I assume you have been running a find in files to locate these markers before now?

Then again, if it was possible to group tags like this, it would reinforce grouping them over time.

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

StefanEgo
Ketchup Master

56 Posts

Posted - Apr 15 2015 :  3:54:30 PM  Show Profile  Reply with Quote
I've always prioritized my TODOs using Low/Med/High/Crit/Block as additional markers. The old style used to be:
// TODO @Foo - priority - XXXXX

These were converted to
// #FooPriority - XXX

Foo could have been my name or one out of 3 categories.

That's correct, normally I used the find in files (using a regexp) to get a list of remaining TODOs
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
18724 Posts

Posted - Apr 15 2015 :  9:08:52 PM  Show Profile  Reply with Quote
That makes sense, and this does seem a very logical extension of the Hashtags idea, I have put in a feature request to see what our developers make of this:

case=89130

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

xxluda
Senior Member

29 Posts

Posted - Apr 20 2015 :  12:55:09 AM  Show Profile  Reply with Quote
Hi,

I have to definitely agree that hashtags looks like very useful feature.

But to be able to use it properly it's definitely necessary to be able to exclude some hashtags like mentioned by original poster.

I would like to extend @1 idea to exclude also some third-party directories. In our projects we're using libxml/libxslt and few more libraries and this is how looks our VA Hashtags view:



As you can see it's filled with a lot hashtags which wasn't intended as hashtags by creators of the libraries.

Thanks for good work!
Ludek

Ludek Vodicka
Skipper Chief developer www.skipper18.com
Go to Top of Page

accord
Whole Tomato Software

United Kingdom
3287 Posts

Posted - Apr 20 2015 :  11:07:12 AM  Show Profile  Reply with Quote
We're glad you like this feature Personally, I like the simplicity of VA Hashtags which can be used for various reasons, even for tagging source as its name suggests. (for example, to add a feature, you may need to modify the source code at various places and you may tag those places).

Excluding library files is a good idea, but I have a question about this. If you open the below dialog, do you see your library directories listed as so called stable directories?
VA Options -> C/C++ directories

I think maybe we just need to ignore those? (or add an option to do so)

Either way, I have put in a feature request for this:

case=89217

BTW, we will ignore #xHEXA tags in the future, so the list should be less clustered anyway.
Go to Top of Page

xxluda
Senior Member

29 Posts

Posted - Apr 20 2015 :  11:16:36 AM  Show Profile  Reply with Quote
Thanks for reply.

Unfortunately library files aren't listed in the C/C++ Directories


Maybe it's because I'm using Qt and qmake to define my projects (because of multiplatform support).

Library files are includes via "INCLUDEPATH" variable:



these includes are than available in "Additional Include Directories" in C/C++ -> General:



maybe VAssist uses only VC++ Directories path:



Hope it helps ;-)

Ludek Vodicka
Skipper Chief developer www.skipper18.com

Edited by - xxluda on Apr 20 2015 11:17:16 AM
Go to Top of Page

accord
Whole Tomato Software

United Kingdom
3287 Posts

Posted - Apr 20 2015 :  4:41:15 PM  Show Profile  Reply with Quote
Thank you for the additional info, I have edited the case.
Go to Top of Page

Adequat
Tomato Guru

182 Posts

Posted - Apr 24 2015 :  1:48:35 PM  Show Profile  Reply with Quote
quote:
Ignoring VA Hashtags is sensible idea, I have put in a feature request for that


Yes, this is important. The difficulty will be this one: to have the ignored tag list shared to all programmers in a team.
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
18724 Posts

Posted - Apr 24 2015 :  4:45:22 PM  Show Profile  Reply with Quote
Ah, yes... obvious now you say it, normally I don't think in terms of needing to sync things between different programmers in VA. The "simple" solution would be to just share all ignored tags. My concern with this is half the team decide they need to ignore ProjectA tags, while the other half of the team decide they need to see those but ignore ProjectB tags.

I have put a note onto the case about this. I am not sure if anyone has considered this yet, so thank you for raising the point.

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

cgough
Senior Member

27 Posts

Posted - May 08 2015 :  12:56:19 PM  Show Profile  Reply with Quote
Perhaps a nice feature would be to define our own hash tag string. My project is already littered with # tags that are essentially meaningless in the scope of the VA Hashtags. Exclusion is an okay idea but I suspect that configuration is per machine meaning for every development environment I'm using I have to go through and disable the existing ones.
Go to Top of Page

accord
Whole Tomato Software

United Kingdom
3287 Posts

Posted - May 08 2015 :  9:31:52 PM  Show Profile  Reply with Quote
We've improved default "heuristic" a lot so most garbage should be filtered out automatically. The improvements will be part of the next build.

Also, VA will save out the configuration file next to the project/solution so you can simply add it to your source control.

We would be happy to hear what you think about the new exclusion system and the improved default filters once we release our new build.
If you will still see too much garbage with the next build, we would happy to see examples, we may be able to improve our system further, but mostly it will be enough to exclude a few directories. (e.g. libraries)

Edited by - accord on May 09 2015 8:51:10 PM
Go to Top of Page

sean
Whole Tomato Software

USA
2817 Posts

Posted - Jun 11 2015 :  2:41:09 PM  Show Profile  Reply with Quote
case=89097 and case=89217 are implemented in build 2068
Go to Top of Page

beylevem
Tomato Guru

102 Posts

Posted - Jun 24 2015 :  11:44:09 AM  Show Profile  Reply with Quote
A nice feature would be to be able to exclude stable/library header files, since one generally has no control over them.

Also, the macro preprocessor has a stringify feature #string, so it would be nice if hashtags excluded #string in macro definitions from its list
Go to Top of Page

sean
Whole Tomato Software

USA
2817 Posts

Posted - Jun 24 2015 :  12:01:24 PM  Show Profile  Reply with Quote
In 2068, you can right-click on a tag in the toolwindow and hide tags by name, file, directory and project.

Regarding macros, can you please post an example of what you are seeing?
Go to Top of Page

beylevem
Tomato Guru

102 Posts

Posted - Jun 24 2015 :  12:13:24 PM  Show Profile  Reply with Quote
Thank-you. I'll test item 1 after upgrading to 2068

wrt the macro preprocessor, it turns out that the instances showing up in hashtags were pieces of code which were commented out - my mistake

e.g.

/*dbLog(MyFormat(_("Resizing Var "#VarName" based on "#TargetObj)));*/
Go to Top of Page

beylevem
Tomato Guru

102 Posts

Posted - Jun 24 2015 :  1:32:52 PM  Show Profile  Reply with Quote
The new right-click functionality for filtering works really well
Go to Top of Page

sean
Whole Tomato Software

USA
2817 Posts

Posted - Jun 24 2015 :  1:45:19 PM  Show Profile  Reply with Quote
Glad to hear!
Go to Top of Page

StefanEgo
Ketchup Master

56 Posts

Posted - Jun 25 2015 :  03:48:33 AM  Show Profile  Reply with Quote
Right. Thanks alot for improving that feature. In it's current state it's even more useful than it was already in it's previous state. My compliments to the people involved in having realized that feature.
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