├── .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 | ![Screenshot Dark](http://i.imgur.com/GkIl8Fn.png) 33 | 34 | ### Light mode 35 | 36 | ![Screenshot Light](http://i.imgur.com/X75niEa.png) 37 | 38 | ### Airline theme 39 | 40 | ![Screenshot Airline](http://i.imgur.com/wRQceUR.png) 41 | 42 | Palette 43 | ------- 44 | 45 | ### Dark mode 46 | 47 | ![Palette Dark](https://raw.githubusercontent.com/wiki/gruvbox-community/gruvbox/images/gruvbox_palette_dark.png) 48 | 49 | ### Light mode 50 | 51 | ![Palette Light](https://raw.githubusercontent.com/wiki/gruvbox-community/gruvbox/images/gruvbox_palette_light.png) 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 | ![Contrast Options](http://i.imgur.com/5MSbe6T.png) 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 | --------------------------------------------------------------------------------