Am 07.08.16 um 10:15 schrieb Jacob Carlborg:
On 06 Aug 2016, at 23:21, Stefan Daschek stefan@daschek.net wrote:
Interestingly this does not happen with “Output: New Window”: In this case I can continue editing the document even while the command is still running.
Is this a bug? Or is there are workaround?
It’s intended behavior. The reason is that the command should not be able to run and possibly edit the document simultaneously while the user is editing the document.
The solution is to run the command in the background/daemonized. See this post for an example [1].
Ah, makes sense! Thanks for the tip, seems to work great: https://github.com/noniq/RuboCop.tmbundle/commit/a9b789400ccc57892b7bc846a71...
My I ask why you’re creating a new RuboCop bundle when this one [2] exists?
I tried this bundle but it didn’t work for me. And after looking at its source I decided that it was way too much effort to bring it up to date: For example, it tries to run RuboCop directly (that is, via `Rubocop::CLI.new.run` [1]) from the command’s Ruby process – in my experience this does not work well with today’s usage of Bundler, Ruby version managers etc.
I think nowadays TextMate should run Ruby executables like RuboCop or RSpec [2] like this:
* If a binstub (e.g. `bin/rubocop`) is present, use it. * Otherwise, if a Gemfile is present and contains an appropriate entry, run the executable via `bundle exec …` * Otherwise fall back to simply running the executable, presuming it is somehow globally installed. (I just realized that I should add support for `TM_RUBOCOP` at this stage.)
Are there other / better ways of doing this?
[1]: And this no longer works with recent RuboCop versions at all since the module has been renamed to `RuboCop` about 2 years ago: https://github.com/bbatsov/rubocop/commit/ff167d8f202baf7a68955db0aaf0dc29af...
[2]: I changed the RSpec bundle to work like this already some time ago: https://github.com/rspec/rspec.tmbundle/commit/a81c3f9c7395d72616ddc82ce5963...
You might also want to take a look at this pull request that adds a RuboCop formatter command to the Ruby bundle [3].
Thanks for the pointer, will look into it! Adding RuboCop to the Ruby bundle could make sense. However, I have one small objection: Running something like RuboCop on every save is quite intrusive, thus it should be something you need to explicitly enable. So the question is: Is it easier for a user wanting to use RuboCop to customize the Ruby bundle, or to install the RuboCop bundle? Not sure about this. Maybe just a question of personal preference after all?
Stefan.