Skip to content

Releases: nojanath/SublimeKSP

1.25.0

11 Dec 12:21

Choose a tag to compare

This update is quite light, nonetheless it had to happen. :) Only three bullet points this time:

  • ADDED Support for new engine parameters in Kontakt 8.8
  • FIXED abs(), sgn() and signbit() support arrays as argument (for example abs(foo[1]), which works in vanilla KSP, did not work in SublimeKSP - now it does)
  • IMPROVED Compilation error messages now don't contain Python tracebacks anymore, and the verbiage of the error as far as line count is now slightly updated

That's all - have fun!

1.24.1

23 May 09:25

Choose a tag to compare

This update is a hotfix which simply adds support for one engine parameter that was missed in 1.24.0: $EFFECT_TYPE_REVERBDELIGHT.

That's all - have fun!

1.24.0

21 May 13:24
f32cf6f

Choose a tag to compare

This update adds support for new engine parameters introduced in Kontakt 8.4, a few of fixes and a new const block feature.

  • ADDED Support for new event and engine parameters (Reverb Delight, $EVENT_PAR_OUTPUT_TYPE, $EVENT_PAR_OUTPUT_INDEX)

  • ADDED Const blocks get additional auto-generated variables and constants (.str[] for names of entries, .title for the name of the const block itself, .idx for the index of the const block entry)

  • FIXED Compiler hangup resulting in huge .log files

  • IMPROVED Error message when UI callback definition is incorrect is much clearer now (issue #446)

Thanks to Nabeel from Impact Soundworks (@eitherys) for the compiler hangup fix!

That's all - have fun!

1.23.0

09 Apr 06:48
244d183

Choose a tag to compare

This update adds support for new engine parameters introduced in Kontakt 8.3, and a number of fixes.

  • ADDED Support for new filter types and engine parameters (Monark and Dual SKF)

  • ADDED If variables are using inline initializers, type prefix is deducted automatically (the only exception is single strings, @ prefix is still required for those)

  • ADDED New color scheme, KScript Dark VS, inspired by VS Code Dark+ theme

  • ADDED New compiler option to write a log on failed compilation

  • FIXED Automatic syntax detection was not working in unsaved Sublime Text views

  • FIXED import_nckp() command was not removed from compiled output if the imported NCKP file was empty

  • IMPROVED Structs now properly support declaring and using real members (issue #455)

  • IMPROVED START_INC, END_INC, concat() and list_add() are now properly syntax colored

  • IMPROVED Refactored how new built-in syntax identifiers are ingested to the compiler internally

Thanks to Nabeel from Impact Soundworks (@eitherys) for assistance with some type deduction issues!

That's all - have fun!

1.22.1

19 Feb 23:30
1acbdb2

Choose a tag to compare

This update fixes several issues which arose in previous release:

  • FIXED Checking if the package has been loaded was still not correct, so automatic syntax recognition did not work properly. Now it does!

  • FIXED Several built-in variables were set up as constants, so select-case on them would overly eagerly optimize away the whole statement (issue #490)

  • FIXED Select-case optimization now doesn't optimize if built-in constants are used, even though that doesn't make a whole lot of sense (issue #490)

  • FIXED Automatic end-of-line format fixer did not work for quite some time, resulting in compilation problems like in issue #447

  • FIXED Assign statement optimization introduced in 1.22.0 would overly eagerly optimize statements containing built-in or user functions

  • ADDED Previously "hidden" Indent Size in Compiled Code option is now in the Tools > SublimeKSP menu

  • IMPROVED Refactored how setting various SublimeKSP options works in the back end

Thanks to Nabeel from Impact Soundworks (@eitherys) for assistance in fixing the compiler optimization bugs!

That's all - have fun!

1.22.0

12 Feb 20:33
2b143d7

Choose a tag to compare

This update adds support for everything that was newly introduced with Kontakt 8.2.0, along with the following changes:

  • ADDED New __IGNORE__ directive, which, if found in a file, will disallow it from being imported into other scripts

  • ADDED Compiler option to specify the indentation size in compiled code (provided "Remove Indents" option is disabled)

  • ADDED "SublimeKSP Documentation" command was added to Tools > SublimeKSP menu, which links to the (now greatly updated!) Wiki of the official SublimeKSP repository

  • ADDED All actions and options of the SublimeKSP extension are now also available in Sublime Text's Command Palette (CtrlShiftP on Windows/Linux, CmdShiftP on macOS)

  • IMPROVED SublimeKSP will now use the Python 3.8 runtime in Sublime Text 4. You can expect some speedups in compilation times potentially!

  • IMPROVED F-strings are now properly syntax colored

  • IMPROVED Compiler now detects when variable references are used as lvalues and proposes their assign statements as deletable. An example: if we write declare !arr[] := ("foo", "bar") and we don't read from !arr elsewhere in code, the variable won't be written to, which can save a significant amount of lines of code, for example if string arrays are declared and assigned to, but never referenced in code. Previously, the above example would always produce code with !arr declared and the string assignment statements, even if the array was never used.

  • CHANGED "Define constant was already declared" error was demoted to a warning (you can see this in Sublime Text's console log), which means that compilation can proceed normally

  • CHANGED Similar to the above change, when importing NCKP, and it was found that it contains no UI controls to import, demote this error to a note

  • CHANGED "Remove Indents and Empty Lines" action was renamed to just "Remove Indents", because empty lines are always removed during compilation, as a part of constructing the abstract syntax tree (AST)

  • CHANGED "Additional Branch Optimization Steps" action was renamed to just "Additional Branch Optimization", because it really only adds one additional compilation step, not more of them

  • CHANGED "About SublimeKSP" command was changed to open the README file from the official SublimeKSP repository

  • FIXED We were not tracking the Sublime Text plugin loaded/unloaded state, so automatic syntax detection did not work properly

  • FIXED Compiler did not optimize select-case statements if no branches matched the value expression

  • FIXED Empty if-else blocks were removed previously, which is incorrect, since this is valid boolean logic

  • FIXED When using structs or constant blocks, if any of their members started with "end", structs or constant blocks would not be closed properly

  • FIXED When compiling from command line, we did not resolve the absolute path for the source filename when getting the basepath

Thanks to Nabeel from Impact Soundworks (@eitherys) for several of the gnarlier compiler fixes and improvements!

That's all - have fun!

1.21.1

25 Oct 20:16

Choose a tag to compare

This update is a hotfix with only one addition: we forgot to add $ENGINE_PAR_BASSINVADER_MONO to the builtins list!

That's all - have fun!

1.20.0

23 Sep 20:25
c548c79

Choose a tag to compare

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() and signbit() commands - these can return either integer or real depending on context, so they should work like abs() already did

  • Fixed the behavior of optimize_code and additional_branch_optimization pragmas to match CLI behavior (they should have automatically enabled extra_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

24 Apr 09:34
bbb0f93

Choose a tag to compare

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

06 Feb 19:31
a3e6950

Choose a tag to compare

This hotfix update resolves another issue pertaining to .sublime-syntax and .sublime-color-scheme clashing with old .tmTheme files.

Everyone, make sure to update, and have fun!