aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShougo Matsushita <Shougo.Matsu@gmail.com>2016-05-02 07:34:06 +0900
committerJustin M. Keyes <justinkz@gmail.com>2016-05-10 06:04:26 -0400
commitacc5d08b371c9521d63aa4a37cce9ffab451d21d (patch)
tree394d063dd69bcf8d2f0f24f8a9a8f53982e49950
parenta5a1768918286ef3ac4181b45b8b7eafb37767ac (diff)
downloadrneovim-acc5d08b371c9521d63aa4a37cce9ffab451d21d.tar.gz
rneovim-acc5d08b371c9521d63aa4a37cce9ffab451d21d.tar.bz2
rneovim-acc5d08b371c9521d63aa4a37cce9ffab451d21d.zip
'termguicolors' #4690
TODO: Only works at startup (i.e., in the user's init.vim/vimrc/--cmd), but it should probably work at any time. --- patch 7.4.1799 Problem: 'guicolors' is a confusing option name. Solution: Use 'termguicolors' instead. (Hirohito Higashi) https://github.com/vim/vim/commit/61be73bb0f965a895bfb064ea3e55476ac175162 patch 7.4.1806 Problem: 'termguicolors' option missing from the options window. Solution: Add the entry. https://github.com/vim/vim/commit/8e3d1b6326c103cc92f8d07b1161ee5172acf201 patch 7.4.1808 Problem: Using wrong feature name to check for 'termguicolors'. Solution: Use the right feature name. (Ken Takata) https://github.com/vim/vim/commit/8a24b794b89916c8074892e7b25121a21f1fa9c9 patch 7.4.1809 Problem: Using wrong short option name for 'termguicolors'. Solution: Use the option name. https://github.com/vim/vim/commit/868cfc19bb079a16ca58884b551486566f35419b
-rw-r--r--man/nvim.13
-rw-r--r--runtime/doc/options.txt8
-rw-r--r--runtime/doc/various.txt1
-rw-r--r--runtime/optwin.vim4
-rw-r--r--runtime/syntax/dircolors.vim42
-rw-r--r--src/nvim/eval.c1
-rw-r--r--src/nvim/option_defs.h1
-rw-r--r--src/nvim/options.lua8
-rw-r--r--src/nvim/tui/tui.c2
-rw-r--r--src/nvim/version.c4
10 files changed, 49 insertions, 25 deletions
diff --git a/man/nvim.1 b/man/nvim.1
index 7e8cd5b809..2fa3ab8ff5 100644
--- a/man/nvim.1
+++ b/man/nvim.1
@@ -391,9 +391,6 @@ See
in the
.Xr tmux 1
manual page for more information.
-.It Ev NVIM_TUI_ENABLE_TRUE_COLOR
-If defined, assume the host terminal supports 24 bit colors.
-Has no effect in GUIs.
.El
.Sh FILES
.Bl -tag -width "~/.config/nvim/init.vim"
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 84fc2ecfc1..fedacfaea4 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -6420,6 +6420,14 @@ A jump table for the options with a short description can be found at |Q_op|.
*'termencoding'* *'tenc'*
'termencoding' 'tenc' Removed. |vim-differences| {Nvim}
+ *'termguicolors'* *'tgc'*
+'termguicolors' 'tgc' boolean (default off)
+ global
+ When on, uses |highlight-guifg| and |highlight-guibg| attributes in
+ the terminal (thus using 24-bit color). Requires a ISO-8613-3
+ compatible terminal.
+ Must be set at startup (in your |init.vim| or |--cmd|).
+
*'terse'* *'noterse'*
'terse' boolean (default off)
global
diff --git a/runtime/doc/various.txt b/runtime/doc/various.txt
index 3a2b8115db..af4224993f 100644
--- a/runtime/doc/various.txt
+++ b/runtime/doc/various.txt
@@ -371,6 +371,7 @@ N *+tablineat* 'tabline' option recognizing %@Func@ items.
N *+tag_binary* binary searching in tags file |tag-binary-search|
N *+tag_old_static* old method for static tags |tag-old-static|
m *+tag_any_white* any white space allowed in tags file |tag-any-white|
+B *+termguicolors* 24-bit color in xterm-compatible terminals support
*+terminfo* uses |terminfo| instead of termcap
N *+termresponse* support for |t_RV| and |v:termresponse|
N *+textobjects* |text-objects| selection
diff --git a/runtime/optwin.vim b/runtime/optwin.vim
index 7050436aab..07dcd31b1b 100644
--- a/runtime/optwin.vim
+++ b/runtime/optwin.vim
@@ -410,6 +410,10 @@ call append("$", "highlight\twhich highlighting to use for various occasions")
call <SID>OptionG("hl", &hl)
call append("$", "hlsearch\thighlight all matches for the last used search pattern")
call <SID>BinOptionG("hls", &hls)
+if has("termguicolors")
+ call append("$", "termguicolors\tuse GUI colors for the terminal")
+ call <SID>BinOptionG("tgc", &tgc)
+endif
if has("syntax")
call append("$", "cursorcolumn\thighlight the screen column of the cursor")
call append("$", "\t(local to window)")
diff --git a/runtime/syntax/dircolors.vim b/runtime/syntax/dircolors.vim
index c94d720644..1b598c39b5 100644
--- a/runtime/syntax/dircolors.vim
+++ b/runtime/syntax/dircolors.vim
@@ -44,24 +44,24 @@ highlight default link dircolorsExtension Identifier
highlight default link dircolorsEscape Special
function! s:set_guicolors() abort
- let s:guicolors = {}
-
- let s:guicolors[0] = "Black"
- let s:guicolors[1] = "DarkRed"
- let s:guicolors[2] = "DarkGreen"
- let s:guicolors[3] = "DarkYellow"
- let s:guicolors[4] = "DarkBlue"
- let s:guicolors[5] = "DarkMagenta"
- let s:guicolors[6] = "DarkCyan"
- let s:guicolors[7] = "Gray"
- let s:guicolors[8] = "DarkGray"
- let s:guicolors[9] = "Red"
- let s:guicolors[10] = "Green"
- let s:guicolors[11] = "Yellow"
- let s:guicolors[12] = "Blue"
- let s:guicolors[13] = "Magenta"
- let s:guicolors[14] = "Cyan"
- let s:guicolors[15] = "White"
+ let s:termguicolors = {}
+
+ let s:termguicolors[0] = "Black"
+ let s:termguicolors[1] = "DarkRed"
+ let s:termguicolors[2] = "DarkGreen"
+ let s:termguicolors[3] = "DarkYellow"
+ let s:termguicolors[4] = "DarkBlue"
+ let s:termguicolors[5] = "DarkMagenta"
+ let s:termguicolors[6] = "DarkCyan"
+ let s:termguicolors[7] = "Gray"
+ let s:termguicolors[8] = "DarkGray"
+ let s:termguicolors[9] = "Red"
+ let s:termguicolors[10] = "Green"
+ let s:termguicolors[11] = "Yellow"
+ let s:termguicolors[12] = "Blue"
+ let s:termguicolors[13] = "Magenta"
+ let s:termguicolors[14] = "Cyan"
+ let s:termguicolors[15] = "White"
let xterm_palette = ["00", "5f", "87", "af", "d7", "ff"]
@@ -70,7 +70,7 @@ function! s:set_guicolors() abort
for r in xterm_palette
for g in xterm_palette
for b in xterm_palette
- let s:guicolors[cur_col] = '#' . r . g . b
+ let s:termguicolors[cur_col] = '#' . r . g . b
let cur_col += 1
endfor
endfor
@@ -78,14 +78,14 @@ function! s:set_guicolors() abort
for i in range(24)
let g = i * 0xa + 8
- let s:guicolors[i + 232] = '#' . g . g . g
+ let s:termguicolors[i + 232] = '#' . g . g . g
endfor
endfunction
function! s:get_hi_str(color, place) abort
if a:color >= 0 && a:color <= 255
if has('gui_running')
- return ' gui' . a:place . '=' . s:guicolors[a:color]
+ return ' gui' . a:place . '=' . s:termguicolors[a:color]
elseif a:color <= 7 || &t_Co == 256 || &t_Co == 88
return ' cterm' . a:place . '=' . a:color
endif
diff --git a/src/nvim/eval.c b/src/nvim/eval.c
index 6e9f89bbb5..8c8881b398 100644
--- a/src/nvim/eval.c
+++ b/src/nvim/eval.c
@@ -10684,6 +10684,7 @@ static void f_has(typval_T *argvars, typval_T *rettv)
"tablineat",
"tag_binary",
"tag_old_static",
+ "termguicolors",
"termresponse",
"textobjects",
"title",
diff --git a/src/nvim/option_defs.h b/src/nvim/option_defs.h
index 87a9a7398c..904e97f8ca 100644
--- a/src/nvim/option_defs.h
+++ b/src/nvim/option_defs.h
@@ -619,6 +619,7 @@ EXTERN long p_titlelen; ///< 'titlelen'
EXTERN char_u *p_titleold; ///< 'titleold'
EXTERN char_u *p_titlestring; ///< 'titlestring'
EXTERN char_u *p_tsr; ///< 'thesaurus'
+EXTERN bool p_tgc; ///< 'termguicolors'
EXTERN int p_ttimeout; ///< 'ttimeout'
EXTERN long p_ttm; ///< 'ttimeoutlen'
EXTERN char_u *p_udir; ///< 'undodir'
diff --git a/src/nvim/options.lua b/src/nvim/options.lua
index a743e8c605..218e34f595 100644
--- a/src/nvim/options.lua
+++ b/src/nvim/options.lua
@@ -2383,6 +2383,14 @@ return {
defaults={if_true={vi=""}}
},
{
+ full_name='termguicolors', abbreviation='tgc',
+ type='bool', scope={'global'},
+ vi_def=false,
+ redraw={'everything'},
+ varname='p_tgc',
+ defaults={if_true={vi=false}}
+ },
+ {
full_name='terse',
type='bool', scope={'global'},
vi_def=true,
diff --git a/src/nvim/tui/tui.c b/src/nvim/tui/tui.c
index e1c0407b27..202c5666a1 100644
--- a/src/nvim/tui/tui.c
+++ b/src/nvim/tui/tui.c
@@ -81,7 +81,7 @@ UI *tui_start(void)
{
UI *ui = xcalloc(1, sizeof(UI));
ui->stop = tui_stop;
- ui->rgb = os_getenv("NVIM_TUI_ENABLE_TRUE_COLOR") != NULL;
+ ui->rgb = p_tgc;
ui->resize = tui_resize;
ui->clear = tui_clear;
ui->eol_clear = tui_eol_clear;
diff --git a/src/nvim/version.c b/src/nvim/version.c
index 81137ff1c6..00f8c28b5e 100644
--- a/src/nvim/version.c
+++ b/src/nvim/version.c
@@ -69,6 +69,10 @@ static char *features[] = {
// clang-format off
static int included_patches[] = {
+ 1809,
+ 1808,
+ 1806,
+ 1799,
1757,
1755,
1753,