Looking for help polishing a Reaper-related language grammar package


Hi there team!

I’ve just taken the reins of a project based around the languages associated with the Reaper digital audio workstation: Jesusonic (also known as JSFX or simply JS), ReaScript/EEL and WALTER. The original project was created for Sublime Text and now I’ve converted it for use in Atom. I’m really enjoying the modular, hackable nature of Atom and hope to be able to contribute a language grammar to the community.

The conversion has gone very well so far, but if possible, I’d like to polish it just a little more before unleashing it on an unsuspecting public. I’ve had some trouble finding specific documentation regarding language grammars and have a couple of questions:

  1. Jesusonic files typically have no file extension, except for *.jsfx-inc which is only used for hidden helper scripts (and these are working just fine), so I was hoping to add the ability to detect the file type automatically from its contents. In Jesusonic, you can tell what it is because the first line begins with desc: followed by a script name, so that would be all the information you’d need. I’ve read that Atom does use this kind of logic on occasion to differentiate between different languages. Is this something that can be done within a grammar package, and if so, how would one go about it?

  2. As a bonus question, I see that there is a context menu option to “Go to Declaration”. Is there a way to hook this up via the package? For example, a Jesusonic function declaration is simply the keyword function followed by its name. e.g. function doSomethingAstonishingAtShortNotice().

Any help would be greatly appreciated. :relaxed:

All the best,