On 22 Aug 2016, at 11:33, Fabian Zeindl wrote:

Right now I'm outputting a snippet, since I need proper indentation and as far as I know that's only possible with a snippet? I'll set the cursor with $0 then.

Remember also to escape the content before/after the placeholder (caret), incase there is any snippet syntax. The escape.rb under TM_BUNDLE_SUPPORT has an e_sn function for this.

What do I have to set in the macro to get the indentation?

I assume you want output = insertAsSnippet;.

Also: Is it possible to programmatically change the output type in ruby commands, like "exit_discard" and so on?

Yes, you can use these. Though since that only affects the command, if you exit_discard then you leave the user with a selection, so it might be better to just output an “unchanged” snippet incase you want to abort.

TextMate detects when a command’s output matches what’s already in the document (it does prefix/suffix match) so there should be no visible flash when replacing content with what’s already there.