ruby-core@ruby-lang.org archive (unofficial mirror)
 help / color / mirror / Atom feed
* [ruby-core:115938] [Ruby master Feature#20100] [Feature] Better / easier support for (optional) colours, on the commandline, in case a parsing error happened?
@ 2023-12-27 18:53 rubyFeedback (robert heiler) via ruby-core
  2023-12-27 19:30 ` [ruby-core:115939] " Edwing123 (Edwin Garcia) via ruby-core
  0 siblings, 1 reply; 2+ messages in thread
From: rubyFeedback (robert heiler) via ruby-core @ 2023-12-27 18:53 UTC (permalink / raw
  To: ruby-core; +Cc: rubyFeedback (robert heiler)

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/

^ permalink raw reply	[flat|nested] 2+ messages in thread

* [ruby-core:115939] [Ruby master Feature#20100] [Feature] Better / easier support for (optional) colours, on the commandline, in case a parsing error happened?
  2023-12-27 18:53 [ruby-core:115938] [Ruby master Feature#20100] [Feature] Better / easier support for (optional) colours, on the commandline, in case a parsing error happened? rubyFeedback (robert heiler) via ruby-core
@ 2023-12-27 19:30 ` Edwing123 (Edwin Garcia) via ruby-core
  0 siblings, 0 replies; 2+ messages in thread
From: Edwing123 (Edwin Garcia) via ruby-core @ 2023-12-27 19:30 UTC (permalink / raw
  To: ruby-core; +Cc: Edwing123 (Edwin Garcia)

Issue #20100 has been updated by Edwing123 (Edwin Garcia).


This is a reasonable feature request. Syntax highlighting helps in easily scanning and parsing code, so having that in the terminal output will help to  identify errors and locations faster.

Making this opt-in rather than opt-out seems the more sensible option to current users.

Regarding the approach to activate this feature, the env variable seems reasonable. Though I wonder if it should also be a flag, which can be set in `RUBYOPT`.

As for the name of the envvar, I don't have a strong opinion, though it should definitely start with `RUBY_`.

----------------------------------------
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#change-105892

* 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/

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2023-12-27 19:30 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-12-27 18:53 [ruby-core:115938] [Ruby master Feature#20100] [Feature] Better / easier support for (optional) colours, on the commandline, in case a parsing error happened? rubyFeedback (robert heiler) via ruby-core
2023-12-27 19:30 ` [ruby-core:115939] " Edwing123 (Edwin Garcia) via ruby-core

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).