From: "rubyFeedback (robert heiler) via ruby-core" <ruby-core@...> Date: 2023-12-27T18:53:42+00:00 Subject: [ruby-core:115938] [Ruby master Feature#20100] [Feature] Better / easier support for (optional) colours, on the commandline, in case a parsing error happened? Issue #20100 has been reported by rubyFeedback (robert heiler). ---------------------------------------- Feature #20100: [Feature] Better / easier support for (optional) colours, on the commandline, in case a parsing error happened? https://bugs.ruby-lang.org/issues/20100 * Author: rubyFeedback (robert heiler) * Status: Open * Priority: Normal ---------------------------------------- This suggestion is primarily in regard to (optional) colour support, on the commandline, in case a parsing error happened. I'll explain what I mean with this in a moment. Let me first show a partial screenshot (image), to indicate this problem. https://i.imgur.com/FylLvsY.png Ruby evaluates the content and indicates the error here, while also helpfully showing the line numbers WHERE the error happened (on the left hand side). This is nice. But, I would actually prefer if some colours could be shown here, at the user's discretion. For instance, I would like to have the line numbers show in red or a red-colour; or any colour for that matter. That would give me a visual cue as to the primary problem (sometimes more than one error is shown, or occurs, in a given .rb file, or distributed via several .rb files). The keyword or type-error, such as SyntaxError, should ideally also use another colour. I may also want to see the specific error in yet another colour, e. g. the part ", "unexpected 'end". The error here was that I copy/pasted some code (I am porting old code and checking it as I do right now) and left behind a trailing ',' there. Hopefully I could convince the dear reader that colours may be important. Perhaps colour support is already possible, and I (and perhaps others) just don't know about it. So the question, then, would be: how to enable simple colours to be shown? Well, a couple of ways would be possible. A simple one may be to put an environment variable, and document it clearly, such as RUBY_ENABLE_COLOURS or RUBY_COLOURS, and a value of 1 to indicate that we want to use colours. Or any other name, these are just suggestions; can be longer names, to indicate on-error situations such as RUBY_SHOW_COLOURED_ERRORS or RUBY_COLOURED_ERRORS (or COLORED, I don't mind the UK or US spelling, even though I got used to the UK spelling due to UK being close to central Europe). There could also be an internal API we could call; not sure which one, perhaps via RbConfig, e. g. RbConfig.enable_colours or RbConfig::COLOURS_ON_WARNING = true or something like that. Or another way where this may reside, although an ENV variable may be simpler. A few other options may also be possible - either way the primary objective would be to make it super-easy and super-simple to have colours support, perhaps even for all of ruby, without needing to micro-manage ENV variables. Ideally https://docs.ruby-lang.org/en/ should also get a dedicate page about colours in general. On Windows colours may not always work well (I have had different success there) but on linux, bash, KDE konsole and so forth, colours work really well for me. At any rate this was the suggestion - thank you for reading this. PS: I searched for "colo" on the docs.ruby-lang.org webpage; results often involved e. g. IRB like https://docs.ruby-lang.org/en/3.3/IRB/Color.html, which is useful if someone wants to modify IRB's behaviour, but not so useful when it comes to general things concerning MRI. There is really a distinct lack of top-down overview-articles in regards to ruby on the official homepage. How are new users supposed to find things like that? It would be nice if a long-term strategy for ruby would also be to provide higher "overarching" documentation for ruby, via a central place (MRI). At any rate, this is a separate issue - my feature request here is concerning about enabling colours support on the commandline, in case of an error. The ruby parser probably already has this information, since it can show where an error happens, so all that may be necessary would be to tie this towards colour-output; and then also a way for people to tap into that (which is why I think an ENV variable, even though not super-sophisticated, may be the simplest way to go, but that should also be clearly documented in a very-easy-to-find, and accessible, manner). -- https://bugs.ruby-lang.org/ ______________________________________________ ruby-core mailing list -- ruby-core@ml.ruby-lang.org To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org ruby-core info -- https://ml.ruby-lang.org/mailman3/postorius/lists/ruby-core.ml.ruby-lang.org/