Releases: nojanath/SublimeKSP
1.21.1
1.20.0
This update adds support for everything that was newly introduced with Kontakt 8.0, along with the following changes:
-
Added support for f-strings! These enable way easier concatenation of expressions in strings. Use
<>
tags to enclose the expression, for example:f'The value of variable a is: <a>.'
-
Fixed return types for
sgn()
andsignbit()
commands - these can return either integer or real depending on context, so they should work likeabs()
already did -
Fixed the behavior of
optimize_code
andadditional_branch_optimization
pragmas to match CLI behavior (they should have automatically enabledextra_syntax_checks
if it wasn't explicitly called) -
Fixed
-> max_value
and-> min_value
shorthands not being syntax colored -
Fixed
save_compiled_source
pragma not working with a relative path that is just a .txt file without a parent folder -
Updated activation triggers for many snippets to contain the whole word, (for example "family" instead of "fam")
Thanks to Nabeel from Impact Soundworks (@eitherys) for f-string support!
Have fun!
1.19.0
This update adds support for new engine parameters introduced with Kontakt 7.10, along with the following changes:
-
Define substitutions have been optimized to only run on new code generations, rather than multiple steps repeated over the entire compiled output, which improves compile times greatly in some cases
-
Macro arguments can now spell defines to then be re-substituted at practically endless levels (until macros themselves crash at 40 levels).
post_iterate_macro()
/post_literate_macro()
commands are thus deprecated now -
Macro expansion now records the top-level calling line into expanded lines, which allows the developer to see the line of the macro invoked in the error message
-
Fixed file associations to code lines imported via recursive directory imports
-
Fixed
optimize_code
pragma directive did not work -
Symbol list (CtrlR or CmdR on Mac) will now show the whole UI callback properly if the name of UI control contains macro
#tokens#
-
Macro
#tokens#
are now syntax colored in most cases (some edge cases where this doesn't work exist still)
Thanks to Nabeel from Impact Soundworks (@eitherys) for the define/macro/directory import fixes and improvements!
Have fun!
1.18.2
1.18.1
This hotfix update resolves teething issues caused by the addition of the new compiler option, Additional Branch Optimization Steps
-
Fixed compilation not working if task functions were used
-
Fixed incorrect default value for Additional Branch Optimization Steps option (it was set to true, even if the menu didn't show it)
-
compile_with/without
pragma directive for the new compiler option now works and is documented on Wiki (it'sextra_branch_optimization
)
Have fun!
1.18.0
This update adds support for new engine parameters and callback type introduced with Kontakt 7.8, along with the following changes:
-
Added an option which enables completions for vanilla KSP built-in constants and variables (with
$
,%
, etc. type prefixes) -
Added
.SIZE
define for literal defines (issue #99) -
Added an error message if function declaration has duplicate argument names
-
Added a compiler option to enable additional branch optimization steps - this allows using if-else with defines, which can be used in many interesting ways
-
Added
+=
and=+
operators to defines, which allows appending or prepending a literal define to the existing list of literals - see Wiki for more info! -
Improved internal structure of built-ins data file, which enables using vanilla KSP built-in constants as they were supposed to be used
(previously you couldn't use these to, for example, specify array size upon declaration) -
Improved automatic syntax detection (SublimeKSP will automatically switch syntax to KSP if enough keywords have been detected in the first 5000 characters of currently focused document)
-
Improved syntax coloring of
pers
,instpers
andread
keywords when they are placed after the UI widget specifier -
Further improved command line interface:
output_file
argument is now completely optional;save_compiled_source
pragmas are now disregarded ifoutput_file
argument is specified -
Fixed operator precedence for or, xor, .or. and .xor. operators
-
Fixed task function
return
andout
parameters not working correctly (issue #217) -
Fixed an issue where multi-dimensional arrays clashed with Combine Callbacks feature (issue #389)
-
Fixed "Optimize Compiled Code" option breaking with bitwise operators (issue #423)
-
Fixed
$CONTROL_PAR_CUSTOM_ID
missing from syntax coloring
Have fun!
1.17.2
This is a minor update with the following changes:
-
Fixes an issue introduced in 1.17.1, where import paths wouldn't be checked if they exist before compilation continued. Now works again!
-
Option "Play sound when compilation finishes" now finally works even for SublimeKSP installations done via Package Control!
Have fun!
1.17.1
Version 1.17.1
This is a minor update with the following changes:
-
Improved detection of duplicate defines - now both the name and the value of a define have to match in order to throw a compiler error
-
Removed
$ENGINE_PAR_RAUM_MIX
because it is not a valid engine parameter -
Added support for importing whole folders in one go, instead of listing them file by file
-
Pressing
Alt+O
with cursor focused on the line which imports a folder will show all .ksp files within that folder in a new Sublime Text window
Have fun!
1.17.0
This version brings support for Kontakt 7.6 additions (including NKS2 parameter descriptive information and navigation commands!), along with several fixes.
-
Added support for real array arguments in
load/save_array(_str)
commands. This was supposed to be there in 7.5, alas... -
Fixed missing Raum engine parameters (
$ENGINE_PAR_RAUM_REVERB
,$ENGINE_PAR_RAUM_PREDELAY_UNIT
) -
Fixed incorrectly named engine parameter for Raum Low Shelf (it was
$ENGINE_PAR_RAUM_LOWCUT
instead of$ENGINE_PAR_RAUM_LOWSHELF
) -
Fixed superfluous closed parentheses appearing in auto-completion suggestions for certain commands
-
Updated the list of functions with forced parentheses with all remaining commands that weren't there yet
1.16.0
-
Added overloaded macros - different macros can now be executed based on different number of arguments they have!
-
Added the capability for
override
keyword which allows user-defined functions to override built-in functions -
Added an error in case a duplicate define is being declared (issue #380)
-
Added a new comment type: section comment
{{ }}
, which will also show up in the symbol list (Ctrl/Cmd+R), making it easier to create named bookmark jumps in the code -
Fixed persistence shorthands not working if they come after
ui_control
keyword (issue #379)
Thanks to @JackWilliams-FractureSounds for implementing overloaded macros and expanding the usage of override
keyword!