Syntax hilighting for vim
from [this email thread]
You can also force highlighting with:
There are ways to have Vim check a few lines in the file to determine type, but that's more involved, and an exercise for a later date. You can duplicate the au! line in filetype.vim to add your own extension(s), or just modify the one that's already there (*.ngc).
The syntax file I made is understandably remedial, given the single night of R&D, but it already properly highlights a rather extensive set of the files I tested. I endeavored to break up each highlighting type in sensible, pre-defined ways, such that the power user with lots of the standard sub-types defined for their Vim sessions could benefit from something passably familiar. In fact, there are no custom highlight types - all are linked to types that already exist in Vim. I happen to have a lot of my subtypes as the same core type colors, so there's actually more separation of highlight types than you're seeing, but already I think it's a bit easier to visually parse.
Here's what I got to highlight before giving up:
There could be all manner of fancy extras, like catching lots of other errors, and flagging them as such, but it gets rather complicated rather quickly. I wanted to post this ASAP in case it helps any Vim users, and in case anyone wanted to enhance it with things like more robust error-checking, tighter adherence to the spec, or new ways to break up the concepts (e.g. highlighting an entire X[#<something>] block as a single type (not my preference, but perhaps someone would prefer that), or properly checking item locations in lines, or getting negative constants working, without breaking all else. There are a lot of parts of the g-code spec that I've never touched (e.g. I've never used an M-code), so I've probably missed whole swaths of highlightables.
Anyway, feedback/corrections much appreciated, and if anyone gets it working, or makes some nice modifications, I'd love to hear about it. I don't think I have wiki powers, but if someone would like to add it, that would also be nice. Thanks! you're welcome. btw, how to edit wiki pages.