I think the biggest problem with the current in-game documentation is the lack of categorization. [b]All[/b] tags are in one section, and [b]all[/b] modifiers are in another. The second biggest problem is how short the help frame is. These problems combine to make the help frame pretty unusable for inexperienced users who don't even know what tags they're looking for, and have to spend forever getting lost in the long, long scroll trying to find the tags they want.
Currently the documentation is categorized using three tabs:
[b]Syntax[b]
[b]Tags[/b]
[b]Modifiers[/b]
I would propose an interface utilizing tabs for these three basic categories (in bold), and lists similar to Assessment (left-click to drill down, right-click to go back up) for subcategories (prefixed by ...). The page for each each subcategory would list the tags in that group in alphabetical order. Clicking on a tag would take the user to a page containing a description and examples for that tag. Right-clicking on the description page = go back to the tag list. Right-clicking on the tag list = go back to the subcategory list.
[b]Introduction[/b] - less daunting word than "syntax" and could provide more information, i.e. define "syntax", "tag", "modifier" in this section.
[b]Tags[/b]
...General (name, class, level, that type of thing)
...Health
...Mana
...Casting
...XP/Rep
...Threat
...Misc (dump uncategorized tags here, or add more categories if they're warranted)
The parser will simplify tags a bit when doing its thing - it won't figure out huge things like [Alpha ? Bravo][~Alpha ? Charlie] being equivalent to [Alpha ? Bravo ! Charlie], but things like [Alpha][Bravo][Charlie] will turn into [Alpha Bravo Charlie], since that's how the parser understands them anyway.
Actually I was thinking about letting the user switching from long to short form and conversely. E.g. : I copied a smart tag from a forum thread but it is in long form ("if-then-else", "and", "or", "not") and I prefer the short form ("?!", "&", "|", "~"). So I click on the "convert to short form" button and the parser do all the job.
Well I am very far from a Programmer, and mainly a very basic user.
Took me one year to understand how to make this in my party or raid frame and its actually working :
["Buffs"] = {
["position"] = "healthBar-left",
["custom"] = "[HasAura(Power Word: Fortitude) ? Text(F):Color(ffffff)] [HasAura(Prayer of Fortitude) ? Text(PF):Color(D6D4D7)] [HasAura(Renew) ? Text(R):Color(CDE9A8)] [HasAura(Arcane Intellect) ? Text(A):Color(AEB4EC)] [HasAura(Arcane Brillance) ? Text(AB):Color(4250DF)] [HasAura(Mark of the Wild) ? Text(M):Color(D7BADC)] [HasAura(Gift of the Wild) ? Text(GM):Color(CD10EF)] [HasAura(Lifebloom) ? Text(LB):Color(1FAD10)]",
["hidden"] = false,
},
Probably not perfect but its work.
After reading all posted above, I am completely lost on the change I would have to do.
I tried to use AND IF THEN {} ...... as you shown in an example
if IsDeadOrGhost then return Color(Status, "aaaaaa") else if SureHP then if IsFriend then if MissingHP ~= 0 then return Short(CurHP) .. " " .. Color("- " .. Short(MissingHP), "ffaaaa") else return Short(CurHP) end else return Short(CurHP) .. " (" .. Floor(PercentHP) .. "%)" end else if PercentHP ~= 100 then return Floor(PercentHP) .. "%" end end end
but I wont even post my try here as my result seems very stupid to me.
so what my dogtag would look with the proposal new dogtag ?
[if HasAura("Power Word: Fortitude") then
"F":Color("ffffff")
] [if HasAura("Prayer of Fortitude") then
"PF":Color("D6D4D7")
] [if HasAura("Renew") then
"R":Color("CDE9A8")
] [if HasAura("Arcane Intellect") then
"A":Color("AEB4EC")
] [if HasAura("Arcane Brillance") then
"AB":Color("4250DF")
] [if HasAura("Mark of the Wild") then
"M":Color("D7BADC")
] [if HasAura("Gift of the Wild") then
"GM":Color("CD10EF")
] [if HasAura("Lifebloom") then
"LB":Color("1FAD10")]
[if HasAura("Power Word: Fortitude") then
"F":Color("ffffff")
] [if HasAura("Prayer of Fortitude") then
"PF":Color("D6D4D7")
] [if HasAura("Renew") then
"R":Color("CDE9A8")
] [if HasAura("Arcane Intellect") then
"A":Color("AEB4EC")
] [if HasAura("Arcane Brillance") then
"AB":Color("4250DF")
] [if HasAura("Mark of the Wild") then
"M":Color("D7BADC")
] [if HasAura("Gift of the Wild") then
"GM":Color("CD10EF")
] [if HasAura("Lifebloom") then
"LB":Color("1FAD10")]
hehe in fact yes even as total noob user I must admit that I understand it. Remind me HTML.
Of course it will probably ask us user some work around with all our made dogtags but its call progress no ?
It sure is BASIC... that is how I started my programming career on an Apple II (it ended shortly thereafter). Of course I graduated to gosub/return routines so that you could right one big program with only one single goto (you needed a way to loop the main routine back to the top).
THAT ain't Pascal. Looks more like your flashbacks got you back right into the Commodore64 age... :D
I know, that piece of "code" was the only thing i remebered in the middle of a nasty catch of the flu (should really stay of forums when i have 39.6 fever but body hurt to much to nap)...
DogTag had it, too but there's a bug that crashes wow so it was removed temporary.
Fortunately said bug is fixed in 2.4 (to the extent that it no longer crashes the client, at least...still some weird behavior, at least on PTR). Syntax highlighting can probably come back safely when the patch goes live.
Played around a bit with the Tag fields in Aloft, and the syntax highlighting seemed quite stable there. Gave me no trouble at all. Ever taken a look how that one works?
Those aren't multiline-fields, ofc, dunno if that changes everything.
Played around a bit with the Tag fields in Aloft, and the syntax highlighting seemed quite stable there. Gave me no trouble at all. Ever taken a look how that one works?
Those aren't multiline-fields, ofc, dunno if that changes everything.
The exact issue was the way CowTip's line text editor was stripping the colors when the editbox was clicked. Full details of the bug are at http://forums.worldofwarcraft.com/thread.html?topicId=4311145457&sid=1. It's not really a big deal, though. The syntax highlighting may just have to wait until 2.4.
Hey all, I've been working on LibDogTag-3.0 quite a bit recently. It's not to a point that's usable yet by addons, due to the lack of unit-oriented tags, but it's getting there.
All in all, the syntax is pretty set on now, but it could still be changed or added to at a later point in time.
Currently the documentation is categorized using three tabs:
I would propose an interface utilizing tabs for these three basic categories (in bold), and lists similar to Assessment (left-click to drill down, right-click to go back up) for subcategories (prefixed by ...). The page for each each subcategory would list the tags in that group in alphabetical order. Clicking on a tag would take the user to a page containing a description and examples for that tag. Right-clicking on the description page = go back to the tag list. Right-clicking on the tag list = go back to the subcategory list.
Actually I was thinking about letting the user switching from long to short form and conversely. E.g. : I copied a smart tag from a forum thread but it is in long form ("if-then-else", "and", "or", "not") and I prefer the short form ("?!", "&", "|", "~"). So I click on the "convert to short form" button and the parser do all the job.
Took me one year to understand how to make this in my party or raid frame and its actually working :
Probably not perfect but its work.
After reading all posted above, I am completely lost on the change I would have to do.
I tried to use AND IF THEN {} ...... as you shown in an example
but I wont even post my try here as my result seems very stupid to me.
so what my dogtag would look with the proposal new dogtag ?
hehe in fact yes even as total noob user I must admit that I understand it. Remind me HTML.
Of course it will probably ask us user some work around with all our made dogtags but its call progress no ?
10 print "Hello"
20 goto 10
:p
for example:
[Color(Short(Hide([CurMP], [MaxMP])), [HPColor])]
I know, that piece of "code" was the only thing i remebered in the middle of a nasty catch of the flu (should really stay of forums when i have 39.6 fever but body hurt to much to nap)...
That would be nice to have sometimes.
DogTag had it, too but there's a bug that crashes wow so it was removed temporary.
Fortunately said bug is fixed in 2.4 (to the extent that it no longer crashes the client, at least...still some weird behavior, at least on PTR). Syntax highlighting can probably come back safely when the patch goes live.
Those aren't multiline-fields, ofc, dunno if that changes everything.
The exact issue was the way CowTip's line text editor was stripping the colors when the editbox was clicked. Full details of the bug are at http://forums.worldofwarcraft.com/thread.html?topicId=4311145457&sid=1. It's not really a big deal, though. The syntax highlighting may just have to wait until 2.4.
These operators would make it more familiair to old programmers like me definitely.
All in all, the syntax is pretty set on now, but it could still be changed or added to at a later point in time.
I think you'll all like what's been done.
[ [IsPlayer ? IsFriend] ? Name:ClassColor ! Name:HostileColor]
=>
[IsPlayer & IsFriend ? Name:ClassColor ! Name:HostileColor] or
[if IsPlayer and IsFriend then Name:ClassColor else Name:HostileColor]
------
[ [Guild == Text([Guild#player])] ? Guild:Angle:Purple ! Guild:Angle:HostileColor ]
=>
[Guild = Guild(unit="player") ? Guild:Angle:Purple ! Guild:Angle:HostileColor] or
[if Guild = Guild(unit="player") then Guild:Angle:Purple else Guild:Angle:HostileColor]
------
[ [ Target | InCombat | [CurHP ~= Text([MaxHP])] ] ? CurHP:Append( / ) ][MaxHP]
=>
[(Target | InCombat | CurHP ~= MaxHP ? CurHP " / ") MaxHP] or
[(if Target or InCombat or CurHP ~= MaxHP then CurHP " / ") MaxHP]
------
[ [HasAura(Arcane Intellect) | HasAura(Arcane Brilliance)] ? Text(AI)]
=>
[HasAura("Arcane Intellect", "Arcane Brilliance") ? "AI"] or
[if HasAura("Arcane Intellect", "Arcane Brilliance") then "AI"]
(I plan on allowing HasAura to support any amount of arguments)
------
Note: the names of the tags may change, this is mostly a way to show how tags will look.