Notepad++ may be a good alternative to making ZScripts, however, it doesn't have a parser, or any built-in support for ZScript. Along with some complaints I've heard from scripts, this inspired me to create ZS Express, a full ZScript IDE. Even though it wont have a full-on compiler for ZScript (I really don't see any use for one being outside of ZC, unless you want to see the generated machine code), it will have a parser that alerts of any errors.
Some other features include:
However, I need someone who knows how to make parsers. Preferably, in C#/Visual Basic, however it could also be made in C++ (It just needs to be DLL files that the main program can call.) If no one is up for that, I could also extract an existing parser and modify it to work with ZScript.
- A side panel showing all of the scripts that are currently open.
- Full ZScript syntax highlighting
- Code folding
- Brace matching
- Auto complete (incomplete)
- Add-ins (incomplete)
- Links to various scripting resources.
I am pretty motivated to finish this, and don't expect to stop working on this anytime soon.
So far, the core program (text editor and basic features) is complete, and if anyone is interested I can send it out by request.
I will post the link once it is closer to completion.
Discord Server: https:/discord.gg/ssPBEK4
Kivtoe, if you send me the code, and some working binaries, I will take a look. I do not know how you went from knowing nothing about scripting or programming to this
in a mere towo years, but if you managed to accomplish that level of comprehension, I'm proud of you.
I would not feel comfortable working with this in VBasic, for a number of reasons. Cross-platform support is one of these. I have some similar, but far smaller, reservations on C£, as I am not sure how much support it has these days on all three platforms.
Cpp would absolutely be the best, as if we keep it under a roof of cpp08 or cpp03, then it will be the same general language and syntax as ZC itself; which makes integration easier.
Insofar as using the ZC compiler, you will need bison-flex installed and configured to compile that, and to build the rules. TIn essence, this is what you will need in the core programme:
A project format, that tracks the scripts, and an include path (this should be an IDE option on a per-project basis, with a base include path. If no override is set, then the main include path is used), to use to link all of the files together. From there, when a user tries to compile, you copy all of the contents of these files, based on a defined build order handled by the project into a buffer string.
YOu would use most of the parser module from ZC, but you would supply your own buffer, and you would skip all elements related to slot assignment. If the compiler halts, you would need the parser to report the type of error and the line number, and link this into the IDE to jump tot he proper part of a file. Tracking that might be a pain; but even skipping this for now, you can halt and display an error.
If there are no errors, you dump the parser output to a file. THus, most of the include directives in the parser module are unimportant, as you are not trying to push the code to ZC (yet).
If this thing turns out to work, then making a path in 2.60+ to allow using an IDE to push to the parser should be possible.
Please note that I am not volunteering to do all this work for you, but I may be able to help in some places, and Grayswandir may also be able to help--he is the parser side of the dev staff--to ultimately work on replacing the normal ZC compiling buffer with something external.
I would want to see the source, and working examples of where you are now, and again, I would prefer that this shares the same language as ZC itself. Needing a secondary language, if we choose to include this, seems like a bad plan.
I joined your Discord server.