Repository navigation
Release 1.6.0
Added
- Parsing of workspace files for Autocompletions, Hovers and Go to Definition for Metaskills, Mobs, Items and Stats!
- "Go to Definition" feature when ctrl+clicking
- Autocompletions in relevant attributes' values
- Hover support
- You can give markdown descriptions to the metaskills to be displayed in the hovers by putting comments
- You can prevent a file from being parsed by writing
# mythicscribe-disable file-parsingas the first line
- VSCode-Web Compatibility
- Color Picker for the relevant attributes and options.
- Basic support for completions and hovers for conditions inside of certain mechanic attributes, such as projectile's hitconditions
Mythic Node Graph
- You can now open a visualization of your configurations. To do so, while in a Mythic file, click the right mouse button and select "Mythic Node Graph". After that, you will be asked about the scope of the Graph and optional filters you can decide
- Can also be accessed via the
MythicScribe.showNodeGraphcommand - Once a Graph is open, you can
- Search for a specific node by its name
- Select a node to see each link is had
- Inheritance (using Templates)
- Red edges means the node is being inherited by the target ones
- Green edges means the node is inheriting from the target ones
- Usage (Summoning a mob, executing a skill, giving an item...)
- Blue edges means the node is being called by the target ones
- Yellow edges means the node is calling the target ones
- Inheritance (using Templates)
- Right click on a node to go to its definition
- Right click on a node to "discover" it, if the scope you selected was not "All" and some of the nodes in the scope you selected references things outside of it. In that case, the nodes will be shown in gray
- You can set up some "Decorator" in the configuration via the use of comments to make a metaskill/mob/item/stat explicitly reference another one, if you are using vskill or other mechanics that may prevent the two from being successfully linked in the node view
# @metaskill: Example_2, Example_3
# @mob: Mob_A
Example_1:
Skills:
- vskill{s=Example_<random.2to3>}Mob_A:
Variables:
# @item
drop: MythicDirt
# @mob
minion: Mob_B
# @metaskill
attackskill: defaultattackConfigurations
MythicScribe.enabledPluginsconfiguration to set enabled / disabled datasets based on the plugin implementing them- Hovers and Completions for Droptables
MythicScribe.fileRegex.Droptableconfiguration to define a regex to recognize Droptable files
- Hover and Completions for Stat Files
MythicScribe.fileRegex.Statconfiguration to define a regex to recognize Stat files
- "Bundle" Custom Datasets
- A Bundle json can contain references to any number of other custom dataset types
- When a Bundle is imported as a File and not as a Link, the path of other File-sourced datasets is interpreted as "relative" to the Bundle's location
Datasets
Remove Custom Datasetcommand to remove a Custom Dataset without having to edit the settings fileCreate Bundle Datasetcommand to create a Bundle Dataset based on other Custom Datasets you have previously addedLoad Datasetscommand to reload all the datasets (custom and not) manuallyOpen Logscommand to open the Extension's logs. For debugging purposes
Changed
- Overhauled the Formatter
- Refactor of how Mechanics/Enums and Subscriptions are handled
- Regexes for files can now be found in the
MythicScribe.fileRegexconfiguration. Old configurations for this are deprecated and automatically migrated - "Local File" value inside customDatasets configurations is now called "File". When the old value is detected, it is automatically migrated
- Formatter now removes whitespace from empty lines
- Datasets: Now both Mechanics and Enums can be downloaded and cached from the Repository when using the GitHub dataset source.
- Slightly increased performances when operating on very big files
Fixed
- Error with the formatter's indentation when the config file actual indentation is 1
- Syntax error when a list of attribute values is spread across multiple lines
- Error with text formatting where comments could still end up being formatted, with some of the text spilling over the commented line
- Error where completions would continue to be shown repeatedly when accepting completions on mechanic-like objects that do not have attributes
- Completions being activated even when after a comment in some cases
- Many errors with the GitHub dataset source option
- Some enums not displaying their aliases for their values, if they had any. Only applies to particle and equipslot
- Attributes' values completions not working when the attribute was on a different line from its mechanic
Metaskill Description Example
# Hello World!
#
# How is it going?
#
# ## Attributes:
# ---
#
# This is a table btw
# | Column 1 | Column 2 |
# |----------|----------|
# | Value 1 | Value 2 |
# | Value 3 | Value 4 |
example_skill:
Skills:
- message{m="This is an example!"} @selfExample Bundle 1: Bundle.json
[
{
"elementType": "Mechanic",
"pathOrUrl": "./test.json"
},
{
"elementType": "Enum",
"pathOrUrl": "./testenum.json"
},
{
"elementType": "Bundle",
"source": "Link",
"pathOrUrl": "https://raw.githubusercontent.com/Lxlp38/LxMythicUtilities/refs/heads/main/Datasets/LxMythicUtilities_DatasetBundle.json"
}
]Bundle.json Example
You can specify a "File" Source to fetch dataset from a local json file.
You can specify a "Link" source to fetch datasets from a link. The link must lead to a raw json object.
If the path starts with a
., it will be treated as a relative path, and will not require a source to be specified. For instance, "./test.json" and "./testenum.json" will be fetched from the same directory the bundle is in.When a path is detected as being relative, its source will be considered to be the same to the bundle's. So, if the bundle is a local file, the relative path will be calculated from the bundle's location on the machine. If the bundle is a link, the relative path will be appended to the bundle's link directory
Of course, you can add ".." and other/directories/toYourFile.json like you would do with any other relative path
You can use the
Create Bundle Datasetcommand to create a bundle dataset from other datasets you have imported
Example Bundle 2: LxMythicUtilities_DatasetBundle.json
[
{
"elementType": "Mechanic",
"pathOrUrl": "./Mechanics/LxMythicUtilitiesMechanics.json"
},
{
"elementType": "Enum",
"pathOrUrl": "./Enums/LxMythicUtilities_Enum_TableMechanic_Mode.json"
},
{
"elementType": "Enum",
"pathOrUrl": "./Enums/LxMythicUtilities_Enum_UtilityChangeItemStack_Operation.json"
},
{
"elementType": "Enum",
"pathOrUrl": "./Enums/LxMythicUtilities_Enum_UtilityRelocationAlign_Mode.json"
}
]📦Datasets
┣ 📂Enums
┃ ┣ 📜LxMythicUtilities_Enum_TableMechanic_Mode.json
┃ ┣ 📜LxMythicUtilities_Enum_UtilityChangeItemStack_Operation.json
┃ ┗ 📜LxMythicUtilities_Enum_UtilityRelocationAlign_Mode.json
┣ 📂Mechanics
┃ ┗ 📜LxMythicUtilitiesMechanics.json
┗ 📜LxMythicUtilities_DatasetBundle.json
This is the bundle that is being imported as a link from the Bundle.json Example
While it could use absolute paths just as well, it is using relative paths for its links
This means that it will work both if you import it like Bundle.json is doing, as a link, or if you clone the whole repository and import it as a local file, since the relative paths will resolve correctly in both cases