vscode-gcode-syntax
vscode-gcode-syntax copied to clipboard
Add support for RepRapFirmware meta G-code keywords
First of all, thank you very much for this extension - it looks great and if possible, I would really like to use the syntax highlighting from this project with Monaco in a web application to provide a nicer G-code editor.
What I've been missing is briefly mentioned in #44: Syntax highlighting for RepRapFirmware G-code keywords and expressions.
With RepRapFirmware it is possible to use variables (var
, global
, set
), conditional code flow (if
, elif
, else
, while
, abort
, break
), to output generic messages (echo
), and to use dynamic expression parameters (e.g. G1 X{100 * 0.3}
, everything in curly braces is evaluated on execution). The set of keywords is relatively small and well-documented here: https://docs.duet3d.com/en/User_manual/Reference/Gcode_meta_commands
Is there any way this could be added to a future version or can you point me to the right bits that need to be changed?
Hello and welcome! Thanks for creating your first issue! Someone from our community will get back to you soon!
I think if I can find a way to change the syntax highlighting based on the machine type chosen in the configuration settings, then I can probably make this work! I'll put it on the schedule for v0.8, but I might have to push it to v0.9.
Because our old editor component was basically falling apart, I've decided to built my own syntax highlighting from scratch. You can find it here in case you want to adopt parts of it in vscode-gcode-syntax: https://github.com/Duet3D/DuetWebControl/blob/v3.5-dev/src/utils/monaco-gcode.ts
This issue has been automatically marked as stale because it has not had recent activity.
The highlighting file works quite nicely, I may make some more minor changes before our next 3.5 release but it should be error-free.
@chrishamm thanks for your work on that. I've been offline for quite some time now with other life issues, so I'm going to start playing catchup on this extension. I'll see if there is anything I can incorporate into this.
This issue has been automatically marked as stale because it has not had recent activity.
There have been two minor changes in my source file since your last comment, just FYI.
This issue has been automatically marked as stale because it has not had recent activity.