-
Notifications
You must be signed in to change notification settings - Fork 17
01. Dynamic Snippet Generation
ProbeJS v4.6.0 allows users to add user-defined snippets at runtime.
Snippets added in this way will work like @item
and other similar registry snippets. Snippets added in this way will always be prefixed with @
.
To add the snippet, listen to the ProbeJSEvents.generateDoc
in server_scripts
, like:
ProbeJSEvents.generateDoc(event => {
event.addSnippet("metal", ["gold", "iron", "copper", "netherite"], "A collection of metals")
})
The first argument will be the type and prefix of this snippet. This means it will pop up if @metal
is typed in the example:
The third parameter is the description of this snippet. It is optional.
The event will be fired right before every time ProbeJS starts the dumping process. /probejs dump
now also executes a /reload
silently, so it is safe to dump directly after some code changes are made.
Of course, just simply dumping a list of items won't satisfy many of the use cases. ProbeJS also provides a way to generate fully-customized snippets, as the example below:
ProbeJSEvents.generateDoc(event => {
event.customSnippet(
"itemstack",
["@itemstack"],
[`"\${1}x \${2|${Item.list.map(stack => stack.id).join(",")}|}"`],
"Snippets for creating ItemStack, first stop is number and the second is item."
)
})
The first parameter is the type, the second is the prefixes that will trigger the snippet, the third is now a list of strings representing the snippet body, and the fourth is still the description.
By customizing the snippet yourself, you now get a way more powerful snippet:
For detailed specifications about user-defined snippets in VSCode, please refer to the official document.