Coding in VS Code and HISE
-
@dannytaurus Yes
-
Well, so far I have found that if I do not open the included .js file in a tab inside HISE, it seems I can work on changes inside VS Code and they will be retained when I compile in HISE. I don't know much about the caching system, so I can't guarantee this will continue to work, or work inside other environments. I am keeping a backup copy of the changes at every step at the moment just to keep an eye on it.
-
If that is a popular request I can add a "external code editor mode" that can be enabled in the HISE compiler settings and will create file watchers with automatic file reload & recompilation.
Let's talk pitfalls before I do that so we don't end up with something that trashes your code files:
- should we make external files read only in the HISE code editor if this mode is enabled? Since the "source of truth" will switch in this mode to the actual file content it would be easy to create conflicts if the files are modifiable from both ends, especially if a file is included in more than one script.
- how should we indicate that this mode is active?
- do we need a customizable interval for file checks or would a sensible default (eg. 3 seconds) be enough?
-
@Christoph-Hart said in Coding in VS Code and HISE:
should we make external files read only
Good idea
@Christoph-Hart said in Coding in VS Code and HISE:
how should we indicate that this mode is active?
Slightly grey out the code editor. Hide the edit cursor. Put "External" in the tab header perhaps.
@Christoph-Hart said in Coding in VS Code and HISE:
do we need a customizable interval for file checks or would a sensible default (eg. 3 seconds) be enough?
3 seconds seems fine.
Did you see Watchman that @oskarsh mentioned in the other thread?
-
@d-healey said in Coding in VS Code and HISE:
Did you see Watchman that @oskarsh mentioned in the other thread?
No need for an external tool for this, I'll either cook something up using the JUCE File stuff or use something like this:
https://github.com/FigBug/Gin/blob/master/modules/gin/utilities/gin_filesystemwatcher.h
-
erm, there's already exactly that logic already in place: it checks external files every 3 seconds and reloads that. The only thing that's missing would be triggering a recompilation when changes are detected, but that should be fairly easy to implement.
-
@Christoph-Hart So @Dan-Korneff was right :)
-
@Christoph-Hart said in Coding in VS Code and HISE:
If that is a popular request I can add a "external code editor mode" that can be enabled in the HISE compiler settings and will create file watchers with automatic file reload & recompilation.
Let's talk pitfalls before I do that so we don't end up with something that trashes your code files:
- should we make external files read only in the HISE code editor if this mode is enabled? Since the "source of truth" will switch in this mode to the actual file content it would be easy to create conflicts if the files are modifiable from both ends, especially if a file is included in more than one script.
- how should we indicate that this mode is active?
- do we need a customizable interval for file checks or would a sensible default (eg. 3 seconds) be enough?
No need for read only in the HISE code editor IMO. Hise should just poll the file(s) for changes, maybe each time the window is accessed?? I quite often make major changes in VS Code, and then come into HISE, wait a few seconds and then compile, spot an error, and then quickly fix it directly in HISE. VS Code picks up the changes instantly.
A customizable interval shouldn't really be needed, again IMO. It should just be as quick and transparent as possible. Like with Notepad++, VS Code, and other text editors.
-
Alright, I've pushed the following changes:
- there's now a setting in the Scripting tab called
RecompileOnFileChange
. If this is enabled, then HISE will recompile all scripts that include the externally changed file. - it checks with a timer interval of 3 seconds for changes.
- it also checks whenever a text editor gains the focus (so that you don't have to wait 3 seconds if you're as impatient as @Orvillain).
- no need for making the editor read only, it's now always up to date.
Let me know if that works as intended.
- there's now a setting in the Scripting tab called
-
@Christoph-Hart said in Coding in VS Code and HISE:
HISE will recompile all scripts that include the externally changed file.
Does this apply to all script processors or just the UI script? And what about script processors that are using the Connect to External script feature?
-
@Christoph-Hart Nice one, will check!!
-
@Christoph-Hart Sounds great! I'm traveling today so I won't get a chance to build and test until tomorrow, but I look forward to it :)