On 7 Jan 2014, at 8:28, Matt Neuburg wrote:
My bundle command, written in Ruby, looks like this:
s = #... command-line command that produces many lines of output STDOUT.sync = true puts '<pre>' puts `#{s}` puts '</pre>'
It is set to output as HTML. In TextMate 1, the result was correctly formatted: line after line of text, wrapped in <pre> tags, wrapped in HTML. In TextMate 2, the opening and closing <pre> tags both appear before the output from executing s, and thus the output is not correctly formatted.
Clearly something has changed. What's the new correct way of doing this? Thanks - m.
This could happen if your command (āsā) outputs to stderr (instead of stdout).
You can either redirect the output to stdout or possibly handle both stdout and stderr from the command via something like popen3 or TextMate::Executor. With the latter, I think you can simply do:
#!/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby require "#{ENV['TM_SUPPORT_PATH']}/lib/tm/executor"
s = #... command-line command that produces many lines of output TextMate::Executor.run(s)
Then the output should be wrapped in the HTML output theme, stderr will appear red, etc.