| Summary: | Ruby singleton class | ||
|---|---|---|---|
| Product: | [Frameworks and Libraries] frameworks-syntax-highlighting | Reporter: | MASAKI, Yuhsuke <yek> |
| Component: | syntax | Assignee: | KWrite Developers <kwrite-bugs-null> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | CC: | christoph |
| Priority: | NOR | ||
| Version First Reported In: | unspecified | ||
| Target Milestone: | --- | ||
| Platform: | Arch Linux | ||
| OS: | Linux | ||
| Latest Commit: | https://commits.kde.org/syntax-highlighting/4c577562628e2c0e28d241564a3335ede9eb8b32 | Version Fixed/Implemented In: | 5.55.0 |
| Sentry Crash Report: | |||
|
Description
MASAKI, Yuhsuke
2016-01-20 18:57:25 UTC
Git commit 4c577562628e2c0e28d241564a3335ede9eb8b32 by Nibaldo González. Committed on 16/01/2019 at 09:07. Pushed by ngonzalez into branch 'master'. Ruby: fix RegExp after ": " and fix/improve detection of HEREDOC Summary: ## Allow regular expressions after ": " Related: 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. {F6539652} ## Don't highlight HEREDOC in singleton class definition (operator <<) Now, after the keyword "class", Heredoc's will not be highlighted [1]. For example: {F6539653} 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:** * [1] Ruby/Rails Programming. Singleton Classes in Ruby (aka eigenclasses): https://codequizzes.wordpress.com/2014/04/11/singleton-classes-in-ruby-aka-eigenclasses/ * [2] Infinum. Multiline strings in Ruby 2.3 - the squiggly heredoc: https://infinum.co/the-capsized-eight/multiline-strings-ruby-2-3-0-the-squiggly-heredoc * [3] Ruby-doc.org. Here Documents: https://ruby-doc.org/core-2.5.1/doc/syntax/literals_rdoc.html#label-Here+Documents 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 M +22 -0 autotests/folding/highlight.rb.fold M +22 -0 autotests/html/highlight.rb.html M +22 -0 autotests/input/highlight.rb M +22 -0 autotests/reference/highlight.rb.ref M +35 -17 data/syntax/ruby.xml https://commits.kde.org/syntax-highlighting/4c577562628e2c0e28d241564a3335ede9eb8b32 |