Any way to convert from .tmLanguage XML to Nova Syntax Definition?

I’ve been hacking together a syntax definition for a scripting language missing from Nova.app at present, but it’s slow going. Earlier this evening I found an existing .tmLanguage file that defines the syntax highlighting definitions for TextMate for that scripting language and is remarkably complete. I’d like to implement that in Nova, but being over 1600 lines long, it’ll never happen if I have to do it manually.

So is there some tool, built-in support, converter or something I can use to convert that existing TextMate language definition to one that works for Nova? It doesn’t have to be perfect or feature complete at all, and an ugly hack is fine - I can refine it from there. I’m just looking for some way to not have to re-invent the wheel here.

Thanks!

TextMate’s and Nova’s syntax definitions, albeit both XML, differ significantly enough that nobody has put together a translation system I am aware of. Out of interest, what scripting language are you targeting (if it’s fish, I have a complete, built from scratch one ready to go, it’s just waiting for a completion system bug to be fixed in Nova)?

Hi Jeff,

I have been working on something to convert TextMate and VS Code syntax definitions. Hasn’t been thoroughly tested but it has been useful for me anyway.

You can download a release build here: https://github.com/gredman/novamate/releases/tag/0.1.0

Let me know how you get on and what issues you run into!

2 Likes

I tried this on the vscode extension for Astro (astro.build SSG) astro-build.astro-vscode-0.8.8 and it does not like it. I get a lot of key not found and no value associated with keys error.