ruby-core@ruby-lang.org archive (unofficial mirror)
 help / color / mirror / Atom feed
* [ruby-core:109949] [Ruby master Bug#19010] Follow up of #18996: Support changing irb's autocompletion background
@ 2022-09-18 14:18 st0012 (Stan Lo)
  2022-09-18 17:29 ` [ruby-core:109951] " kaiquekandykoga
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: st0012 (Stan Lo) @ 2022-09-18 14:18 UTC (permalink / raw)
  To: ruby-core

Issue #19010 has been reported by st0012 (Stan Lo).

----------------------------------------
Bug #19010: Follow up of #18996: Support changing irb's autocompletion background
https://bugs.ruby-lang.org/issues/19010

* Author: st0012 (Stan Lo)
* Status: Open
* Priority: Normal
* Backport: 2.7: UNKNOWN, 3.0: UNKNOWN, 3.1: UNKNOWN
----------------------------------------
If the APIs proposed in #18996 (or similar ones) are accepted, we'll be able to configure `irb`'s autocompletion dialog colors.

And for the `irb` side, I want to propose 2 levels of configurations:

### 1. Theme selection

Consider most users don't care about individual colors if the text are readable and roughly match with the terminal background, I want to provide 2 basic themes (dark/light) for users to choose:


**Theme`:dark`**

<img width="40%" alt="Light terminal - dark theme" src="https://user-images.githubusercontent.com/5079556/180603528-8a8b60d1-6a1e-4be8-9c18-5e73cae7a24c.png">

<img width="40%" alt="Dark terminal - dark theme" src="https://user-images.githubusercontent.com/5079556/180603526-3618f181-fff3-45c5-b925-061110366adf.png">

**Theme `:light`**


<img width="40%" alt="Light terminal - light theme" src="https://user-images.githubusercontent.com/5079556/180603529-0d8a24af-3d93-4573-afbd-0d354b3145cc.png">

<img width="40%" alt="Dark terminal - light theme" src="https://user-images.githubusercontent.com/5079556/180603527-4d0fcbf7-fbd5-4099-ac78-9236f8b8c782.png">

**Default**

In terms of default, I think `dark` is better than `light`. Because when in a light terminal, seeing a dark dropdown isn't so troubling. But when in a dark terminal, seeing a large light dropdown can bring discomfort to eyes.

Side note: It's possible to detect the terminal's background color from an xterm-compatible terminal emulator ([example gist](https://gist.github.com/blueyed/c8470c2aad3381c33ea3)), so `irb` may automatically assign themes based on users' terminal theme. But we still need to pick a default as the fallback.

**Interface for theme selection**

If we think it's possible to introduce more themes than just dark/light, we can expose the API as 

```rb
IRB.conf[:DIALOG_THEME] = theme_name
```

If we don't consider introducing other themes, we can make it a toggle for the non-default theme, like 

```rb
IRB.conf[:USE_LIGHT_THEME] = true
```


### 2. Per-color configurations

For users who want to configure individual colors, we should also provide options on the `irb` side, like 

```rb
IRB.conf[:dialog_default_bg_color] = :black
```

This prevents directly exposing `reline`'s API to normal `irb` users.


**I implemented the ideas in this [proof of concept PR](https://github.com/ruby/irb/pull/380).**



-- 
https://bugs.ruby-lang.org/

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

end of thread, other threads:[~2022-09-22 23:46 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-09-18 14:18 [ruby-core:109949] [Ruby master Bug#19010] Follow up of #18996: Support changing irb's autocompletion background st0012 (Stan Lo)
2022-09-18 17:29 ` [ruby-core:109951] " kaiquekandykoga
2022-09-18 21:30 ` [ruby-core:109952] " st0012 (Stan Lo)
2022-09-18 22:20 ` [ruby-core:109953] [Ruby master Feature#19010] " kaiquekandykoga
2022-09-22 23:46 ` [ruby-core:110018] " mame (Yusuke Endoh)

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).