├── .github
└── ISSUE_TEMPLATE
│ └── bug_report.md
├── CHANGELOG.md
├── LICENSE.md
├── README.md
├── autoload
├── airline
│ └── themes
│ │ └── gruvbox.vim
├── gruvbox.vim
└── lightline
│ └── colorscheme
│ └── gruvbox.vim
├── colors
└── gruvbox.vim
├── gruvbox_256palette.sh
├── gruvbox_256palette_osx.sh
└── package.json
/.github/ISSUE_TEMPLATE/bug_report.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Bug report
3 | about: Create a report to help us improve
4 | title: ''
5 | labels: ''
6 | assignees: ''
7 |
8 | ---
9 |
10 | *Read this before posting and then delete this.*
11 |
12 | Before posting, make sure that the issue is not a problem with your terminal emulator or other Vim environment.
13 | If Gruvbox has highlight groups that are not being rendered correctly in one specific environment, the issue is with the environment.
14 | However, if Gruvbox has highlight groups with rules that look wrong in every environment, the problem is with Gruvbox.
15 | If you are not sure, try to use a different environment and/or check the relevant highlight group rules using the `:hi` command.
16 |
17 | Additionally, if colors look wrong only after running `gruvbox_256palette.sh`, Gruvbox is likely at fault.
18 |
19 | If you decide to post your issue here, please include the relevant information:
20 | - Your Vim version
21 | - The name and version of any terminal emulator(s) or graphical environment(s) where you recreated the issue
22 | - Whether you are running `gruvbox_256palette.sh`
23 | - Information on any other relevant external color configuration, such as a terminal emulator theme
24 | - A minimal .vimrc
25 |
26 | A minimal .vimrc is narrowed down to just the lines that recreate the issue.
27 | Remove all plugins and settings from your .vimrc and then add them back until you can recreate the issue.
28 | Doing this makes it much, much more likely that someone else can solve your issue.
29 | You may even come upon a solution to your issue by following this procedure.
30 |
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # Changelog
2 |
3 | ## [Unreleased](https://github.com/gruvbox-community/gruvbox/tree/HEAD)
4 |
5 | [Full Changelog](https://github.com/gruvbox-community/gruvbox/compare/v2.2.0...HEAD)
6 |
7 | **Closed issues:**
8 |
9 | - gruvbox gruvbox\_sign\_column [\#133](https://github.com/gruvbox-community/gruvbox/issues/133)
10 |
11 | ## [v2.2.0](https://github.com/gruvbox-community/gruvbox/tree/v2.2.0) (2020-05-03)
12 |
13 | [Full Changelog](https://github.com/gruvbox-community/gruvbox/compare/v2.1.0...v2.2.0)
14 |
15 | **Closed issues:**
16 |
17 | - Lightline with gruvbox [\#125](https://github.com/gruvbox-community/gruvbox/issues/125)
18 | - Cursor over highlight off in Vimr [\#121](https://github.com/gruvbox-community/gruvbox/issues/121)
19 | - `Last Modified` date of `gruvbox.vim` still says ` 12 Aug 2017` [\#119](https://github.com/gruvbox-community/gruvbox/issues/119)
20 | - Cursorline highlighting destroys syntax highlighting in Windows command prompt [\#117](https://github.com/gruvbox-community/gruvbox/issues/117)
21 | - How can I make the GUI version look like the terminal version+notermguicolors? [\#116](https://github.com/gruvbox-community/gruvbox/issues/116)
22 | - CSS properties get different colors [\#114](https://github.com/gruvbox-community/gruvbox/issues/114)
23 | - Light mode is different from the sample picture [\#112](https://github.com/gruvbox-community/gruvbox/issues/112)
24 | - Weird highlight with easymotion [\#111](https://github.com/gruvbox-community/gruvbox/issues/111)
25 | - Switch terminal color codes of aqua and neutral blue [\#109](https://github.com/gruvbox-community/gruvbox/issues/109)
26 | - Digraph characters are hard to see [\#106](https://github.com/gruvbox-community/gruvbox/issues/106)
27 | - Python Function highlighting once declared. [\#105](https://github.com/gruvbox-community/gruvbox/issues/105)
28 | - XML looks silly since dd4114fdb4 [\#103](https://github.com/gruvbox-community/gruvbox/issues/103)
29 | - gruvbox is interfering with Typescript indent [\#102](https://github.com/gruvbox-community/gruvbox/issues/102)
30 | - Light mode in gvim shows numbers in \#C7F1FB until reload [\#100](https://github.com/gruvbox-community/gruvbox/issues/100)
31 | - vim\_did\_enter is not available in older versions [\#99](https://github.com/gruvbox-community/gruvbox/issues/99)
32 | - Modify XML Colors [\#96](https://github.com/gruvbox-community/gruvbox/issues/96)
33 | - Override specific colors [\#68](https://github.com/gruvbox-community/gruvbox/issues/68)
34 | - Hard to read y/n questions on dark b/g [\#66](https://github.com/gruvbox-community/gruvbox/issues/66)
35 | - Cannot see cursor in insert mode [\#65](https://github.com/gruvbox-community/gruvbox/issues/65)
36 | - Flag to Indicate Gruvbox Loaded [\#64](https://github.com/gruvbox-community/gruvbox/issues/64)
37 | - Support changing background [\#62](https://github.com/gruvbox-community/gruvbox/issues/62)
38 | - Faded aqua \(\#427b58\) and neutral blue \(\#458588\) have same terminal colors [\#60](https://github.com/gruvbox-community/gruvbox/issues/60)
39 | - gruvbox golang [\#56](https://github.com/gruvbox-community/gruvbox/issues/56)
40 | - Can't define color palette solely in Xresources with g:gruvbox\_termcolors = 16 [\#50](https://github.com/gruvbox-community/gruvbox/issues/50)
41 | - 256 are used when inside tmux instead of truecolor [\#48](https://github.com/gruvbox-community/gruvbox/issues/48)
42 | - Scrolling breaks gruvbox [\#49](https://github.com/gruvbox-community/gruvbox/issues/49)
43 | - Some lines's background is discolored [\#43](https://github.com/gruvbox-community/gruvbox/issues/43)
44 | - "Buffers" in top bar is grey [\#39](https://github.com/gruvbox-community/gruvbox/issues/39)
45 | - A suggestion for error foreground color [\#38](https://github.com/gruvbox-community/gruvbox/issues/38)
46 | - Fish integration [\#37](https://github.com/gruvbox-community/gruvbox/issues/37)
47 | - GruvBox red is displaying kinda orange [\#34](https://github.com/gruvbox-community/gruvbox/issues/34)
48 | - Unable to configure colors for vim-sneak plugin [\#33](https://github.com/gruvbox-community/gruvbox/issues/33)
49 | - Gruvbox is broken in neovim [\#31](https://github.com/gruvbox-community/gruvbox/issues/31)
50 | - Regular status line looks a little off... [\#29](https://github.com/gruvbox-community/gruvbox/issues/29)
51 | - update release [\#27](https://github.com/gruvbox-community/gruvbox/issues/27)
52 | - Airline theme breaks with transparent vim windows. [\#20](https://github.com/gruvbox-community/gruvbox/issues/20)
53 | - C++ comment highlighting [\#22](https://github.com/gruvbox-community/gruvbox/issues/22)
54 | - ^ and \_ highlighted as red [\#19](https://github.com/gruvbox-community/gruvbox/issues/19)
55 | - update airline theme for new command mode [\#17](https://github.com/gruvbox-community/gruvbox/issues/17)
56 | - rust syntax [\#14](https://github.com/gruvbox-community/gruvbox/issues/14)
57 | - Support for the fzf.vim [\#15](https://github.com/gruvbox-community/gruvbox/issues/15)
58 | - support golang Syntax ? [\#10](https://github.com/gruvbox-community/gruvbox/issues/10)
59 | - Colors not vivid [\#9](https://github.com/gruvbox-community/gruvbox/issues/9)
60 | - Add airline\_term section in order to correctly color Terminal buffer's statusline [\#6](https://github.com/gruvbox-community/gruvbox/issues/6)
61 | - ALE not displaying errors when using gruvbox [\#5](https://github.com/gruvbox-community/gruvbox/issues/5)
62 |
63 | **Merged pull requests:**
64 |
65 | - Remove gitgutter settings [\#132](https://github.com/gruvbox-community/gruvbox/pull/132) ([ndreas](https://github.com/ndreas))
66 | - lightline: Fix normal.warning readability [\#131](https://github.com/gruvbox-community/gruvbox/pull/131) ([polyzen](https://github.com/polyzen))
67 | - add support for CocHighlightText in coc.nvim [\#127](https://github.com/gruvbox-community/gruvbox/pull/127) ([phphong](https://github.com/phphong))
68 | - Add highlight support for coc.nvim [\#124](https://github.com/gruvbox-community/gruvbox/pull/124) ([RicardoMing](https://github.com/RicardoMing))
69 | - Highlight keywords for vim-javascript [\#123](https://github.com/gruvbox-community/gruvbox/pull/123) ([gbrlsnchs](https://github.com/gbrlsnchs))
70 | - Add highlight for ALE virtual text. [\#122](https://github.com/gruvbox-community/gruvbox/pull/122) ([kristijanhusak](https://github.com/kristijanhusak))
71 | - Fix Airline for Terminal mode [\#120](https://github.com/gruvbox-community/gruvbox/pull/120) ([phddoom](https://github.com/phddoom))
72 | - Fix "Illegal variable name: a:color" issues vim 8.1+ [\#115](https://github.com/gruvbox-community/gruvbox/pull/115) ([eddyg](https://github.com/eddyg))
73 | - Change SpecialKey group color [\#113](https://github.com/gruvbox-community/gruvbox/pull/113) ([bronzehedwick](https://github.com/bronzehedwick))
74 | - Add colors for fzf status line [\#110](https://github.com/gruvbox-community/gruvbox/pull/110) ([efnull](https://github.com/efnull))
75 | - Add C\# groups from vim runtime files [\#95](https://github.com/gruvbox-community/gruvbox/pull/95) ([nickspoons](https://github.com/nickspoons))
76 |
77 | ## [v2.1.0](https://github.com/gruvbox-community/gruvbox/tree/v2.1.0) (2019-05-28)
78 |
79 | [Full Changelog](https://github.com/gruvbox-community/gruvbox/compare/v2.0.0...v2.1.0)
80 |
81 | **Closed issues:**
82 |
83 | - Highlight for spelling errors is switched? [\#28](https://github.com/gruvbox-community/gruvbox/issues/28)
84 | - Haskell highlighting is broken [\#24](https://github.com/gruvbox-community/gruvbox/issues/24)
85 | - Font/Typeface in readme -- link broken [\#7](https://github.com/gruvbox-community/gruvbox/issues/7)
86 |
87 | **Merged pull requests:**
88 |
89 | - fbterm support for palette script [\#92](https://github.com/gruvbox-community/gruvbox/pull/92) ([rbong](https://github.com/rbong))
90 | - improve readability for lighline's middle section [\#91](https://github.com/gruvbox-community/gruvbox/pull/91) ([rbong](https://github.com/rbong))
91 | - Modified HTML colors for easier reading [\#90](https://github.com/gruvbox-community/gruvbox/pull/90) ([rbong](https://github.com/rbong))
92 | - Update URL for Fira Mono [\#89](https://github.com/gruvbox-community/gruvbox/pull/89) ([rbong](https://github.com/rbong))
93 | - Spelling: Switch capital/bad word colors [\#88](https://github.com/gruvbox-community/gruvbox/pull/88) ([rbong](https://github.com/rbong))
94 | - Fix the Haskell colors against haskell-vim. [\#87](https://github.com/gruvbox-community/gruvbox/pull/87) ([rbong](https://github.com/rbong))
95 | - JS styling improvements [\#86](https://github.com/gruvbox-community/gruvbox/pull/86) ([rbong](https://github.com/rbong))
96 | - Adding mail specific highlighting [\#85](https://github.com/gruvbox-community/gruvbox/pull/85) ([rbong](https://github.com/rbong))
97 | - Added color for QuickFixLine \(matches Error\) [\#84](https://github.com/gruvbox-community/gruvbox/pull/84) ([rbong](https://github.com/rbong))
98 | - Add tabline\_sel option to costumize selected tab foreground color [\#83](https://github.com/gruvbox-community/gruvbox/pull/83) ([rbong](https://github.com/rbong))
99 | - Link pangloss jsFuncCall to GruvboxBlue. [\#82](https://github.com/gruvbox-community/gruvbox/pull/82) ([rbong](https://github.com/rbong))
100 | - Treat C++ operators like C operators [\#81](https://github.com/gruvbox-community/gruvbox/pull/81) ([rbong](https://github.com/rbong))
101 | - fix $TERM check for tmux: [\#79](https://github.com/gruvbox-community/gruvbox/pull/79) ([rbong](https://github.com/rbong))
102 | - Docs: Add license [\#78](https://github.com/gruvbox-community/gruvbox/pull/78) ([rbong](https://github.com/rbong))
103 | - Add support for MaxMEllon/vim-jsx-pretty [\#77](https://github.com/gruvbox-community/gruvbox/pull/77) ([rbong](https://github.com/rbong))
104 | - Airline: replace CursorLine color by StatusLineNC [\#76](https://github.com/gruvbox-community/gruvbox/pull/76) ([rbong](https://github.com/rbong))
105 | - Customizable hlsearch highlight color \(similar to hls\_cursor setting\) [\#73](https://github.com/gruvbox-community/gruvbox/pull/73) ([rbong](https://github.com/rbong))
106 | - Set terminal colors in Vim with termguicolors [\#70](https://github.com/gruvbox-community/gruvbox/pull/70) ([rbong](https://github.com/rbong))
107 |
108 | ## [v2.0.0](https://github.com/gruvbox-community/gruvbox/tree/v2.0.0) (2015-09-04)
109 |
110 | [Full Changelog](https://github.com/gruvbox-community/gruvbox/compare/v1.9.3...v2.0.0)
111 |
112 | ## [v1.9.3](https://github.com/gruvbox-community/gruvbox/tree/v1.9.3) (2015-09-02)
113 |
114 | [Full Changelog](https://github.com/gruvbox-community/gruvbox/compare/v1.3.5...v1.9.3)
115 |
116 | ## [v1.3.5](https://github.com/gruvbox-community/gruvbox/tree/v1.3.5) (2014-03-19)
117 |
118 | [Full Changelog](https://github.com/gruvbox-community/gruvbox/compare/v0.0.8...v1.3.5)
119 |
120 | ## [v0.0.8](https://github.com/gruvbox-community/gruvbox/tree/v0.0.8) (2012-12-08)
121 |
122 | [Full Changelog](https://github.com/gruvbox-community/gruvbox/compare/bb16902f688648f85df9a6aa01986297b8cd9af4...v0.0.8)
123 |
124 |
125 |
126 | \* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
127 |
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2018 Pavel Pertsev
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |

2 |
3 | gruvbox is heavily inspired by [badwolf][], [jellybeans][] and [solarized][].
4 |
5 | Designed as a bright theme with pastel 'retro groove' colors and light/dark mode switching in the way of [solarized][]. The main focus when developing gruvbox is to keep colors easily distinguishable, contrast enough and still pleasant for the eyes.
6 |
7 | [badwolf]: https://github.com/sjl/badwolf
8 | [jellybeans]: https://github.com/nanotech/jellybeans.vim
9 | [solarized]: http://ethanschoonover.com/solarized
10 |
11 | This is a community fork of gruvbox, created to merge recent pull requests and fix recent issues.
12 |
13 | If you would like to help gruvbox community edition, please consider becoming a maintainer.
14 | See [this issue](https://github.com/gruvbox-community/gruvbox/issues/93) for more details.
15 |
16 | Attention
17 | ---------
18 |
19 | 1. [Read this first](https://github.com/gruvbox-community/gruvbox/wiki/Terminal-specific)
20 | 2. Typeface from gallery is [Fantasque Sans Mono](https://github.com/belluzj/fantasque-sans)
21 | 3. Typeface from screenshots below is [Fira Mono](https://mozilla.github.io/Fira/)
22 |
23 | Screenshots
24 | -----------
25 |
26 | Refer [Gallery][] for more syntax-specific screenshots.
27 |
28 | [Gallery]: https://github.com/gruvbox-community/gruvbox/wiki/Gallery
29 |
30 | ### Dark mode
31 |
32 | 
33 |
34 | ### Light mode
35 |
36 | 
37 |
38 | ### Airline theme
39 |
40 | 
41 |
42 | Palette
43 | -------
44 |
45 | ### Dark mode
46 |
47 | 
48 |
49 | ### Light mode
50 |
51 | 
52 |
53 | Contrast options
54 | ----------------
55 |
56 | Refer [wiki section][] for contrast configuration and other options.
57 |
58 | [wiki section]: https://github.com/gruvbox-community/gruvbox/wiki/Configuration#ggruvbox_contrast_dark
59 |
60 | 
61 |
62 | Documentation
63 | -------------
64 |
65 | Please check [wiki][] for installation details, terminal-specific setup, troubleshooting, configuration options and others.
66 |
67 | [wiki]: https://github.com/gruvbox-community/gruvbox/wiki
68 |
69 | Features
70 | --------
71 |
72 | * Lots of style-customization options (contrast, color invertion, italics usage etc.)
73 | * Extended filetype highlighting: Html, Xml, Vim, Clojure, C, Python, JavaScript, TypeScript, JSX via [vim-jsx-pretty][], PureScript, CoffeeScript, Ruby, Objective-C, Go, Lua, MoonScript, Java, Markdown, Haskell, Elixir, C#, Rust via [rust.vim][]
74 | * Supported plugins: [EasyMotion][], [vim-sneak][], [Indent Guides][], [indentLine][], [Rainbow Parentheses][], [Airline][], [Lightline][], [GitGutter][], [Signify][], [ShowMarks][], [Signature][], [Syntastic][], [Ale][], [CtrlP][], [fzf][], [Startify][], [NERDTree][], [Dirvish][]
75 |
76 | [vim-jsx-pretty]: https://github.com/MaxMEllon/vim-jsx-pretty
77 | [rust.vim]: https://github.com/rust-lang/rust.vim
78 | [EasyMotion]: https://github.com/Lokaltog/vim-easymotion
79 | [vim-sneak]: https://github.com/justinmk/vim-sneak
80 | [Indent Guides]: https://github.com/nathanaelkane/vim-indent-guides
81 | [indentLine]: https://github.com/Yggdroot/indentLine
82 | [Rainbow Parentheses]: https://github.com/kien/rainbow_parentheses.vim
83 | [Airline]: https://github.com/bling/vim-airline
84 | [Lightline]: https://github.com/itchyny/lightline.vim
85 | [GitGutter]: https://github.com/airblade/vim-gitgutter
86 | [Signify]: https://github.com/mhinz/vim-signify
87 | [ShowMarks]: http://www.vim.org/scripts/script.php?script_id=152
88 | [Signature]: https://github.com/kshenoy/vim-signature
89 | [Syntastic]: https://github.com/scrooloose/syntastic
90 | [Ale]: https://github.com/w0rp/ale
91 | [CtrlP]: https://github.com/kien/ctrlp.vim
92 | [fzf]: https://github.com/junegunn/fzf.vim
93 | [Startify]: https://github.com/mhinz/vim-startify
94 | [NERDTree]: https://github.com/scrooloose/nerdtree
95 | [Dirvish]: https://github.com/justinmk/vim-dirvish
96 |
97 | Contributions
98 | -------------
99 |
100 | See [gruvbox-contrib][] repo for contributions, ports and extras.
101 |
102 | [gruvbox-contrib]: https://github.com/gruvbox-community/gruvbox-contrib
103 |
104 | ToDo
105 | ----
106 |
107 | * Filetype syntax highlighting (R, TeX, Swift, Erlang)
108 | * Plugin support (Tagbar, VimPlug)
109 |
110 | Self-Promotion
111 | --------------
112 |
113 | If you like gruvbox follow the repository on
114 | [GitHub](https://github.com/gruvbox-community/gruvbox) and vote for it on
115 | [vim.org](http://www.vim.org/scripts/script.php?script_id=4349).
116 |
117 | License
118 | -------
119 | [MIT/X11][]
120 |
121 | [MIT/X11]: https://en.wikipedia.org/wiki/MIT_License
122 |
--------------------------------------------------------------------------------
/autoload/airline/themes/gruvbox.vim:
--------------------------------------------------------------------------------
1 | " -----------------------------------------------------------------------------
2 | " File: gruvbox.vim
3 | " Description: Retro groove color scheme for Airline
4 | " Author: morhetz
5 | " Source: https://github.com/gruvbox-community/gruvbox
6 | " -----------------------------------------------------------------------------
7 |
8 | let g:airline#themes#gruvbox#palette = {}
9 |
10 | function! airline#themes#gruvbox#refresh()
11 |
12 | let M0 = airline#themes#get_highlight('Identifier')
13 | let accents_group = airline#themes#get_highlight('Special')
14 | let modified_group = [M0[0], '', M0[2], '', '']
15 | let warning_group = airline#themes#get_highlight2(['GruvboxBg0', 'fg'], ['Question', 'fg'])
16 | let error_group = airline#themes#get_highlight2(['GruvboxBg0', 'fg'], ['WarningMsg', 'fg'])
17 |
18 | let s:N1 = airline#themes#get_highlight2(['GruvboxBg0', 'fg'], ['StatusLineNC', 'bg'])
19 | let s:N2 = airline#themes#get_highlight2(['StatusLineNC', 'bg'], ['Pmenu', 'bg'])
20 | let s:N3 = airline#themes#get_highlight2(['StatusLineNC', 'bg'], ['StatusLineNC', 'fg'])
21 | let g:airline#themes#gruvbox#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3)
22 | let g:airline#themes#gruvbox#palette.normal_modified = { 'airline_c': modified_group }
23 | let g:airline#themes#gruvbox#palette.normal.airline_warning = warning_group
24 | let g:airline#themes#gruvbox#palette.normal_modified.airline_warning = warning_group
25 | let g:airline#themes#gruvbox#palette.normal.airline_error = error_group
26 | let g:airline#themes#gruvbox#palette.normal_modified.airline_error = error_group
27 | let g:airline#themes#gruvbox#palette.normal.airline_term = s:N3
28 | let g:airline#themes#gruvbox#palette.normal_modified.airline_term = s:N3
29 |
30 | let s:I1 = airline#themes#get_highlight2(['GruvboxBg0', 'fg'], ['Identifier', 'fg'])
31 | let s:I2 = s:N2
32 | let s:I3 = airline#themes#get_highlight2(['GruvboxFg1', 'fg'], ['Pmenu', 'bg'])
33 | let g:airline#themes#gruvbox#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3)
34 | let g:airline#themes#gruvbox#palette.insert_modified = g:airline#themes#gruvbox#palette.normal_modified
35 | let g:airline#themes#gruvbox#palette.insert.airline_warning = g:airline#themes#gruvbox#palette.normal.airline_warning
36 | let g:airline#themes#gruvbox#palette.insert_modified.airline_warning = g:airline#themes#gruvbox#palette.normal_modified.airline_warning
37 | let g:airline#themes#gruvbox#palette.insert.airline_error = g:airline#themes#gruvbox#palette.normal.airline_error
38 | let g:airline#themes#gruvbox#palette.insert_modified.airline_error = g:airline#themes#gruvbox#palette.normal_modified.airline_error
39 | let g:airline#themes#gruvbox#palette.insert.airline_term = g:airline#themes#gruvbox#palette.normal.airline_term
40 | let g:airline#themes#gruvbox#palette.insert_modified.airline_term = g:airline#themes#gruvbox#palette.normal_modified.airline_term
41 |
42 | let s:R1 = airline#themes#get_highlight2(['GruvboxBg0', 'fg'], ['Structure', 'fg'])
43 | let s:R2 = s:I2
44 | let s:R3 = s:I3
45 | let g:airline#themes#gruvbox#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3)
46 | let g:airline#themes#gruvbox#palette.replace_modified = g:airline#themes#gruvbox#palette.normal_modified
47 | let g:airline#themes#gruvbox#palette.replace.airline_warning = g:airline#themes#gruvbox#palette.normal.airline_warning
48 | let g:airline#themes#gruvbox#palette.replace_modified.airline_warning = g:airline#themes#gruvbox#palette.normal_modified.airline_warning
49 | let g:airline#themes#gruvbox#palette.replace.airline_error = g:airline#themes#gruvbox#palette.normal.airline_error
50 | let g:airline#themes#gruvbox#palette.replace_modified.airline_error = g:airline#themes#gruvbox#palette.normal_modified.airline_error
51 | let g:airline#themes#gruvbox#palette.replace.airline_term = g:airline#themes#gruvbox#palette.normal.airline_term
52 | let g:airline#themes#gruvbox#palette.replace_modified.airline_term = g:airline#themes#gruvbox#palette.normal_modified.airline_term
53 |
54 | let s:V1 = airline#themes#get_highlight2(['GruvboxBg0', 'fg'], ['Question', 'fg'])
55 | let s:V2 = s:N2
56 | let s:V3 = airline#themes#get_highlight2(['GruvboxBg0', 'fg'], ['TabLine', 'fg'])
57 | let g:airline#themes#gruvbox#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3)
58 | let g:airline#themes#gruvbox#palette.visual_modified = { 'airline_c': [ s:V3[0], '', s:V3[2], '', '' ] }
59 | let g:airline#themes#gruvbox#palette.visual.airline_warning = g:airline#themes#gruvbox#palette.normal.airline_warning
60 | let g:airline#themes#gruvbox#palette.visual_modified.airline_warning = g:airline#themes#gruvbox#palette.normal_modified.airline_warning
61 | let g:airline#themes#gruvbox#palette.visual.airline_error = g:airline#themes#gruvbox#palette.normal.airline_error
62 | let g:airline#themes#gruvbox#palette.visual_modified.airline_error = g:airline#themes#gruvbox#palette.normal_modified.airline_error
63 | let g:airline#themes#gruvbox#palette.visual.airline_term = g:airline#themes#gruvbox#palette.normal.airline_term
64 | let g:airline#themes#gruvbox#palette.visual_modified.airline_term = g:airline#themes#gruvbox#palette.normal_modified.airline_term
65 |
66 | let s:C1 = airline#themes#get_highlight2(['GruvboxBg0', 'fg'], ['GruvboxGreen', 'fg'])
67 | let s:C2 = s:I2
68 | let s:C3 = s:I3
69 | let g:airline#themes#gruvbox#palette.commandline = airline#themes#generate_color_map(s:C1, s:C2, s:C3)
70 | let g:airline#themes#gruvbox#palette.commandline_modified = g:airline#themes#gruvbox#palette.normal_modified
71 | let g:airline#themes#gruvbox#palette.commandline.airline_warning = g:airline#themes#gruvbox#palette.normal.airline_warning
72 | let g:airline#themes#gruvbox#palette.commandline_modified.airline_warning = g:airline#themes#gruvbox#palette.normal_modified.airline_warning
73 | let g:airline#themes#gruvbox#palette.commandline.airline_error = g:airline#themes#gruvbox#palette.normal.airline_error
74 | let g:airline#themes#gruvbox#palette.commandline_modified.airline_error = g:airline#themes#gruvbox#palette.normal_modified.airline_error
75 | let g:airline#themes#gruvbox#palette.commandline.airline_term = g:airline#themes#gruvbox#palette.normal.airline_term
76 | let g:airline#themes#gruvbox#palette.commandline_modified.airline_term = g:airline#themes#gruvbox#palette.normal.airline_term
77 |
78 | let s:IA = airline#themes#get_highlight2(['TabLine', 'fg'], ['CursorLine', 'bg'])
79 | let g:airline#themes#gruvbox#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA)
80 | let g:airline#themes#gruvbox#palette.inactive_modified = { 'airline_c': modified_group }
81 |
82 | let g:airline#themes#gruvbox#palette.accents = { 'red': accents_group }
83 |
84 | let s:TF = airline#themes#get_highlight2(['GruvboxBg0', 'fg'], ['GruvboxBg0', 'fg'])
85 | let g:airline#themes#gruvbox#palette.tabline = {
86 | \ 'airline_tab': s:N2,
87 | \ 'airline_tabsel': s:N1,
88 | \ 'airline_tabtype': s:V1,
89 | \ 'airline_tablabel': s:V1,
90 | \ 'airline_tablabel_right': s:V1,
91 | \ 'airline_tabfill': s:TF,
92 | \ 'airline_tabhid': s:IA,
93 | \ 'airline_tabmod': s:I1
94 | \ }
95 |
96 | endfunction
97 |
98 | call airline#themes#gruvbox#refresh()
99 |
100 | " vim: set sw=2 ts=2 sts=2 et tw=80 ft=vim fdm=marker:
101 |
--------------------------------------------------------------------------------
/autoload/gruvbox.vim:
--------------------------------------------------------------------------------
1 | " -----------------------------------------------------------------------------
2 | " File: gruvbox.vim
3 | " Description: Retro groove color scheme for Vim
4 | " Author: morhetz
5 | " Source: https://github.com/gruvbox-community/gruvbox
6 | " -----------------------------------------------------------------------------
7 |
8 | function! gruvbox#invert_signs_toggle()
9 | if g:gruvbox_invert_signs == 0
10 | let g:gruvbox_invert_signs=1
11 | else
12 | let g:gruvbox_invert_signs=0
13 | endif
14 |
15 | colorscheme gruvbox
16 | endfunction
17 |
18 | " Search Highlighting {{{
19 |
20 | function! gruvbox#hls_show()
21 | set hlsearch
22 | call GruvboxHlsShowCursor()
23 | endfunction
24 |
25 | function! gruvbox#hls_hide()
26 | set nohlsearch
27 | call GruvboxHlsHideCursor()
28 | endfunction
29 |
30 | function! gruvbox#hls_toggle()
31 | if &hlsearch
32 | call gruvbox#hls_hide()
33 | else
34 | call gruvbox#hls_show()
35 | endif
36 | endfunction
37 |
38 | " }}}
39 |
40 | " vim: set sw=2 ts=2 sts=2 et tw=80 ft=vim fdm=marker:
41 |
--------------------------------------------------------------------------------
/autoload/lightline/colorscheme/gruvbox.vim:
--------------------------------------------------------------------------------
1 | " -----------------------------------------------------------------------------
2 | " File: gruvbox.vim
3 | " Description: Gruvbox colorscheme for Lightline (itchyny/lightline.vim)
4 | " Author: gmoe
5 | " Source: https://github.com/gruvbox-community/gruvbox
6 | " -----------------------------------------------------------------------------
7 |
8 | function! s:getGruvColor(group)
9 | let guiColor = synIDattr(hlID(a:group), 'fg', 'gui')
10 | let termColor = synIDattr(hlID(a:group), 'fg', 'cterm')
11 | return [guiColor, termColor]
12 | endfunction
13 |
14 | if exists('g:lightline')
15 |
16 | let s:bg0 = s:getGruvColor('GruvboxBg0')
17 | let s:bg1 = s:getGruvColor('GruvboxBg1')
18 | let s:bg2 = s:getGruvColor('GruvboxBg2')
19 | let s:bg4 = s:getGruvColor('GruvboxBg4')
20 | let s:fg1 = s:getGruvColor('GruvboxFg1')
21 | let s:fg4 = s:getGruvColor('GruvboxFg4')
22 |
23 | let s:yellow = s:getGruvColor('GruvboxYellow')
24 | let s:blue = s:getGruvColor('GruvboxBlue')
25 | let s:aqua = s:getGruvColor('GruvboxAqua')
26 | let s:orange = s:getGruvColor('GruvboxOrange')
27 | let s:red = s:getGruvColor('GruvboxRed')
28 | let s:green = s:getGruvColor('GruvboxGreen')
29 |
30 | let s:p = {'normal':{}, 'inactive':{}, 'insert':{}, 'replace':{}, 'visual':{}, 'tabline':{}, 'terminal':{}}
31 | let s:p.normal.left = [[s:bg0, s:fg4, 'bold'], [s:fg4, s:bg2]]
32 | let s:p.normal.right = [[s:bg0, s:fg4], [s:fg4, s:bg2]]
33 | let s:p.normal.middle = [[s:fg4, s:bg1]]
34 | let s:p.inactive.right = [[s:bg4, s:bg1], [s:bg4, s:bg1]]
35 | let s:p.inactive.left = [[s:bg4, s:bg1], [s:bg4, s:bg1]]
36 | let s:p.inactive.middle = [[s:bg4, s:bg1]]
37 | let s:p.insert.left = [[s:bg0, s:blue, 'bold'], [s:fg1, s:bg2]]
38 | let s:p.insert.right = [[s:bg0, s:blue], [s:fg1, s:bg2]]
39 | let s:p.insert.middle = [[s:fg4, s:bg1]]
40 | let s:p.terminal.left = [[s:bg0, s:green, 'bold'], [s:fg1, s:bg2]]
41 | let s:p.terminal.right = [[s:bg0, s:green], [s:fg1, s:bg2]]
42 | let s:p.terminal.middle = [[s:fg4, s:bg1]]
43 | let s:p.replace.left = [[s:bg0, s:aqua, 'bold'], [s:fg1, s:bg2]]
44 | let s:p.replace.right = [[s:bg0, s:aqua], [s:fg1, s:bg2]]
45 | let s:p.replace.middle = [[s:fg4, s:bg1]]
46 | let s:p.visual.left = [[s:bg0, s:orange, 'bold'], [s:bg0, s:bg4]]
47 | let s:p.visual.right = [[s:bg0, s:orange], [s:bg0, s:bg4]]
48 | let s:p.visual.middle = [[s:fg4, s:bg1]]
49 | let s:p.tabline.left = [[s:fg4, s:bg2]]
50 | let s:p.tabline.tabsel = [[s:bg0, s:fg4]]
51 | let s:p.tabline.middle = [[s:bg0, s:bg4]]
52 | let s:p.tabline.right = [[s:bg0, s:orange]]
53 | let s:p.normal.error = [[s:bg0, s:red]]
54 | let s:p.normal.warning = [[s:bg0, s:yellow]]
55 |
56 | let g:lightline#colorscheme#gruvbox#palette = lightline#colorscheme#flatten(s:p)
57 | endif
58 |
--------------------------------------------------------------------------------
/colors/gruvbox.vim:
--------------------------------------------------------------------------------
1 | scriptencoding utf-8
2 |
3 | " -----------------------------------------------------------------------------
4 | " File: gruvbox.vim
5 | " Description: Retro groove color scheme for Vim
6 | " Author: morhetz
7 | " Source: https://github.com/gruvbox-community/gruvbox
8 | " -----------------------------------------------------------------------------
9 |
10 | " Supporting code -------------------------------------------------------------
11 | " Initialisation: {{{
12 |
13 | if v:version > 580
14 | hi clear
15 | if exists('syntax_on')
16 | syntax reset
17 | endif
18 | endif
19 |
20 | let g:colors_name='gruvbox'
21 |
22 | if !(has('termguicolors') && &termguicolors) && !has('gui_running') && &t_Co != 256
23 | finish
24 | endif
25 |
26 | " }}}
27 | " Global Settings: {{{
28 |
29 | if !exists('g:gruvbox_bold')
30 | let g:gruvbox_bold=1
31 | endif
32 | if !exists('g:gruvbox_italic')
33 | if has('gui_running') || $TERM_ITALICS ==# 'true'
34 | let g:gruvbox_italic=1
35 | else
36 | let g:gruvbox_italic=0
37 | endif
38 | endif
39 | if !exists('g:gruvbox_undercurl')
40 | let g:gruvbox_undercurl=1
41 | endif
42 | if !exists('g:gruvbox_underline')
43 | let g:gruvbox_underline=1
44 | endif
45 | if !exists('g:gruvbox_inverse')
46 | let g:gruvbox_inverse=1
47 | endif
48 |
49 | if !exists('g:gruvbox_guisp_fallback') || index(['fg', 'bg'], g:gruvbox_guisp_fallback) == -1
50 | let g:gruvbox_guisp_fallback='NONE'
51 | endif
52 |
53 | if !exists('g:gruvbox_improved_strings')
54 | let g:gruvbox_improved_strings=0
55 | endif
56 |
57 | if !exists('g:gruvbox_improved_warnings')
58 | let g:gruvbox_improved_warnings=0
59 | endif
60 |
61 | if !exists('g:gruvbox_termcolors')
62 | let g:gruvbox_termcolors=256
63 | endif
64 |
65 | if !exists('g:gruvbox_invert_indent_guides')
66 | let g:gruvbox_invert_indent_guides=0
67 | endif
68 |
69 | if exists('g:gruvbox_contrast')
70 | echo 'g:gruvbox_contrast is deprecated; use g:gruvbox_contrast_light and g:gruvbox_contrast_dark instead'
71 | endif
72 |
73 | if !exists('g:gruvbox_contrast_dark')
74 | let g:gruvbox_contrast_dark='medium'
75 | endif
76 |
77 | if !exists('g:gruvbox_contrast_light')
78 | let g:gruvbox_contrast_light='medium'
79 | endif
80 |
81 | if !exists('g:gruvbox_legacy_language_groups')
82 | let g:gruvbox_legacy_language_groups=0
83 | endif
84 |
85 | if !exists('g:gruvbox_treesitter')
86 | let g:gruvbox_treesitter=has('nvim-0.7.3')
87 | endif
88 |
89 | let s:is_dark=(&background ==# 'dark')
90 |
91 | " }}}
92 | " Palette Utility Functions: {{{
93 |
94 | function! s:Color(name, default, ...)
95 | " color already set, validate option
96 | if has_key(s:gb, a:name)
97 | let l:color = s:gb[a:name]
98 |
99 | if type(l:color) == type('')
100 | " gui color only
101 | let s:gb[a:name] = copy(a:default)
102 | let s:gb[a:name][0] = l:color
103 | return 1
104 | elseif type(l:color) == type(0)
105 | " terminal color only
106 | let s:gb[a:name] = copy(a:default)
107 | let s:gb[a:name][1] = l:color
108 | return 1
109 | elseif type(l:color) == type([])
110 | \ && len(l:color) == 2
111 | \ && type(l:color[0]) == type('')
112 | \ && type(l:color[1]) == type(0)
113 | " gui and terminal color
114 | return 1
115 | else
116 | " invalid value
117 | echo a:name 'is invalid, usage: let g:gruvbox_colors.color = (["#ffffff", 255]|"#ffffff"|255)'
118 | return 0
119 | endif
120 |
121 | endif
122 |
123 | " set default option
124 | let s:gb[a:name] = a:default
125 | return 1
126 | endfunction
127 |
128 | " }}}
129 | " Palette: {{{
130 |
131 | " get the global gruvbox palette options, if any
132 | let g:gruvbox_colors = get(g:, 'gruvbox_colors', {})
133 | " initialize the script palette
134 | let s:gb = copy(g:gruvbox_colors)
135 | let g:current_gruvbox_colors = s:gb
136 |
137 | " set palette default colors
138 | call s:Color('dark0_hard', ['#1d2021', 234]) " 29-32-33
139 | call s:Color('dark0', ['#282828', 235]) " 40-40-40
140 | call s:Color('dark0_soft', ['#32302f', 236]) " 50-48-47
141 | call s:Color('dark1', ['#3c3836', 237]) " 60-56-54
142 | call s:Color('dark2', ['#504945', 239]) " 80-73-69
143 | call s:Color('dark3', ['#665c54', 241]) " 102-92-84
144 | call s:Color('dark4', ['#7c6f64', 243]) " 124-111-100
145 | call s:Color('dark4_256', ['#7c6f64', 243]) " 124-111-100
146 |
147 | call s:Color('gray_245', ['#928374', 245]) " 146-131-116
148 | call s:Color('gray_244', ['#928374', 244]) " 146-131-116
149 |
150 | call s:Color('light0_hard', ['#f9f5d7', 230]) " 249-245-215
151 | call s:Color('light0', ['#fbf1c7', 229]) " 253-244-193
152 | call s:Color('light0_soft', ['#f2e5bc', 228]) " 242-229-188
153 | call s:Color('light1', ['#ebdbb2', 223]) " 235-219-178
154 | call s:Color('light2', ['#d5c4a1', 250]) " 213-196-161
155 | call s:Color('light3', ['#bdae93', 248]) " 189-174-147
156 | call s:Color('light4', ['#a89984', 246]) " 168-153-132
157 | call s:Color('light4_256', ['#a89984', 246]) " 168-153-132
158 |
159 | call s:Color('bright_red', ['#fb4934', 167]) " 251-73-52
160 | call s:Color('bright_green', ['#b8bb26', 142]) " 184-187-38
161 | call s:Color('bright_yellow', ['#fabd2f', 214]) " 250-189-47
162 | call s:Color('bright_blue', ['#83a598', 109]) " 131-165-152
163 | call s:Color('bright_purple', ['#d3869b', 175]) " 211-134-155
164 | call s:Color('bright_aqua', ['#8ec07c', 108]) " 142-192-124
165 | call s:Color('bright_orange', ['#fe8019', 208]) " 254-128-25
166 |
167 | call s:Color('neutral_red', ['#cc241d', 124]) " 204-36-29
168 | call s:Color('neutral_green', ['#98971a', 106]) " 152-151-26
169 | call s:Color('neutral_yellow', ['#d79921', 172]) " 215-153-33
170 | call s:Color('neutral_blue', ['#458588', 66]) " 69-133-136
171 | call s:Color('neutral_purple', ['#b16286', 132]) " 177-98-134
172 | call s:Color('neutral_aqua', ['#689d6a', 72]) " 104-157-106
173 | call s:Color('neutral_orange', ['#d65d0e', 166]) " 214-93-14
174 |
175 | call s:Color('faded_red', ['#9d0006', 88]) " 157-0-6
176 | call s:Color('faded_green', ['#79740e', 100]) " 121-116-14
177 | call s:Color('faded_yellow', ['#b57614', 136]) " 181-118-20
178 | call s:Color('faded_blue', ['#076678', 24]) " 7-102-120
179 | call s:Color('faded_purple', ['#8f3f71', 96]) " 143-63-113
180 | call s:Color('faded_aqua', ['#427b58', 65]) " 66-123-88
181 | call s:Color('faded_orange', ['#af3a03', 130]) " 175-58-3
182 |
183 | call s:Color('none', ['NONE','NONE'])
184 | call s:Color('NONE', ['NONE','NONE'])
185 | call s:Color('None', ['NONE','NONE'])
186 |
187 | " }}}
188 | " Setup Emphasis: {{{
189 |
190 | let s:bold = 'bold,'
191 | if g:gruvbox_bold == 0
192 | let s:bold = ''
193 | endif
194 |
195 | let s:italic = 'italic,'
196 | if g:gruvbox_italic == 0
197 | let s:italic = ''
198 | endif
199 |
200 | let s:underline = 'underline,'
201 | if g:gruvbox_underline == 0
202 | let s:underline = ''
203 | endif
204 |
205 | let s:undercurl = 'undercurl,'
206 | if g:gruvbox_undercurl == 0
207 | let s:undercurl = ''
208 | endif
209 |
210 | let s:inverse = 'inverse,'
211 | if g:gruvbox_inverse == 0
212 | let s:inverse = ''
213 | endif
214 |
215 | " }}}
216 | " Setup Colors: {{{
217 |
218 | let s:vim_bg = ['bg', 'bg']
219 | let s:vim_fg = ['fg', 'fg']
220 | let s:none = ['NONE', 'NONE']
221 |
222 | " determine relative colors
223 | if s:is_dark
224 | let s:bg0 = s:gb.dark0
225 | if g:gruvbox_contrast_dark ==# 'soft'
226 | let s:bg0 = s:gb.dark0_soft
227 | elseif g:gruvbox_contrast_dark ==# 'hard'
228 | let s:bg0 = s:gb.dark0_hard
229 | endif
230 |
231 | let s:bg1 = s:gb.dark1
232 | let s:bg2 = s:gb.dark2
233 | let s:bg3 = s:gb.dark3
234 | let s:bg4 = s:gb.dark4
235 |
236 | let s:gray = s:gb.gray_245
237 |
238 | let s:fg0 = s:gb.light0
239 | let s:fg1 = s:gb.light1
240 | let s:fg2 = s:gb.light2
241 | let s:fg3 = s:gb.light3
242 | let s:fg4 = s:gb.light4
243 |
244 | let s:fg4_256 = s:gb.light4_256
245 |
246 | let s:red = s:gb.bright_red
247 | let s:green = s:gb.bright_green
248 | let s:yellow = s:gb.bright_yellow
249 | let s:blue = s:gb.bright_blue
250 | let s:purple = s:gb.bright_purple
251 | let s:aqua = s:gb.bright_aqua
252 | let s:orange = s:gb.bright_orange
253 | else
254 | let s:bg0 = s:gb.light0
255 | if g:gruvbox_contrast_light ==# 'soft'
256 | let s:bg0 = s:gb.light0_soft
257 | elseif g:gruvbox_contrast_light ==# 'hard'
258 | let s:bg0 = s:gb.light0_hard
259 | endif
260 |
261 | let s:bg1 = s:gb.light1
262 | let s:bg2 = s:gb.light2
263 | let s:bg3 = s:gb.light3
264 | let s:bg4 = s:gb.light4
265 |
266 | let s:gray = s:gb.gray_244
267 |
268 | let s:fg0 = s:gb.dark0
269 | let s:fg1 = s:gb.dark1
270 | let s:fg2 = s:gb.dark2
271 | let s:fg3 = s:gb.dark3
272 | let s:fg4 = s:gb.dark4
273 |
274 | let s:fg4_256 = s:gb.dark4_256
275 |
276 | let s:red = s:gb.faded_red
277 | let s:green = s:gb.faded_green
278 | let s:yellow = s:gb.faded_yellow
279 | let s:blue = s:gb.faded_blue
280 | let s:purple = s:gb.faded_purple
281 | let s:aqua = s:gb.faded_aqua
282 | let s:orange = s:gb.faded_orange
283 | endif
284 |
285 | " reset to 16 colors fallback
286 | if g:gruvbox_termcolors == 16
287 | let s:bg0[1] = 0
288 | let s:fg4[1] = 7
289 | let s:gray[1] = 8
290 | let s:red[1] = 9
291 | let s:green[1] = 10
292 | let s:yellow[1] = 11
293 | let s:blue[1] = 12
294 | let s:purple[1] = 13
295 | let s:aqua[1] = 14
296 | let s:fg1[1] = 15
297 | endif
298 |
299 | " save current relative colors back to palette dictionary
300 | call s:Color('bg0', s:bg0)
301 | call s:Color('bg1', s:bg1)
302 | call s:Color('bg2', s:bg2)
303 | call s:Color('bg3', s:bg3)
304 | call s:Color('bg4', s:bg4)
305 |
306 | call s:Color('gray', s:gray)
307 |
308 | call s:Color('fg0', s:fg0)
309 | call s:Color('fg1', s:fg1)
310 | call s:Color('fg2', s:fg2)
311 | call s:Color('fg3', s:fg3)
312 | call s:Color('fg4', s:fg4)
313 |
314 | call s:Color('fg4_256', s:fg4_256)
315 |
316 | call s:Color('red', s:red)
317 | call s:Color('green', s:green)
318 | call s:Color('yellow', s:yellow)
319 | call s:Color('blue', s:blue)
320 | call s:Color('purple', s:purple)
321 | call s:Color('aqua', s:aqua)
322 | call s:Color('orange', s:orange)
323 |
324 | " }}}
325 | " Setup Terminal Colors For Neovim: {{{
326 |
327 | if has('nvim')
328 | let g:terminal_color_0 = s:gb.bg0[0]
329 | let g:terminal_color_8 = s:gb.gray[0]
330 |
331 | let g:terminal_color_1 = s:gb.neutral_red[0]
332 | let g:terminal_color_9 = s:gb.red[0]
333 |
334 | let g:terminal_color_2 = s:gb.neutral_green[0]
335 | let g:terminal_color_10 = s:gb.green[0]
336 |
337 | let g:terminal_color_3 = s:gb.neutral_yellow[0]
338 | let g:terminal_color_11 = s:gb.yellow[0]
339 |
340 | let g:terminal_color_4 = s:gb.neutral_blue[0]
341 | let g:terminal_color_12 = s:gb.blue[0]
342 |
343 | let g:terminal_color_5 = s:gb.neutral_purple[0]
344 | let g:terminal_color_13 = s:gb.purple[0]
345 |
346 | let g:terminal_color_6 = s:gb.neutral_aqua[0]
347 | let g:terminal_color_14 = s:gb.aqua[0]
348 |
349 | let g:terminal_color_7 = s:gb.fg4[0]
350 | let g:terminal_color_15 = s:gb.fg1[0]
351 | endif
352 |
353 | " }}}
354 | " Setup Terminal Colors For Vim with termguicolors: {{{
355 |
356 | if exists('*term_setansicolors')
357 | let g:terminal_ansi_colors = repeat([0], 16)
358 |
359 | let g:terminal_ansi_colors[0] = s:gb.bg0[0]
360 | let g:terminal_ansi_colors[8] = s:gb.gray[0]
361 |
362 | let g:terminal_ansi_colors[1] = s:gb.neutral_red[0]
363 | let g:terminal_ansi_colors[9] = s:gb.red[0]
364 |
365 | let g:terminal_ansi_colors[2] = s:gb.neutral_green[0]
366 | let g:terminal_ansi_colors[10] = s:gb.green[0]
367 |
368 | let g:terminal_ansi_colors[3] = s:gb.neutral_yellow[0]
369 | let g:terminal_ansi_colors[11] = s:gb.yellow[0]
370 |
371 | let g:terminal_ansi_colors[4] = s:gb.neutral_blue[0]
372 | let g:terminal_ansi_colors[12] = s:gb.blue[0]
373 |
374 | let g:terminal_ansi_colors[5] = s:gb.neutral_purple[0]
375 | let g:terminal_ansi_colors[13] = s:gb.purple[0]
376 |
377 | let g:terminal_ansi_colors[6] = s:gb.neutral_aqua[0]
378 | let g:terminal_ansi_colors[14] = s:gb.aqua[0]
379 |
380 | let g:terminal_ansi_colors[7] = s:gb.fg4[0]
381 | let g:terminal_ansi_colors[15] = s:gb.fg1[0]
382 | endif
383 |
384 | " }}}
385 | " Overload Setting: {{{
386 |
387 | let s:hls_cursor = s:gb.orange
388 | if exists('g:gruvbox_hls_cursor')
389 | let s:hls_cursor = get(s:gb, g:gruvbox_hls_cursor)
390 | endif
391 |
392 | let s:hls_highlight = s:gb.yellow
393 | if exists('g:gruvbox_hls_highlight')
394 | let s:hls_highlight = get(s:gb, g:gruvbox_hls_highlight)
395 | endif
396 |
397 | let s:number_column = s:none
398 | if exists('g:gruvbox_number_column')
399 | let s:number_column = get(s:gb, g:gruvbox_number_column)
400 | endif
401 |
402 | let s:sign_column = s:gb.bg1
403 | if exists('g:gruvbox_sign_column')
404 | let s:sign_column = get(s:gb, g:gruvbox_sign_column)
405 | endif
406 |
407 | let s:color_column = s:gb.bg1
408 | if exists('g:gruvbox_color_column')
409 | let s:color_column = get(s:gb, g:gruvbox_color_column)
410 | endif
411 |
412 | let s:cursorline = s:gb.bg1
413 | if exists('g:gruvbox_cursorline')
414 | let s:cursorline = get(s:gb, g:gruvbox_cursorline)
415 | endif
416 |
417 | let s:vert_split = s:gb.bg0
418 | if exists('g:gruvbox_vert_split')
419 | let s:vert_split = get(s:gb, g:gruvbox_vert_split)
420 | endif
421 |
422 | let s:invert_signs = ''
423 | if exists('g:gruvbox_invert_signs')
424 | if g:gruvbox_invert_signs == 1
425 | let s:invert_signs = s:inverse
426 | endif
427 | endif
428 |
429 | let s:invert_selection = s:inverse
430 | if exists('g:gruvbox_invert_selection')
431 | if g:gruvbox_invert_selection == 0
432 | let s:invert_selection = ''
433 | endif
434 | endif
435 |
436 | let s:invert_tabline = ''
437 | if exists('g:gruvbox_invert_tabline')
438 | if g:gruvbox_invert_tabline == 1
439 | let s:invert_tabline = s:inverse
440 | endif
441 | endif
442 |
443 | let s:tabline_sel = s:gb.green
444 | if exists('g:gruvbox_tabline_sel')
445 | let s:tabline_sel = get(s:gb, g:gruvbox_tabline_sel)
446 | endif
447 |
448 | let s:italicize_comments = s:italic
449 | if exists('g:gruvbox_italicize_comments')
450 | if g:gruvbox_italicize_comments == 0
451 | let s:italicize_comments = ''
452 | endif
453 | endif
454 |
455 | let s:italicize_strings = ''
456 | if exists('g:gruvbox_italicize_strings')
457 | if g:gruvbox_italicize_strings == 1
458 | let s:italicize_strings = s:italic
459 | endif
460 | endif
461 |
462 | let s:italicize_operators = ''
463 | if exists('g:gruvbox_italicize_operators')
464 | if g:gruvbox_italicize_operators == 1
465 | let s:italicize_operators = s:italic
466 | endif
467 | endif
468 |
469 | " }}}
470 | " Highlighting Function: {{{
471 |
472 | function! s:HL(group, fg, ...)
473 | " Arguments: group, guifg, guibg, gui, guisp
474 |
475 | " foreground
476 | let fg = a:fg
477 |
478 | " background
479 | if a:0 >= 1
480 | let bg = a:1
481 | else
482 | let bg = s:none
483 | endif
484 |
485 | " emphasis
486 | if a:0 >= 2 && strlen(a:2)
487 | let emstr = a:2
488 | else
489 | let emstr = 'NONE,'
490 | endif
491 |
492 | " special fallback
493 | if a:0 >= 3
494 | if g:gruvbox_guisp_fallback !=# 'NONE'
495 | let fg = a:3
496 | endif
497 |
498 | " bg fallback mode should invert higlighting
499 | if g:gruvbox_guisp_fallback ==# 'bg'
500 | let emstr .= 'inverse,'
501 | endif
502 | endif
503 |
504 | let histring = [ 'hi', a:group,
505 | \ 'guifg=' . fg[0], 'ctermfg=' . fg[1],
506 | \ 'guibg=' . bg[0], 'ctermbg=' . bg[1],
507 | \ 'gui=' . emstr[:-2], 'cterm=' . emstr[:-2]
508 | \ ]
509 |
510 | " special
511 | if a:0 >= 3
512 | call add(histring, 'guisp=' . a:3[0])
513 | endif
514 |
515 | execute join(histring, ' ')
516 | endfunction
517 |
518 | " }}}
519 | " Gruvbox Hi Groups: {{{
520 |
521 | " memoize common hi groups
522 | call s:HL('GruvboxFg0', s:gb.fg0)
523 | call s:HL('GruvboxFg1', s:gb.fg1)
524 | call s:HL('GruvboxFg2', s:gb.fg2)
525 | call s:HL('GruvboxFg3', s:gb.fg3)
526 | call s:HL('GruvboxFg4', s:gb.fg4)
527 | call s:HL('GruvboxGray', s:gb.gray)
528 | call s:HL('GruvboxBg0', s:gb.bg0)
529 | call s:HL('GruvboxBg1', s:gb.bg1)
530 | call s:HL('GruvboxBg2', s:gb.bg2)
531 | call s:HL('GruvboxBg3', s:gb.bg3)
532 | call s:HL('GruvboxBg4', s:gb.bg4)
533 |
534 | call s:HL('GruvboxRed', s:gb.red)
535 | call s:HL('GruvboxRedBold', s:gb.red, s:none, s:bold)
536 | call s:HL('GruvboxGreen', s:gb.green)
537 | call s:HL('GruvboxGreenBold', s:gb.green, s:none, s:bold)
538 | call s:HL('GruvboxYellow', s:gb.yellow)
539 | call s:HL('GruvboxYellowBold', s:gb.yellow, s:none, s:bold)
540 | call s:HL('GruvboxBlue', s:gb.blue)
541 | call s:HL('GruvboxBlueBold', s:gb.blue, s:none, s:bold)
542 | call s:HL('GruvboxPurple', s:gb.purple)
543 | call s:HL('GruvboxPurpleBold', s:gb.purple, s:none, s:bold)
544 | call s:HL('GruvboxAqua', s:gb.aqua)
545 | call s:HL('GruvboxAquaBold', s:gb.aqua, s:none, s:bold)
546 | call s:HL('GruvboxOrange', s:gb.orange)
547 | call s:HL('GruvboxOrangeBold', s:gb.orange, s:none, s:bold)
548 |
549 | call s:HL('GruvboxRedSign', s:gb.red, s:sign_column, s:invert_signs)
550 | call s:HL('GruvboxGreenSign', s:gb.green, s:sign_column, s:invert_signs)
551 | call s:HL('GruvboxYellowSign', s:gb.yellow, s:sign_column, s:invert_signs)
552 | call s:HL('GruvboxBlueSign', s:gb.blue, s:sign_column, s:invert_signs)
553 | call s:HL('GruvboxPurpleSign', s:gb.purple, s:sign_column, s:invert_signs)
554 | call s:HL('GruvboxAquaSign', s:gb.aqua, s:sign_column, s:invert_signs)
555 | call s:HL('GruvboxOrangeSign', s:gb.orange, s:sign_column, s:invert_signs)
556 |
557 | call s:HL('GruvboxRedUnderline', s:none, s:none, s:undercurl, s:gb.red)
558 | call s:HL('GruvboxGreenUnderline', s:none, s:none, s:undercurl, s:gb.green)
559 | call s:HL('GruvboxYellowUnderline', s:none, s:none, s:undercurl, s:gb.yellow)
560 | call s:HL('GruvboxBlueUnderline', s:none, s:none, s:undercurl, s:gb.blue)
561 | call s:HL('GruvboxPurpleUnderline', s:none, s:none, s:undercurl, s:gb.purple)
562 | call s:HL('GruvboxAquaUnderline', s:none, s:none, s:undercurl, s:gb.aqua)
563 | call s:HL('GruvboxOrangeUnderline', s:none, s:none, s:undercurl, s:gb.orange)
564 |
565 | " }}}
566 |
567 | " Vanilla colorscheme ---------------------------------------------------------
568 | " General UI: {{{
569 |
570 | " Normal text
571 | call s:HL('Normal', s:gb.fg1, s:bg0)
572 |
573 | " Correct background (see issue #7):
574 | " --- Problem with changing between dark and light on 256 color terminal
575 | " --- https://github.com/morhetz/gruvbox/issues/7
576 | if exists('v:vim_did_enter')
577 | let g:gruvbox_vim_did_enter = v:vim_did_enter
578 | else
579 | augroup GruvboxVimEnter
580 | au!
581 | autocmd VimEnter * let g:gruvbox_vim_did_enter = 1
582 | augroup End
583 | endif
584 | if get(g:, 'gruvbox_vim_did_enter', 0)
585 | if s:is_dark
586 | set background=dark
587 | else
588 | set background=light
589 | endif
590 | endif
591 |
592 | if v:version >= 700
593 | " Screen line that the cursor is
594 | call s:HL('CursorLine', s:none, s:cursorline)
595 | " Screen column that the cursor is
596 | hi! link CursorColumn CursorLine
597 |
598 | " Tab pages line filler
599 | call s:HL('TabLineFill', s:gb.bg4, s:gb.bg1, s:invert_tabline)
600 | " Active tab page label
601 | call s:HL('TabLineSel', s:tabline_sel, s:gb.bg1, s:invert_tabline)
602 | " Not active tab page label
603 | hi! link TabLine TabLineFill
604 |
605 | " Match paired bracket under the cursor
606 | call s:HL('MatchParen', s:none, s:gb.bg3, s:bold)
607 | endif
608 |
609 | if v:version >= 703
610 | " Highlighted screen columns
611 | call s:HL('ColorColumn', s:none, s:color_column)
612 |
613 | " Concealed element: \lambda → λ
614 | call s:HL('Conceal', s:gb.blue, s:none)
615 |
616 | " Line number of CursorLine
617 | call s:HL('CursorLineNr', s:gb.yellow, s:cursorline)
618 | endif
619 |
620 | hi! link NonText GruvboxBg2
621 | hi! link SpecialKey GruvboxFg4
622 |
623 | call s:HL('Visual', s:none, s:gb.bg3, s:invert_selection)
624 | hi! link VisualNOS Visual
625 |
626 | call s:HL('Search', s:hls_highlight, s:gb.bg0, s:inverse)
627 | call s:HL('IncSearch', s:hls_cursor, s:gb.bg0, s:inverse)
628 |
629 | call s:HL('QuickFixLine', s:gb.bg0, s:gb.yellow, s:bold)
630 |
631 | call s:HL('Underlined', s:fg3, s:none, s:underline)
632 |
633 | call s:HL('StatusLine', s:gb.bg2, s:gb.fg1, s:inverse)
634 | call s:HL('StatusLineNC', s:gb.bg1, s:gb.fg4, s:inverse)
635 |
636 | " The column separating vertically split windows
637 | call s:HL('VertSplit', s:gb.bg3, s:vert_split)
638 |
639 | " Current match in wildmenu completion
640 | call s:HL('WildMenu', s:gb.blue, s:gb.bg2, s:bold)
641 |
642 | " Directory names, special names in listing
643 | hi! link Directory GruvboxGreenBold
644 |
645 | " Titles for output from :set all, :autocmd, etc.
646 | hi! link Title GruvboxGreenBold
647 |
648 | " Error messages on the command line
649 | call s:HL('ErrorMsg',s:gb.bg0, s:gb.red, s:bold)
650 | " More prompt: -- More --
651 | hi! link MoreMsg GruvboxYellowBold
652 | " Current mode message: -- INSERT --
653 | hi! link ModeMsg GruvboxYellowBold
654 | " 'Press enter' prompt and yes/no questions
655 | hi! link Question GruvboxOrangeBold
656 | " Warning messages
657 | hi! link WarningMsg GruvboxRedBold
658 |
659 | " }}}
660 | " Gutter: {{{
661 |
662 | " Line number for :number and :# commands
663 | call s:HL('LineNr', s:gb.bg4, s:number_column)
664 |
665 | " Column where signs are displayed
666 | call s:HL('SignColumn', s:none, s:sign_column)
667 |
668 | " Line used for closed folds
669 | call s:HL('Folded', s:gb.gray, s:gb.bg1, s:italic)
670 | " Column where folds are displayed
671 | call s:HL('FoldColumn', s:gb.gray, s:gb.bg1)
672 |
673 | " }}}
674 | " Cursor: {{{
675 |
676 | " Character under cursor
677 | call s:HL('Cursor', s:none, s:none, s:inverse)
678 | " Visual mode cursor, selection
679 | hi! link vCursor Cursor
680 | " Input moder cursor
681 | hi! link iCursor Cursor
682 | " Language mapping cursor
683 | hi! link lCursor Cursor
684 |
685 | " }}}
686 | " Syntax Highlighting: {{{
687 |
688 | " Special characters and variables
689 | if g:gruvbox_improved_strings == 0
690 | hi! link Special GruvboxOrange
691 | else
692 | call s:HL('Special', s:gb.orange, s:gb.bg1, s:italicize_strings)
693 | endif
694 |
695 | " Default comment color
696 | call s:HL('Comment', s:gb.gray, s:none, s:italicize_comments)
697 | " Comment message "TODO" keywords
698 | call s:HL('Todo', s:vim_fg, s:none, s:bold . s:italic)
699 | " Comment message "ERROR" keywords
700 | call s:HL('Error', s:gb.red, s:none, s:bold . s:inverse)
701 |
702 | " Link text
703 | call s:HL('Link', s:gb.purple, s:none, s:underline)
704 | " Heading text
705 | hi! link H1 GruvboxGreenBold
706 | hi! link H2 GruvboxGreenBold
707 | hi! link H3 GruvboxGreen
708 | hi! link H4 GruvboxGreen
709 | hi! link H5 GruvboxGreen
710 | hi! link H6 GruvboxGreen
711 | " Example code in comments
712 | hi! link CodeBlock GruvboxAqua
713 | " Quote text
714 | hi! link Quote GruvboxFg3
715 | " Normal text
716 | hi! link Text GruvboxFg1
717 |
718 | " Generic statement
719 | hi! link Statement GruvboxRed
720 | " if, then, else, endif, switch, etc.
721 | hi! link Conditional GruvboxRed
722 | " for, do, while, etc.
723 | hi! link Repeat GruvboxRed
724 | " case, default, etc.
725 | hi! link Label GruvboxRed
726 | " try, catch, throw
727 | hi! link Exception GruvboxRed
728 | " sizeof, "+", "*", etc.
729 | call s:HL('Operator', s:gb.orange, s:none, s:italicize_operators)
730 | " Punctuation
731 | hi! link Punctuation GruvboxBlue
732 | hi! link Delimiter Punctuation
733 | hi! link Bracket Punctuation
734 | hi! link Noise Punctuation
735 | " Any other keyword
736 | hi! link Keyword GruvboxRed
737 |
738 | " Variable name
739 | if g:gruvbox_legacy_language_groups
740 | hi! link Identifier GruvboxBlue
741 | else
742 | hi! link Identifier GruvboxFg1
743 | endif
744 | " Field/attribute names
745 | hi! link Field GruvboxAqua
746 | " Tag names
747 | hi! link Tag GruvboxGreen
748 | " Function name
749 | hi! link Function GruvboxGreenBold
750 |
751 | " Generic preprocessor
752 | hi! link PreProc GruvboxAqua
753 | " Preprocessor #include
754 | hi! link Include GruvboxAqua
755 | " Preprocessor #define
756 | hi! link Define GruvboxAqua
757 | " Same as Define
758 | hi! link Macro GruvboxAqua
759 | " Preprocessor #if, #else, #endif, etc.
760 | hi! link PreCondit GruvboxAqua
761 |
762 | " Generic constant
763 | hi! link Constant GruvboxPurple
764 | " Character constant: 'c', '/n'
765 | hi! link Character GruvboxPurple
766 | " String constant: "this is a string"
767 | if g:gruvbox_improved_strings == 0
768 | call s:HL('String', s:gb.green, s:none, s:italicize_strings)
769 | else
770 | call s:HL('String', s:gb.fg1, s:gb.bg1, s:italicize_strings)
771 | endif
772 | " Boolean constant: TRUE, false
773 | hi! link Boolean GruvboxPurple
774 | " Number constant: 234, 0xff
775 | hi! link Number GruvboxPurple
776 | " Floating point constant: 2.3e10
777 | hi! link Float GruvboxPurple
778 |
779 | " Generic type
780 | hi! link Type GruvboxYellow
781 | if g:gruvbox_legacy_language_groups
782 | " Generic type
783 | hi! link StorageClass GruvboxOrange
784 | " struct, union, enum, etc.
785 | hi! link Structure GruvboxAqua
786 | " typedef
787 | hi! link Typedef GruvboxYellow
788 | else
789 | hi! link StorageClass GruvboxYellow
790 | hi! link Structure GruvboxYellow
791 | hi! link Typedef GruvboxYellow
792 | endif
793 |
794 | " }}}
795 | " Completion Menu: {{{
796 |
797 | if v:version >= 700
798 | " Popup menu: normal item
799 | call s:HL('Pmenu', s:gb.fg1, s:gb.bg2)
800 | " Popup menu: selected item
801 | call s:HL('PmenuSel', s:gb.bg2, s:gb.blue, s:bold)
802 | " Popup menu: scrollbar
803 | call s:HL('PmenuSbar', s:none, s:gb.bg2)
804 | " Popup menu: scrollbar thumb
805 | call s:HL('PmenuThumb', s:none, s:gb.bg4)
806 | endif
807 |
808 | " }}}
809 | " Diffs: {{{
810 |
811 | call s:HL('DiffDelete', s:gb.red, s:gb.bg0, s:inverse)
812 | call s:HL('DiffAdd', s:gb.green, s:gb.bg0, s:inverse)
813 | "call s:HL('DiffChange', s:gb.bg0, s:gb.blue)
814 | "call s:HL('DiffText', s:gb.bg0, s:gb.yellow)
815 |
816 | " Alternative setting
817 | call s:HL('DiffChange', s:gb.aqua, s:gb.bg0, s:inverse)
818 | call s:HL('DiffText', s:gb.yellow, s:gb.bg0, s:inverse)
819 |
820 | " }}}
821 | " Spelling: {{{
822 |
823 | if has('spell')
824 | " Not capitalised word, or compile warnings
825 | if g:gruvbox_improved_warnings == 0
826 | hi! link SpellCap GruvboxBlueUnderline
827 | else
828 | call s:HL('SpellCap', s:gb.green, s:none, s:bold . s:italic)
829 | endif
830 | " Not recognized word
831 | hi! link SpellBad GruvboxRedUnderline
832 | " Wrong spelling for selected region
833 | hi! link SpellLocal GruvboxAquaUnderline
834 | " Rare word
835 | hi! link SpellRare GruvboxPurpleUnderline
836 | endif
837 |
838 | " }}}
839 | " LSP: {{{
840 |
841 | if has('nvim')
842 | hi! link DiagnosticError GruvboxRed
843 | hi! link DiagnosticSignError GruvboxRedSign
844 | hi! link DiagnosticUnderlineError GruvboxRedUnderline
845 |
846 | hi! link DiagnosticWarn GruvboxYellow
847 | hi! link DiagnosticSignWarn GruvboxYellowSign
848 | hi! link DiagnosticUnderlineWarn GruvboxYellowUnderline
849 |
850 | hi! link DiagnosticInfo GruvboxBlue
851 | hi! link DiagnosticSignInfo GruvboxBlueSign
852 | hi! link DiagnosticUnderlineInfo GruvboxBlueUnderline
853 |
854 | hi! link DiagnosticHint GruvboxAqua
855 | hi! link DiagnosticSignHint GruvboxAquaSign
856 | hi! link DiagnosticUnderlineHint GruvboxAquaUnderline
857 |
858 | hi! link LspReferenceText GruvboxYellowBold
859 | hi! link LspReferenceRead GruvboxYellowBold
860 | hi! link LspReferenceWrite GruvboxOrangeBold
861 |
862 | hi! link LspCodeLens GruvboxGray
863 |
864 | " Backward Compatibilty prior to (https://github.com/neovim/neovim/pull/15585)
865 | hi! link LspDiagnosticsDefaultError GruvboxRed
866 | hi! link LspDiagnosticsSignError GruvboxRedSign
867 | hi! link LspDiagnosticsUnderlineError GruvboxRedUnderline
868 |
869 | hi! link LspDiagnosticsDefaultWarning GruvboxYellow
870 | hi! link LspDiagnosticsSignWarning GruvboxYellowSign
871 | hi! link LspDiagnosticsUnderlineWarning GruvboxYellowUnderline
872 |
873 | hi! link LspDiagnosticsDefaultInformation GruvboxBlue
874 | hi! link LspDiagnosticsSignInformation GruvboxBlueSign
875 | hi! link LspDiagnosticsUnderlineInformation GruvboxBlueUnderline
876 |
877 | hi! link LspDiagnosticsDefaultHint GruvboxAqua
878 | hi! link LspDiagnosticsSignHint GruvboxAquaSign
879 | hi! link LspDiagnosticsUnderlineHint GruvboxAquaUnderline
880 | endif
881 |
882 | " LSP highlighting
883 | if g:gruvbox_treesitter
884 | hi! link @lsp.type.member Function
885 | hi! link @lsp.type.property Field
886 | hi! link @lsp.typemod.variable.defaultLibrary @variable.builtin
887 | endif
888 |
889 | " }}}
890 | " Treesitter: {{{
891 |
892 | if g:gruvbox_treesitter
893 | hi! link @comment Comment
894 | hi! link @error Error
895 | hi! link @none NONE
896 | hi! link @preproc PreProc
897 | hi! link @keyword.directive PreProc
898 | hi! link @define Define
899 | hi! link @keyword.directive.define Define
900 | hi! link @operator Operator
901 |
902 | hi! link @punctuation Punctuation
903 | hi! link @punctuation.delimiter Delimiter
904 | hi! link @punctuation.bracket Bracket
905 | "hi! link @punctuation.special Special
906 |
907 | hi! link @string String
908 | "hi! link @string.regex String
909 | "hi! link @string.regexp String
910 | hi! link @string.escape Special
911 | "hi! link @string.special Special
912 |
913 | hi! link @character Character
914 | hi! link @character.special Special
915 |
916 | hi! link @boolean Boolean
917 | hi! link @number Number
918 | hi! link @float Float
919 | hi! link @number.float Float
920 |
921 | hi! link @function Function
922 | "hi! link @function.builtin Special
923 | "hi! link @function.call Special
924 | hi! link @function.macro Macro
925 |
926 | hi! link @method Function
927 | hi! link @function.method Function
928 | hi! link @method.call Function
929 | hi! link @function.method.call Function
930 |
931 | hi! link @constructor Function
932 | hi! link @parameter Identifier
933 | hi! link @variable.parameter Identifier
934 |
935 | hi! link @keyword Keyword
936 | "hi! link @keyword.function Function
937 | "hi! link @keyword.operator Operator
938 | "hi! link @keyword.return Special
939 |
940 | hi! link @conditional Conditional
941 | hi! link @keyword.conditional Conditional
942 | hi! link @conditional.ternary Operator
943 | hi! link @keyword.conditional.ternary Operator
944 | hi! link @repeat Repeat
945 | hi! link @keyword.repeat Repeat
946 | hi! link @debug Debug
947 | hi! link @keyword.debug Debug
948 | hi! link @label Label
949 | " Fix JSON fields appearing as labels (supposed to be "case", "default", etc.)
950 | hi! link @label.json Field
951 | hi! link @include Include
952 | hi! link @keyword.import Include
953 | hi! link @exception Exception
954 | hi! link @keyword.exception Exception
955 |
956 | hi! link @type Type
957 | "hi! link @type.builtin Type
958 | "hi! link @type.qualifier Type
959 | hi! link @type.definition Typedef
960 |
961 | hi! link @storageclass StorageClass
962 | hi! link @keyword.storage StorageClass
963 | hi! link @attribute PreProc
964 | hi! link @field Field
965 | hi! link @variable.member Field
966 | hi! link @property Field
967 |
968 | hi! link @variable Identifier
969 | hi! link @variable.builtin Special
970 |
971 | hi! link @constant Constant
972 | "hi! link @constant.builtin Special
973 | hi! link @constant.macro Macro
974 |
975 | hi! link @namespace Include
976 | hi! link @module Include
977 | "hi! link @symbol Identifier
978 | "hi! link @string.special.symbol Identifier
979 |
980 | hi! link @text Text
981 | hi! link @text.strong Bold
982 | hi! link @markup.strong Bold
983 | hi! link @text.emphasis Bold
984 | hi! link @text.underline Underlined
985 | hi! link @markup.underline Underlined
986 | hi! link @text.strike Strikethrough
987 | hi! link @markup.strikethrough Strikethrough
988 | hi! link @text.title Title
989 | hi! link @markup.heading Title
990 | hi! link @text.literal String
991 | hi! link @markup.raw String
992 | hi! link @text.uri Link
993 | hi! link @string.special.url Link
994 | hi! link @markup.link.url Link
995 | hi! link @text.math Special
996 | hi! link @text.environment PreProc
997 | hi! link @text.environment.name Delimiter
998 | hi! link @text.reference Identifier
999 | hi! link @markup.link Identifier
1000 |
1001 | hi! link @text.todo Todo
1002 | hi! link @comment.todo Todo
1003 | hi! link @text.note SpecialComment
1004 | hi! link @comment.info SpecialComment
1005 | hi! link @text.danger Error
1006 | hi! link @comment.error Error
1007 | hi! link @text.warning WarningMsg
1008 | hi! link @comment.warning WarningMsg
1009 |
1010 | hi! link @tag Tag
1011 | hi! link @tag.attribute Field
1012 | hi! link @tag.delimiter Delimiter
1013 | endif
1014 |
1015 | " }}}
1016 |
1017 | " Plugin specific -------------------------------------------------------------
1018 | " Fugitive: {{{
1019 |
1020 | hi! link fugitiveHash GruvboxBlue
1021 |
1022 | " }}}
1023 | " EasyMotion: {{{
1024 |
1025 | hi! link EasyMotionTarget GruvboxRedBold
1026 | hi! link EasyMotionTarget2First GruvboxYellowBold
1027 | hi! link EasyMotionTarget2Second GruvboxOrangeBold
1028 | hi! link EasyMotionShade GruvboxGray
1029 |
1030 | " }}}
1031 | " Sneak: {{{
1032 |
1033 | hi! link Sneak Search
1034 | hi! link SneakLabel Search
1035 |
1036 | " }}}
1037 | " Indent Guides: {{{
1038 |
1039 | if !exists('g:indent_guides_auto_colors')
1040 | let g:indent_guides_auto_colors = 0
1041 | endif
1042 |
1043 | if g:indent_guides_auto_colors == 0
1044 | if g:gruvbox_invert_indent_guides == 0
1045 | call s:HL('IndentGuidesOdd', s:gb.bg0, s:gb.bg2)
1046 | call s:HL('IndentGuidesEven', s:gb.bg0, s:gb.bg1)
1047 | else
1048 | call s:HL('IndentGuidesOdd', s:gb.bg0, s:gb.bg2, s:inverse)
1049 | call s:HL('IndentGuidesEven', s:gb.bg0, s:gb.bg3, s:inverse)
1050 | endif
1051 | endif
1052 |
1053 | " }}}
1054 | " IndentLine: {{{
1055 |
1056 | if !exists('g:indentLine_color_term')
1057 | let g:indentLine_color_term = s:gb.bg2[1]
1058 | endif
1059 | if !exists('g:indentLine_color_gui')
1060 | let g:indentLine_color_gui = s:gb.bg2[0]
1061 | endif
1062 |
1063 | " }}}
1064 | " Rainbow Parentheses: {{{
1065 |
1066 | if !exists('g:rbpt_colorpairs')
1067 | let g:rbpt_colorpairs =
1068 | \ [
1069 | \ ['blue', '#458588'], ['magenta', '#b16286'],
1070 | \ ['red', '#cc241d'], ['166', '#d65d0e']
1071 | \ ]
1072 | endif
1073 |
1074 | let g:rainbow_guifgs = [ '#d65d0e', '#cc241d', '#b16286', '#458588' ]
1075 | let g:rainbow_ctermfgs = [ '166', 'red', 'magenta', 'blue' ]
1076 |
1077 | if !exists('g:rainbow_conf')
1078 | let g:rainbow_conf = {}
1079 | endif
1080 | if !has_key(g:rainbow_conf, 'guifgs')
1081 | let g:rainbow_conf['guifgs'] = g:rainbow_guifgs
1082 | endif
1083 | if !has_key(g:rainbow_conf, 'ctermfgs')
1084 | let g:rainbow_conf['ctermfgs'] = g:rainbow_ctermfgs
1085 | endif
1086 |
1087 | let g:niji_dark_colours = g:rbpt_colorpairs
1088 | let g:niji_light_colours = g:rbpt_colorpairs
1089 |
1090 | "}}}
1091 | " GitGutter: {{{
1092 |
1093 | hi! link GitGutterAdd GruvboxGreenSign
1094 | hi! link GitGutterChange GruvboxAquaSign
1095 | hi! link GitGutterDelete GruvboxRedSign
1096 | hi! link GitGutterChangeDelete GruvboxAquaSign
1097 |
1098 | " }}}
1099 | " GitCommit: "{{{
1100 |
1101 | hi! link gitcommitSelectedFile GruvboxGreen
1102 | hi! link gitcommitDiscardedFile GruvboxRed
1103 |
1104 | " }}}
1105 | " Signify: {{{
1106 |
1107 | hi! link SignifySignAdd GruvboxGreenSign
1108 | hi! link SignifySignChange GruvboxAquaSign
1109 | hi! link SignifySignDelete GruvboxRedSign
1110 |
1111 | " }}}
1112 | " gitsigns.nvim {{{
1113 |
1114 | hi! link GitSignsAdd GruvboxGreenSign
1115 | hi! link GitSignsChange GruvboxOrangeSign
1116 | hi! link GitSignsDelete GruvboxRedSign
1117 |
1118 | " }}}
1119 | " Syntastic: {{{
1120 |
1121 | hi! link SyntasticError GruvboxRedUnderline
1122 | hi! link SyntasticWarning GruvboxYellowUnderline
1123 |
1124 | hi! link SyntasticErrorSign GruvboxRedSign
1125 | hi! link SyntasticWarningSign GruvboxYellowSign
1126 |
1127 | " }}}
1128 | " Termdebug: {{{
1129 |
1130 | call s:HL('debugPC', s:none, s:gb.faded_blue)
1131 | hi! link debugBreakpoint GruvboxRedSign
1132 |
1133 | " }}}
1134 | " Signature: {{{
1135 |
1136 | hi! link SignatureMarkText GruvboxBlueSign
1137 | hi! link SignatureMarkerText GruvboxPurpleSign
1138 |
1139 | " }}}
1140 | " ShowMarks: {{{
1141 |
1142 | hi! link ShowMarksHLl GruvboxBlueSign
1143 | hi! link ShowMarksHLu GruvboxBlueSign
1144 | hi! link ShowMarksHLo GruvboxBlueSign
1145 | hi! link ShowMarksHLm GruvboxBlueSign
1146 |
1147 | " }}}
1148 | " CtrlP: {{{
1149 |
1150 | hi! link CtrlPMatch GruvboxYellow
1151 | hi! link CtrlPNoEntries GruvboxRed
1152 | hi! link CtrlPPrtBase GruvboxBg2
1153 | hi! link CtrlPPrtCursor GruvboxBlue
1154 | hi! link CtrlPLinePre GruvboxBg2
1155 |
1156 | call s:HL('CtrlPMode1', s:gb.blue, s:gb.bg2, s:bold)
1157 | call s:HL('CtrlPMode2', s:gb.bg0, s:gb.blue, s:bold)
1158 | call s:HL('CtrlPStats', s:gb.fg4, s:gb.bg2, s:bold)
1159 |
1160 | " }}}
1161 | " FZF: {{{
1162 |
1163 | let g:fzf_colors = {
1164 | \ 'fg': ['fg', 'GruvboxFg1'],
1165 | \ 'bg': ['fg', 'GruvboxBg0'],
1166 | \ 'hl': ['fg', 'GruvboxYellow'],
1167 | \ 'fg+': ['fg', 'GruvboxFg1'],
1168 | \ 'bg+': ['fg', 'GruvboxBg1'],
1169 | \ 'hl+': ['fg', 'GruvboxYellow'],
1170 | \ 'info': ['fg', 'GruvboxBlue'],
1171 | \ 'prompt': ['fg', 'GruvboxFg4'],
1172 | \ 'pointer': ['fg', 'GruvboxBlue'],
1173 | \ 'marker': ['fg', 'GruvboxOrange'],
1174 | \ 'spinner': ['fg', 'GruvboxYellow'],
1175 | \ 'header': ['fg', 'GruvboxBg3']
1176 | \ }
1177 |
1178 | call s:HL('Fzf1', s:gb.blue, s:gb.bg1)
1179 | call s:HL('Fzf2', s:gb.orange, s:gb.bg1)
1180 | call s:HL('Fzf3', s:gb.fg4, s:gb.bg1)
1181 |
1182 | " }}}
1183 | " Startify: {{{
1184 |
1185 | hi! link StartifyBracket GruvboxFg3
1186 | hi! link StartifyFile GruvboxFg1
1187 | hi! link StartifyNumber GruvboxBlue
1188 | hi! link StartifyPath GruvboxGray
1189 | hi! link StartifySlash GruvboxGray
1190 | hi! link StartifySection GruvboxYellow
1191 | hi! link StartifySpecial GruvboxBg2
1192 | hi! link StartifyHeader GruvboxOrange
1193 | hi! link StartifyFooter GruvboxBg2
1194 |
1195 | " }}}
1196 | " Vimshell: {{{
1197 |
1198 | let g:vimshell_escape_colors = [
1199 | \ s:gb.bg4[0], s:gb.red[0], s:gb.green[0], s:gb.yellow[0],
1200 | \ s:gb.blue[0], s:gb.purple[0], s:gb.aqua[0], s:gb.fg4[0],
1201 | \ s:gb.bg0[0], s:gb.red[0], s:gb.green[0], s:gb.orange[0],
1202 | \ s:gb.blue[0], s:gb.purple[0], s:gb.aqua[0], s:gb.fg0[0]
1203 | \ ]
1204 |
1205 | " }}}
1206 | " BufTabLine: {{{
1207 |
1208 | call s:HL('BufTabLineCurrent', s:gb.bg0, s:gb.fg4)
1209 | call s:HL('BufTabLineActive', s:gb.fg4, s:gb.bg2)
1210 | call s:HL('BufTabLineHidden', s:gb.bg4, s:gb.bg1)
1211 | call s:HL('BufTabLineFill', s:gb.bg0, s:gb.bg0)
1212 |
1213 | " }}}
1214 | " Asynchronous Lint Engine: {{{
1215 |
1216 | hi! link ALEError GruvboxRedUnderline
1217 | hi! link ALEWarning GruvboxYellowUnderline
1218 | hi! link ALEInfo GruvboxBlueUnderline
1219 |
1220 | hi! link ALEErrorSign GruvboxRedSign
1221 | hi! link ALEWarningSign GruvboxYellowSign
1222 | hi! link ALEInfoSign GruvboxBlueSign
1223 |
1224 | hi! link ALEVirtualTextError GruvboxRed
1225 | hi! link ALEVirtualTextWarning GruvboxYellow
1226 | hi! link ALEVirtualTextInfo GruvboxBlue
1227 |
1228 | " }}}
1229 | " Dirvish: {{{
1230 |
1231 | hi! link DirvishPathTail GruvboxAqua
1232 | hi! link DirvishArg GruvboxYellow
1233 |
1234 | " }}}
1235 | " Netrw: {{{
1236 |
1237 | hi! link netrwDir GruvboxAqua
1238 | hi! link netrwClassify GruvboxAqua
1239 | hi! link netrwLink GruvboxGray
1240 | hi! link netrwSymLink GruvboxFg1
1241 | hi! link netrwExe GruvboxYellow
1242 | hi! link netrwComment GruvboxGray
1243 | hi! link netrwList GruvboxBlue
1244 | hi! link netrwHelpCmd GruvboxAqua
1245 | hi! link netrwCmdSep GruvboxFg3
1246 | hi! link netrwVersion GruvboxGreen
1247 |
1248 | " }}}
1249 | " NERDTree: {{{
1250 |
1251 | hi! link NERDTreeDir GruvboxAqua
1252 | hi! link NERDTreeDirSlash GruvboxAqua
1253 |
1254 | hi! link NERDTreeOpenable GruvboxOrange
1255 | hi! link NERDTreeClosable GruvboxOrange
1256 |
1257 | hi! link NERDTreeFile GruvboxFg1
1258 | hi! link NERDTreeExecFile GruvboxYellow
1259 |
1260 | hi! link NERDTreeUp GruvboxGray
1261 | hi! link NERDTreeCWD GruvboxGreen
1262 | hi! link NERDTreeHelp GruvboxFg1
1263 |
1264 | hi! link NERDTreeToggleOn GruvboxGreen
1265 | hi! link NERDTreeToggleOff GruvboxRed
1266 |
1267 | " }}}
1268 | " Vim Multiple Cursors: {{{
1269 |
1270 | call s:HL('multiple_cursors_cursor', s:none, s:none, s:inverse)
1271 | call s:HL('multiple_cursors_visual', s:none, s:gb.bg2)
1272 |
1273 | " }}}
1274 | " coc.nvim: {{{
1275 |
1276 | hi! link CocErrorSign GruvboxRedSign
1277 | hi! link CocWarningSign GruvboxOrangeSign
1278 | hi! link CocInfoSign GruvboxBlueSign
1279 | hi! link CocHintSign GruvboxAquaSign
1280 | hi! link CocErrorFloat GruvboxRed
1281 | hi! link CocWarningFloat GruvboxOrange
1282 | hi! link CocInfoFloat GruvboxBlue
1283 | hi! link CocHintFloat GruvboxAqua
1284 | hi! link CocDiagnosticsError GruvboxRed
1285 | hi! link CocDiagnosticsWarning GruvboxOrange
1286 | hi! link CocDiagnosticsInfo GruvboxBlue
1287 | hi! link CocDiagnosticsHint GruvboxAqua
1288 |
1289 | hi! link CocSelectedText GruvboxRed
1290 | hi! link CocCodeLens GruvboxGray
1291 | hi! link CocSearch GruvboxAqua
1292 |
1293 | hi! link CocErrorHighlight GruvboxRedUnderline
1294 | hi! link CocWarningHighlight GruvboxOrangeUnderline
1295 | hi! link CocInfoHighlight GruvboxBlueUnderline
1296 | hi! link CocHintHighlight GruvboxAquaUnderline
1297 |
1298 | " }}}
1299 | " Telescope.nvim: {{{
1300 |
1301 | hi! link TelescopeNormal GruvboxFg1
1302 | hi! link TelescopeSelection GruvboxOrangeBold
1303 | hi! link TelescopeSelectionCaret GruvboxRed
1304 | hi! link TelescopeMultiSelection GruvboxGray
1305 | hi! link TelescopeBorder TelescopeNormal
1306 | hi! link TelescopePromptBorder TelescopeNormal
1307 | hi! link TelescopeResultsBorder TelescopeNormal
1308 | hi! link TelescopePreviewBorder TelescopeNormal
1309 | hi! link TelescopeMatching GruvboxBlue
1310 | hi! link TelescopePromptPrefix GruvboxRed
1311 | hi! link TelescopePrompt TelescopeNormal
1312 |
1313 | " }}}
1314 | " nvim-cmp: {{{
1315 |
1316 | hi! link CmpItemAbbr GruvboxFg0
1317 | hi! link CmpItemAbbrDeprecated GruvboxFg1
1318 | hi! link CmpItemAbbrMatch GruvboxBlueBold
1319 | hi! link CmpItemAbbrMatchFuzzy GruvboxBlueUnderline
1320 | hi! link CmpItemMenu GruvboxGray
1321 | hi! link CmpItemKindText GruvboxOrange
1322 | hi! link CmpItemKindMethod GruvboxBlue
1323 | hi! link CmpItemKindFunction GruvboxBlue
1324 | hi! link CmpItemKindConstructor GruvboxYellow
1325 | hi! link CmpItemKindField GruvboxBlue
1326 | hi! link CmpItemKindClass GruvboxYellow
1327 | hi! link CmpItemKindInterface GruvboxYellow
1328 | hi! link CmpItemKindModule GruvboxBlue
1329 | hi! link CmpItemKindProperty GruvboxBlue
1330 | hi! link CmpItemKindValue GruvboxOrange
1331 | hi! link CmpItemKindEnum GruvboxYellow
1332 | hi! link CmpItemKindKeyword GruvboxPurple
1333 | hi! link CmpItemKindSnippet GruvboxGreen
1334 | hi! link CmpItemKindFile GruvboxBlue
1335 | hi! link CmpItemKindEnumMember GruvBoxAqua
1336 | hi! link CmpItemKindConstant GruvboxOrange
1337 | hi! link CmpItemKindStruct GruvboxYellow
1338 | hi! link CmpItemKindTypeParameter GruvboxYellow
1339 |
1340 | "}}}
1341 | " Dashboard: {{{
1342 |
1343 | hi! link DashboardHeader GruvboxYellowBold
1344 | hi! link DashboardCenter GruvboxGreen
1345 | hi! link DashboardCenterIcon GruvboxAqua
1346 | hi! link DashboardShortCut GruvboxBlue
1347 | hi! link DashboardFooter GruvboxPurple
1348 |
1349 | " }}}
1350 |
1351 | " Filetype specific -----------------------------------------------------------
1352 | " C: {{{
1353 |
1354 | if g:gruvbox_legacy_language_groups
1355 | hi! link cOperator GruvboxPurple
1356 | hi! link cppOperator GruvboxPurple
1357 | hi! link cStructure GruvboxOrange
1358 | endif
1359 |
1360 | " }}}
1361 | " C#: {{{
1362 |
1363 | if g:gruvbox_legacy_language_groups
1364 | hi! link csBraces GruvboxFg1
1365 | hi! link csEndColon GruvboxFg1
1366 | hi! link csLogicSymbols GruvboxFg1
1367 | hi! link csParens GruvboxFg3
1368 | hi! link csOpSymbols GruvboxFg3
1369 | hi! link csInterpolationDelimiter GruvboxFg3
1370 | hi! link csInterpolationAlignDel GruvboxAquaBold
1371 | hi! link csInterpolationFormat GruvboxAqua
1372 | hi! link csInterpolationFormatDel GruvboxAquaBold
1373 | else
1374 | hi! link csBraces Bracket
1375 | hi! link csEndColon Punctuation
1376 | hi! link csParens Bracket
1377 |
1378 | hi! link csLogicSymbols Operator
1379 | hi! link csOpSymbols Operator
1380 | hi! link csStorage Keyword
1381 | hi! link csUnspecifiedStatement Statement
1382 |
1383 | hi! link csInterpolationAlignDel Punctuation
1384 | hi! link csInterpolationDelimiter Punctuation
1385 | hi! link csInterpolationFormatDel Punctuation
1386 | hi! link csInterpolationFormat Special
1387 | endif
1388 |
1389 | " }}}
1390 | " Clojure: {{{
1391 |
1392 | if g:gruvbox_legacy_language_groups
1393 | hi! link clojureKeyword GruvboxBlue
1394 | hi! link clojureCond GruvboxOrange
1395 | hi! link clojureSpecial GruvboxOrange
1396 | hi! link clojureDefine GruvboxOrange
1397 |
1398 | hi! link clojureFunc GruvboxYellow
1399 | hi! link clojureRepeat GruvboxYellow
1400 | hi! link clojureCharacter GruvboxAqua
1401 | hi! link clojureStringEscape GruvboxAqua
1402 | hi! link clojureException GruvboxRed
1403 |
1404 | hi! link clojureRegexp GruvboxAqua
1405 | hi! link clojureRegexpEscape GruvboxAqua
1406 | call s:HL('clojureRegexpCharClass', s:gb.fg3, s:none, s:bold)
1407 | hi! link clojureRegexpMod clojureRegexpCharClass
1408 | hi! link clojureRegexpQuantifier clojureRegexpCharClass
1409 |
1410 | hi! link clojureParen GruvboxFg3
1411 | hi! link clojureAnonArg GruvboxYellow
1412 | hi! link clojureVariable GruvboxBlue
1413 | hi! link clojureMacro GruvboxOrange
1414 |
1415 | hi! link clojureMeta GruvboxYellow
1416 | hi! link clojureDeref GruvboxYellow
1417 | hi! link clojureQuote GruvboxYellow
1418 | hi! link clojureUnquote GruvboxYellow
1419 | else
1420 | hi! link clojureStringEscape Special
1421 | endif
1422 |
1423 | " }}}
1424 | " CoffeeScript: {{{
1425 |
1426 | if g:gruvbox_legacy_language_groups
1427 | hi! link coffeeExtendedOp GruvboxFg3
1428 | hi! link coffeeSpecialOp GruvboxFg3
1429 | hi! link coffeeCurly GruvboxOrange
1430 | hi! link coffeeParen GruvboxFg3
1431 | hi! link coffeeBracket GruvboxOrange
1432 | else
1433 | hi! link coffeeBracket Bracket
1434 | hi! link coffeeCurly Bracket
1435 | hi! link coffeeExtendedOp Operator
1436 | hi! link coffeeObjAssign Field
1437 | hi! link coffeeObject Field
1438 | hi! link coffeeParen Bracket
1439 | hi! link coffeeSpecialOp Operator
1440 | endif
1441 |
1442 | " }}}
1443 | " CSS: {{{
1444 |
1445 | if g:gruvbox_legacy_language_groups
1446 | hi! link cssBraces GruvboxBlue
1447 | hi! link cssFunctionName GruvboxYellow
1448 | hi! link cssIdentifier GruvboxOrange
1449 | hi! link cssClassName GruvboxGreen
1450 | hi! link cssColor GruvboxBlue
1451 | hi! link cssSelectorOp GruvboxBlue
1452 | hi! link cssSelectorOp2 GruvboxBlue
1453 | hi! link cssImportant GruvboxGreen
1454 | hi! link cssVendor GruvboxFg1
1455 |
1456 | hi! link cssTextProp GruvboxAqua
1457 | hi! link cssAnimationProp GruvboxAqua
1458 | hi! link cssUIProp GruvboxYellow
1459 | hi! link cssTransformProp GruvboxAqua
1460 | hi! link cssTransitionProp GruvboxAqua
1461 | hi! link cssPrintProp GruvboxAqua
1462 | hi! link cssPositioningProp GruvboxYellow
1463 | hi! link cssBoxProp GruvboxAqua
1464 | hi! link cssFontDescriptorProp GruvboxAqua
1465 | hi! link cssFlexibleBoxProp GruvboxAqua
1466 | hi! link cssBorderOutlineProp GruvboxAqua
1467 | hi! link cssBackgroundProp GruvboxAqua
1468 | hi! link cssMarginProp GruvboxAqua
1469 | hi! link cssListProp GruvboxAqua
1470 | hi! link cssTableProp GruvboxAqua
1471 | hi! link cssFontProp GruvboxAqua
1472 | hi! link cssPaddingProp GruvboxAqua
1473 | hi! link cssDimensionProp GruvboxAqua
1474 | hi! link cssRenderProp GruvboxAqua
1475 | hi! link cssColorProp GruvboxAqua
1476 | hi! link cssGeneratedContentProp GruvboxAqua
1477 | else
1478 | hi! link cssClassName Tag
1479 | hi! link cssClassNameDot Operator
1480 | hi! link cssFunctionName Special
1481 | hi! link cssFunctionComma Special
1482 | hi! link cssIdentifier Identifier
1483 | hi! link cssImportant Keyword
1484 | hi! link cssPseudoClassId Tag
1485 |
1486 | hi! link cssAttrComma Punctuation
1487 | hi! link cssAtRule Punctuation
1488 | hi! link cssBraces Punctuation
1489 | hi! link cssSelectorOp2 Punctuation
1490 | hi! link cssSelectorOp Punctuation
1491 |
1492 | hi! link cssProp Field
1493 | hi! link cssVendor Field
1494 | endif
1495 |
1496 | " }}}
1497 | " Diff: {{{
1498 |
1499 | hi! link diffAdded GruvboxGreen
1500 | hi! link diffRemoved GruvboxRed
1501 | hi! link diffChanged GruvboxAqua
1502 |
1503 | hi! link diffFile GruvboxOrange
1504 | hi! link diffNewFile GruvboxYellow
1505 |
1506 | hi! link diffLine GruvboxBlue
1507 |
1508 | " }}}
1509 | " Elixir: {{{
1510 |
1511 | if g:gruvbox_legacy_language_groups
1512 | hi! link elixirDocString Comment
1513 |
1514 | hi! link elixirStringDelimiter GruvboxGreen
1515 | hi! link elixirInterpolationDelimiter GruvboxAqua
1516 |
1517 | hi! link elixirModuleDeclaration GruvboxYellow
1518 | else
1519 | hi! link elixirDocString Comment
1520 |
1521 | hi! link elixirStringDelimiter String
1522 | hi! link elixirInterpolationDelimiter Punctuation
1523 |
1524 | hi! link elixirModuleDeclaration TypeDef
1525 | endif
1526 |
1527 | " }}}
1528 | " Go: {{{
1529 |
1530 | if g:gruvbox_legacy_language_groups
1531 | hi! link goDirective GruvboxAqua
1532 | hi! link goConstants GruvboxPurple
1533 | hi! link goDeclaration GruvboxRed
1534 | hi! link goDeclType GruvboxBlue
1535 | hi! link goBuiltins GruvboxOrange
1536 | else
1537 | hi! link goConst StorageClass
1538 | hi! link goImport Include
1539 | hi! link goParen Bracket
1540 | endif
1541 |
1542 | " }}}
1543 | " Haskell: {{{
1544 |
1545 | if g:gruvbox_legacy_language_groups
1546 | hi! link haskellType GruvboxBlue
1547 | hi! link haskellIdentifier GruvboxAqua
1548 | hi! link haskellSeparator GruvboxFg4
1549 | hi! link haskellDelimiter GruvboxOrange
1550 | hi! link haskellOperators GruvboxPurple
1551 |
1552 | hi! link haskellBacktick GruvboxOrange
1553 | hi! link haskellStatement GruvboxPurple
1554 | hi! link haskellConditional GruvboxPurple
1555 |
1556 | hi! link haskellLet GruvboxRed
1557 | hi! link haskellDefault GruvboxRed
1558 | hi! link haskellWhere GruvboxRed
1559 | hi! link haskellBottom GruvboxRedBold
1560 | hi! link haskellImportKeywords GruvboxPurpleBold
1561 | hi! link haskellDeclKeyword GruvboxOrange
1562 | hi! link haskellDecl GruvboxOrange
1563 | hi! link haskellDeriving GruvboxPurple
1564 | hi! link haskellAssocType GruvboxAqua
1565 |
1566 | hi! link haskellNumber GruvboxAqua
1567 | hi! link haskellPragma GruvboxRedBold
1568 |
1569 | hi! link haskellTH GruvboxAquaBold
1570 | hi! link haskellForeignKeywords GruvboxGreen
1571 | hi! link haskellKeyword GruvboxRed
1572 | hi! link haskellFloat GruvboxAqua
1573 | hi! link haskellInfix GruvboxPurple
1574 | hi! link haskellQuote GruvboxGreenBold
1575 | hi! link haskellShebang GruvboxYellowBold
1576 | hi! link haskellLiquid GruvboxPurpleBold
1577 | hi! link haskellQuasiQuoted GruvboxBlueBold
1578 | hi! link haskellRecursiveDo GruvboxPurple
1579 | hi! link haskellQuotedType GruvboxRed
1580 | hi! link haskellPreProc GruvboxFg4
1581 | hi! link haskellTypeRoles GruvboxRedBold
1582 | hi! link haskellTypeForall GruvboxRed
1583 | hi! link haskellPatternKeyword GruvboxBlue
1584 | else
1585 | hi! link haskellChar Character
1586 | hi! link haskellFloat Float
1587 | hi! link haskellNumber Number
1588 | hi! link haskellTH Boolean
1589 |
1590 | hi! link haskellBottom Keyword
1591 | hi! link haskellDecl Keyword
1592 | hi! link haskellDeclKeyword Keyword
1593 | hi! link haskellDefault Keyword
1594 | hi! link haskellDeriveKeyword Keyword
1595 | hi! link haskellInfix Keyword
1596 | hi! link haskellKeyword Keyword
1597 | hi! link haskellLet Keyword
1598 | hi! link haskellPatternKeyword Keyword
1599 | hi! link haskellRecursiveDo Keyword
1600 | hi! link haskellTypeRoles Keyword
1601 | hi! link haskellWhere Keyword
1602 |
1603 | hi! link haskellAssocType Type
1604 | hi! link haskellBacktick Special
1605 | hi! link haskellConditional Keyword
1606 | hi! link haskellDelimiter Delimiter
1607 | hi! link haskellForall Operator
1608 | hi! link haskellForeignKeywords Include
1609 | hi! link haskellIdentifier Identifier
1610 | hi! link haskellImportKeywords Include
1611 | hi! link haskellLiquid Comment
1612 | hi! link haskellOperators Operator
1613 | hi! link haskellPragma PreProc
1614 | hi! link haskellPreProc PreProc
1615 | hi! link haskellQuasiQuoted String
1616 | hi! link haskellQuotedType Type
1617 | hi! link haskellQuote String
1618 | hi! link haskellSeparator Punctuation
1619 | hi! link haskellShebang Comment
1620 | hi! link haskellType Type
1621 | endif
1622 |
1623 | " }}}
1624 | " Html: {{{
1625 |
1626 | if g:gruvbox_legacy_language_groups
1627 | hi! link htmlTag GruvboxAquaBold
1628 | hi! link htmlEndTag GruvboxAquaBold
1629 |
1630 | hi! link htmlTagName GruvboxBlue
1631 | hi! link htmlArg GruvboxOrange
1632 |
1633 | hi! link htmlTagN GruvboxFg1
1634 | hi! link htmlSpecialTagName GruvboxBlue
1635 |
1636 | hi! link htmlSpecialChar GruvboxRed
1637 | else
1638 | hi! link htmlTag Punctuation
1639 | hi! link htmlEndTag Punctuation
1640 |
1641 | hi! link htmlTagName Tag
1642 | hi! link htmlArg Field
1643 |
1644 | hi! link htmlTagN Normal
1645 | hi! link htmlSpecialTagName Special
1646 |
1647 | hi! link htmlSpecialChar Special
1648 | endif
1649 |
1650 | call s:HL('htmlLink', s:gb.fg4, s:none, s:underline)
1651 |
1652 | call s:HL('htmlBold', s:vim_fg, s:none, s:bold)
1653 | call s:HL('htmlBoldUnderline', s:vim_fg, s:none, s:bold . s:underline)
1654 | call s:HL('htmlBoldItalic', s:vim_fg, s:none, s:bold . s:italic)
1655 | call s:HL('htmlBoldUnderlineItalic', s:vim_fg, s:none, s:bold . s:underline . s:italic)
1656 |
1657 | call s:HL('htmlUnderline', s:vim_fg, s:none, s:underline)
1658 | call s:HL('htmlUnderlineItalic', s:vim_fg, s:none, s:underline . s:italic)
1659 | call s:HL('htmlItalic', s:vim_fg, s:none, s:italic)
1660 |
1661 | " }}}
1662 | " Java: {{{
1663 |
1664 | if g:gruvbox_legacy_language_groups
1665 | hi! link javaAnnotation GruvboxBlue
1666 | hi! link javaDocTags GruvboxAqua
1667 | hi! link javaCommentTitle vimCommentTitle
1668 | hi! link javaParen GruvboxFg3
1669 | hi! link javaParen1 GruvboxFg3
1670 | hi! link javaParen2 GruvboxFg3
1671 | hi! link javaParen3 GruvboxFg3
1672 | hi! link javaParen4 GruvboxFg3
1673 | hi! link javaParen5 GruvboxFg3
1674 | hi! link javaOperator GruvboxOrange
1675 |
1676 | hi! link javaVarArg GruvboxGreen
1677 | else
1678 | hi! link javaParen Bracket
1679 | hi! link javaParen1 javaParen
1680 | hi! link javaParen2 javaParen
1681 | hi! link javaParen3 javaParen
1682 | hi! link javaParen4 javaParen
1683 | hi! link javaParen5 javaParen
1684 |
1685 | hi! link javaDocTags Keyword
1686 | hi! link javaDocParam Type
1687 |
1688 | hi! link javaOperator Operator
1689 | endif
1690 |
1691 | " }}}
1692 | " Javascript: {{{
1693 |
1694 | if g:gruvbox_legacy_language_groups
1695 | hi! link javaScriptBraces GruvboxFg1
1696 | hi! link javaScriptFunction GruvboxAqua
1697 | hi! link javaScriptIdentifier GruvboxRed
1698 | hi! link javaScriptMember GruvboxBlue
1699 | hi! link javaScriptNumber GruvboxPurple
1700 | hi! link javaScriptNull GruvboxPurple
1701 | hi! link javaScriptParens GruvboxFg3
1702 | else
1703 | hi! link javaScriptBraces Bracket
1704 | endif
1705 |
1706 | " }}}
1707 | " Json: {{{
1708 |
1709 | if g:gruvbox_legacy_language_groups
1710 | hi! link jsonKeyword GruvboxGreen
1711 | hi! link jsonQuote GruvboxGreen
1712 | hi! link jsonBraces GruvboxFg1
1713 | hi! link jsonString GruvboxFg1
1714 | else
1715 | hi! link jsonBraces Punctuation
1716 | hi! link jsonKeyword Field
1717 | hi! link jsonKeywordMatch Punctuation
1718 | hi! link jsonQuote String
1719 | hi! link jsonString String
1720 | endif
1721 |
1722 | " }}}
1723 | " JSX: maxmellon/vim-jsx-pretty: {{{
1724 |
1725 | if g:gruvbox_legacy_language_groups
1726 | hi! link jsxTagName GruvboxAqua
1727 | hi! link jsxComponentName GruvboxGreen
1728 | hi! link jsxCloseString GruvboxFg4
1729 | hi! link jsxAttrib GruvboxYellow
1730 | hi! link jsxEqual GruvboxAqua
1731 | else
1732 | hi! link jsxAttrib Field
1733 | hi! link jsxBraces Special
1734 | hi! link jsxComponentName Type
1735 | hi! link jsxEqual Operator
1736 | hi! link jsxTagName Tag
1737 |
1738 | hi! link jsxClosePunct Punctuation
1739 | hi! link jsxCloseString Punctuation
1740 | hi! link jsxOpenPunct Punctuation
1741 | endif
1742 |
1743 | "}}}
1744 | " Lua: {{{
1745 |
1746 | if g:gruvbox_legacy_language_groups
1747 | hi! link luaIn GruvboxRed
1748 | hi! link luaFunction GruvboxAqua
1749 | hi! link luaTable GruvboxOrange
1750 | else
1751 | hi! link luaBraces Bracket
1752 | hi! link luaComma Punctuation
1753 | hi! link luaFuncKeyword Keyword
1754 | hi! link luaParen Bracket
1755 | hi! link luaStringLongTag Special
1756 | hi! link luaTable Bracket
1757 | endif
1758 |
1759 | " }}}
1760 | " Mail: {{{
1761 |
1762 | " Override some defaults defined by mail.vim
1763 | " mail quoted text
1764 | hi! link mailQuoted1 GruvBoxAqua
1765 | hi! link mailQuoted2 GruvBoxPurple
1766 | hi! link mailQuoted3 GruvBoxYellow
1767 | hi! link mailQuoted4 GruvBoxGreen
1768 | hi! link mailQuoted5 GruvBoxRed
1769 | hi! link mailQuoted6 GruvBoxOrange
1770 |
1771 | hi! link mailSignature Comment
1772 |
1773 | " }}}
1774 | " Markdown: {{{
1775 |
1776 | call s:HL('markdownItalic', s:fg3, s:none, s:italic)
1777 | call s:HL('markdownBold', s:fg3, s:none, s:bold)
1778 | call s:HL('markdownBoldItalic', s:fg3, s:none, s:bold . s:italic)
1779 |
1780 | if g:gruvbox_legacy_language_groups
1781 | hi! link markdownH1 GruvboxGreenBold
1782 | hi! link markdownH2 GruvboxGreenBold
1783 | hi! link markdownH3 GruvboxYellowBold
1784 | hi! link markdownH4 GruvboxYellowBold
1785 | hi! link markdownH5 GruvboxYellow
1786 | hi! link markdownH6 GruvboxYellow
1787 |
1788 | hi! link markdownCode GruvboxAqua
1789 | hi! link markdownCodeBlock GruvboxAqua
1790 | hi! link markdownCodeDelimiter GruvboxAqua
1791 |
1792 | hi! link markdownBlockquote GruvboxGray
1793 | hi! link markdownListMarker GruvboxGray
1794 | hi! link markdownOrderedListMarker GruvboxGray
1795 | hi! link markdownRule GruvboxGray
1796 | hi! link markdownHeadingRule GruvboxGray
1797 |
1798 | hi! link markdownUrlDelimiter GruvboxFg3
1799 | hi! link markdownLinkDelimiter GruvboxFg3
1800 | hi! link markdownLinkTextDelimiter GruvboxFg3
1801 |
1802 | hi! link markdownHeadingDelimiter GruvboxOrange
1803 | hi! link markdownUrl GruvboxPurple
1804 | hi! link markdownUrlTitleDelimiter GruvboxGreen
1805 |
1806 | call s:HL('markdownLinkText', s:gray, s:none, s:underline)
1807 | hi! link markdownIdDeclaration markdownLinkText
1808 | else
1809 | hi! link markdownH1 H1
1810 | hi! link markdownH2 H2
1811 | hi! link markdownH3 H3
1812 | hi! link markdownH4 H4
1813 | hi! link markdownH5 H5
1814 | hi! link markdownH6 H6
1815 | hi! link markdownHeadingDelimiter GruvboxGreen
1816 |
1817 | hi! link markdownCode CodeBlock
1818 | hi! link markdownCodeBlock CodeBlock
1819 | hi! link markdownCodeDelimiter Punctuation
1820 |
1821 | hi! link markdownBlockquote Quote
1822 | hi! link markdownListMarker Punctuation
1823 | hi! link markdownOrderedListMarker Punctuation
1824 | hi! link markdownRule Punctuation
1825 | hi! link markdownHeadingRule Punctuation
1826 |
1827 | hi! link markdownUrlDelimiter Punctuation
1828 | hi! link markdownLinkDelimiter Punctuation
1829 | hi! link markdownLinkTextDelimiter Punctuation
1830 |
1831 | hi! link markdownUrl Link
1832 | hi! link markdownUrlTitleDelimiter Punctuation
1833 |
1834 | hi! link markdownLinkText Identifier
1835 | hi! link markdownIdDeclaration Identifier
1836 |
1837 | if g:gruvbox_treesitter
1838 | hi link @text.title.1.marker.markdown Special
1839 | hi link @text.title.2.marker.markdown Special
1840 | hi link @text.title.3.marker.markdown Special
1841 | hi link @text.title.4.marker.markdown Special
1842 | hi link @text.title.5.marker.markdown Special
1843 | endif
1844 | endif
1845 |
1846 | " }}}
1847 | " MoonScript: {{{
1848 |
1849 | if g:gruvbox_legacy_language_groups
1850 | hi! link moonSpecialOp GruvboxFg3
1851 | hi! link moonExtendedOp GruvboxFg3
1852 | hi! link moonFunction GruvboxFg3
1853 | hi! link moonObject GruvboxYellow
1854 | else
1855 | hi! link moonFunction Punctuation
1856 | hi! link moonLuaFunc Function
1857 | hi! link moonObjAssign Field
1858 | endif
1859 |
1860 | " }}}
1861 | " ObjectiveC: {{{
1862 |
1863 | if g:gruvbox_legacy_language_groups
1864 | hi! link objcTypeModifier GruvboxRed
1865 | hi! link objcDirective GruvboxBlue
1866 | else
1867 | hi! link objcDirective Keyword
1868 | hi! link objcObjDef Keyword
1869 | hi! link objcPropertyAttribute Field
1870 | hi! link objcTypeModifier GruvboxRed
1871 | endif
1872 |
1873 | " }}}
1874 | " Ocaml: {{{
1875 |
1876 | if g:gruvbox_legacy_language_groups
1877 | hi! link ocamlOperator GruvboxFg1
1878 | hi! link ocamlKeyChar GruvboxOrange
1879 | hi! link ocamlArrow GruvboxOrange
1880 | hi! link ocamlInfixOpKeyword GruvboxRed
1881 | hi! link ocamlConstructor GruvboxOrange
1882 | else
1883 | hi! link ocamlArrow Operator
1884 | hi! link ocamlConstructor Type
1885 | hi! link ocamlInfixOpKeyword Keyword
1886 | hi! link ocamlKeyChar Operator
1887 | hi! link ocamlOperator Operator
1888 | endif
1889 |
1890 | " }}}
1891 | " PanglossJS: {{{
1892 |
1893 | if g:gruvbox_legacy_language_groups
1894 | hi! link jsClassKeyword GruvboxAqua
1895 | hi! link jsExtendsKeyword GruvboxAqua
1896 | hi! link jsExportDefault GruvboxAqua
1897 | hi! link jsTemplateBraces GruvboxAqua
1898 | hi! link jsGlobalNodeObjects GruvboxBlue
1899 | hi! link jsGlobalObjects GruvboxBlue
1900 | hi! link jsObjectKey GruvboxGreenBold
1901 | hi! link jsFunction GruvboxAqua
1902 | hi! link jsFuncCall GruvboxBlue
1903 | hi! link jsFuncParens GruvboxFg3
1904 | hi! link jsParens GruvboxFg3
1905 | hi! link jsNull GruvboxPurple
1906 | hi! link jsUndefined GruvboxPurple
1907 | hi! link jsClassDefinition GruvboxYellow
1908 | hi! link jsOperatorKeyword GruvboxRed
1909 | else
1910 | hi! link jsArrowFunction Punctuation
1911 | hi! link jsDocParam Field
1912 | hi! link jsDocTags Keyword
1913 | hi! link jsNull Special
1914 | hi! link jsObjectKey Field
1915 | hi! link jsObjectProp Field
1916 | endif
1917 |
1918 | " }}}
1919 | " PureScript: {{{
1920 |
1921 | if g:gruvbox_legacy_language_groups
1922 | hi! link purescriptModuleKeyword GruvboxAqua
1923 | hi! link purescriptModuleName GruvboxFg1
1924 | hi! link purescriptWhere GruvboxAqua
1925 | hi! link purescriptDelimiter GruvboxFg4
1926 | hi! link purescriptType GruvboxFg1
1927 | hi! link purescriptImportKeyword GruvboxAqua
1928 | hi! link purescriptHidingKeyword GruvboxAqua
1929 | hi! link purescriptAsKeyword GruvboxAqua
1930 | hi! link purescriptStructure GruvboxAqua
1931 | hi! link purescriptOperator GruvboxBlue
1932 |
1933 | hi! link purescriptTypeVar GruvboxFg1
1934 | hi! link purescriptConstructor GruvboxFg1
1935 | hi! link purescriptFunction GruvboxFg1
1936 | hi! link purescriptConditional GruvboxOrange
1937 | hi! link purescriptBacktick GruvboxOrange
1938 | else
1939 | hi! link purescriptImportKeyword Include
1940 | hi! link purescriptModuleName Identifier
1941 | endif
1942 |
1943 | " }}}
1944 | " Python: {{{
1945 |
1946 | if g:gruvbox_legacy_language_groups
1947 | hi! link pythonBuiltin GruvboxOrange
1948 | hi! link pythonBuiltinObj GruvboxOrange
1949 | hi! link pythonBuiltinFunc GruvboxOrange
1950 | hi! link pythonFunction GruvboxAqua
1951 | hi! link pythonDecorator GruvboxRed
1952 | hi! link pythonInclude GruvboxBlue
1953 | hi! link pythonImport GruvboxBlue
1954 | hi! link pythonRun GruvboxBlue
1955 | hi! link pythonCoding GruvboxBlue
1956 | hi! link pythonOperator GruvboxRed
1957 | hi! link pythonException GruvboxRed
1958 | hi! link pythonExceptions GruvboxPurple
1959 | hi! link pythonBoolean GruvboxPurple
1960 | hi! link pythonDot GruvboxFg3
1961 | hi! link pythonConditional GruvboxRed
1962 | hi! link pythonRepeat GruvboxRed
1963 | hi! link pythonDottedName GruvboxGreenBold
1964 | else
1965 | hi! link pythonDecorator Operator
1966 | hi! link pythonDot Operator
1967 | endif
1968 |
1969 | " }}}
1970 | " Ruby: {{{
1971 |
1972 | if g:gruvbox_legacy_language_groups
1973 | hi! link rubyStringDelimiter GruvboxGreen
1974 | hi! link rubyInterpolationDelimiter GruvboxAqua
1975 | hi! link rubyDefinedOperator rubyKeyword
1976 | else
1977 | hi! link rubyDefinedOperator Keyword
1978 | hi! link rubyInterpolationDelimiter Macro
1979 | hi! link rubyStringDelimiter String
1980 | endif
1981 |
1982 | " }}}
1983 | " Rust: {{{
1984 |
1985 | if g:gruvbox_legacy_language_groups
1986 | hi! link rustSigil GruvboxOrange
1987 | hi! link rustEscape GruvboxAqua
1988 | hi! link rustStringContinuation GruvboxAqua
1989 | hi! link rustEnum GruvboxAqua
1990 | hi! link rustStructure GruvboxAqua
1991 | hi! link rustModPathSep GruvboxFg2
1992 | hi! link rustCommentLineDoc Comment
1993 | hi! link rustDefault GruvboxAqua
1994 | else
1995 | hi! link rustFoldBraces Bracket
1996 | hi! link rustSelf Special
1997 | hi! link rustSigil Operator
1998 | endif
1999 |
2000 | " }}}
2001 | " Scala: {{{
2002 |
2003 | if g:gruvbox_legacy_language_groups
2004 | " NB: scala vim syntax file is kinda horrible
2005 | hi! link scalaNameDefinition GruvboxFg1
2006 | hi! link scalaCaseFollowing GruvboxFg1
2007 | hi! link scalaCapitalWord GruvboxFg1
2008 | hi! link scalaTypeExtension GruvboxFg1
2009 |
2010 | hi! link scalaKeyword GruvboxRed
2011 | hi! link scalaKeywordModifier GruvboxRed
2012 |
2013 | hi! link scalaSpecial GruvboxAqua
2014 | hi! link scalaOperator GruvboxFg1
2015 |
2016 | hi! link scalaTypeDeclaration GruvboxYellow
2017 | hi! link scalaTypeTypePostDeclaration GruvboxYellow
2018 |
2019 | hi! link scalaInstanceDeclaration GruvboxFg1
2020 | hi! link scalaInterpolation GruvboxAqua
2021 | else
2022 | hi! link scalaCommentAnnotation Keyword
2023 | hi! link scalaCommentCodeBlock CodeBlock
2024 | hi! link scalaDocLinks Link
2025 | hi! link scalaMultilineComment Comment
2026 | hi! link scalaParamAnnotationValue Field
2027 | hi! link scalaParameterAnnotation Keyword
2028 | hi! link scalaShebang Comment
2029 | hi! link scalaTrailingComment Comment
2030 |
2031 | hi! link scalaFString String
2032 | hi! link scalaFInterpolation Operator
2033 | hi! link scalaInterpolationBoundary Operator
2034 | hi! link scalaInterpolationBrackets String
2035 | hi! link scalaInterpolation Operator
2036 | hi! link scalaIString String
2037 | hi! link scalaString String
2038 | hi! link scalaTripleFString String
2039 | hi! link scalaTripleIString Operator
2040 | hi! link scalaTripleIString String
2041 | hi! link scalaTripleString String
2042 |
2043 | hi! link scalaCapitalWord Type
2044 | hi! link scalaInstanceDeclaration Type
2045 | hi! link scalaTypeAnnotation Identifier
2046 | hi! link scalaTypeAnnotationParameter Special
2047 | hi! link scalaTypeDeclaration TypeDef
2048 | hi! link scalaTypeExtension Identifier
2049 | hi! link scalaTypeOperator Identifier
2050 | hi! link scalaTypePostExtension Operator
2051 | hi! link scalaTypeTypeExtension Identifier
2052 | hi! link scalaTypeTypePostDeclaration TypeDef
2053 | hi! link scalaTypeTypePostExtension Operator
2054 |
2055 | hi! link scalaCaseFollowing Identifier
2056 | hi! link scalaExternal Include
2057 | hi! link scalaNameDefinition Identifier
2058 | hi! link scalaSquareBracketsBrackets Identifier
2059 | hi! link scalaSquareBrackets Identifier
2060 |
2061 | hi! link scalaKeyword Keyword
2062 | hi! link scalaKeywordModifier Keyword
2063 |
2064 | hi! link scalaAnnotation Special
2065 | hi! link scalaOperator Operator
2066 | hi! link scalaSpecial Special
2067 |
2068 | hi! link scalaEscapedChar Special
2069 | hi! link scalaNumber Number
2070 | endif
2071 |
2072 | " }}}
2073 | " TypeScript: {{{
2074 |
2075 | if g:gruvbox_legacy_language_groups
2076 | hi! link typescriptReserved GruvboxAqua
2077 | hi! link typescriptLabel GruvboxAqua
2078 | hi! link typescriptFuncKeyword GruvboxAqua
2079 | hi! link typescriptIdentifier GruvboxOrange
2080 | hi! link typescriptBraces GruvboxFg1
2081 | hi! link typescriptEndColons GruvboxFg1
2082 | hi! link typescriptDOMObjects GruvboxFg1
2083 | hi! link typescriptAjaxMethods GruvboxFg1
2084 | hi! link typescriptLogicSymbols GruvboxFg1
2085 | hi! link typescriptDocSeeTag Comment
2086 | hi! link typescriptDocParam Comment
2087 | hi! link typescriptDocTags vimCommentTitle
2088 | hi! link typescriptGlobalObjects GruvboxFg1
2089 | hi! link typescriptParens GruvboxFg3
2090 | hi! link typescriptOpSymbols GruvboxFg3
2091 | hi! link typescriptHtmlElemProperties GruvboxFg1
2092 | hi! link typescriptNull GruvboxPurple
2093 | hi! link typescriptInterpolationDelimiter GruvboxAqua
2094 | else
2095 | hi! link typescriptAssign Operator
2096 | hi! link typescriptBinaryOp Operator
2097 | hi! link typescriptCastKeyword Keyword
2098 | hi! link typescriptDocNotation Keyword
2099 | hi! link typescriptDocParam Field
2100 | hi! link typescriptDocTags Keyword
2101 | hi! link typescriptExport Include
2102 | hi! link typescriptImport Include
2103 | hi! link typescriptInterfaceName TypeDef
2104 | hi! link typescriptKeywordOp Operator
2105 | hi! link typescriptMember Field
2106 | hi! link typescriptObjectLabel Field
2107 | hi! link typescriptTernary Operator
2108 | hi! link typescriptVariable Type
2109 |
2110 | hi! link typescriptAssign Punctuation
2111 | hi! link typescriptBraces Punctuation
2112 | hi! link typescriptEndColons Punctuation
2113 | hi! link typescriptObjectColon Punctuation
2114 | hi! link typescriptParens Punctuation
2115 | hi! link typescriptTypeAnnotation Punctuation
2116 | endif
2117 |
2118 | " }}}
2119 | " Vim: {{{
2120 |
2121 | call s:HL('vimCommentTitle', s:gb.fg4_256, s:none, s:bold . s:italicize_comments)
2122 |
2123 | if g:gruvbox_legacy_language_groups
2124 | hi! link vimNotation GruvboxOrange
2125 | hi! link vimBracket GruvboxOrange
2126 | hi! link vimMapModKey GruvboxOrange
2127 | hi! link vimFuncSID GruvboxFg3
2128 | hi! link vimSetSep GruvboxFg3
2129 | hi! link vimSep GruvboxFg3
2130 | hi! link vimContinue GruvboxFg3
2131 | else
2132 | hi! link vimCommand Keyword
2133 | hi! link vimMapModKey Special
2134 | hi! link vimNotation Special
2135 | hi! link vimOption Special
2136 | hi! link vimSet Normal
2137 | hi! link vimUsrCmd Macro
2138 | hi! link vimVar Variable
2139 |
2140 | " Vim syntax is unable to highlight some punctuation at all.
2141 | " Make punctuation closer to the default white instead of the default color.
2142 |
2143 | " hi! link vimBracket Punctuation
2144 | " hi! link vimContinue Punctuation
2145 | " hi! link vimEcho Punctuation
2146 | " hi! link vimFuncBody Punctuation
2147 | " hi! link vimOperParen Punctuation
2148 | " hi! link vimParenSep Punctuation
2149 | " hi! link vimSep Punctuation
2150 | " hi! link vimSetSep Punctuation
2151 |
2152 | hi! link vimBracket GruvboxFg3
2153 | hi! link vimContinue GruvboxFg3
2154 | hi! link vimEcho GruvboxFg3
2155 | hi! link vimOperParen GruvboxFg3
2156 | hi! link vimParenSep GruvboxFg3
2157 | hi! link vimSep GruvboxFg3
2158 | hi! link vimSetSep GruvboxFg3
2159 |
2160 | " Vim syntax is unable to highlight complete user functions calls/definitions.
2161 | " Make these appear the same as variables instead of the default color.
2162 |
2163 | " hi! link vimFunction Function
2164 | " hi! link vimFuncSID Function
2165 | " hi! link vimUserFunc Function
2166 |
2167 | hi! link vimFunction Variable
2168 | hi! link vimFuncSID Variable
2169 | hi! link vimUserFunc Variable
2170 | endif
2171 |
2172 | " }}}
2173 | " Xml: {{{
2174 |
2175 | if g:gruvbox_legacy_language_groups
2176 | hi! link xmlTag GruvboxAquaBold
2177 | hi! link xmlEndTag GruvboxAquaBold
2178 | hi! link xmlTagName GruvboxBlue
2179 | hi! link xmlEqual GruvboxBlue
2180 | hi! link docbkKeyword GruvboxAquaBold
2181 |
2182 | hi! link xmlDocTypeDecl GruvboxGray
2183 | hi! link xmlDocTypeKeyword GruvboxPurple
2184 | hi! link xmlCdataStart GruvboxGray
2185 | hi! link xmlCdataCdata GruvboxPurple
2186 | hi! link dtdFunction GruvboxGray
2187 | hi! link dtdTagName GruvboxPurple
2188 |
2189 | hi! link xmlAttrib GruvboxOrange
2190 | hi! link xmlProcessingDelim GruvboxGray
2191 | hi! link dtdParamEntityPunct GruvboxGray
2192 | hi! link dtdParamEntityDPunct GruvboxGray
2193 | hi! link xmlAttribPunct GruvboxGray
2194 |
2195 | hi! link xmlEntity GruvboxRed
2196 | hi! link xmlEntityPunct GruvboxRed
2197 | else
2198 | hi! link xmlTag Punctuation
2199 | hi! link xmlEndTag Punctuation
2200 | hi! link xmlTagName Tag
2201 | hi! link xmlEqual Operator
2202 |
2203 | hi! link xmlDocType Field
2204 | hi! link xmlDocTypeDecl Punctuation
2205 | hi! link xmlDocTypeKeyword Special
2206 |
2207 | hi! link xmlCdataStart Punctuation
2208 | hi! link xmlCdataEnd Punctuation
2209 | hi! link xmlCdataCdata Special
2210 | hi! link xmlCdata String
2211 |
2212 | hi! link xmlAttrib Field
2213 | hi! link xmlProcessingDelim Punctuation
2214 | hi! link xmlAttribPunct Punctuation
2215 |
2216 | hi! link xmlEntity Special
2217 | hi! link xmlEntityPunct Special
2218 |
2219 | hi! link dtdAttrType Type
2220 | hi! link dtdCard Operator
2221 | hi! link dtdEnum Constant
2222 | hi! link dtdFunction Punctuation
2223 | hi! link dtdParamEntityDPunct Punctuation
2224 | hi! link dtdParamEntityPunct Punctuation
2225 | hi! link dtdString String
2226 | hi! link dtdTag Field
2227 | hi! link dtdTagName Special
2228 |
2229 | hi! link docbkKeyword Tag
2230 | call s:HL('docbkTitle', s:vim_fg, s:none, s:bold)
2231 | endif
2232 |
2233 | " }}}
2234 | " YAJS: {{{
2235 |
2236 | if g:gruvbox_legacy_language_groups
2237 | hi! link javascriptImport GruvboxAqua
2238 | hi! link javascriptExport GruvboxAqua
2239 | hi! link javascriptClassKeyword GruvboxAqua
2240 | hi! link javascriptClassExtends GruvboxAqua
2241 | hi! link javascriptDefault GruvboxAqua
2242 |
2243 | hi! link javascriptClassName GruvboxYellow
2244 | hi! link javascriptClassSuperName GruvboxYellow
2245 | hi! link javascriptGlobal GruvboxYellow
2246 |
2247 | hi! link javascriptEndColons GruvboxFg1
2248 | hi! link javascriptFuncArg GruvboxFg1
2249 | hi! link javascriptGlobalMethod GruvboxFg1
2250 | hi! link javascriptNodeGlobal GruvboxFg1
2251 | hi! link javascriptBOMWindowProp GruvboxFg1
2252 | hi! link javascriptArrayMethod GruvboxFg1
2253 | hi! link javascriptArrayStaticMethod GruvboxFg1
2254 | hi! link javascriptCacheMethod GruvboxFg1
2255 | hi! link javascriptDateMethod GruvboxFg1
2256 | hi! link javascriptMathStaticMethod GruvboxFg1
2257 |
2258 | " hi! link javascriptProp GruvboxFg1
2259 | hi! link javascriptURLUtilsProp GruvboxFg1
2260 | hi! link javascriptBOMNavigatorProp GruvboxFg1
2261 | hi! link javascriptDOMDocMethod GruvboxFg1
2262 | hi! link javascriptDOMDocProp GruvboxFg1
2263 | hi! link javascriptBOMLocationMethod GruvboxFg1
2264 | hi! link javascriptBOMWindowMethod GruvboxFg1
2265 | hi! link javascriptStringMethod GruvboxFg1
2266 |
2267 | hi! link javascriptVariable GruvboxOrange
2268 | " hi! link javascriptVariable GruvboxRed
2269 | " hi! link javascriptIdentifier GruvboxOrange
2270 | " hi! link javascriptClassSuper GruvboxOrange
2271 | hi! link javascriptIdentifier GruvboxOrange
2272 | hi! link javascriptClassSuper GruvboxOrange
2273 |
2274 | " hi! link javascriptFuncKeyword GruvboxOrange
2275 | " hi! link javascriptAsyncFunc GruvboxOrange
2276 | hi! link javascriptFuncKeyword GruvboxAqua
2277 | hi! link javascriptAsyncFunc GruvboxAqua
2278 | hi! link javascriptClassStatic GruvboxOrange
2279 |
2280 | hi! link javascriptOperator GruvboxRed
2281 | hi! link javascriptForOperator GruvboxRed
2282 | hi! link javascriptYield GruvboxRed
2283 | hi! link javascriptExceptions GruvboxRed
2284 | hi! link javascriptMessage GruvboxRed
2285 |
2286 | hi! link javascriptTemplateSB GruvboxAqua
2287 | hi! link javascriptTemplateSubstitution GruvboxFg1
2288 |
2289 | " hi! link javascriptLabel GruvboxBlue
2290 | " hi! link javascriptObjectLabel GruvboxBlue
2291 | " hi! link javascriptPropertyName GruvboxBlue
2292 | hi! link javascriptLabel GruvboxFg1
2293 | hi! link javascriptObjectLabel GruvboxFg1
2294 | hi! link javascriptPropertyName GruvboxFg1
2295 |
2296 | hi! link javascriptLogicSymbols GruvboxFg1
2297 | hi! link javascriptArrowFunc GruvboxYellow
2298 |
2299 | hi! link javascriptDocParamName GruvboxFg4
2300 | hi! link javascriptDocTags GruvboxFg4
2301 | hi! link javascriptDocNotation GruvboxFg4
2302 | hi! link javascriptDocParamType GruvboxFg4
2303 | hi! link javascriptDocNamedParamType GruvboxFg4
2304 |
2305 | hi! link javascriptBrackets GruvboxFg1
2306 | hi! link javascriptDOMElemAttrs GruvboxFg1
2307 | hi! link javascriptDOMEventMethod GruvboxFg1
2308 | hi! link javascriptDOMNodeMethod GruvboxFg1
2309 | hi! link javascriptDOMStorageMethod GruvboxFg1
2310 | hi! link javascriptHeadersMethod GruvboxFg1
2311 |
2312 | hi! link javascriptAsyncFuncKeyword GruvboxRed
2313 | hi! link javascriptAwaitFuncKeyword GruvboxRed
2314 | else
2315 | hi! link javascriptEndColons Punctuation
2316 | hi! link javascriptDocParam Identifier
2317 | hi! link javascriptDocNotation Keyword
2318 | hi! link javascriptDocParamName Field
2319 | hi! link javascriptDocParamType Type
2320 | hi! link javascriptDocTags Keyword
2321 | hi! link javascriptDocName Field
2322 | hi! link javascriptParens Bracket
2323 | hi! link javascriptBraces Bracket
2324 | hi! link javascriptBrackets Bracket
2325 | hi! link javascriptFuncArg Identifier
2326 | hi! link javascriptArrowFuncArg Identifier
2327 | hi! link javascriptArrowFunc Punctuation
2328 | hi! link javascriptVariable StorageClass
2329 | hi! link javascriptLabel Field
2330 | hi! link javascriptGlobal Special
2331 | hi! link javascriptOperator Operator
2332 | hi! link javascriptOpSymbol Operator
2333 | hi! link javascriptOpSymbols Operator
2334 | hi! link javascriptDotNotation Punctuation
2335 | hi! link javascriptComma Punctuation
2336 | hi! link javascriptObjectLabelColon Punctuation
2337 | hi! link javascriptNull Constant
2338 | hi! link javascriptIdentifierName Identifier
2339 | hi! link javascriptMethod Function
2340 | hi! link javascriptNumber Number
2341 | hi! link javascriptTemplateSubstitution Punctuation
2342 | hi! link javascriptParenObjectLiteral Bracket
2343 | hi! link javascriptParenTagLiteral Bracket
2344 |
2345 | hi! link javascriptProp Field
2346 | hi! link javascriptBOMHistoryProp javascriptProp
2347 | hi! link javascriptBOMLocationProp javascriptProp
2348 | hi! link javascriptBOMNavigatorProp javascriptProp
2349 | hi! link javascriptBOMNetworkProp javascriptProp
2350 | hi! link javascriptBOMWindowProp javascriptProp
2351 | hi! link javascriptBroadcastProp javascriptProp
2352 | hi! link javascriptCryptoProp javascriptProp
2353 | hi! link javascriptDataViewProp javascriptProp
2354 | hi! link javascriptDOMDocProp javascriptProp
2355 | hi! link javascriptDOMEventProp javascriptProp
2356 | hi! link javascriptDOMFormProp javascriptProp
2357 | hi! link javascriptDOMNodeProp javascriptProp
2358 | hi! link javascriptDOMStorageProp javascriptProp
2359 | hi! link javascriptEncodingProp javascriptProp
2360 | hi! link javascriptES6MapProp javascriptProp
2361 | hi! link javascriptES6SetProp javascriptProp
2362 | hi! link javascriptFileReaderProp javascriptProp
2363 | hi! link javascriptMathStaticProp javascriptProp
2364 | hi! link javascriptNumberStaticProp javascriptProp
2365 | hi! link javascriptPaymentAddressProp javascriptProp
2366 | hi! link javascriptPaymentProp javascriptProp
2367 | hi! link javascriptPaymentResponseProp javascriptProp
2368 | hi! link javascriptPaymentShippingOptionProp javascriptProp
2369 | hi! link javascriptRegExpProp javascriptProp
2370 | hi! link javascriptRegExpStaticProp javascriptProp
2371 | hi! link javascriptRequestProp javascriptProp
2372 | hi! link javascriptResponseProp javascriptProp
2373 | hi! link javascriptServiceWorkerProp javascriptProp
2374 | hi! link javascriptSymbolProp javascriptProp
2375 | hi! link javascriptSymbolStaticProp javascriptProp
2376 | hi! link javascriptTypedArrayStaticProp javascriptProp
2377 | hi! link javascriptURLUtilsProp javascriptProp
2378 | hi! link javascriptXHRProp javascriptProp
2379 | endif
2380 |
2381 | " }}}
2382 |
2383 | " Functions -------------------------------------------------------------------
2384 | " Search Highlighting Cursor {{{
2385 |
2386 | function! GruvboxHlsShowCursor()
2387 | call s:HL('Cursor', s:bg0, s:hls_cursor)
2388 | endfunction
2389 |
2390 | function! GruvboxHlsHideCursor()
2391 | call s:HL('Cursor', s:none, s:none, s:inverse)
2392 | endfunction
2393 |
2394 | " }}}
2395 |
2396 | " vim: set sw=2 ts=2 sts=2 et tw=80 ft=vim fdm=marker:
2397 |
--------------------------------------------------------------------------------
/gruvbox_256palette.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | if [ "${TERM%%-*}" = "screen" ] || [ "${TERM%%-*}" = "tmux" ]; then
4 | if [ -n "$TMUX" ]; then
5 | printf "\033Ptmux;\033\033]4;236;rgb:32/30/2f\007\033\\"
6 | printf "\033Ptmux;\033\033]4;234;rgb:1d/20/21\007\033\\"
7 |
8 | printf "\033Ptmux;\033\033]4;235;rgb:28/28/28\007\033\\"
9 | printf "\033Ptmux;\033\033]4;237;rgb:3c/38/36\007\033\\"
10 | printf "\033Ptmux;\033\033]4;239;rgb:50/49/45\007\033\\"
11 | printf "\033Ptmux;\033\033]4;241;rgb:66/5c/54\007\033\\"
12 | printf "\033Ptmux;\033\033]4;243;rgb:7c/6f/64\007\033\\"
13 |
14 | printf "\033Ptmux;\033\033]4;244;rgb:92/83/74\007\033\\"
15 | printf "\033Ptmux;\033\033]4;245;rgb:92/83/74\007\033\\"
16 |
17 | printf "\033Ptmux;\033\033]4;228;rgb:f2/e5/bc\007\033\\"
18 | printf "\033Ptmux;\033\033]4;230;rgb:f9/f5/d7\007\033\\"
19 |
20 | printf "\033Ptmux;\033\033]4;229;rgb:fb/f1/c7\007\033\\"
21 | printf "\033Ptmux;\033\033]4;223;rgb:eb/db/b2\007\033\\"
22 | printf "\033Ptmux;\033\033]4;250;rgb:d5/c4/a1\007\033\\"
23 | printf "\033Ptmux;\033\033]4;248;rgb:bd/ae/93\007\033\\"
24 | printf "\033Ptmux;\033\033]4;246;rgb:a8/99/84\007\033\\"
25 |
26 | printf "\033Ptmux;\033\033]4;167;rgb:fb/49/34\007\033\\"
27 | printf "\033Ptmux;\033\033]4;142;rgb:b8/bb/26\007\033\\"
28 | printf "\033Ptmux;\033\033]4;214;rgb:fa/bd/2f\007\033\\"
29 | printf "\033Ptmux;\033\033]4;109;rgb:83/a5/98\007\033\\"
30 | printf "\033Ptmux;\033\033]4;175;rgb:d3/86/9b\007\033\\"
31 | printf "\033Ptmux;\033\033]4;108;rgb:8e/c0/7c\007\033\\"
32 | printf "\033Ptmux;\033\033]4;208;rgb:fe/80/19\007\033\\"
33 |
34 | printf "\033Ptmux;\033\033]4;88;rgb:9d/00/06\007\033\\"
35 | printf "\033Ptmux;\033\033]4;100;rgb:79/74/0e\007\033\\"
36 | printf "\033Ptmux;\033\033]4;136;rgb:b5/76/14\007\033\\"
37 | printf "\033Ptmux;\033\033]4;24;rgb:07/66/78\007\033\\"
38 | printf "\033Ptmux;\033\033]4;96;rgb:8f/3f/71\007\033\\"
39 | printf "\033Ptmux;\033\033]4;65;rgb:42/7b/58\007\033\\"
40 | printf "\033Ptmux;\033\033]4;130;rgb:af/3a/03\007\033\\"
41 | else
42 | printf "\033P\033]4;236;rgb:32/30/2f\007\033\\"
43 | printf "\033P\033]4;234;rgb:1d/20/21\007\033\\"
44 |
45 | printf "\033P\033]4;235;rgb:28/28/28\007\033\\"
46 | printf "\033P\033]4;237;rgb:3c/38/36\007\033\\"
47 | printf "\033P\033]4;239;rgb:50/49/45\007\033\\"
48 | printf "\033P\033]4;241;rgb:66/5c/54\007\033\\"
49 | printf "\033P\033]4;243;rgb:7c/6f/64\007\033\\"
50 |
51 | printf "\033P\033]4;244;rgb:92/83/74\007\033\\"
52 | printf "\033P\033]4;245;rgb:92/83/74\007\033\\"
53 |
54 | printf "\033P\033]4;228;rgb:f2/e5/bc\007\033\\"
55 | printf "\033P\033]4;230;rgb:f9/f5/d7\007\033\\"
56 |
57 | printf "\033P\033]4;229;rgb:fb/f1/c7\007\033\\"
58 | printf "\033P\033]4;223;rgb:eb/db/b2\007\033\\"
59 | printf "\033P\033]4;250;rgb:d5/c4/a1\007\033\\"
60 | printf "\033P\033]4;248;rgb:bd/ae/93\007\033\\"
61 | printf "\033P\033]4;246;rgb:a8/99/84\007\033\\"
62 |
63 | printf "\033P\033]4;167;rgb:fb/49/34\007\033\\"
64 | printf "\033P\033]4;142;rgb:b8/bb/26\007\033\\"
65 | printf "\033P\033]4;214;rgb:fa/bd/2f\007\033\\"
66 | printf "\033P\033]4;109;rgb:83/a5/98\007\033\\"
67 | printf "\033P\033]4;175;rgb:d3/86/9b\007\033\\"
68 | printf "\033P\033]4;108;rgb:8e/c0/7c\007\033\\"
69 | printf "\033P\033]4;208;rgb:fe/80/19\007\033\\"
70 |
71 | printf "\033P\033]4;88;rgb:9d/00/06\007\033\\"
72 | printf "\033P\033]4;100;rgb:79/74/0e\007\033\\"
73 | printf "\033P\033]4;136;rgb:b5/76/14\007\033\\"
74 | printf "\033P\033]4;24;rgb:07/66/78\007\033\\"
75 | printf "\033P\033]4;96;rgb:8f/3f/71\007\033\\"
76 | printf "\033P\033]4;65;rgb:42/7b/58\007\033\\"
77 | printf "\033P\033]4;130;rgb:af/3a/03\007\033\\"
78 | fi
79 |
80 | elif [ "$TERM" = "fbterm" ]; then
81 | printf "\033[3;236;50;48;47}"
82 | printf "\033[3;234;29;32;33}"
83 |
84 | printf "\033[3;235;40;40;40}"
85 | printf "\033[3;237;60;56;54}"
86 | printf "\033[3;239;80;73;69}"
87 | printf "\033[3;241;102;92;84}"
88 | printf "\033[3;243;124;111;100}"
89 |
90 | printf "\033[3;244;146;131;116}"
91 | printf "\033[3;245;146;131;116}"
92 |
93 | printf "\033[3;228;242;229;188}"
94 | printf "\033[3;230;249;245;215}"
95 |
96 | printf "\033[3;229;253;244;193}"
97 | printf "\033[3;223;235;219;178}"
98 | printf "\033[3;250;213;196;161}"
99 | printf "\033[3;248;189;174;147}"
100 | printf "\033[3;246;168;153;132}"
101 |
102 | printf "\033[3;167;251;73;52}"
103 | printf "\033[3;142;184;187;38}"
104 | printf "\033[3;214;250;189;47}"
105 | printf "\033[3;109;131;165;152}"
106 | printf "\033[3;175;211;134;155}"
107 | printf "\033[3;108;142;192;124}"
108 | printf "\033[3;208;254;128;25}"
109 |
110 | printf "\033[3;88;157;0;6}"
111 | printf "\033[3;100;121;116;14}"
112 | printf "\033[3;136;181;118;20}"
113 | printf "\033[3;24;7;102;120}"
114 | printf "\033[3;96;143;63;113}"
115 | printf "\033[3;65;66;123;88}"
116 | printf "\033[3;130;175;58;3}"
117 |
118 | elif [ "$TERM" != "linux" ] && [ "$TERM" != "vt100" ] && [ "$TERM" != "vt220" ]; then
119 |
120 | printf "\033]4;236;rgb:32/30/2f\033\\"
121 | printf "\033]4;234;rgb:1d/20/21\033\\"
122 |
123 | printf "\033]4;235;rgb:28/28/28\033\\"
124 | printf "\033]4;237;rgb:3c/38/36\033\\"
125 | printf "\033]4;239;rgb:50/49/45\033\\"
126 | printf "\033]4;241;rgb:66/5c/54\033\\"
127 | printf "\033]4;243;rgb:7c/6f/64\033\\"
128 |
129 | printf "\033]4;244;rgb:92/83/74\033\\"
130 | printf "\033]4;245;rgb:92/83/74\033\\"
131 |
132 | printf "\033]4;228;rgb:f2/e5/bc\033\\"
133 | printf "\033]4;230;rgb:f9/f5/d7\033\\"
134 |
135 | printf "\033]4;229;rgb:fb/f1/c7\033\\"
136 | printf "\033]4;223;rgb:eb/db/b2\033\\"
137 | printf "\033]4;250;rgb:d5/c4/a1\033\\"
138 | printf "\033]4;248;rgb:bd/ae/93\033\\"
139 | printf "\033]4;246;rgb:a8/99/84\033\\"
140 |
141 | printf "\033]4;167;rgb:fb/49/34\033\\"
142 | printf "\033]4;142;rgb:b8/bb/26\033\\"
143 | printf "\033]4;214;rgb:fa/bd/2f\033\\"
144 | printf "\033]4;109;rgb:83/a5/98\033\\"
145 | printf "\033]4;175;rgb:d3/86/9b\033\\"
146 | printf "\033]4;108;rgb:8e/c0/7c\033\\"
147 | printf "\033]4;208;rgb:fe/80/19\033\\"
148 |
149 | printf "\033]4;88;rgb:9d/00/06\033\\"
150 | printf "\033]4;100;rgb:79/74/0e\033\\"
151 | printf "\033]4;136;rgb:b5/76/14\033\\"
152 | printf "\033]4;24;rgb:07/66/78\033\\"
153 | printf "\033]4;96;rgb:8f/3f/71\033\\"
154 | printf "\033]4;65;rgb:42/7b/58\033\\"
155 | printf "\033]4;130;rgb:af/3a/03\033\\"
156 | fi
157 |
--------------------------------------------------------------------------------
/gruvbox_256palette_osx.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | if [ "${TERM%%-*}" = "screen" ] || [ "${TERM%%-*}" = "tmux" ]; then
4 | if [ -n "$TMUX" ]; then
5 | printf "\033Ptmux;\033\033]4;236;rgb:26/24/23\007\033\\"
6 | printf "\033Ptmux;\033\033]4;234;rgb:16/18/19\007\033\\"
7 |
8 | printf "\033Ptmux;\033\033]4;235;rgb:1e/1e/1e\007\033\\"
9 | printf "\033Ptmux;\033\033]4;237;rgb:2e/2a/29\007\033\\"
10 | printf "\033Ptmux;\033\033]4;239;rgb:3f/39/35\007\033\\"
11 | printf "\033Ptmux;\033\033]4;241;rgb:53/4a/42\007\033\\"
12 | printf "\033Ptmux;\033\033]4;243;rgb:68/5c/51\007\033\\"
13 |
14 | printf "\033Ptmux;\033\033]4;244;rgb:7f/70/61\007\033\\"
15 | printf "\033Ptmux;\033\033]4;245;rgb:7f/70/61\007\033\\"
16 |
17 | printf "\033Ptmux;\033\033]4;228;rgb:ef/df/ae\007\033\\"
18 | printf "\033Ptmux;\033\033]4;230;rgb:f8/f4/cd\007\033\\"
19 |
20 | printf "\033Ptmux;\033\033]4;229;rgb:fa/ee/bb\007\033\\"
21 | printf "\033Ptmux;\033\033]4;223;rgb:e6/d4/a3\007\033\\"
22 | printf "\033Ptmux;\033\033]4;250;rgb:cb/b8/90\007\033\\"
23 | printf "\033Ptmux;\033\033]4;248;rgb:af/9f/81\007\033\\"
24 | printf "\033Ptmux;\033\033]4;246;rgb:97/87/71\007\033\\"
25 |
26 | printf "\033Ptmux;\033\033]4;167;rgb:f7/30/28\007\033\\"
27 | printf "\033Ptmux;\033\033]4;142;rgb:aa/b0/1e\007\033\\"
28 | printf "\033Ptmux;\033\033]4;214;rgb:f7/b1/25\007\033\\"
29 | printf "\033Ptmux;\033\033]4;109;rgb:71/95/86\007\033\\"
30 | printf "\033Ptmux;\033\033]4;175;rgb:c7/70/89\007\033\\"
31 | printf "\033Ptmux;\033\033]4;108;rgb:7d/b6/69\007\033\\"
32 | printf "\033Ptmux;\033\033]4;208;rgb:fb/6a/16\007\033\\"
33 |
34 | printf "\033Ptmux;\033\033]4;88;rgb:89/00/09\007\033\\"
35 | printf "\033Ptmux;\033\033]4;100;rgb:66/62/0d\007\033\\"
36 | printf "\033Ptmux;\033\033]4;136;rgb:a5/63/11\007\033\\"
37 | printf "\033Ptmux;\033\033]4;24;rgb:0e/53/65\007\033\\"
38 | printf "\033Ptmux;\033\033]4;96;rgb:7b/2b/5e\007\033\\"
39 | printf "\033Ptmux;\033\033]4;65;rgb:35/6a/46\007\033\\"
40 | printf "\033Ptmux;\033\033]4;130;rgb:9d/28/07\007\033\\"
41 | else
42 | printf "\033P\033]4;236;rgb:26/24/23\007\033\\"
43 | printf "\033P\033]4;234;rgb:16/18/19\007\033\\"
44 |
45 | printf "\033P\033]4;235;rgb:1e/1e/1e\007\033\\"
46 | printf "\033P\033]4;237;rgb:2e/2a/29\007\033\\"
47 | printf "\033P\033]4;239;rgb:3f/39/35\007\033\\"
48 | printf "\033P\033]4;241;rgb:53/4a/42\007\033\\"
49 | printf "\033P\033]4;243;rgb:68/5c/51\007\033\\"
50 |
51 | printf "\033P\033]4;244;rgb:7f/70/61\007\033\\"
52 | printf "\033P\033]4;245;rgb:7f/70/61\007\033\\"
53 |
54 | printf "\033P\033]4;228;rgb:ef/df/ae\007\033\\"
55 | printf "\033P\033]4;230;rgb:f8/f4/cd\007\033\\"
56 |
57 | printf "\033P\033]4;229;rgb:fa/ee/bb\007\033\\"
58 | printf "\033P\033]4;223;rgb:e6/d4/a3\007\033\\"
59 | printf "\033P\033]4;250;rgb:cb/b8/90\007\033\\"
60 | printf "\033P\033]4;248;rgb:af/9f/81\007\033\\"
61 | printf "\033P\033]4;246;rgb:97/87/71\007\033\\"
62 |
63 | printf "\033P\033]4;167;rgb:f7/30/28\007\033\\"
64 | printf "\033P\033]4;142;rgb:aa/b0/1e\007\033\\"
65 | printf "\033P\033]4;214;rgb:f7/b1/25\007\033\\"
66 | printf "\033P\033]4;109;rgb:71/95/86\007\033\\"
67 | printf "\033P\033]4;175;rgb:c7/70/89\007\033\\"
68 | printf "\033P\033]4;108;rgb:7d/b6/69\007\033\\"
69 | printf "\033P\033]4;208;rgb:fb/6a/16\007\033\\"
70 |
71 | printf "\033P\033]4;88;rgb:89/00/09\007\033\\"
72 | printf "\033P\033]4;100;rgb:66/62/0d\007\033\\"
73 | printf "\033P\033]4;136;rgb:a5/63/11\007\033\\"
74 | printf "\033P\033]4;24;rgb:0e/53/65\007\033\\"
75 | printf "\033P\033]4;96;rgb:7b/2b/5e\007\033\\"
76 | printf "\033P\033]4;65;rgb:35/6a/46\007\033\\"
77 | printf "\033P\033]4;130;rgb:9d/28/07\007\033\\"
78 | fi
79 | else
80 | printf "\033]4;236;rgb:26/24/23\033\\"
81 | printf "\033]4;234;rgb:16/18/19\033\\"
82 |
83 | printf "\033]4;235;rgb:1e/1e/1e\033\\"
84 | printf "\033]4;237;rgb:2e/2a/29\033\\"
85 | printf "\033]4;239;rgb:3f/39/35\033\\"
86 | printf "\033]4;241;rgb:53/4a/42\033\\"
87 | printf "\033]4;243;rgb:68/5c/51\033\\"
88 |
89 | printf "\033]4;244;rgb:7f/70/61\033\\"
90 | printf "\033]4;245;rgb:7f/70/61\033\\"
91 |
92 | printf "\033]4;228;rgb:ef/df/ae\033\\"
93 | printf "\033]4;230;rgb:f8/f4/cd\033\\"
94 |
95 | printf "\033]4;229;rgb:fa/ee/bb\033\\"
96 | printf "\033]4;223;rgb:e6/d4/a3\033\\"
97 | printf "\033]4;250;rgb:cb/b8/90\033\\"
98 | printf "\033]4;248;rgb:af/9f/81\033\\"
99 | printf "\033]4;246;rgb:97/87/71\033\\"
100 |
101 | printf "\033]4;167;rgb:f7/30/28\033\\"
102 | printf "\033]4;142;rgb:aa/b0/1e\033\\"
103 | printf "\033]4;214;rgb:f7/b1/25\033\\"
104 | printf "\033]4;109;rgb:71/95/86\033\\"
105 | printf "\033]4;175;rgb:c7/70/89\033\\"
106 | printf "\033]4;108;rgb:7d/b6/69\033\\"
107 | printf "\033]4;208;rgb:fb/6a/16\033\\"
108 |
109 | printf "\033]4;88;rgb:89/00/09\033\\"
110 | printf "\033]4;100;rgb:66/62/0d\033\\"
111 | printf "\033]4;136;rgb:a5/63/11\033\\"
112 | printf "\033]4;24;rgb:0e/53/65\033\\"
113 | printf "\033]4;96;rgb:7b/2b/5e\033\\"
114 | printf "\033]4;65;rgb:35/6a/46\033\\"
115 | printf "\033]4;130;rgb:9d/28/07\033\\"
116 | fi
117 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "gruvbox",
3 | "version": "2.0.0",
4 | "repository": "git@github.com:gruvbox-community/gruvbox.git",
5 | "author": "gruvbox-community",
6 | "license": "MIT",
7 | "vim": {
8 | "opt": true
9 | }
10 | }
11 |
--------------------------------------------------------------------------------