Skip to content

Conversation

justinmk
Copy link
Member

@justinmk justinmk commented Nov 6, 2018

Rebase of #2894

ref #6289

By accident, Nvim essentially defaults to background=light. This is weird because

:colorscheme default

looks very wrong on a dark background.

The "smart" logic that Vim uses is in fact extremely confusing for anyone who uses Vim on multiple platforms, so rather than mimic that, just pick a damn default.

  • Since Neovim is dark-powered, we assume most users have dark backgrounds.
  • Most of the GUIs tend to have a dark background by default.

@justinmk justinmk added the defaults Nvim defaults for options, colorscheme/theme, autocmds/events, etc. label Nov 6, 2018
a dark background. When set to "light", Nvim will try to use colors
that look good on a light background.

When 'background' is set Nvim will adjust the default color groups for
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

..set, Nvim..?

@bfredl
Copy link
Member

bfredl commented Nov 6, 2018

Most of the GUIs tend to have a dark background by default.

Should we force the default_color_set event to transmit builtin defaults (dependent on set bg) if hi Normal guifg/bg is not set? Then no new GUI would need to hardcode default colors.

[8] = {foreground = 15, background = 1},
[9] = {foreground = 4},
[10] = {foreground = 2},
[11] = {foreground = 81},

This comment was marked as resolved.

@justinmk justinmk force-pushed the default-bg branch 2 times, most recently from 0fb730b to 6222a60 Compare November 20, 2018 00:47
-- test/functional/helpers.lua defaults to background=light.
[1] = {reverse = true},
[3] = {bold = true},
[10] = {foreground = 2},
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

test/functional/helpers.lua defaults to background=light :(

By historical accident, Nvim defaults to background=light. So on a dark
background, `:colorscheme default` looks completely wrong.

The "smart" logic that Vim uses is confusing for anyone who uses Vim on
multiple platforms, so rather than mimic that, pick the (hopefully) most
common default.

- Since Neovim is dark-powered, we assume most users have dark backgrounds.
- Most of the GUIs tend to have a dark background by default.

ref neovim#6289
@justinmk justinmk merged commit deb18a0 into neovim:master Nov 20, 2018
@justinmk justinmk deleted the default-bg branch November 20, 2018 09:52
justinmk added a commit to justinmk/neovim that referenced this pull request Nov 21, 2018
Since deb18a0/neovim#9205 Nvim defaults to background=dark. But the
functional tests (helpers.nvim_set) specify background=light. Some tests
don't use helpers.nvim_set, which leads to a confusing inconsistency.

So remove background=light from helpers.nvim_set.
justinmk added a commit to justinmk/neovim that referenced this pull request Nov 21, 2018
Since deb18a0/neovim#9205 Nvim defaults to background=dark. But the
functional tests (helpers.nvim_set) specify background=light. Some tests
don't use helpers.nvim_set, which leads to a confusing inconsistency.

So remove background=light from helpers.nvim_set.
justinmk added a commit to justinmk/neovim that referenced this pull request Nov 22, 2018
Since deb18a0/neovim#9205 Nvim defaults to background=dark. But the
functional tests (helpers.nvim_set) specify background=light. Some tests
don't use helpers.nvim_set, which leads to a confusing inconsistency.

So remove background=light from helpers.nvim_set.
justinmk added a commit to justinmk/neovim that referenced this pull request Nov 25, 2018
Since deb18a0/neovim#9205 Nvim defaults to background=dark. But the
functional tests (helpers.nvim_set) specify background=light. Some tests
don't use helpers.nvim_set, which leads to a confusing inconsistency.

So remove background=light from helpers.nvim_set.
justinmk added a commit to justinmk/neovim that referenced this pull request Dec 6, 2018
Since deb18a0/neovim#9205 Nvim defaults to background=dark. But the
functional tests (helpers.nvim_set) specify background=light. Some tests
don't use helpers.nvim_set, which leads to a confusing inconsistency.

So remove background=light from helpers.nvim_set.
justinmk added a commit to justinmk/neovim that referenced this pull request Dec 7, 2018
Since deb18a0/neovim#9205 Nvim defaults to background=dark. But the
functional tests (helpers.nvim_set) specify background=light. Some tests
don't use helpers.nvim_set, which leads to a confusing inconsistency.

So remove background=light from helpers.nvim_set.
@justinmk justinmk mentioned this pull request Dec 7, 2018
justinmk added a commit to justinmk/neovim that referenced this pull request Dec 30, 2018
Besides the "visible" improvements, this release features numerous
internal improvements to the UI/screen code and test infrastructure.

Numerous patches were merged from Vim, which are not mentioned below.

FEATURES:

07ad5d7 clipboard: Support custom VimL functions neovim#9304
725da1f neovim#9401 win/TUI: Improve terminal/console support
7a8dadb neovim#9077 startup: Use $XDG_CONFIG_DIRS/nvim/sysinit.vim if it exists
feec926 neovim#9299 support <cmd> mapping in more places
0653ed6 neovim#9028 diff/highlight: Show underline for low-priority CursorLine
bddcbbb signs: Add "numhl" argument neovim#9113
05f9c7c clipboard: support Wayland (neovim#9230)
14ae394 neovim#9052 TUI: add support for undercurl and underline color
4fa3492 neovim#9023 man.vim: soft (dynamic) wrap neovim#9023

API:

8b39e4e neovim#6920 API: implement object namespaces
b1aaa0a API: Implement nvim_win_set_buf() neovim#9100
8de87c7 neovim#8180 API: virtual text annotations (nvim_buf_set_virtual_text)
2b9fc9a neovim#8660 API: add nvim_buf_is_loaded()
    API: buf_get_lines, buf_line_count handle unloaded buffers
88f77c2 API: nvim_buf_get_offset_for_line
94841e5 API/UI: neovim#8221 ext_newgrid, ext_hlstate
    (use line-based rather than char-based updates)

UI

b5cfac0 neovim#8806 TUI: use BCE again more often, (smoother resizes/scrolling)
77b5e9a neovim#9315 screen: add missing status redraw when redraw_later(CLEAR) was used
5f15788 TUI: clip invalid regions on resize (neovim#8779), fixes neovim#8774
c936ae0 neovim#9193 TUI: improvements for scrolling and clearing
f204274 neovim#9143 UI: disable clearing almost everywhere
f4b2b66 neovim#9079 TUI: always use safe cursor movement after resize
d36afaf neovim#9211 ui_options: also send when starting or from OptionSet
67f80d4 TUI: Avoid reset_cursor_color in old VTE neovim#9191
e55ebae neovim#9021 don't erase screen on `:hi Normal` during startup
c5790d9 neovim#8915 TUI: Hint wrapped lines to terminals.

FIXES:

231de72 RPC: turn errors from async calls into notifications
907ad92 TUI: Restore terminal title via "title stacking" (neovim#9407)
cb76a8a genappimage: Unset $ARGV0 at invocation neovim#9376
b48efd9 neovim#9347 TUI: FreeBSD: Improve support for BSD vt console
c16529a TUI: Konsole 18.07.70 supports DECSCUSR (neovim#9364)
aec096f os/lang: use the correct LC_NUMERIC also for OS X
5fee0be provider: improve error message (neovim#9344)
3c42d7a TUI: alacritty supports set_cursor_color neovim#9353
7bff9a5 TUI: Alacritty supports DECSCUSR (neovim#9048)
57acfce macOS: infer primary language if $LANG is empty neovim#9345
bc132ae runtime/syntax: Fix highlighting of augroup contents (neovim#9328)
715fdfe neovim#9297 VimL/confirm(): Show dialog even if :silent
799d9c3 clipboard: Prefer xclip (neovim#9302)
6dae777 provider/nodejs: fix npm,yarn detection
16bc1e9 neovim#9218 channel: avoid buffering output when only terminal and no callbacks are active
72fecad neovim#8804 Fix crash in lang_init() on macOS if lang_region = NULL
d581398 ruby: detect rbenv shims for other versions (neovim#8733)
e568ac7 neovim#9123 third-party/unibilium: Fix parsing of extended capability entries
c4c74c3 jobstart(): Fix hang on non-executable cwd neovim#9204
1cf50cb provider/nodejs: Simultaneously query npm and yarn neovim#9054
6c496db undo: Fix infinite loop if undo_read_byte returns EOF neovim#2880
f8f8357 neovim#9034 'swapfile: always show dialog'

CHANGES:

c236e80 neovim#9024 --embed: wait for UI unless --headless
180b50d neovim#9248 python: 'neovim' module was renamed to 'pynvim'
2000b6a neovim#8589 VimL: Remove legacy aliases "v:errmsg", "v:shell_error", "v:this_session"
deb18a0 defaults: background=dark neovim#2894 (neovim#9205)
c1187d4 defaults: win: 'shellpipe' for cmd.exe (neovim#8827)
justinmk added a commit to justinmk/neovim that referenced this pull request Dec 31, 2018
Besides the "visible" improvements, this release features numerous
internal improvements to the UI/screen code and test infrastructure.

Numerous patches were merged from Vim, which are not mentioned below.

FEATURES:

07ad5d7 clipboard: Support custom VimL functions neovim#9304
725da1f neovim#9401 win/TUI: Improve terminal/console support
7a8dadb neovim#9077 startup: Use $XDG_CONFIG_DIRS/nvim/sysinit.vim if it exists
feec926 neovim#9299 support <cmd> mapping in more places
0653ed6 neovim#9028 diff/highlight: Show underline for low-priority CursorLine
bddcbbb signs: Add "numhl" argument neovim#9113
05f9c7c clipboard: support Wayland (neovim#9230)
14ae394 neovim#9052 TUI: add support for undercurl and underline color
4fa3492 neovim#9023 man.vim: soft (dynamic) wrap neovim#9023

API:

8b39e4e neovim#6920 API: implement object namespaces
b1aaa0a API: Implement nvim_win_set_buf() neovim#9100
8de87c7 neovim#8180 API: virtual text annotations (nvim_buf_set_virtual_text)
2b9fc9a neovim#8660 API: add nvim_buf_is_loaded()
    API: buf_get_lines, buf_line_count handle unloaded buffers
88f77c2 API: nvim_buf_get_offset_for_line
94841e5 API/UI: neovim#8221 ext_newgrid, ext_hlstate
    (use line-based rather than char-based updates)

UI

b5cfac0 neovim#8806 TUI: use BCE again more often, (smoother resizes/scrolling)
77b5e9a neovim#9315 screen: add missing status redraw when redraw_later(CLEAR) was used
5f15788 TUI: clip invalid regions on resize (neovim#8779), fixes neovim#8774
c936ae0 neovim#9193 TUI: improvements for scrolling and clearing
f204274 neovim#9143 UI: disable clearing almost everywhere
f4b2b66 neovim#9079 TUI: always use safe cursor movement after resize
d36afaf neovim#9211 ui_options: also send when starting or from OptionSet
67f80d4 TUI: Avoid reset_cursor_color in old VTE neovim#9191
e55ebae neovim#9021 don't erase screen on `:hi Normal` during startup
c5790d9 neovim#8915 TUI: Hint wrapped lines to terminals.

FIXES:

231de72 RPC: turn errors from async calls into notifications
907ad92 TUI: Restore terminal title via "title stacking" (neovim#9407)
cb76a8a genappimage: Unset $ARGV0 at invocation neovim#9376
b48efd9 neovim#9347 TUI: FreeBSD: Improve support for BSD vt console
c16529a TUI: Konsole 18.07.70 supports DECSCUSR (neovim#9364)
aec096f os/lang: use the correct LC_NUMERIC also for OS X
5fee0be provider: improve error message (neovim#9344)
3c42d7a TUI: alacritty supports set_cursor_color neovim#9353
7bff9a5 TUI: Alacritty supports DECSCUSR (neovim#9048)
57acfce macOS: infer primary language if $LANG is empty neovim#9345
bc132ae runtime/syntax: Fix highlighting of augroup contents (neovim#9328)
715fdfe neovim#9297 VimL/confirm(): Show dialog even if :silent
799d9c3 clipboard: Prefer xclip (neovim#9302)
6dae777 provider/nodejs: fix npm,yarn detection
16bc1e9 neovim#9218 channel: avoid buffering output when only terminal and no callbacks are active
72fecad neovim#8804 Fix crash in lang_init() on macOS if lang_region = NULL
d581398 ruby: detect rbenv shims for other versions (neovim#8733)
e568ac7 neovim#9123 third-party/unibilium: Fix parsing of extended capability entries
c4c74c3 jobstart(): Fix hang on non-executable cwd neovim#9204
1cf50cb provider/nodejs: Simultaneously query npm and yarn neovim#9054
6c496db undo: Fix infinite loop if undo_read_byte returns EOF neovim#2880
f8f8357 neovim#9034 'swapfile: always show dialog'

CHANGES:

c236e80 neovim#9024 --embed: wait for UI unless --headless
180b50d neovim#9248 python: 'neovim' module was renamed to 'pynvim'
2000b6a neovim#8589 VimL: Remove legacy aliases "v:errmsg", "v:shell_error", "v:this_session"
deb18a0 defaults: background=dark neovim#2894 (neovim#9205)
c1187d4 defaults: win: 'shellpipe' for cmd.exe (neovim#8827)
justinmk added a commit to justinmk/neovim that referenced this pull request May 11, 2019
Since deb18a0/neovim#9205 Nvim defaults to background=dark. But the
functional tests (helpers.nvim_set) specify background=light. Some tests
don't use helpers.nvim_set, which leads to a confusing inconsistency.

So remove background=light from helpers.nvim_set.
justinmk added a commit to justinmk/neovim that referenced this pull request May 11, 2019
Since deb18a0/neovim#9205 Nvim defaults to background=dark. But the
functional tests (helpers.nvim_set) specify background=light. Some tests
don't use helpers.nvim_set, which leads to a confusing inconsistency.

So remove background=light from helpers.nvim_set.
justinmk added a commit to justinmk/neovim that referenced this pull request May 11, 2019
Since deb18a0/neovim#9205 Nvim defaults to background=dark. But the
functional tests (helpers.nvim_set) specify background=light. Some tests
don't use helpers.nvim_set, which leads to a confusing inconsistency.

So remove background=light from helpers.nvim_set.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
defaults Nvim defaults for options, colorscheme/theme, autocmds/events, etc.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants