On 23 May 2019, at 11:15, Stefan Daschek <stefan@daschek.net> wrote:

The Ruby bundle currently supports reformatting a file with RuboCop (“Reformat Document”), and checking the document’s syntax using `ruby -wc.

So far there is no support for automatically checking (or maybe even reformatting) a file everytime it is saved.

For RuboCop, there are (at least) four stand-alone RuboCop bundles providing additional features:

 * https://github.com/fazibear/Rubocop.tmbundle
 * https://github.com/mrdougal/textmate2-rubocop
 * https://github.com/goyox86/rubocop-tmbundle
 * https://github.com/noniq/RuboCop.tmbundle (Disclaimer: This bundle was written by me).

Recently various alternatives to RuboCop emerged, especially:

 * https://github.com/testdouble/standard (uses RuboCop internally, “No configuration“)
 * https://github.com/samphippen/rubyfmt (autoformatting only, optimized for speed)

Both tools are still pre-1.0, but actively developed.

I’d like to add support for both standardrb and rubyfmt to TextMate. However, I’m not yet sure about the following questions:

 * Should the Ruby bundle be extended to support these? Or should one or more stand-alone bundles be created?
 * What would be the best way to tell TextMate which (if any) linting / formatting tool it should use for a given ruby file or project?

What’s the goal here? Are standard or rubyfmt better than RoboCop? Because it’s pretty straightforward to make an existing command executed on save.

Assuming we want to add support for these tools I would say they should live in the Ruby bundle. But at the same time if you want to support both it gets slightly more complicated.

Usually when a TextMate bundle executes a command it’s expected to be available in the PATH or it can also check for a specific environment variable, like TM_RUBY.

Since these new tools seem to not be ready for day to day use, I recommend they be turned off by default. This can be configured via another environment variable that can be placed inside .tm_properties to enable.

-- 
/Jacob Carlborg