From: marcandre-ruby-core@... Date: 2021-02-28T23:20:48+00:00 Subject: [ruby-core:102671] [Ruby master Misc#17662] The heredoc pattern used in tests does not syntax highlight correctly in many editors Issue #17662 has been updated by marcandre (Marc-Andre Lafortune). It's a really complex formulation: a double HEREDOC inside string interpolatiosn, with a delimiter of the HEREDOC using double quotes but clearly that's not the end of the string because it's inside a `#{}`... I can barely makes sense of it myself. ---------------------------------------- Misc #17662: The heredoc pattern used in tests does not syntax highlight correctly in many editors https://bugs.ruby-lang.org/issues/17662#change-90665 * Author: Eregon (Benoit Daloze) * Status: Open * Priority: Normal ---------------------------------------- This heredoc pattern ```ruby assert_ruby_status([], "#{<<-"begin;"}\n#{<<-'end;'}", bug) begin; exit("1" == Thread.start(1, &:to_s).value) end; ``` completely breaks syntax highlighting in at least: * GitHub: [there](https://github.com/ruby/ruby/blob/36dde35e029c7a6607e6c674062ce6fc7a51c0bd/test/ruby/test_string.rb#L697) [are](https://github.com/ruby/ruby/blob/36dde35e029c7a6607e6c674062ce6fc7a51c0bd/test/ruby/test_process.rb#L1545) [many](https://github.com/ruby/ruby/blob/565aeb81e0886c835888a425e5d05ed99fb03238/test/ruby/test_thread.rb#L201) [examples](https://github.com/ruby/ruby/blob/36dde35e029c7a6607e6c674062ce6fc7a51c0bd/test/ruby/test_require.rb#L21) * Atom * RubyMine (and IntelliJ) * Likely many more editors based on TextMate grammars Could another pattern be used in tests inside the ruby/ruby repository (at least for `test/ruby`)? Due to this issue, it is very annoying and inconvenient to look at/read/investigate many tests. I think this pattern is also very complicated to understand (and using `;` is quite weird for this). I suggest to replace it with this obvious and simple pattern many people use: ```ruby assert_ruby_status([], <<~'RUBY', bug) exit("1" == Thread.start(1, &:to_s).value) RUBY ``` This syntax highlights correctly in most (all?) editors, and as an added bonus the code inside the heredoc is also highlighted in some editors (due to the label being `RUBY`). -- https://bugs.ruby-lang.org/ Unsubscribe: