- Added: support for "#region" blocks, due to GZDoom handling those
- Added: support for "// region" and "// #region" comments blocks
- Fixed: How the strings handled escaping sequences
- Fixed: DECORATE aliased to ACS in the language selection menu, for some reason.
- Fixed: char strings handled like normal strings
- Fixed: "<" and ">" signs being threated as brackets even when used as operators
- Fixed: broken decimal point identification
- Fixed:
:character making everything after it a class (even if they weren't) - Added:
?to the operators' list
- Fixed:
NULLwas seen as a constant instead of a keyword (likenulldoes) - My thanks to @DenisBelmondo for:
- Deleted any trace of JavaScript. Again.
- Added syntax highlighting support for most Special Lumps
- Extension weights almost 13 MB less.
- Restarted the project. Again.
- Now the extension runs on the web version of vscode
- Rewrote the whole thing for not murdering "VSCode & Co." with huge files (LOC > 1000) and to look actually decent
- Sneak peek for auto-complete (working this time, I swear: you can even try it if you know how to compile this mess)
- Some other fixes (and bugs) I forgot during the rewrite.
- Removed all forms of autocompletions until I manage to make the system good enough
- Added support for more bracket types (useful for future updates)
- Various fixes to syntax highlighting (less stuff is now a class, like it should be)
- Many more forgotten ""fixes"" (sorry)
- Added "donations" support. I need more pizza.
- Added 1471 names of built-in classes and 76 of built-in structs to the autocompletion
- Added small documentation to 1% of these names (I'm NOT going to continue that)
- Added
A_*functions highlighting (previously broken, for some reason)
- Removed one single
continue, that's it.
- Extreme optimization (hope it does not break more stuff)
- Fixed a work breaking bug
- Removed junk around the code
- Fixed some inaccuracies
- Fixed a bug that wouldn't update the context while writing code
- Added support for DECORATE
- Fixed some stuff for ACS
- Added initial autocomplete capability. More to come.
- Added comments support for file parsing (I'm going to need it for context support)
- Added types for contextes (is it a class? An enum? A struct? ...)
- Microfixes around the place
- A little peek at what to do next (maybe)
- Small fixes about folding in both ZScript and ACS
- Really broken "open and closed curly brackets" checking for your class/enum/structs making pleasure.
- Soon™ to come.
- Fixed inconsistencies with ACS
- Added script types support
script "Whatever" ENTER //<-- this one
{
// BLAH BLAH
}
- ACS support seems done
- String escaping is now supported
- Hexadecimal numbers are now supported (octal numbers were already supported, but they're still considered "numbers")
- Small fixes
- Added experimental ACS support
- Fixed "folding" error caused by me deleting the zscript language configuration.
- Created entry point for typescript. (So you can extend whatever this extension is.)
- Minor fixes
- Removed comments (less pace wasted)
trueandfalseare now language constants (different colors)
- Enhanced code folding support
- Enhanced brackets detection (now with angle brackets!)
- Added support for the
abstractkeyword - Fixed
classword broken detection
- Noticed this file exists
- Fixed file type recognition, now is:
.zs,.zsc,.zc(this one was used by Nash Muhandes, so I added it) - Added support for "anonymous functions" (as seen in example 1), this means:
- Now you can use anonymous functions!
- Fixed "states" block ending, as they can have "anonymous functions inside"
- Upgraded performance thanks to some regex magic!
- Updated class highlighting (example 2)
- Fixed the
defaultandstatesblocks detection, again. (They won't be found in comments any more) - Fixed
defaultblocks getting calleddecorateblocks in the token view - Removed a lot of hardcoded stuff
- Changed the highlighting type from
classtotagforDefaultblocks' attributes - Added enum support (example 3, but was it really required?)
Examples:
- Example 1
States
{
Spawn:
TNT1 A 0 { chanceMod = 0; return ResolveState("Spawn2"); }
TNT1 A 0 { chanceMod = 100; return ResolveState("Spawn2"); }
TNT1 A 0 { chanceMod = 220; return ResolveState("Spawn2"); }
Spawn2:
TNT1 A 0
{
A_SpawnItemEx("NashGoreBloodImpact", flags: BLOOD_FLAGS);
for (int i = 0; i < 10; i++)
{
A_SpawnItemEx("NashGoreBloodParticle1",
frandom(-8, 8), frandom(-8, 8), frandom(-8, 8),
frandom(-2.0, 2.0), frandom(-2.0, 2.0), frandom(0.0, 4.0),
frandom(0, 360), BLOOD_FLAGS | SXF_TRANSFERPOINTERS, chanceMod);
}
}
TNT1 AAAAAAAAAA 1
{
A_SpawnItemEx("NashGoreBloodParticle2",
frandom(-8, 8), frandom(-8, 8), frandom(-8, 8),
frandom(-2.5, 2.5), frandom(-2.5, 2.5), frandom(1.0, 2.0),
frandom(0, 360), BLOOD_FLAGS, chanceMod);
}
TNT1 AAAAAAAAAA 1
{
A_SpawnItemEx("NashGoreBloodFloorSplashSpawner",
0, 0, 0,
frandom(-4.0, 4.0), frandom(-4.0, 4.0), frandom(1.0, 4.0),
frandom(0, 360), BLOOD_FLAGS, chanceMod);
}
Stop;
}- Example 2
class Class1 : Class2 {
// ↑
// This is now recognized as a class!
// CODE
}- Example 3
enum Example {
VALUE_1,
value_2,
value_n
}- Fixed some issues with the
Array<>detection
- Fixed some issues with the
DefaultandStatesblocks detection
- Initial release