Anduh / rmacro

Roll20 Macros - VS Code Extension
MIT License
4 stars 1 forks source link

Html Entities show up as errors. #6

Open GameDevon opened 11 months ago

GameDevon commented 11 months ago

In order to work with roll queries, html elements are sometimes necessary to allow nesting to work properly. This module reads them as errors, but ideally they could be colored as if they were the characters they represent instead of as errors.

See the "Nesting" section of this page for more details.

Anduh commented 11 months ago

Seems that I only defined bracket matching for roll queries using } as closing curly bracket, but not for anything else. Fix is to just add more entries to that file.

While this is a simple fix, I haven't touched the project in a while so will take some time to see how the testing & publishing for extensions works now.

Recently I had anyway thought of getting back into the project, so fixing a clear bug is just the motivation I need to pick this up.

Could you share some sample macros where this error-highlighting come into play? The more complex, the better.

GameDevon commented 11 months ago

Sure thing. The most complicated macro I use is one I stole from a previous player I had. It's a query for all the skill and ability checks for DnD, but I'll also post a shorter version below involving saving throws cause it's not exactly more complex so much as it is long. I have yet to try nesting a query within a query, but I might try that in the future if I keep using roll20.

Long Version @{selected|wtype}&{template:simple} @{selected|rtype}?{Ability|πŸ€ΈπŸΌβ€β™‚οΈ Acrobatics, +@{selected|acrobatics_bonus}@{selected|pbd_safe} ]] πŸ€ΈπŸ½β€β™‚οΈ }} {{rname=Acrobatics}} {{mod=@{selected|acrobatics_bonus}}} {{r1=[[@{selected|d20} + @{selected|acrobatics_bonus}@{selected|pbd_safe} ]] πŸ€ΈπŸ½β€β™‚οΈ }} |🐊 Animal Handling, +@{selected|animal_handling_bonus}@{selected|pbd_safe} ]] 🐊}} {{rname=Animal Handling}} {{mod=@{selected|animal_handling_bonus}}} {{r1=[[ @{selected|d20} + @{selected|animal_handling_bonus}@{selected|pbd_safe} ]] 🐊}} | πŸ§™β€β™‚οΈ Arcana, +@{selected|arcana_bonus}@{selected|pbd_safe} ]] πŸ§™β€β™‚οΈ}} {{rname=Arcana}} {{mod=@{selected|arcana_bonus}}} {{r1=[[ @{selected|d20} + @{selected|arcana_bonus}@{selected|pbd_safe} ]] πŸ§™β€β™‚οΈ}} |πŸ‹πŸ½β€β™‚οΈ Athletics, +@{selected|athletics_bonus}@{selected|pbd_safe} ]] πŸ‹πŸ½β€β™‚οΈ}} {{rname=Athletics}} {{mod=@{selected|athletics_bonus}}} {{r1=[[ @{selected|d20} + @{selected|athletics_bonus}@{selected|pbd_safe} ]] πŸ‹πŸ½β€β™‚οΈ}} |πŸ™…πŸΌβ€β™‚οΈ Deception, +@{selected|deception_bonus}@{selected|pbd_safe} ]] πŸ™…πŸΌβ€β™‚οΈ}} {{rname=Deception}} {{mod=@{selected|deception_bonus}}} {{r1=[[ @{selected|d20} + @{selected|deception_bonus}@{selected|pbd_safe} ]] πŸ™…πŸΌβ€β™‚οΈ}} |πŸ“œ History, +@{selected|history_bonus}@{selected|pbd_safe} ]] πŸ“œ}} {{rname=History}} {{mod=@{selected|history_bonus}}} {{r1=[[ @{selected|d20} + @{selected|history_bonus}@{selected|pbd_safe} ]] πŸ“œ}} | 🎱 Insight, +@{selected|insight_bonus}@{selected|pbd_safe} ]] 🎱}} {{rname=Insight}} {{mod=@{selected|insight_bonus}}} {{r1=[[ @{selected|d20} + @{selected|insight_bonus}@{selected|pbd_safe} ]] 🎱}} | 😠 Intimidation, +@{selected|intimidation_bonus}@{selected|pbd_safe} ]] 😠}} {{rname=Intimidation}} {{mod=@{selected|intimidation_bonus}}} {{r1=[[ @{selected|d20} + @{selected|intimidation_bonus}@{selected|pbd_safe} ]] 😠}} |πŸ” Investigation, +@{selected|investigation_bonus}@{selected|pbd_safe} ]] πŸ”}} {{rname=Investigation}} {{mod=@{selected|investigation_bonus}}} {{r1=[[ @{selected|d20} + @{selected|investigation_bonus}@{selected|pbd_safe} ]] πŸ”}} |πŸ’‰ Medicine, +@{selected|medicine_bonus}@{selected|pbd_safe} ]] πŸ’‰}} {{rname=Medicine}} {{mod=@{selected|medicine_bonus}}} {{r1=[[ @{selected|d20} + @{selected|medicine_bonus}@{selected|pbd_safe} ]] πŸ’‰}} |🌳 Nature, +@{selected|nature_bonus}@{selected|pbd_safe} ]] 🌳}} {{rname=Nature}} {{mod=@{selected|nature_bonus}}} {{r1=[[ @{selected|d20} + @{selected|nature_bonus}@{selected|pbd_safe} ]] 🌳}} |πŸ™ˆ Perception, +@{selected|perception_bonus}@{selected|pbd_safe} ]] πŸ™ˆ }} {{rname=Perception}} {{mod=@{selected|perception_bonus}}} {{r1=[[ @{selected|d20} + @{selected|perception_bonus}@{selected|pbd_safe} ]] πŸ™ˆ }} |πŸ€ΉπŸΌβ€β™‚οΈ Performance, +@{selected|performance_bonus}@{selected|pbd_safe} ]] πŸ€ΉπŸΌβ€β™‚οΈ}} {{rname=Performance}} {{mod=@{selected|performance_bonus}}} {{r1=[[ @{selected|d20} + @{selected|performance_bonus}@{selected|pbd_safe} ]] πŸ€ΉπŸΌβ€β™‚οΈ}} |πŸ˜‰ Persuasion, +@{selected|persuasion_bonus}@{selected|pbd_safe} ]] πŸ˜‰}} {{rname=Persuasion}} {{mod=@{selected|persuasion_bonus}}} {{r1=[[ @{selected|d20} + @{selected|persuasion_bonus}@{selected|pbd_safe} ]] πŸ˜‰}} |β›ͺ️ Religion, +@{selected|religion_bonus}@{selected|pbd_safe} ]] β›ͺ️}} {{rname=Religion}} {{mod=@{selected|religion_bonus}}} {{r1=[[ @{selected|d20} + @{selected|religion_bonus}@{selected|pbd_safe} ]] β›ͺ️}} |πŸ‘‹πŸΎ Sleight of Hand, +@{selected|sleight_of_hand_bonus}@{selected|pbd_safe} ]] πŸ‘‹πŸΎ}} {{rname=Sleight of Hand}} {{mod=@{selected|sleight_of_hand_bonus}}} {{r1=[[ @{selected|d20} + @{selected|sleight_of_hand_bonus}@{selected|pbd_safe} ]] πŸ‘‹πŸΎ}} |πŸ‘₯ Stealth, +@{selected|stealth_bonus}@{selected|pbd_safe} ]] πŸ‘₯}} {{rname=Stealth}} {{mod=@{selected|stealth_bonus}}} {{r1=[[ @{selected|d20} + @{selected|stealth_bonus}@{selected|pbd_safe} ]] πŸ‘₯}} |🐾 Survival, +@{selected|survival_bonus}@{selected|pbd_safe} ]] 🐾}} {{rname=Survival}} {{mod=@{selected|survival_bonus}}} {{r1=[[ @{selected|d20} + @{selected|survival_bonus}@{selected|pbd_safe} ]]🐾}} |πŸ’ͺ🏽 Strength, +@{selected|strength_mod}@{selected|jack_attr}[STR]]] πŸ’ͺ🏽 }} {{rname=Strength}} {{mod=@{selected|strength_mod}@{selected|jack_bonus}}} {{r1=[[ @{selected|d20} + @{selected|strength_mod}@{selected|jack_attr}[STR]]] πŸ’ͺ🏽 }} |πŸ€ΈπŸ½β€β™‚οΈ Dexterity, +@{selected|dexterity_mod}@{selected|jack_attr}[DEX]]] πŸ€ΈπŸ½β€β™‚οΈ}} {{rname=Dexterity}} {{mod=@{selected|dexterity_mod}@{selected|jack_bonus}}} {{r1=[[ @{selected|d20} + @{selected|dexterity_mod}@{selected|jack_attr}[DEX]]] πŸ€ΈπŸ½β€β™‚οΈ}} |🍻 Constitution, +@{selected|constitution_mod}@{selected|jack_attr}[CON]]] 🍻}} {{rname=Constitution}} {{mod=@{selected|constitution_mod}@{selected|jack_bonus}}} {{r1=[[ @{selected|d20} + @{selected|constitution_mod}@{selected|jack_attr}[CON]]] 🍻}} |πŸ“š Intelligence, +@{selected|intelligence_mod}@{selected|jack_attr}[INT]]] πŸ“š}} {{rname=Intelligence}} {{mod=@{selected|intelligence_mod}@{selected|jack_bonus}}} {{r1=[[ @{selected|d20} + @{selected|intelligence_mod}@{selected|jack_attr}[INT]]] πŸ“š}} |πŸ§˜πŸΎβ€β™‚οΈ Wisdom, +@{selected|wisdom_mod}@{selected|jack_attr}[WIS]]] πŸ§˜πŸΎβ€β™‚οΈ}} {{rname=Wisdom}} {{mod=@{selected|wisdom_mod}@{selected|jack_bonus}}} {{r1=[[ @{selected|d20} + @{selected|wisdom_mod}@{selected|jack_attr}[WIS]]] πŸ§˜πŸΎβ€β™‚οΈ}} |πŸ’— Charisma, +@{selected|charisma_mod}@{selected|jack_attr}[CHA]]] πŸ’—}} {{rname=Charisma}} {{mod=@{selected|charisma_mod}@{selected|jack_bonus}}} {{r1=[[ @{selected|d20} + @{selected|charisma_mod}@{selected|jack_attr}[CHA]]] πŸ’—}} } {{charname= @{selected|character_name}}}

Simple Version @{selected|wtype}&{template:simple} @{selected|rtype}?{Save|πŸ’ͺ🏽Strength, +[[@{selected|strength_save_bonus}@{selected|pbd_safe}]]]]}} {{rname=πŸ’ͺ🏽Strength SaveπŸ’ͺ🏽}&#125 {{mod=@{selected|strength_save_bonus}}} {{r1=[[@{selected|d20}+[[@{selected|strength_save_bonus}@{selected|pbd_safe}]]]]}} |πŸ€ΈπŸ½β€β™‚οΈDexterity, +[[@{selected|dexterity_save_bonus}@{selected|pbd_safe}]]]]}} {{rname=πŸ€ΈπŸ½β€β™‚οΈDexterity SaveπŸ€ΈπŸ½β€β™‚οΈ}&#125 {{mod=@{selected|dexterity_save_bonus}}} {{r1=[[@{selected|d20}+[[@{selected|dexterity_save_bonus}@{selected|pbd_safe}]]]]}} |🍻 Constitution, +[[@{selected|constitution_save_bonus}@{selected|pbd_safe}]]]]}} {{rname=🍻Constitution Save🍻}&#125 {{mod=@{selected|constitution_save_bonus}}} {{r1=[[@{selected|d20}+[[@{selected|constitution_save_bonus}@{selected|pbd_safe}]]]]}} |πŸ“š Intelligence, +[[@{selected|intelligence_save_bonus}@{selected|pbd_safe}]]]]}} {{rname=πŸ“šIntelligence SaveπŸ“š}&#125 {{mod=@{selected|intelligence_save_bonus}}} {{r1=[[@{selected|d20}+[[@{selected|intelligence_save_bonus}@{selected|pbd_safe}]]]]}} |πŸ§˜πŸΎβ€β™‚οΈWisdom, +[[@{selected|wisdom_save_bonus}@{selected|pbd_safe}]]]]}} {{rname=πŸ§˜πŸΎβ€β™‚οΈWisdom SaveπŸ§˜πŸΎβ€β™‚οΈ}&#125 {{mod=@{selected|wisdom_save_bonus}}} {{r1=[[@{selected|d20}+[[@{selected|wisdom_save_bonus}@{selected|pbd_safe}]]]]}} |πŸ’—Charisma, +[[@{selected|charisma_save_bonus}@{selected|pbd_safe}]]]]}} {{rname=πŸ’—Charisma SaveπŸ’—}&#125 {{mod=@{selected|charisma_save_bonus}}} {{r1=[[@{selected|d20}+[[@{selected|charisma_save_bonus}@{selected|pbd_safe}]]]]}}}@{selected|global_save_mod} {{charname= @{selected|character_name}}}