Ruby: fix RegExp after ": " and fix/improve detection of HEREDOC

Authored by nibags on Jan 16 2019, 8:59 AM.

Description

Ruby: fix RegExp after ": " and fix/improve detection of HEREDOC

Summary:

Allow regular expressions after ": "

BUG: 361875

Previously, after text: , []: or $text=: regular expressions weren't highlighted (the check_div_1 context prevents highlighting regex, similar to NoRegExp context in "javascript.xml"). Regular expressions are allowed there, so they will now be highlighted.

Don't highlight HEREDOC in singleton class definition (operator <<)

BUG: 358273

Now, after the keyword "class", Heredoc's will not be highlighted [1]. For example:

Before, <<Foo was highlighted as Heredoc.

I did some tests in Ruby 2.6.0, 2.5.1 and 2.3.8, and Heredoc isn't considered in the code: class <<Foo, class <<21, class <<"Foo" or class <<-Foo, so I can say that the fix is correct.

Improvements in HEREDOC:

  • Add squiggly HEREDOC (introduced in Ruby 2.3) [2][3]

For example: <<~HEREDOC

  • Backticks can surround identifiers [3]. Example: <<-HEREDOC
  • Improve highlighting of identifier quotes. Now you need to close quotes to highlight the HEREDOC.

For example, HEREDOC was previously highlighted as: <<"HEREDOC , <<HEREDOC"

I also added a modeline to force the use of tabs as an indentation, since the file uses tabs.

References:

FIXED-IN: 5.55.0

Reviewers: Framework: Syntax Highlighting, dhaumann, cullmann

Reviewed By: Framework: Syntax Highlighting, cullmann

Subscribers: kwrite-devel, kde-frameworks-devel

Tags: Kate, Frameworks

Differential Revision: https://phabricator.kde.org/D18174