Progressive Parameter Overloads (! range prefix)
Overview
A new range prefix ! has been introduced in vMixValuesRange.json to support functions whose optional parameters represent individual constant values rather than a concatenated string. This differs from the existing + prefix (accumulative string) by treating each value as a separate positional argument.
Behavior
Given a range like !M,A,B,C,D,E,F,G, the extension generates one completion overload per depth level:
| Overload | Inserted code |
|---|---|
| 1 | AudioBus(InputsList.X, M) |
| 2 | AudioBus(InputsList.X, M, A) |
| 3 | AudioBus(InputsList.X, M, A, B) |
| … | … |
| 8 | AudioBus(InputsList.X, M, A, B, C, D, E, F, G) |
Each letter is presented as a constant tab stop (no quotes), equivalent to a VB.NET overload signature:
Sub AudioBus(Input As InputsList, Bus1 As Letter)
Sub AudioBus(Input As InputsList, Bus1 As Letter, Optional Bus2 As Letter)
Sub AudioBus(Input As InputsList, Bus1 As Letter, Optional Bus2 As Letter, Optional Bus3 As Letter)
' ...IntelliSense inside parentheses
When typing additional arguments inside a !-range function call, the extension suggests the remaining valid letters as Constant items (no quotes inserted), automatically excluding letters already present in the argument list.
Export / Import
| Direction | Transformation |
|---|---|
| Export | AudioBus(InputsList.MyInput, M, A, B) → API.Function("AudioBus", Input:="My Input", Value:="MAB") |
| Import | API.Function("AudioBus", Input:="My Input", Value:="MAB") → AudioBus(InputsList.MyInput, M, A, B) |
The export concatenates all bus letter arguments into a single Value string as required by the vMix API. The import splits the Value string back into individual letter arguments, discarding any character not present in the valid set defined by the range.
How to apply to a function
In vMixValuesRange.json, use the ! prefix followed by comma-separated values:
{
"category": "Audio",
"function": "AudioBus",
"range": "!M,A,B,C,D,E,F,G"
}Currently applied to: AudioBus, AudioBusOff, AudioBusOn.