Streamline.js by Bruno Jouhier (@Sage) is a library/tool that lets you write
synchronous-looking JavaScript/CoffeeScript, and have it compile to Node-style
asynchronous JavasScript/CoffeeScript. (It's amazing and super elegant.)
https://github.com/Sage/streamlinejs
From the start, Streamline was designed to be exactly JavaScript/CoffeeScript,
so that it works with existing editors and tools. No new keywords or syntax --
it simply reserves `_` as a function parameter name.
Streamline files have thus kept `.js` and `.coffee` as extensions, so that no
changes need to be made to tools; Streamline has just used the convention of
ending file basenames with `_`, like `foo_.js` or `foo_.coffee`.
Unfortunately, to get the most optimal Node.js integration, with on-the-fly
compilation (like CoffeeScript), files now need to have their own extension.
So Bruno has decided to make `._js` and `._coffee` the extensions of choice.
The good news is that the language is still exactly JavaScript/CoffeeScript;
it's only the extension that's changed. It's simple to add these extensions
into our editors, but I'm wondering if we can add this to GitHub too. =)
This change is super simple and shouldn't affect any other language, so I hope
you guys are open to it. Thanks for your consideration!
This excludes some common js used in many .net project so that they
don't show up in language stats. Things exlude now include:
- Visual Studio intellisense js files
- Microsoft's Ajax and Validation js
- Anything in the NuGet packages directory
previously, any file with an unrecognized file extension was loaded to
check for a shebang. now, this only occurs if the file has a generic
name with no file extension (like ./script)
it is possible this will no longer match certain scripts with esoteric
extensions (if we find these we can add them to the shebang_extname?
method). however, most common script extensions (.sh, .rb, .pl, etc)
will continue to work since the file extension takes precedence over the
shebang line.