4 Commits

Author SHA1 Message Date
Josh Dick
425443f2da Remove custom Dart highlight group 2020-07-22 00:47:21 -04:00
Josh Dick
0fdfdf3189 Merge branch 'master' into dartHighlighting 2020-07-18 00:10:56 -04:00
Josh Dick
ed76f2570e Fix a typo. 2020-07-18 00:10:37 -04:00
Josh Dick
334f971863 Add Dart highlighting support
Implements #226.
2020-07-07 11:58:07 -04:00
30 changed files with 1787 additions and 5556 deletions

View File

@@ -1,10 +0,0 @@
{
"env": {
"es6": true,
"node": true
},
"extends": "eslint:recommended",
"rules": {
"no-console": ["off"]
}
}

View File

@@ -6,7 +6,6 @@
Thank you! Thank you!
--> -->
- [ ] I have carefully read and followed the [Installation section of the README](https://github.com/joshdick/onedark.vim#installation) - [ ] I have carefully read and followed the [Installation section of the README](https://github.com/joshdick/onedark.vim#installation)
- [ ] I have searched through the [closed issues](https://github.com/joshdick/onedark.vim/issues?q=is%3Aissue+is%3Aclosed) to see if there is an existing solution for my issue - [ ] I have searched through the [closed issues](https://github.com/joshdick/onedark.vim/issues?q=is%3Aissue+is%3Aclosed) to see if there is an existing solution for my issue

View File

@@ -3,10 +3,10 @@ name: Validate Templates
on: on:
push: push:
branches: branches:
- main - master
pull_request: pull_request:
branches: branches:
- main - master
jobs: jobs:
build: build:
@@ -14,7 +14,7 @@ jobs:
strategy: strategy:
matrix: matrix:
node-version: [16.x] node-version: [12.x]
steps: steps:
- uses: actions/checkout@v1 - uses: actions/checkout@v1

2
.gitignore vendored
View File

@@ -1 +1 @@
node_modules build/node_modules

1
.husky/.gitignore vendored
View File

@@ -1 +0,0 @@
_

View File

@@ -1 +0,0 @@
npm test

1
.npmrc
View File

@@ -1 +0,0 @@
registry=https://registry.npmjs.org

View File

@@ -1,6 +0,0 @@
{
"arrowParens": "avoid",
"printWidth": 120,
"singleQuote": true,
"trailingComma": "none"
}

View File

@@ -14,22 +14,22 @@ The basic idea is that these files are generated by a build tool that substitute
Here are the locations of the files that are generated by the build system, along with the locations of the corresponding templates they are generated from: Here are the locations of the files that are generated by the build system, along with the locations of the corresponding templates they are generated from:
| Theme Location | Template Location | | Theme Location | Template Location |
| --------------------------- | --------------------------------------- | |----------------------------------------------|------------------------------------------|
| `autoload/onedark.vim` | `build/templates/autoload.template.vim` | | `autoload/onedark.vim` | `build/templates/autoload.template.vim` |
| `term/One Dark.Xresources` | `build/templates/One Dark.Xresources` | | `term/One Dark.Xresources` | `build/templates/One Dark.Xresources` |
| `term/One Dark.itermcolors` | `build/templates/One Dark.itermcolors` | | `term/One Dark.itermcolors` | `build/templates/One Dark.itermcolors` |
| `term/One Dark.terminal` | `build/templates/One Dark.terminal` | | `term/One Dark.terminal` | `build/templates/One Dark.terminal` |
| `term/One Dark.alacritty` | `build/templates/One Dark.alacritty` | | `term/One Dark.alacritty` | `build/templates/One Dark.alacritty` |
| `term/One Dark.colorscheme` | `build/templates/One Dark.colorscheme` |
### Configure It ### Configure It
1. Install [Node.js](https://nodejs.org/en/) (Installing via [nvm](https://github.com/creationix/nvm) or [homebrew](https://brew.sh) are both better options than the official Node.js installer.) 1) Install [Node.js](https://nodejs.org/en/) (Installing via [nvm](https://github.com/creationix/nvm) or [homebrew](https://brew.sh) are both better options than the official Node.js installer.)
2. Run the following from within the root of this repository. This will install the build system's dependencies and will automatically configure a Git pre-commit hook that runs `npm test` (see below). 2) Run the following from within the root of this repository. This will install the build system's dependencies and will automatically configure a Git pre-commit hook that runs `npm test` (see below).
```bash ```bash
> cd build
> npm install > npm install
``` ```
@@ -37,17 +37,16 @@ That's it!
### Use It ### Use It
The build system consists of a single Node.js script, `build/build.js`, which supports two commands: The build system consists of a single Node.js script, `build.js`, which supports two commands:
- Running `./build/build.js` or `npm run build` generates theme files from the templates, **overwriting changes to the theme files without confirmation.** * Running `./build.js` or `npm run build` generates theme files from the templates, **overwriting changes to the theme files without confirmation.**
- Running `./build/build.js check` or `npm test` checks that the theme files match the template-generated output, **without modifying theme files**. This command ensures that the theme files perfectly match the templates they are generated from, which is useful for detecting changes that were made to generated theme files but that should have been made in the templates. * Running `./build.js check` or `npm test` checks that the theme files match the template-generated output, **without modifying theme files**. This command ensures that the theme files perfectly match the templates they are generated from, which is useful for detecting changes that were made to generated theme files but that should have been made in the templates. (In addition to running `./build.js check`, `npm test` also runs [eslint](http://eslint.org) linting on the build system code to catch and prevent simple problems with changes to that code.)
- In addition to running `./build/build.js check`, `npm test` also runs linting and style checks on certain files to catch and prevent simple problems and stylistic inconsistency. If `npm test` reports any issues, many reported issues can be automatically fixed by running `npm run lint:fix`.)
The basic development workflow looks like this: The basic development workflow looks like this:
1. Make changes to the appropriate template files in `build/templates`, then run `npm run build`. 1. Make changes to the appropriate template files in `build/templates`, then run `npm run build` from inside the `build` directory.
2. Commit your changes with Git. `npm test` will automatically run before your commit is finalized. If the test fails, fix any inconsistencies between the template files and theme files (or linting/style errors if applicable), then try committing again. 2. Commit your change in Git. `npm test` will automatically run before your commit is finalized. If the test fails, fix any inconsistencies between the template files and theme files (or linting errors in `build.js` if applicable), then try committing again.
## Style Guidelines ## Style Guidelines
@@ -55,7 +54,7 @@ Please match the existing comment and whitespace style in all template files.
For the "Language-Specific Highlighting" portion of onedark.vim, blocks for each language should be organized alphabetically ("Markdown" comes before "PHP"). For the "Language-Specific Highlighting" portion of onedark.vim, blocks for each language should be organized alphabetically ("Markdown" comes before "PHP").
All code changes should pass against the included linting and style checks. These checks are run via [husky](https://www.npmjs.com/package/husky) and [lint-staged](https://www.npmjs.com/package/lint-staged) when you attempt to commit changes. You can manually check for linting and stylistic issues by running `npm test`, and many reported issues can be automatically fixed by running `npm run lint:fix`. Any changes to the JavaScript code in the build system should pass against the included eslint rules; you can manually check for linting errors by running `npm test` from inside the `build` directory.
## Thanks! ## Thanks!

View File

@@ -1,34 +1,10 @@
![onedark.vim](https://raw.githubusercontent.com/joshdick/onedark.vim/main/img/readme_header.png) ![onedark.vim](https://raw.githubusercontent.com/joshdick/onedark.vim/master/img/readme_header.png)
A dark Vim/Neovim color scheme for the GUI and 16/256/true-color terminals, based on [FlatColor](https://github.com/MaxSt/FlatColor), with colors inspired by the excellent [One Dark syntax theme](https://github.com/atom/atom/tree/master/packages/one-dark-syntax) for the [Atom text editor](https://atom.io). A dark Vim/Neovim color scheme for the GUI and 16/256/true-color terminals, based on [FlatColor](https://github.com/MaxSt/FlatColor), with colors inspired by the excellent [One Dark syntax theme](https://github.com/atom/one-dark-syntax) for the [Atom text editor](https://atom.io).
## Color Reference ## Color Reference
![Color Reference](https://raw.githubusercontent.com/joshdick/onedark.vim/main/img/color_reference.png) ![Color Reference](https://raw.githubusercontent.com/joshdick/onedark.vim/master/img/color_reference.png)
## Breaking Changes
[Pull request #271](https://github.com/joshdick/onedark.vim/pull/271), merged July 11, 2021, contained several breaking changes, especially for 16-color users.
If you are an existing onedark.vim user that is suddenly having issues after this PR was merged, see the [PR description](https://github.com/joshdick/onedark.vim/pull/271) for details.
## Supported Plugins
onedark.vim includes support for the following Vim and Neovim plugins:
- [airblade/vim-gitgutter](https://github.com/airblade/vim-gitgutter)
- [dense-analysis/ale](https://github.com/dense-analysis/ale)
- [easymotion/vim-easymotion](https://github.com/easymotion/vim-easymotion)
- [itchyny/lightline.vim](https://github.com/itchyny/lightline.vim)
- [lewis6991/gitsigns.nvim](https://github.com/lewis6991/gitsigns.nvim)
- [mhinz/vim-signify](https://github.com/mhinz/vim-signify)
- [neoclide/coc.nvim](https://github.com/neoclide/coc.nvim)
- [neomake/neomake](https://github.com/neomake/neomake)
- [Neovim LSP](https://neovim.io/doc/user/lsp.html)
- [plasticboy/vim-markdown](https://github.com/plasticboy/vim-markdown)
- [prabirshrestha/vim-lsp](https://github.com/prabirshrestha/vim-lsp)
- [tpope/vim-fugitive](https://github.com/tpope/vim-fugitive)
- [vim-airline/vim-airline](https://github.com/vim-airline/vim-airline)
## Installation ## Installation
@@ -83,22 +59,22 @@ onedark.vim includes support for the following Vim and Neovim plugins:
**Note:** All options should be set **before** the `colorscheme onedark` line in your `~/.vimrc`. **Note:** All options should be set **before** the `colorscheme onedark` line in your `~/.vimrc`.
- `g:onedark_hide_endofbuffer`: Set to `1` if you want to hide end-of-buffer filler lines (~) for a cleaner look; `0` otherwise (the default). * `g:onedark_hide_endofbuffer`: Set to `1` if you want to hide end-of-buffer filler lines (~) for a cleaner look; `0` otherwise (the default).
- `g:onedark_termcolors` **(see [Troubleshooting](#troubleshooting) (below) for more information about this option)**: Set to `256` for 256-color terminals (the default), or set to `16` to use your terminal emulator's native 16 colors. * `g:onedark_termcolors` **(see [Troubleshooting](#troubleshooting) (below) for more information about this option)**: Set to `256` for 256-color terminals (the default), or set to `16` to use your terminal emulator's native 16 colors.
- `g:onedark_terminal_italics`: Set to `1` if your terminal emulator supports italics; `0` otherwise (the default). * `g:onedark_terminal_italics`: Set to `1` if your terminal emulator supports italics; `0` otherwise (the default).
## lightline.vim Colorscheme ## lightline.vim Colorscheme
![lightline-onedark.vim Preview](https://raw.github.com/joshdick/onedark.vim/main/img/preview_lightline.png) ![lightline-onedark.vim Preview](https://raw.github.com/joshdick/onedark.vim/master/img/preview_lightline.png)
This repository includes a companion [lightline.vim](https://github.com/itchyny/lightline.vim) colorscheme for use with onedark.vim. This repository includes a companion [lightline.vim](https://github.com/itchyny/lightline.vim) colorscheme for use with onedark.vim.
The lightline.vim colorscheme: The lightline.vim colorscheme:
- Depends on `autoload/onedark.vim` for its colors, and must therefore be used in conjunction with it. * Depends on `autoload/onedark.vim` for its colors, and must therefore be used in conjunction with it.
- Works with both color modes available in onedark.vim (16 or 256 colors), as specified in the configuration for onedark.vim. * Works with both color modes available in onedark.vim (16 or 256 colors), as specified in the configuration for onedark.vim.
### Installation ### Installation
@@ -114,15 +90,15 @@ let g:lightline = {
## vim-airline Theme ## vim-airline Theme
![airline-onedark.vim Preview](https://raw.github.com/joshdick/onedark.vim/main/img/preview_airline.png) ![airline-onedark.vim Preview](https://raw.github.com/joshdick/onedark.vim/master/img/preview_airline.png)
This repository includes a companion [vim-airline](https://github.com/vim-airline/vim-airline) theme for use with onedark.vim. This repository includes a companion [vim-airline](https://github.com/vim-airline/vim-airline) theme for use with onedark.vim.
The vim-airline theme: The vim-airline theme:
- Depends on `autoload/onedark.vim` for its colors, and must therefore be used in conjunction with it. * Depends on `autoload/onedark.vim` for its colors, and must therefore be used in conjunction with it.
- Works with both color modes available in onedark.vim (16 or 256 colors), as specified in the configuration for onedark.vim. * Works with both color modes available in onedark.vim (16 or 256 colors), as specified in the configuration for onedark.vim.
- Is based on vim-airline's ["tomorrow" theme](https://github.com/vim-airline/vim-airline-themes/blob/master/autoload/airline/themes/tomorrow.vim). * Is based on vim-airline's ["tomorrow" theme](https://github.com/vim-airline/vim-airline-themes/blob/master/autoload/airline/themes/tomorrow.vim).
### Installation ### Installation
@@ -138,7 +114,7 @@ let g:airline_theme='onedark'
### Why do the colors in terminal Vim look totally crazy? ### Why do the colors in terminal Vim look totally crazy?
![Broken Colors](https://raw.githubusercontent.com/joshdick/onedark.vim/main/img/broken_colors.png) ![Broken Colors](https://raw.githubusercontent.com/joshdick/onedark.vim/master/img/broken_colors.png)
If Vim looks similar to the screenshot above, you have enabled Vim's 24-bit color terminal support, but your terminal doesn't support 24 bit color. Remove the relevant `~/.vimrc` configuration for enabling 24-bit color support to get things looking better. If Vim looks similar to the screenshot above, you have enabled Vim's 24-bit color terminal support, but your terminal doesn't support 24 bit color. Remove the relevant `~/.vimrc` configuration for enabling 24-bit color support to get things looking better.
@@ -152,27 +128,27 @@ However, you can use the `g:onedark_termcolors` option to control onedark.vim's
**When Vim/Neovim are configured to use 24-bit color, the `g:onedark_termcolors` option is ignored. However, `g:onedark_termcolors` can still coexist with 24-bit color configuration.** For instance, when tmux 2.1 or earlier and/or older Vim/Neovim versions that don't support 24-bit color are used, the `g:onedark_termcolors` option will take effect. **When Vim/Neovim are configured to use 24-bit color, the `g:onedark_termcolors` option is ignored. However, `g:onedark_termcolors` can still coexist with 24-bit color configuration.** For instance, when tmux 2.1 or earlier and/or older Vim/Neovim versions that don't support 24-bit color are used, the `g:onedark_termcolors` option will take effect.
- **256-color mode** is enabled by default with no additional configuration, but colors are less accurate since they are approximated using a 256-color palette. The background color will appear darker than in the preview image, and most other colors will appear brighter than in the preview image. If you don't want to change your terminal's color palette as described in the 16-color mode section below, and your terminal doesn't support 24-bit color, 256-color mode is your only option. * **256-color mode** is enabled by default with no additional configuration, but colors are less accurate since they are approximated using a 256-color palette. The background color will appear darker than in the preview image, and most other colors will appear brighter than in the preview image. If you don't want to change your terminal's color palette as described in the 16-color mode section below, and your terminal doesn't support 24-bit color, 256-color mode is your only option.
Although 256-color mode is enabled by default (when not using 24-bit color as described above), you can explicitly enable it by adding the following line to your `~/.vimrc`: Although 256-color mode is enabled by default (when not using 24-bit color as described above), you can explicitly enable it by adding the following line to your `~/.vimrc`:
```vim ```vim
let g:onedark_termcolors=256 let g:onedark_termcolors=256
``` ```
- **16-color mode** is the preferred option, since its colors are more accurate than those of 256-color mode. However, you'll need to set your terminal emulator's color palette to this color scheme's custom 16-color palette, since 16-color mode will cause the color scheme to use your terminal emulator's native 16 colors. If you don't use the custom 16-color palette in your terminal emulator when 16-color mode is enabled, onedark.vim's colors will not display correctly in Vim. * **16-color mode** is the preferred option, since its colors are more accurate than those of 256-color mode. However, you'll need to set your terminal emulator's color palette to this color scheme's custom 16-color palette, since 16-color mode will cause the color scheme to use your terminal emulator's native 16 colors. If you don't use the custom 16-color palette in your terminal emulator when 16-color mode is enabled, onedark.vim's colors will not display correctly in Vim.
The canonical version of the 16-color palette is an [Xresources](https://en.wikipedia.org/wiki/X_resources) file located in this repository at `term/One Dark.Xresources`. Color schemes for various terminal emulators are also provided in `term/`. (The [iTerm2](https://iterm2.com/) color scheme works with iTerm2 versions 2.9.x and later.) You should be able to easily convert the Xresources color scheme for use with your terminal emulator of choice either by hand, or automatically by using [termcolors](https://github.com/stayradiated/termcolors). The canonical version of the 16-color palette is an [Xresources](https://en.wikipedia.org/wiki/X_resources) file located in this repository at `term/One Dark.Xresources`. Color schemes for various terminal emulators are also provided in `term/`. (The [iTerm2](https://iterm2.com/) color scheme works with iTerm2 versions 2.9.x and later.) You should be able to easily convert the Xresources color scheme for use with your terminal emulator of choice either by hand, or automatically by using [termcolors](https://github.com/stayradiated/termcolors).
Assuming your terminal emulator is configured to use the custom 16-color palette as described above, add the following line to your `~/.vimrc` to enable 16-color mode: Assuming your terminal emulator is configured to use the custom 16-color palette as described above, add the following line to your `~/.vimrc` to enable 16-color mode:
```vim ```vim
let g:onedark_termcolors=16 let g:onedark_termcolors=16
``` ```
### Why do all comments look like they're highlighted? ### Why do all comments look like they're highlighted?
![Broken Italics](https://raw.githubusercontent.com/joshdick/onedark.vim/main/img/broken_italics.png) ![Broken Italics](https://raw.githubusercontent.com/joshdick/onedark.vim/master/img/broken_italics.png)
If all comments look like the one in the screenshot above, you have enabled italics in onedark.vim by setting `g:onedark_terminal_italics=1` in your `~/.vimrc`, but your terminal isn't displaying italics correctly. You can either remove the option or [try to fix your terminal](https://github.com/joshdick/onedark.vim/issues/97#issuecomment-299719352). If you're using [iTerm2](http://iterm2.com) on macOS, you might need to [use a special TERMINFO](https://gist.github.com/sos4nt/3187620) to get italics working. If all comments look like the one in the screenshot above, you have enabled italics in onedark.vim by setting `g:onedark_terminal_italics=1` in your `~/.vimrc`, but your terminal isn't displaying italics correctly. You can either remove the option or [try to fix your terminal](https://github.com/joshdick/onedark.vim/issues/97#issuecomment-299719352). If you're using [iTerm2](http://iterm2.com) on macOS, you might need to [use a special TERMINFO](https://gist.github.com/sos4nt/3187620) to get italics working.
@@ -237,7 +213,7 @@ You can override colors across all highlights by adding color definitions to the
```vim ```vim
let g:onedark_color_overrides = { let g:onedark_color_overrides = {
\ "background": {"gui": "#2F343F", "cterm": "235", "cterm16": "0" }, \ "black": {"gui": "#2F343F", "cterm": "235", "cterm16": "0" },
\ "purple": { "gui": "#C678DF", "cterm": "170", "cterm16": "5" } \ "purple": { "gui": "#C678DF", "cterm": "170", "cterm16": "5" }
\} \}
``` ```
@@ -260,18 +236,16 @@ Several other themes and projects have reused code and/or colors from this proje
If onedark.vim isn't meeting your needs, try one of its relatives! If onedark.vim isn't meeting your needs, try one of its relatives!
- [drewtempelmeyer/palenight.vim](https://github.com/drewtempelmeyer/palenight.vim) * [drewtempelmeyer/palenight.vim](https://github.com/drewtempelmeyer/palenight.vim)
- [KeitaNakamura/neodark.vim](https://github.com/KeitaNakamura/neodark.vim) * [KeitaNakamura/neodark.vim](https://github.com/KeitaNakamura/neodark.vim)
- [base16-onedark.vim](https://github.com/chriskempson/base16-vim/blob/master/colors/base16-onedark.vim) * [base16-onedark.vim](https://github.com/chriskempson/base16-vim/blob/master/colors/base16-onedark.vim)
- Associated base16 scheme: [tilal6991/base16-onedark-scheme](https://github.com/tilal6991/base16-onedark-scheme) * Associated base16 scheme: [tilal6991/base16-onedark-scheme](https://github.com/tilal6991/base16-onedark-scheme)
- [rakr/vim-one](https://github.com/rakr/vim-one) * [rakr/vim-one](https://github.com/rakr/vim-one)
- For Neovim >= 0.5 with treesitter support: [navarasu/onedark.nvim](https://github.com/navarasu/onedark.nvim) or [monsonjeremy/onedark.nvim](https://github.com/monsonjeremy/onedark.nvim)
- Neovim-only Lua port: [ii14/onedark.nvim](https://github.com/ii14/onedark.nvim)
### Preview images ### Preview images
Preview images were taken using: Preview images were taken using:
- [iTerm2](https://iterm2.com) terminal emulator on macOS * [iTerm2](https://iterm2.com) terminal emulator on macOS
- 13 pt. [PragmataPro Mono](http://www.fsd.it/fonts/pragmatapro.htm#.VlDa1q6rTOY) font * 13 pt. [PragmataPro Mono](http://www.fsd.it/fonts/pragmatapro.htm#.VlDa1q6rTOY) font
- [vim-polyglot](https://github.com/sheerun/vim-polyglot) plug-in * [vim-polyglot](https://github.com/sheerun/vim-polyglot) plug-in

View File

@@ -14,8 +14,8 @@ function! airline#themes#onedark#refresh()
let s:term_blue = s:colors.blue.cterm16 let s:term_blue = s:colors.blue.cterm16
let s:term_purple = s:colors.purple.cterm16 let s:term_purple = s:colors.purple.cterm16
let s:term_white = s:colors.white.cterm16 let s:term_white = s:colors.white.cterm16
let s:term_cursor_grey = s:colors.cursor_grey.cterm16 let s:term_black = s:colors.black.cterm16
let s:term_visual_grey = s:colors.visual_grey.cterm16 let s:term_grey = s:colors.cursor_grey.cterm16
else else
let s:term_red = s:colors.red.cterm let s:term_red = s:colors.red.cterm
let s:term_green = s:colors.green.cterm let s:term_green = s:colors.green.cterm
@@ -23,8 +23,8 @@ function! airline#themes#onedark#refresh()
let s:term_blue = s:colors.blue.cterm let s:term_blue = s:colors.blue.cterm
let s:term_purple = s:colors.purple.cterm let s:term_purple = s:colors.purple.cterm
let s:term_white = s:colors.white.cterm let s:term_white = s:colors.white.cterm
let s:term_cursor_grey = s:colors.cursor_grey.cterm let s:term_black = s:colors.black.cterm
let s:term_visual_grey = s:colors.visual_grey.cterm let s:term_grey = s:colors.cursor_grey.cterm
endif endif
let g:airline#themes#onedark#palette = {} let g:airline#themes#onedark#palette = {}
@@ -33,9 +33,9 @@ function! airline#themes#onedark#refresh()
\ 'red': [ s:colors.red.gui, '', s:term_red, 0 ] \ 'red': [ s:colors.red.gui, '', s:term_red, 0 ]
\ } \ }
let s:N1 = [ s:colors.cursor_grey.gui, s:colors.green.gui, s:term_cursor_grey, s:term_green ] let s:N1 = [ s:colors.black.gui, s:colors.green.gui, s:term_black, s:term_green ]
let s:N2 = [ s:colors.white.gui, s:colors.visual_grey.gui, s:term_white, s:term_visual_grey ] let s:N2 = [ s:colors.white.gui, s:colors.visual_grey.gui, s:term_white, s:term_grey ]
let s:N3 = [ s:colors.green.gui, s:colors.cursor_grey.gui, s:term_green, s:term_cursor_grey ] let s:N3 = [ s:colors.green.gui, s:colors.black.gui, s:term_green, '' ]
let g:airline#themes#onedark#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) let g:airline#themes#onedark#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3)
let group = airline#themes#get_highlight('vimCommand') let group = airline#themes#get_highlight('vimCommand')
@@ -43,26 +43,26 @@ function! airline#themes#onedark#refresh()
\ 'airline_c': [ group[0], '', group[2], '', '' ] \ 'airline_c': [ group[0], '', group[2], '', '' ]
\ } \ }
let s:I1 = [ s:colors.cursor_grey.gui, s:colors.blue.gui, s:term_cursor_grey, s:term_blue ] let s:I1 = [ s:colors.black.gui, s:colors.blue.gui, s:term_black, s:term_blue ]
let s:I2 = s:N2 let s:I2 = s:N2
let s:I3 = [ s:colors.blue.gui, s:colors.cursor_grey.gui, s:term_blue, '' ] let s:I3 = [ s:colors.blue.gui, s:colors.black.gui, s:term_blue, '' ]
let g:airline#themes#onedark#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) let g:airline#themes#onedark#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3)
let g:airline#themes#onedark#palette.insert_modified = g:airline#themes#onedark#palette.normal_modified let g:airline#themes#onedark#palette.insert_modified = g:airline#themes#onedark#palette.normal_modified
let s:R1 = [ s:colors.cursor_grey.gui, s:colors.red.gui, s:term_cursor_grey, s:term_red ] let s:R1 = [ s:colors.black.gui, s:colors.red.gui, s:term_black, s:term_red ]
let s:R2 = s:N2 let s:R2 = s:N2
let s:R3 = [ s:colors.red.gui, s:colors.cursor_grey.gui, s:term_red, '' ] let s:R3 = [ s:colors.red.gui, s:colors.black.gui, s:term_red, '' ]
let g:airline#themes#onedark#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) let g:airline#themes#onedark#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3)
let g:airline#themes#onedark#palette.replace_modified = g:airline#themes#onedark#palette.normal_modified let g:airline#themes#onedark#palette.replace_modified = g:airline#themes#onedark#palette.normal_modified
let s:V1 = [ s:colors.cursor_grey.gui, s:colors.purple.gui, s:term_cursor_grey, s:term_purple ] let s:V1 = [ s:colors.black.gui, s:colors.purple.gui, s:term_black, s:term_purple ]
let s:V2 = s:N2 let s:V2 = s:N2
let s:V3 = [ s:colors.purple.gui, s:colors.cursor_grey.gui, s:term_purple, '' ] let s:V3 = [ s:colors.purple.gui, s:colors.black.gui, s:term_purple, '' ]
let g:airline#themes#onedark#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) let g:airline#themes#onedark#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3)
let g:airline#themes#onedark#palette.visual_modified = g:airline#themes#onedark#palette.normal_modified let g:airline#themes#onedark#palette.visual_modified = g:airline#themes#onedark#palette.normal_modified
let s:IA1 = [ s:colors.cursor_grey.gui, s:colors.white.gui, s:term_cursor_grey, s:term_white ] let s:IA1 = [ s:colors.black.gui, s:colors.white.gui, s:term_black, s:term_white ]
let s:IA2 = [ s:colors.white.gui, s:colors.visual_grey.gui, s:term_white, s:term_visual_grey ] let s:IA2 = [ s:colors.white.gui, s:colors.visual_grey.gui, s:term_white, s:term_grey ]
let s:IA3 = s:N2 let s:IA3 = s:N2
let g:airline#themes#onedark#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) let g:airline#themes#onedark#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3)
let g:airline#themes#onedark#palette.inactive_modified = { let g:airline#themes#onedark#palette.inactive_modified = {
@@ -72,7 +72,7 @@ function! airline#themes#onedark#refresh()
" Warning/Error styling code from vim-airline's ["base16" theme](https://github.com/vim-airline/vim-airline-themes/blob/master/autoload/airline/themes/base16.vim) " Warning/Error styling code from vim-airline's ["base16" theme](https://github.com/vim-airline/vim-airline-themes/blob/master/autoload/airline/themes/base16.vim)
" Warnings " Warnings
let s:WI = [ s:colors.cursor_grey.gui, s:colors.yellow.gui, s:term_cursor_grey, s:term_yellow ] let s:WI = [ s:colors.black.gui, s:colors.yellow.gui, s:term_black, s:term_yellow ]
let g:airline#themes#onedark#palette.normal.airline_warning = [ let g:airline#themes#onedark#palette.normal.airline_warning = [
\ s:WI[0], s:WI[1], s:WI[2], s:WI[3] \ s:WI[0], s:WI[1], s:WI[2], s:WI[3]
\ ] \ ]
@@ -99,7 +99,7 @@ function! airline#themes#onedark#refresh()
\ g:airline#themes#onedark#palette.normal.airline_warning \ g:airline#themes#onedark#palette.normal.airline_warning
" Errors " Errors
let s:ER = [ s:colors.cursor_grey.gui, s:colors.red.gui, s:term_cursor_grey, s:term_red ] let s:ER = [ s:colors.black.gui, s:colors.red.gui, s:term_black, s:term_red ]
let g:airline#themes#onedark#palette.normal.airline_error = [ let g:airline#themes#onedark#palette.normal.airline_error = [
\ s:ER[0], s:ER[1], s:ER[2], s:ER[3] \ s:ER[0], s:ER[1], s:ER[2], s:ER[3]
\ ] \ ]

View File

@@ -12,8 +12,8 @@ if get(g:, 'onedark_termcolors', 256) == 16
let s:term_blue = s:colors.blue.cterm16 let s:term_blue = s:colors.blue.cterm16
let s:term_purple = s:colors.purple.cterm16 let s:term_purple = s:colors.purple.cterm16
let s:term_white = s:colors.white.cterm16 let s:term_white = s:colors.white.cterm16
let s:term_cursor_grey = s:colors.cursor_grey.cterm16 let s:term_black = s:colors.black.cterm16
let s:term_visual_grey = s:colors.visual_grey.cterm16 let s:term_grey = s:colors.cursor_grey.cterm16
else else
let s:term_red = s:colors.red.cterm let s:term_red = s:colors.red.cterm
let s:term_green = s:colors.green.cterm let s:term_green = s:colors.green.cterm
@@ -21,8 +21,8 @@ else
let s:term_blue = s:colors.blue.cterm let s:term_blue = s:colors.blue.cterm
let s:term_purple = s:colors.purple.cterm let s:term_purple = s:colors.purple.cterm
let s:term_white = s:colors.white.cterm let s:term_white = s:colors.white.cterm
let s:term_cursor_grey = s:colors.cursor_grey.cterm let s:term_black = s:colors.black.cterm
let s:term_visual_grey = s:colors.visual_grey.cterm let s:term_grey = s:colors.cursor_grey.cterm
endif endif
let s:red = [ s:colors.red.gui, s:term_red ] let s:red = [ s:colors.red.gui, s:term_red ]
@@ -31,28 +31,28 @@ let s:yellow = [ s:colors.yellow.gui, s:term_yellow ]
let s:blue = [ s:colors.blue.gui, s:term_blue ] let s:blue = [ s:colors.blue.gui, s:term_blue ]
let s:purple = [ s:colors.purple.gui, s:term_purple ] let s:purple = [ s:colors.purple.gui, s:term_purple ]
let s:white = [ s:colors.white.gui, s:term_white ] let s:white = [ s:colors.white.gui, s:term_white ]
let s:cursor_grey = [ s:colors.cursor_grey.gui, s:term_cursor_grey ] let s:black = [ s:colors.black.gui, s:term_black ]
let s:visual_grey = [ s:colors.visual_grey.gui, s:term_visual_grey ] let s:grey = [ s:colors.visual_grey.gui, s:term_grey ]
let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}} let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}}
let s:p.normal.left = [ [ s:cursor_grey, s:green ], [ s:white, s:visual_grey ] ] let s:p.normal.left = [ [ s:black, s:green ], [ s:white, s:grey ] ]
let s:p.normal.right = [ [ s:cursor_grey, s:green ], [ s:white, s:visual_grey ] ] let s:p.normal.right = [ [ s:black, s:green ], [ s:white, s:grey ] ]
let s:p.inactive.left = [ [ s:white, s:visual_grey ], [ s:white, s:visual_grey ] ] let s:p.inactive.left = [ [ s:white, s:grey ], [ s:white, s:grey ] ]
let s:p.inactive.right = [ [ s:cursor_grey, s:white ], [ s:cursor_grey, s:white ] ] let s:p.inactive.right = [ [ s:black, s:white ], [ s:black, s:white ] ]
let s:p.insert.left = [ [ s:cursor_grey, s:blue ], [ s:white, s:visual_grey ] ] let s:p.insert.left = [ [ s:black, s:blue ], [ s:white, s:grey ] ]
let s:p.insert.right = [ [ s:cursor_grey, s:blue ], [ s:white, s:visual_grey ] ] let s:p.insert.right = [ [ s:black, s:blue ], [ s:white, s:grey ] ]
let s:p.replace.left = [ [ s:cursor_grey, s:red ], [ s:white, s:visual_grey ] ] let s:p.replace.left = [ [ s:black, s:red ], [ s:white, s:grey ] ]
let s:p.replace.right = [ [ s:cursor_grey, s:red ], [ s:white, s:visual_grey ] ] let s:p.replace.right = [ [ s:black, s:red ], [ s:white, s:grey ] ]
let s:p.visual.left = [ [ s:cursor_grey, s:purple ], [ s:white, s:visual_grey ] ] let s:p.visual.left = [ [ s:black, s:purple ], [ s:white, s:grey ] ]
let s:p.visual.right = [ [ s:cursor_grey, s:purple ], [ s:white, s:visual_grey ] ] let s:p.visual.right = [ [ s:black, s:purple ], [ s:white, s:grey ] ]
let s:p.normal.middle = [ [ s:white, s:cursor_grey ] ] let s:p.normal.middle = [ [ s:white, s:black ] ]
let s:p.inactive.middle = [ [ s:white, s:visual_grey ] ] let s:p.inactive.middle = [ [ s:white, s:grey ] ]
let s:p.tabline.left = [ [ s:white, s:visual_grey ] ] let s:p.tabline.left = [ [ s:white, s:grey ] ]
let s:p.tabline.tabsel = [ [ s:cursor_grey, s:white ] ] let s:p.tabline.tabsel = [ [ s:black, s:white ] ]
let s:p.tabline.middle = [ [ s:white, s:cursor_grey ] ] let s:p.tabline.middle = [ [ s:white, s:black ] ]
let s:p.tabline.right = [ [ s:white, s:visual_grey ] ] let s:p.tabline.right = [ [ s:white, s:grey ] ]
let s:p.normal.error = [ [ s:cursor_grey, s:red ] ] let s:p.normal.error = [ [ s:black, s:red ] ]
let s:p.normal.warning = [ [ s:cursor_grey, s:yellow ] ] let s:p.normal.warning = [ [ s:black, s:yellow ] ]
let g:lightline#colorscheme#onedark#palette = lightline#colorscheme#flatten(s:p) let g:lightline#colorscheme#onedark#palette = lightline#colorscheme#flatten(s:p)

View File

@@ -11,17 +11,16 @@ let s:colors = {
\ "blue": get(s:overrides, "blue", { "gui": "#61AFEF", "cterm": "39", "cterm16": "4" }), \ "blue": get(s:overrides, "blue", { "gui": "#61AFEF", "cterm": "39", "cterm16": "4" }),
\ "purple": get(s:overrides, "purple", { "gui": "#C678DD", "cterm": "170", "cterm16": "5" }), \ "purple": get(s:overrides, "purple", { "gui": "#C678DD", "cterm": "170", "cterm16": "5" }),
\ "cyan": get(s:overrides, "cyan", { "gui": "#56B6C2", "cterm": "38", "cterm16": "6" }), \ "cyan": get(s:overrides, "cyan", { "gui": "#56B6C2", "cterm": "38", "cterm16": "6" }),
\ "white": get(s:overrides, "white", { "gui": "#ABB2BF", "cterm": "145", "cterm16": "15" }), \ "white": get(s:overrides, "white", { "gui": "#ABB2BF", "cterm": "145", "cterm16": "7" }),
\ "black": get(s:overrides, "black", { "gui": "#282C34", "cterm": "235", "cterm16": "0" }), \ "black": get(s:overrides, "black", { "gui": "#282C34", "cterm": "235", "cterm16": "0" }),
\ "foreground": get(s:overrides, "foreground", { "gui": "#ABB2BF", "cterm": "145", "cterm16": "NONE" }), \ "visual_black": get(s:overrides, "visual_black", { "gui": "NONE", "cterm": "NONE", "cterm16": "0" }),
\ "background": get(s:overrides, "background", { "gui": "#282C34", "cterm": "235", "cterm16": "NONE" }), \ "comment_grey": get(s:overrides, "comment_grey", { "gui": "#5C6370", "cterm": "59", "cterm16": "15" }),
\ "comment_grey": get(s:overrides, "comment_grey", { "gui": "#5C6370", "cterm": "59", "cterm16": "7" }), \ "gutter_fg_grey": get(s:overrides, "gutter_fg_grey", { "gui": "#4B5263", "cterm": "238", "cterm16": "15" }),
\ "gutter_fg_grey": get(s:overrides, "gutter_fg_grey", { "gui": "#4B5263", "cterm": "238", "cterm16": "8" }), \ "cursor_grey": get(s:overrides, "cursor_grey", { "gui": "#2C323C", "cterm": "236", "cterm16": "8" }),
\ "cursor_grey": get(s:overrides, "cursor_grey", { "gui": "#2C323C", "cterm": "236", "cterm16": "0" }), \ "visual_grey": get(s:overrides, "visual_grey", { "gui": "#3E4452", "cterm": "237", "cterm16": "15" }),
\ "visual_grey": get(s:overrides, "visual_grey", { "gui": "#3E4452", "cterm": "237", "cterm16": "8" }), \ "menu_grey": get(s:overrides, "menu_grey", { "gui": "#3E4452", "cterm": "237", "cterm16": "8" }),
\ "menu_grey": get(s:overrides, "menu_grey", { "gui": "#3E4452", "cterm": "237", "cterm16": "7" }), \ "special_grey": get(s:overrides, "special_grey", { "gui": "#3B4048", "cterm": "238", "cterm16": "15" }),
\ "special_grey": get(s:overrides, "special_grey", { "gui": "#3B4048", "cterm": "238", "cterm16": "7" }), \ "vertsplit": get(s:overrides, "vertsplit", { "gui": "#181A1F", "cterm": "59", "cterm16": "15" }),
\ "vertsplit": get(s:overrides, "vertsplit", { "gui": "#3E4452", "cterm": "59", "cterm16": "7" }),
\} \}
function! onedark#GetColors() function! onedark#GetColors()

28
build/.eslintrc.json Normal file
View File

@@ -0,0 +1,28 @@
{
"env": {
"es6": true,
"node": true
},
"extends": "eslint:recommended",
"rules": {
"no-console": [
"off"
],
"indent": [
"error",
"tab"
],
"linebreak-style": [
"error",
"unix"
],
"quotes": [
"error",
"single"
],
"semi": [
"error",
"never"
]
}
}

View File

@@ -1,185 +1,170 @@
#!/usr/bin/env node #!/usr/bin/env node
const _ = require('lodash'); // ships with termcolors; only used because of termcolors customization const _ = require('lodash') // ships with termcolors; only used because of termcolors customization
const termcolors = require('termcolors'); const termcolors = require('termcolors')
const { readFileSync, writeFileSync } = require('fs'); const { readFileSync, writeFileSync } = require('fs')
const { resolve } = require('path'); const { resolve } = require('path')
const baseColors = Object.freeze({ const baseColors = Object.freeze({
red: { gui: '#E06C75', cterm: '204', cterm16: '1' }, // alternate cterm: 168 red: { gui: '#E06C75', cterm: '204', cterm16: '1' }, // alternate cterm: 168
dark_red: { gui: '#BE5046', cterm: '196', cterm16: '9' }, dark_red: { gui: '#BE5046', cterm: '196', cterm16: '9' },
green: { gui: '#98C379', cterm: '114', cterm16: '2' }, green: { gui: '#98C379', cterm: '114', cterm16: '2' },
yellow: { gui: '#E5C07B', cterm: '180', cterm16: '3' }, yellow: { gui: '#E5C07B', cterm: '180', cterm16: '3' },
dark_yellow: { gui: '#D19A66', cterm: '173', cterm16: '11' }, dark_yellow: { gui: '#D19A66', cterm: '173', cterm16: '11' },
blue: { gui: '#61AFEF', cterm: '39', cterm16: '4' }, // alternate cterm: 75 blue: { gui: '#61AFEF', cterm: '39', cterm16: '4' }, // alternate cterm: 75
purple: { gui: '#C678DD', cterm: '170', cterm16: '5' }, // alternate cterm: 176 purple: { gui: '#C678DD', cterm: '170', cterm16: '5' }, // alternate cterm: 176
cyan: { gui: '#56B6C2', cterm: '38', cterm16: '6' }, // alternate cterm: 73 cyan: { gui: '#56B6C2', cterm: '38', cterm16: '6' }, // alternate cterm: 73
white: { gui: '#ABB2BF', cterm: '145', cterm16: '15' }, white: { gui: '#ABB2BF', cterm: '145', cterm16 : '7' },
black: { gui: '#282C34', cterm: '235', cterm16: '0' } black: { gui: '#282C34', cterm: '235', cterm16: '0' }
}); })
const specialColors = Object.freeze({ const specialColors = Object.freeze({
comment_grey: { gui: '#5C6370', cterm: '59', cterm16: '7' }, comment_grey: { gui: '#5C6370', cterm: '59', cterm16: '15' },
gutter_fg_grey: { gui: '#4B5263', cterm: '238', cterm16: '8' }, gutter_fg_grey: { gui: '#4B5263', cterm: '238', cterm16: '15' },
cursor_grey: { gui: '#2C323C', cterm: '236', cterm16: '0' }, cursor_grey: { gui: '#2C323C', cterm: '236', cterm16: '8' },
visual_grey: { gui: '#3E4452', cterm: '237', cterm16: '8' }, visual_grey: { gui: '#3E4452', cterm: '237', cterm16: '15' },
menu_grey: { cterm16: '7' }, // vim theme handles gui/cterm values menu_grey: { cterm16: '8' }, // vim theme handles gui/cterm values
special_grey: { gui: '#3B4048', cterm: '238', cterm16: '7' }, special_grey: { gui: '#3B4048', cterm: '238', cterm16: '15' },
vertsplit: { gui: '#3E4452', cterm: '59', cterm16: '7' } vertsplit: { gui: '#181A1F', cterm: '59', cterm16: '15' },
}); })
const colors = Object.assign({}, baseColors, specialColors); const colors = Object.assign({}, baseColors, specialColors)
const templateMap = Object.freeze({ const templateMap = Object.freeze({
'templates/autoload.template.vim': '../autoload/onedark.vim', 'templates/autoload.template.vim': '../autoload/onedark.vim',
'templates/One Dark.Xresources': '../term/One Dark.Xresources' 'templates/One Dark.Xresources': '../term/One Dark.Xresources'
}); })
const shouldCheck = String(process.argv[2]).toLowerCase() === 'check'; const shouldCheck = String(process.argv[2]).toLowerCase() === 'check'
const handleError = (message, cause) => { const handleError = (message, cause) => {
console.error('Error:', message); console.error('Error:', message)
if (cause) console.error('Cause:', cause); if (cause) console.error('Cause:', cause)
process.exit(-1); process.exit(-1)
};
console.log(
shouldCheck
? 'Checking for inconsistencies between templates and existing output files...'
: 'Generating output files from templates...'
);
Object.keys(templateMap).forEach(templateFilename => {
// Read the template
const templatePath = resolve(__dirname, templateFilename);
let templateText;
try {
templateText = readFileSync(templatePath, 'utf8');
} catch (e) {
handleError(`Error reading template ${templatePath}`, e);
}
// Compile the template
let template;
try {
template = _.template(templateText);
} catch (e) {
handleError(`Error compiling template ${templatePath}`, e);
}
// Execute the template (generate the output)
let output;
try {
output = template(colors);
} catch (e) {
handleError(`Error running template ${templatePath}`, e);
}
let outputPath = resolve(__dirname, templateMap[templateFilename]);
try {
const existingOutput = readFileSync(outputPath, 'utf8');
// Only need to do something if the generated output differs from what's already on disk
if (output !== existingOutput) {
if (shouldCheck) {
// Check generated output against existing output file
handleError(
`Changes were made to ${templateMap[templateFilename]} that are inconsistent with its template (${templateFilename}).\nDo you need to [re]build?`
);
} else {
// Overwrite existing output file
try {
writeFileSync(outputPath, output, 'utf8');
} catch (e) {
handleError(`Error writing to output file ${outputPath}`, e);
}
}
}
} catch (e) {
handleError(`Error reading existing output file ${outputPath}`, e);
}
});
try {
// Use the Xresources theme as a color source since it was generated above via templating
const xresources = readFileSync(resolve(__dirname, '../term/One Dark.Xresources'), 'utf8');
const terminalPalette = termcolors.xresources.import(xresources);
let alacrittyTemplate, itermTemplate, kittyTemplate, konsoleTemplate, terminalAppTemplate;
// Compile custom terminal color templates based on ones that ship with termcolors
try {
alacrittyTemplate = termcolors.export(
readFileSync(resolve(__dirname, 'templates/One Dark.alacritty')),
_.partialRight(_.mapValues, function (color) {
return color.toHex().slice(1);
})
);
itermTemplate = termcolors.export(
// From termcolors/lib/formats/iterm.js
readFileSync(resolve(__dirname, 'templates/One Dark.itermcolors')),
_.partialRight(_.mapValues, function (color) {
return color.toAvgRgbArray();
})
);
kittyTemplate = termcolors.export(
readFileSync(resolve(__dirname, 'templates/One Dark.kitty')),
_.partialRight(_.mapValues, function (color) {
return color.toHex().slice(1);
})
);
konsoleTemplate = termcolors.export(
// From termcolors/lib/formats/konsole.js
readFileSync(resolve(__dirname, 'templates/One Dark.colorscheme')),
_.partialRight(_.mapValues, function (color) {
return color.toRgbArray().join();
})
);
// From termcolors/lib/formats/terminal-app.js
const code = [
Buffer.from(
'62706c6973743030d40102030405061516582476657273696f6e58246f626a65637473592461726368697665725424746f7012000186a0a307080f55246e756c6cd3090a0b0c0d0e554e535247425c4e53436f6c6f7253706163655624636c6173734f1027',
'hex'
),
Buffer.from(
'0010018002d2101112135a24636c6173736e616d655824636c6173736573574e53436f6c6f72a21214584e534f626a6563745f100f4e534b657965644172636869766572d1171854726f6f74800108111a232d32373b41484e5b628c8e9095a0a9b1b4bdcfd2d700000000000001010000000000000019000000000000000000000000000000d9',
'hex'
)
];
terminalAppTemplate = termcolors.export(
readFileSync(resolve(__dirname, 'templates/One Dark.terminal')),
// From termcolors/lib/formats/terminal-app.js
_.partialRight(_.mapValues, function (color) {
var srgb = color.toAvgRgbArray();
srgb = srgb
.map(function (n) {
return n.toFixed(10).toString();
})
.join(' ');
var output = code[0].toString('binary') + srgb + code[1].toString('binary');
output = Buffer.from(output, 'binary').toString('base64');
return output.match(/.{1,68}/g).join('\n\t');
})
);
} catch (e) {
handleError('Error compiling terminal color template', e);
}
try {
writeFileSync(resolve(__dirname, '../term/One Dark.alacritty'), alacrittyTemplate(terminalPalette));
writeFileSync(resolve(__dirname, '../term/One Dark.itermcolors'), itermTemplate(terminalPalette));
writeFileSync(resolve(__dirname, '../term/One Dark.kitty'), kittyTemplate(terminalPalette));
writeFileSync(resolve(__dirname, '../term/One Dark.colorscheme'), konsoleTemplate(terminalPalette));
writeFileSync(resolve(__dirname, '../term/One Dark.terminal'), terminalAppTemplate(terminalPalette));
} catch (e) {
handleError('Error writing terminal color file', e);
}
} catch (e) {
handleError('Error reading Xresources terminal color file', e);
} }
console.log('Success!'); console.log(
shouldCheck ?
'Checking for inconsistencies between templates and existing output files...'
:
'Generating output files from templates...'
)
Object.keys(templateMap).forEach(templateFilename => {
// Read the template
const templatePath = resolve(__dirname, templateFilename)
let templateText
try {
templateText = readFileSync(templatePath, 'utf8')
} catch (e) {
handleError(`Error reading template ${templatePath}`, e)
}
// Compile the template
let template
try {
template = _.template(templateText)
} catch (e) {
handleError(`Error compiling template ${templatePath}`, e)
}
// Execute the template (generate the output)
let output
try {
output = template(colors)
} catch (e) {
handleError(`Error running template ${templatePath}`, e)
}
let outputPath = resolve(__dirname, templateMap[templateFilename])
try {
const existingOutput = readFileSync(outputPath, 'utf8')
// Only need to do something if the generated output differs from what's already on disk
if (output !== existingOutput) {
if (shouldCheck) { // Check generated output against existing output file
handleError(`Changes were made to ${templateMap[templateFilename]} that are inconsistent with its template (${templateFilename}).\nDo you need to [re]build?`)
} else { // Overwrite existing output file
try {
writeFileSync(outputPath, output, 'utf8')
} catch (e) {
handleError(`Error writing to output file ${outputPath}`, e)
}
}
}
} catch (e) {
handleError(`Error reading existing output file ${outputPath}`, e)
}
})
try {
// Use the Xresources theme as a color source since it was generated above via templating
const xresources = readFileSync(resolve(__dirname, '../term/One Dark.Xresources'), 'utf8')
const terminalPalette = termcolors.xresources.import(xresources)
let alacrittyTemplate, itermTemplate, kittyTemplate, terminalAppTemplate
// Compile custom terminal color templates based on ones that ship with termcolors
try {
alacrittyTemplate = termcolors.export(
readFileSync(resolve(__dirname, 'templates/One Dark.alacritty')),
_.partialRight(_.mapValues, function (color) {
return color.toHex().slice(1)
})
)
itermTemplate = termcolors.export(
// From termcolors/lib/formats/iterm.js
readFileSync(resolve(__dirname, 'templates/One Dark.itermcolors')),
_.partialRight(_.mapValues, function (color) {
return color.toAvgRgbArray()
})
)
kittyTemplate = termcolors.export(
readFileSync(resolve(__dirname, 'templates/One Dark.kitty')),
_.partialRight(_.mapValues, function (color) {
return color.toHex().slice(1)
})
)
// From termcolors/lib/formats/terminal-app.js
const code = [
Buffer.from('62706c6973743030d40102030405061516582476657273696f6e58246f626a65637473592461726368697665725424746f7012000186a0a307080f55246e756c6cd3090a0b0c0d0e554e535247425c4e53436f6c6f7253706163655624636c6173734f1027', 'hex'),
Buffer.from('0010018002d2101112135a24636c6173736e616d655824636c6173736573574e53436f6c6f72a21214584e534f626a6563745f100f4e534b657965644172636869766572d1171854726f6f74800108111a232d32373b41484e5b628c8e9095a0a9b1b4bdcfd2d700000000000001010000000000000019000000000000000000000000000000d9', 'hex')
]
terminalAppTemplate = termcolors.export(
readFileSync(resolve(__dirname, 'templates/One Dark.terminal')),
// From termcolors/lib/formats/terminal-app.js
_.partialRight(_.mapValues, function (color) {
var srgb = color.toAvgRgbArray()
srgb = srgb.map(function (n) {
return n.toFixed(10).toString()
}).join(' ')
var output = code[0].toString('binary') + srgb + code[1].toString('binary')
output = (Buffer.from(output, 'binary')).toString('base64')
return output.match(/.{1,68}/g).join('\n\t')
})
)
} catch (e) {
handleError('Error compiling terminal color template', e)
}
try {
writeFileSync(resolve(__dirname, '../term/One Dark.alacritty'), alacrittyTemplate(terminalPalette))
writeFileSync(resolve(__dirname, '../term/One Dark.itermcolors'), itermTemplate(terminalPalette))
writeFileSync(resolve(__dirname, '../term/One Dark.kitty'), kittyTemplate(terminalPalette))
writeFileSync(resolve(__dirname, '../term/One Dark.terminal'), terminalAppTemplate(terminalPalette))
} catch (e) {
handleError('Error writing terminal color file', e)
}
} catch (e) {
handleError('Error reading Xresources terminal color file', e)
}
console.log('Success!')

1362
build/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

32
build/package.json Normal file
View File

@@ -0,0 +1,32 @@
{
"name": "onedark.vim-builder",
"version": "1.0.0",
"description": "Builds the onedark.vim Vim colorscheme and associated files",
"main": "build.js",
"scripts": {
"build": "node build.js",
"test": "eslint build.js && node build.js check"
},
"author": {
"name": "Josh Dick",
"email": "josh@joshdick.net",
"url": "http://joshdick.net"
},
"license": "MIT",
"repository": {
"type": "git",
"url": "https://github.com/joshdick/onedark.vim.git"
},
"devDependencies": {
"eslint": "^6.5.1",
"husky": "^4.2.3"
},
"dependencies": {
"termcolors": "latest"
},
"husky": {
"hooks": {
"pre-commit": "npm test"
}
}
}

View File

@@ -4,12 +4,12 @@
*.cursorColor: <%=white.gui%> *.cursorColor: <%=white.gui%>
! black ! black
*.color0: <%=cursor_grey.gui%> *.color0: <%=comment_grey.gui%>
*.color8: <%=visual_grey.gui%> *.color8: <%=gutter_fg_grey.gui%>
! red ! red
*.color1: <%=red.gui%> *.color1: <%=red.gui%>
*.color9: <%=red.gui%> *.color9: <%=dark_red.gui%>
! green ! green
*.color2: <%=green.gui%> *.color2: <%=green.gui%>
@@ -17,7 +17,7 @@
! yellow ! yellow
*.color3: <%=yellow.gui%> *.color3: <%=yellow.gui%>
*.color11: <%=yellow.gui%> *.color11: <%=dark_yellow.gui%>
! blue ! blue
*.color4: <%=blue.gui%> *.color4: <%=blue.gui%>
@@ -32,6 +32,6 @@
*.color14: <%=cyan.gui%> *.color14: <%=cyan.gui%>
! white ! white
*.color7: <%=comment_grey.gui%> *.color7: <%=white.gui%>
*.color15: <%=white.gui%> *.color15: <%=visual_grey.gui%>

View File

@@ -10,11 +10,6 @@ colors:
text: '0x{{=c[0]}}' text: '0x{{=c[0]}}'
cursor: '0x{{=c[7]}}' cursor: '0x{{=c[7]}}'
# Selection colors
selection:
text: CellForeground
background: '0x{{=c[8]}}'
# Normal colors # Normal colors
normal: normal:
black: '0x{{=c[0]}}' black: '0x{{=c[0]}}'
@@ -36,3 +31,4 @@ colors:
magenta: '0x{{=c[13]}}' magenta: '0x{{=c[13]}}'
cyan: '0x{{=c[14]}}' cyan: '0x{{=c[14]}}'
white: '0x{{=c[15]}}' white: '0x{{=c[15]}}'

View File

@@ -1,96 +0,0 @@
[Background]
Color={{=c.background}}
[BackgroundFaint]
Color={{=c.background}}
[BackgroundIntense]
Color={{=c.background}}
[Color0]
Color={{=c[0]}}
[Color0Faint]
Color={{=c[0]}}
[Color0Intense]
Color={{=c[8]}}
[Color1]
Color={{=c[1]}}
[Color1Faint]
Color={{=c[1]}}
[Color1Intense]
Color={{=c[9]}}
[Color2]
Color={{=c[2]}}
[Color2Faint]
Color={{=c[2]}}
[Color2Intense]
Color={{=c[10]}}
[Color3]
Color={{=c[3]}}
[Color3Faint]
Color={{=c[3]}}
[Color3Intense]
Color={{=c[11]}}
[Color4]
Color={{=c[4]}}
[Color4Faint]
Color={{=c[4]}}
[Color4Intense]
Color={{=c[12]}}
[Color5]
Color={{=c[5]}}
[Color5Faint]
Color={{=c[5]}}
[Color5Intense]
Color={{=c[13]}}
[Color6]
Color={{=c[6]}}
[Color6Faint]
Color={{=c[6]}}
[Color6Intense]
Color={{=c[14]}}
[Color7]
Color={{=c[7]}}
[Color7Faint]
Color={{=c[7]}}
[Color7Intense]
Color={{=c[15]}}
[Foreground]
Color={{=c.foreground}}
[ForegroundFaint]
Color={{=c.foreground}}
[ForegroundIntense]
Color={{=c.foreground}}
[General]
Blur=false
ColorRandomization=false
Description=One Dark
Opacity=1
Wallpaper=

View File

@@ -13,8 +13,7 @@ let s:colors = {
\ "cyan": get(s:overrides, "cyan", { "gui": "<%=cyan.gui%>", "cterm": "<%=cyan.cterm%>", "cterm16": "<%=cyan.cterm16%>" }), \ "cyan": get(s:overrides, "cyan", { "gui": "<%=cyan.gui%>", "cterm": "<%=cyan.cterm%>", "cterm16": "<%=cyan.cterm16%>" }),
\ "white": get(s:overrides, "white", { "gui": "<%=white.gui%>", "cterm": "<%=white.cterm%>", "cterm16": "<%=white.cterm16%>" }), \ "white": get(s:overrides, "white", { "gui": "<%=white.gui%>", "cterm": "<%=white.cterm%>", "cterm16": "<%=white.cterm16%>" }),
\ "black": get(s:overrides, "black", { "gui": "<%=black.gui%>", "cterm": "<%=black.cterm%>", "cterm16": "<%=black.cterm16%>" }), \ "black": get(s:overrides, "black", { "gui": "<%=black.gui%>", "cterm": "<%=black.cterm%>", "cterm16": "<%=black.cterm16%>" }),
\ "foreground": get(s:overrides, "foreground", { "gui": "<%=white.gui%>", "cterm": "<%=white.cterm%>", "cterm16": "NONE" }), \ "visual_black": get(s:overrides, "visual_black", { "gui": "NONE", "cterm": "NONE", "cterm16": "<%=black.cterm16%>" }),
\ "background": get(s:overrides, "background", { "gui": "<%=black.gui%>", "cterm": "<%=black.cterm%>", "cterm16": "NONE" }),
\ "comment_grey": get(s:overrides, "comment_grey", { "gui": "<%=comment_grey.gui%>", "cterm": "<%=comment_grey.cterm%>", "cterm16": "<%=comment_grey.cterm16%>" }), \ "comment_grey": get(s:overrides, "comment_grey", { "gui": "<%=comment_grey.gui%>", "cterm": "<%=comment_grey.cterm%>", "cterm16": "<%=comment_grey.cterm16%>" }),
\ "gutter_fg_grey": get(s:overrides, "gutter_fg_grey", { "gui": "<%=gutter_fg_grey.gui%>", "cterm": "<%=gutter_fg_grey.cterm%>", "cterm16": "<%=gutter_fg_grey.cterm16%>" }), \ "gutter_fg_grey": get(s:overrides, "gutter_fg_grey", { "gui": "<%=gutter_fg_grey.gui%>", "cterm": "<%=gutter_fg_grey.cterm%>", "cterm16": "<%=gutter_fg_grey.cterm16%>" }),
\ "cursor_grey": get(s:overrides, "cursor_grey", { "gui": "<%=cursor_grey.gui%>", "cterm": "<%=cursor_grey.cterm%>", "cterm16": "<%=cursor_grey.cterm16%>" }), \ "cursor_grey": get(s:overrides, "cursor_grey", { "gui": "<%=cursor_grey.gui%>", "cterm": "<%=cursor_grey.cterm%>", "cterm16": "<%=cursor_grey.cterm16%>" }),

View File

@@ -5,10 +5,7 @@
" License: The MIT License (MIT) " License: The MIT License (MIT)
" Based On: https://github.com/MaxSt/FlatColor/ " Based On: https://github.com/MaxSt/FlatColor/
" Companion statusline plugin and terminal themes are included with onedark.vim: " A companion [vim-airline](https://github.com/bling/vim-airline) theme is available at: https://github.com/joshdick/airline-onedark.vim
" * https://github.com/joshdick/onedark.vim#lightlinevim-colorscheme
" * https://github.com/joshdick/onedark.vim#vim-airline-theme
" * https://github.com/joshdick/onedark.vim/tree/main/term
" Color Reference {{{ " Color Reference {{{
@@ -59,7 +56,7 @@ let g:colors_name="onedark"
" Set to "256" for 256-color terminals, or " Set to "256" for 256-color terminals, or
" set to "16" to use your terminal emulator's native colors " set to "16" to use your terminal emulator's native colors
" (a 16-color palette for this color scheme is available; see " (a 16-color palette for this color scheme is available; see
" < https://github.com/joshdick/onedark.vim/blob/main/README.md > " < https://github.com/joshdick/onedark.vim/blob/master/README.md >
" for more information.) " for more information.)
if !exists("g:onedark_termcolors") if !exists("g:onedark_termcolors")
let g:onedark_termcolors = 256 let g:onedark_termcolors = 256
@@ -78,16 +75,13 @@ function! s:h(group, style, ...)
let s:highlight = s:group_colors[a:group] let s:highlight = s:group_colors[a:group]
for style_type in ["fg", "bg", "sp"] for style_type in ["fg", "bg", "sp"]
if (has_key(a:style, style_type)) if (has_key(a:style, style_type))
let l:default_style = (has_key(s:highlight, style_type) ? copy(s:highlight[style_type]) : { "cterm16": "NONE", "cterm": "NONE", "gui": "NONE" }) let l:default_style = (has_key(s:highlight, style_type) ? s:highlight[style_type] : { "cterm16": "NONE", "cterm": "NONE", "gui": "NONE" })
let s:highlight[style_type] = extend(l:default_style, a:style[style_type]) let s:highlight[style_type] = extend(l:default_style, a:style[style_type])
endif endif
endfor endfor
if (has_key(a:style, "gui")) if (has_key(a:style, "gui"))
let s:highlight.gui = a:style.gui let s:highlight.gui = a:style.gui
endif endif
if (has_key(a:style, "cterm"))
let s:highlight.cterm = a:style.cterm
endif
else else
let s:highlight = a:style let s:highlight = a:style
let s:group_colors[a:group] = s:highlight " Cache default highlight group settings let s:group_colors[a:group] = s:highlight " Cache default highlight group settings
@@ -148,8 +142,7 @@ let s:purple = s:colors.purple
let s:cyan = s:colors.cyan let s:cyan = s:colors.cyan
let s:white = s:colors.white let s:white = s:colors.white
let s:black = s:colors.black let s:black = s:colors.black
let s:foreground = s:colors.foreground let s:visual_black = s:colors.visual_black " Black out selected text in 16-color visual mode
let s:background = s:colors.background
let s:comment_grey = s:colors.comment_grey let s:comment_grey = s:colors.comment_grey
let s:gutter_fg_grey = s:colors.gutter_fg_grey let s:gutter_fg_grey = s:colors.gutter_fg_grey
let s:cursor_grey = s:colors.cursor_grey let s:cursor_grey = s:colors.cursor_grey
@@ -162,14 +155,12 @@ let s:vertsplit = s:colors.vertsplit
" Terminal Colors {{{ " Terminal Colors {{{
if !has('nvim') let g:terminal_ansi_colors = [
let g:terminal_ansi_colors = [ \ s:black.gui, s:red.gui, s:green.gui, s:yellow.gui,
\ s:black.gui, s:red.gui, s:green.gui, s:yellow.gui, \ s:blue.gui, s:purple.gui, s:cyan.gui, s:white.gui,
\ s:blue.gui, s:purple.gui, s:cyan.gui, s:white.gui, \ s:visual_grey.gui, s:dark_red.gui, s:green.gui, s:dark_yellow.gui,
\ s:visual_grey.gui, s:dark_red.gui, s:green.gui, s:dark_yellow.gui, \ s:blue.gui, s:purple.gui, s:cyan.gui, s:comment_grey.gui
\ s:blue.gui, s:purple.gui, s:cyan.gui, s:comment_grey.gui \]
\]
endif
" }}} " }}}
@@ -189,7 +180,7 @@ call s:h("Conditional", { "fg": s:purple }) " if, then, else, endif, switch, etc
call s:h("Repeat", { "fg": s:purple }) " for, do, while, etc. call s:h("Repeat", { "fg": s:purple }) " for, do, while, etc.
call s:h("Label", { "fg": s:purple }) " case, default, etc. call s:h("Label", { "fg": s:purple }) " case, default, etc.
call s:h("Operator", { "fg": s:purple }) " sizeof", "+", "*", etc. call s:h("Operator", { "fg": s:purple }) " sizeof", "+", "*", etc.
call s:h("Keyword", { "fg": s:purple }) " any other keyword call s:h("Keyword", { "fg": s:red }) " any other keyword
call s:h("Exception", { "fg": s:purple }) " try, catch, throw call s:h("Exception", { "fg": s:purple }) " try, catch, throw
call s:h("PreProc", { "fg": s:yellow }) " generic Preprocessor call s:h("PreProc", { "fg": s:yellow }) " generic Preprocessor
call s:h("Include", { "fg": s:blue }) " preprocessor #include call s:h("Include", { "fg": s:blue }) " preprocessor #include
@@ -201,7 +192,7 @@ call s:h("StorageClass", { "fg": s:yellow }) " static, register, volatile, etc.
call s:h("Structure", { "fg": s:yellow }) " struct, union, enum, etc. call s:h("Structure", { "fg": s:yellow }) " struct, union, enum, etc.
call s:h("Typedef", { "fg": s:yellow }) " A typedef call s:h("Typedef", { "fg": s:yellow }) " A typedef
call s:h("Special", { "fg": s:blue }) " any special symbol call s:h("Special", { "fg": s:blue }) " any special symbol
call s:h("SpecialChar", { "fg": s:dark_yellow }) " special character in a constant call s:h("SpecialChar", {}) " special character in a constant
call s:h("Tag", {}) " you can use CTRL-] on this call s:h("Tag", {}) " you can use CTRL-] on this
call s:h("Delimiter", {}) " character that needs attention call s:h("Delimiter", {}) " character that needs attention
call s:h("SpecialComment", { "fg": s:comment_grey }) " special things inside a comment call s:h("SpecialComment", { "fg": s:comment_grey }) " special things inside a comment
@@ -246,10 +237,10 @@ call s:h("MatchParen", { "fg": s:blue, "gui": "underline", "cterm": "underline"
call s:h("ModeMsg", {}) " 'showmode' message (e.g., "-- INSERT --") call s:h("ModeMsg", {}) " 'showmode' message (e.g., "-- INSERT --")
call s:h("MoreMsg", {}) " more-prompt call s:h("MoreMsg", {}) " more-prompt
call s:h("NonText", { "fg": s:special_grey }) " '~' and '@' at the end of the window, characters from 'showbreak' and other characters that do not really exist in the text (e.g., ">" displayed when a double-wide character doesn't fit at the end of the line). call s:h("NonText", { "fg": s:special_grey }) " '~' and '@' at the end of the window, characters from 'showbreak' and other characters that do not really exist in the text (e.g., ">" displayed when a double-wide character doesn't fit at the end of the line).
call s:h("Normal", { "fg": s:foreground, "bg": s:background }) " normal text call s:h("Normal", { "fg": s:white, "bg": s:black }) " normal text
call s:h("Pmenu", { "fg": s:white, "bg": s:menu_grey }) " Popup menu: normal item. call s:h("Pmenu", { "bg": s:menu_grey }) " Popup menu: normal item.
call s:h("PmenuSel", { "fg": s:cursor_grey, "bg": s:blue }) " Popup menu: selected item. call s:h("PmenuSel", { "fg": s:black, "bg": s:blue }) " Popup menu: selected item.
call s:h("PmenuSbar", { "bg": s:cursor_grey }) " Popup menu: scrollbar. call s:h("PmenuSbar", { "bg": s:special_grey }) " Popup menu: scrollbar.
call s:h("PmenuThumb", { "bg": s:white }) " Popup menu: Thumb of the scrollbar. call s:h("PmenuThumb", { "bg": s:white }) " Popup menu: Thumb of the scrollbar.
call s:h("Question", { "fg": s:purple }) " hit-enter prompt and yes/no questions call s:h("Question", { "fg": s:purple }) " hit-enter prompt and yes/no questions
call s:h("QuickFixLine", { "fg": s:black, "bg": s:yellow }) " Current quickfix item in the quickfix window. call s:h("QuickFixLine", { "fg": s:black, "bg": s:yellow }) " Current quickfix item in the quickfix window.
@@ -268,7 +259,7 @@ call s:h("TabLineFill", {}) " tab pages line, where there are no labels
call s:h("TabLineSel", { "fg": s:white }) " tab pages line, active tab page label call s:h("TabLineSel", { "fg": s:white }) " tab pages line, active tab page label
call s:h("Terminal", { "fg": s:white, "bg": s:black }) " terminal window (see terminal-size-color) call s:h("Terminal", { "fg": s:white, "bg": s:black }) " terminal window (see terminal-size-color)
call s:h("Title", { "fg": s:green }) " titles for output from ":set all", ":autocmd" etc. call s:h("Title", { "fg": s:green }) " titles for output from ":set all", ":autocmd" etc.
call s:h("Visual", { "bg": s:visual_grey }) " Visual mode selection call s:h("Visual", { "fg": s:visual_black, "bg": s:visual_grey }) " Visual mode selection
call s:h("VisualNOS", { "bg": s:visual_grey }) " Visual mode selection when vim is "Not Owning the Selection". Only X11 Gui's gui-x11 and xterm-clipboard supports this. call s:h("VisualNOS", { "bg": s:visual_grey }) " Visual mode selection when vim is "Not Owning the Selection". Only X11 Gui's gui-x11 and xterm-clipboard supports this.
call s:h("WarningMsg", { "fg": s:yellow }) " warning messages call s:h("WarningMsg", { "fg": s:yellow }) " warning messages
call s:h("WildMenu", { "fg": s:black, "bg": s:blue }) " current match in 'wildmenu' completion call s:h("WildMenu", { "fg": s:black, "bg": s:blue }) " current match in 'wildmenu' completion
@@ -306,6 +297,17 @@ call s:h("cssSelectorOp", { "fg": s:purple })
call s:h("cssSelectorOp2", { "fg": s:purple }) call s:h("cssSelectorOp2", { "fg": s:purple })
call s:h("cssTagName", { "fg": s:red }) call s:h("cssTagName", { "fg": s:red })
" Dart
call s:h("dartTypeDef", { "fg": s:red })
call s:h("dartClassDecl", { "fg": s:red })
call s:h("dartInterpolation", { "fg": s:blue })
highlight link dartLibrary Include
call s:h("dartSdkClass", { "fg": s:cyan })
call s:h("dartStorageClass", { "fg": s:dark_red })
highlight link dartExceptions Exception
highlight link dartStatement Statement
call s:h("dartConstant", { "fg": s:dark_yellow })
" Fish Shell " Fish Shell
call s:h("fishKeyword", { "fg": s:purple }) call s:h("fishKeyword", { "fg": s:purple })
call s:h("fishConditional", { "fg": s:purple }) call s:h("fishConditional", { "fg": s:purple })
@@ -326,7 +328,6 @@ call s:h("goTypeDecl", { "fg": s:purple })
" HTML (keep consistent with Markdown, below) " HTML (keep consistent with Markdown, below)
call s:h("htmlArg", { "fg": s:dark_yellow }) call s:h("htmlArg", { "fg": s:dark_yellow })
call s:h("htmlBold", { "fg": s:dark_yellow, "gui": "bold", "cterm": "bold" }) call s:h("htmlBold", { "fg": s:dark_yellow, "gui": "bold", "cterm": "bold" })
call s:h("htmlBoldItalic", { "fg": s:green, "gui": "bold,italic", "cterm": "bold,italic" })
call s:h("htmlEndTag", { "fg": s:white }) call s:h("htmlEndTag", { "fg": s:white })
call s:h("htmlH1", { "fg": s:red }) call s:h("htmlH1", { "fg": s:red })
call s:h("htmlH2", { "fg": s:red }) call s:h("htmlH2", { "fg": s:red })
@@ -419,7 +420,6 @@ call s:h("lessClass", { "fg": s:dark_yellow })
" Markdown (keep consistent with HTML, above) " Markdown (keep consistent with HTML, above)
call s:h("markdownBlockquote", { "fg": s:comment_grey }) call s:h("markdownBlockquote", { "fg": s:comment_grey })
call s:h("markdownBold", { "fg": s:dark_yellow, "gui": "bold", "cterm": "bold" }) call s:h("markdownBold", { "fg": s:dark_yellow, "gui": "bold", "cterm": "bold" })
call s:h("markdownBoldItalic", { "fg": s:green, "gui": "bold,italic", "cterm": "bold,italic" })
call s:h("markdownCode", { "fg": s:green }) call s:h("markdownCode", { "fg": s:green })
call s:h("markdownCodeBlock", { "fg": s:green }) call s:h("markdownCodeBlock", { "fg": s:green })
call s:h("markdownCodeDelimiter", { "fg": s:green }) call s:h("markdownCodeDelimiter", { "fg": s:green })
@@ -449,7 +449,7 @@ call s:h("perlMatchStartEnd",{ "fg": s:blue })
call s:h("perlMethod", { "fg": s:purple }) call s:h("perlMethod", { "fg": s:purple })
call s:h("perlPOD", { "fg": s:comment_grey }) call s:h("perlPOD", { "fg": s:comment_grey })
call s:h("perlSharpBang", { "fg": s:comment_grey }) call s:h("perlSharpBang", { "fg": s:comment_grey })
call s:h("perlSpecialString",{ "fg": s:dark_yellow }) call s:h("perlSpecialString",{ "fg": s:cyan })
call s:h("perlStatementFiledesc", { "fg": s:red }) call s:h("perlStatementFiledesc", { "fg": s:red })
call s:h("perlStatementFlow",{ "fg": s:red }) call s:h("perlStatementFlow",{ "fg": s:red })
call s:h("perlStatementInclude", { "fg": s:purple }) call s:h("perlStatementInclude", { "fg": s:purple })
@@ -552,17 +552,9 @@ call s:h("xmlTagName", { "fg": s:red })
" Plugin Highlighting {{{ " Plugin Highlighting {{{
" airblade/vim-gitgutter " airblade/vim-gitgutter
call s:h("GitGutterAdd", { "fg": s:green }) hi link GitGutterAdd SignifySignAdd
call s:h("GitGutterChange", { "fg": s:yellow }) hi link GitGutterChange SignifySignChange
call s:h("GitGutterDelete", { "fg": s:red }) hi link GitGutterDelete SignifySignDelete
" dense-analysis/ale
call s:h("ALEError", { "fg": s:red, "gui": "underline", "cterm": "underline" })
call s:h("ALEWarning", { "fg": s:yellow, "gui": "underline", "cterm": "underline" })
call s:h("ALEInfo", { "gui": "underline", "cterm": "underline" })
call s:h("ALEErrorSign", { "fg": s:red })
call s:h("ALEWarningSign", { "fg": s:yellow })
call s:h("ALEInfoSign", { })
" easymotion/vim-easymotion " easymotion/vim-easymotion
call s:h("EasyMotionTarget", { "fg": s:red, "gui": "bold", "cterm": "bold" }) call s:h("EasyMotionTarget", { "fg": s:red, "gui": "bold", "cterm": "bold" })
@@ -570,45 +562,21 @@ call s:h("EasyMotionTarget2First", { "fg": s:yellow, "gui": "bold", "cterm": "bo
call s:h("EasyMotionTarget2Second", { "fg": s:dark_yellow, "gui": "bold", "cterm": "bold" }) call s:h("EasyMotionTarget2Second", { "fg": s:dark_yellow, "gui": "bold", "cterm": "bold" })
call s:h("EasyMotionShade", { "fg": s:comment_grey }) call s:h("EasyMotionShade", { "fg": s:comment_grey })
" lewis6991/gitsigns.nvim
hi link GitSignsAdd GitGutterAdd
hi link GitSignsChange GitGutterChange
hi link GitSignsDelete GitGutterDelete
" mhinz/vim-signify " mhinz/vim-signify
hi link SignifySignAdd GitGutterAdd call s:h("SignifySignAdd", { "fg": s:green })
hi link SignifySignChange GitGutterChange call s:h("SignifySignChange", { "fg": s:yellow })
hi link SignifySignDelete GitGutterDelete call s:h("SignifySignDelete", { "fg": s:red })
" neoclide/coc.nvim
call s:h("CocErrorSign", { "fg": s:red })
call s:h("CocWarningSign", { "fg": s:yellow })
call s:h("CocInfoSign", { "fg": s:blue })
call s:h("CocHintSign", { "fg": s:cyan })
call s:h("CocFadeOut", { "fg": s:comment_grey })
" https://github.com/joshdick/onedark.vim/issues/313
highlight! link CocMenuSel PmenuSel
" neomake/neomake " neomake/neomake
call s:h("NeomakeErrorSign", { "fg": s:red })
call s:h("NeomakeWarningSign", { "fg": s:yellow }) call s:h("NeomakeWarningSign", { "fg": s:yellow })
call s:h("NeomakeErrorSign", { "fg": s:red })
call s:h("NeomakeInfoSign", { "fg": s:blue }) call s:h("NeomakeInfoSign", { "fg": s:blue })
" plasticboy/vim-markdown (keep consistent with Markdown, above) " plasticboy/vim-markdown (keep consistent with Markdown, above)
call s:h("mkdDelimiter", { "fg": s:purple }) call s:h("mkdDelimiter", { "fg": s:purple })
call s:h("mkdHeading", { "fg": s:red }) call s:h("mkdHeading", { "fg": s:red })
call s:h("mkdLink", { "fg": s:blue }) call s:h("mkdLink", { "fg": s:blue })
call s:h("mkdURL", { "fg": s:cyan, "gui": "underline", "cterm": "underline" }) call s:h("mkdUrl", { "fg": s:cyan, "gui": "underline", "cterm": "underline" })
" prabirshrestha/vim-lsp
call s:h("LspErrorText", { "fg": s:red })
call s:h("LspWarningText", { "fg": s:yellow })
call s:h("LspInformationText", { "fg":s:blue })
call s:h("LspHintText", { "fg":s:cyan })
call s:h("LspErrorHighlight", { "fg": s:red, "gui": "underline", "cterm": "underline" })
call s:h("LspWarningHighlight", { "fg": s:yellow, "gui": "underline", "cterm": "underline" })
call s:h("LspInformationHighlight", { "fg":s:blue, "gui": "underline", "cterm": "underline" })
call s:h("LspHintHighlight", { "fg":s:cyan, "gui": "underline", "cterm": "underline" })
" tpope/vim-fugitive " tpope/vim-fugitive
call s:h("diffAdded", { "fg": s:green }) call s:h("diffAdded", { "fg": s:green })
@@ -642,10 +610,9 @@ hi link gitcommitUnmergedArrow gitcommitUnmergedFile
" }}} " }}}
" Neovim-Specific Highlighting {{{ " Neovim terminal colors {{{
if has("nvim") if has("nvim")
" Neovim terminal colors {{{
let g:terminal_color_0 = s:black.gui let g:terminal_color_0 = s:black.gui
let g:terminal_color_1 = s:red.gui let g:terminal_color_1 = s:red.gui
let g:terminal_color_2 = s:green.gui let g:terminal_color_2 = s:green.gui
@@ -662,31 +629,8 @@ if has("nvim")
let g:terminal_color_13 = s:purple.gui " No dark version let g:terminal_color_13 = s:purple.gui " No dark version
let g:terminal_color_14 = s:cyan.gui " No dark version let g:terminal_color_14 = s:cyan.gui " No dark version
let g:terminal_color_15 = s:comment_grey.gui let g:terminal_color_15 = s:comment_grey.gui
let g:terminal_color_background = s:background.gui let g:terminal_color_background = g:terminal_color_0
let g:terminal_color_foreground = s:foreground.gui let g:terminal_color_foreground = g:terminal_color_7
" }}}
" Neovim Diagnostics {{{
call s:h("DiagnosticError", { "fg": s:red })
call s:h("DiagnosticWarn", { "fg": s:yellow })
call s:h("DiagnosticInfo", { "fg": s:blue })
call s:h("DiagnosticHint", { "fg": s:cyan })
call s:h("DiagnosticUnderlineError", { "fg": s:red, "gui": "underline", "cterm": "underline" })
call s:h("DiagnosticUnderlineWarn", { "fg": s:yellow, "gui": "underline", "cterm": "underline" })
call s:h("DiagnosticUnderlineInfo", { "fg": s:blue, "gui": "underline", "cterm": "underline" })
call s:h("DiagnosticUnderlineHint", { "fg": s:cyan, "gui": "underline", "cterm": "underline" })
" }}}
" Neovim LSP (for versions < 0.5.1) {{{
hi link LspDiagnosticsDefaultError DiagnosticError
hi link LspDiagnosticsDefaultWarning DiagnosticWarn
hi link LspDiagnosticsDefaultInformation DiagnosticInfo
hi link LspDiagnosticsDefaultHint DiagnosticHint
hi link LspDiagnosticsUnderlineError DiagnosticUnderlineError
hi link LspDiagnosticsUnderlineWarning DiagnosticUnderlineWarn
hi link LspDiagnosticsUnderlineInformation DiagnosticUnderlineInfo
hi link LspDiagnosticsUnderlineHint DiagnosticUnderlineHint
" }}}
endif endif
" }}} " }}}

4826
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,45 +0,0 @@
{
"name": "onedark.vim-builder",
"version": "1.0.0",
"description": "Builds the onedark.vim Vim colorscheme and associated files",
"main": "build.js",
"scripts": {
"build": "node build/build.js",
"test": "npm run lint && node build/build.js check",
"prepare": "husky install",
"lint": "run-p eslint:check prettier:check",
"lint:fix": "run-s eslint:fix prettier:fix",
"eslint:check": "eslint '**/*.js'",
"eslint:fix": "eslint --fix '**/*.js'",
"prettier:check": "prettier --check '**/*.{js,json,md}'",
"prettier:fix": "prettier --write '**/*.{js,json,md}'"
},
"author": {
"name": "Josh Dick",
"email": "josh@joshdick.net",
"url": "http://joshdick.net"
},
"license": "MIT",
"repository": {
"type": "git",
"url": "https://github.com/joshdick/onedark.vim.git"
},
"devDependencies": {
"eslint": "^8.18.0",
"husky": "^8.0.1",
"lint-staged": "^13.0.3",
"npm-run-all": "^4.1.5",
"prettier": "^2.7.1"
},
"dependencies": {
"termcolors": "0.7.3"
},
"lint-staged": {
"*.{js,json,md}": [
"prettier --check"
],
"*.{js}": [
"eslint"
]
}
}

View File

@@ -4,12 +4,12 @@
*.cursorColor: #ABB2BF *.cursorColor: #ABB2BF
! black ! black
*.color0: #2C323C *.color0: #5C6370
*.color8: #3E4452 *.color8: #4B5263
! red ! red
*.color1: #E06C75 *.color1: #E06C75
*.color9: #E06C75 *.color9: #BE5046
! green ! green
*.color2: #98C379 *.color2: #98C379
@@ -17,7 +17,7 @@
! yellow ! yellow
*.color3: #E5C07B *.color3: #E5C07B
*.color11: #E5C07B *.color11: #D19A66
! blue ! blue
*.color4: #61AFEF *.color4: #61AFEF
@@ -32,6 +32,6 @@
*.color14: #56B6C2 *.color14: #56B6C2
! white ! white
*.color7: #5C6370 *.color7: #ABB2BF
*.color15: #ABB2BF *.color15: #3E4452

View File

@@ -7,28 +7,12 @@ colors:
# Cursor colors # Cursor colors
cursor: cursor:
text: '0x2c323c' text: '0x5c6370'
cursor: '0x5c6370' cursor: '0xabb2bf'
# Selection colors
selection:
text: CellForeground
background: '0x3e4452'
# Normal colors # Normal colors
normal: normal:
black: '0x2c323c' black: '0x5c6370'
red: '0xe06c75'
green: '0x98c379'
yellow: '0xe5c07b'
blue: '0x61afef'
magenta: '0xc678dd'
cyan: '0x56b6c2'
white: '0x5c6370'
# Bright colors
bright:
black: '0x3e4452'
red: '0xe06c75' red: '0xe06c75'
green: '0x98c379' green: '0x98c379'
yellow: '0xe5c07b' yellow: '0xe5c07b'
@@ -36,3 +20,15 @@ colors:
magenta: '0xc678dd' magenta: '0xc678dd'
cyan: '0x56b6c2' cyan: '0x56b6c2'
white: '0xabb2bf' white: '0xabb2bf'
# Bright colors
bright:
black: '0x4b5263'
red: '0xbe5046'
green: '0x98c379'
yellow: '0xd19a66'
blue: '0x61afef'
magenta: '0xc678dd'
cyan: '0x56b6c2'
white: '0x3e4452'

View File

@@ -1,96 +0,0 @@
[Background]
Color=40,44,52
[BackgroundFaint]
Color=40,44,52
[BackgroundIntense]
Color=40,44,52
[Color0]
Color=44,50,60
[Color0Faint]
Color=44,50,60
[Color0Intense]
Color=62,68,82
[Color1]
Color=224,108,117
[Color1Faint]
Color=224,108,117
[Color1Intense]
Color=224,108,117
[Color2]
Color=152,195,121
[Color2Faint]
Color=152,195,121
[Color2Intense]
Color=152,195,121
[Color3]
Color=229,192,123
[Color3Faint]
Color=229,192,123
[Color3Intense]
Color=229,192,123
[Color4]
Color=97,175,239
[Color4Faint]
Color=97,175,239
[Color4Intense]
Color=97,175,239
[Color5]
Color=198,120,221
[Color5Faint]
Color=198,120,221
[Color5Intense]
Color=198,120,221
[Color6]
Color=86,182,194
[Color6Faint]
Color=86,182,194
[Color6Intense]
Color=86,182,194
[Color7]
Color=92,99,112
[Color7Faint]
Color=92,99,112
[Color7Intense]
Color=171,178,191
[Foreground]
Color=171,178,191
[ForegroundFaint]
Color=171,178,191
[ForegroundIntense]
Color=171,178,191
[General]
Blur=false
ColorRandomization=false
Description=One Dark
Opacity=1
Wallpaper=

View File

@@ -7,11 +7,11 @@
<key>Color Space</key> <key>Color Space</key>
<string>sRGB</string> <string>sRGB</string>
<key>Blue Component</key> <key>Blue Component</key>
<real>0.23529411764705882</real> <real>0.4392156862745098</real>
<key>Green Component</key> <key>Green Component</key>
<real>0.19607843137254902</real> <real>0.38823529411764707</real>
<key>Red Component</key> <key>Red Component</key>
<real>0.17254901960784313</real> <real>0.3607843137254902</real>
</dict> </dict>
<key>Ansi 1 Color</key> <key>Ansi 1 Color</key>
<dict> <dict>
@@ -40,11 +40,11 @@
<key>Color Space</key> <key>Color Space</key>
<string>sRGB</string> <string>sRGB</string>
<key>Blue Component</key> <key>Blue Component</key>
<real>0.4823529411764706</real> <real>0.4</real>
<key>Green Component</key> <key>Green Component</key>
<real>0.7529411764705882</real> <real>0.6039215686274509</real>
<key>Red Component</key> <key>Red Component</key>
<real>0.8980392156862745</real> <real>0.8196078431372549</real>
</dict> </dict>
<key>Ansi 12 Color</key> <key>Ansi 12 Color</key>
<dict> <dict>
@@ -84,11 +84,11 @@
<key>Color Space</key> <key>Color Space</key>
<string>sRGB</string> <string>sRGB</string>
<key>Blue Component</key> <key>Blue Component</key>
<real>0.7490196078431373</real> <real>0.3215686274509804</real>
<key>Green Component</key> <key>Green Component</key>
<real>0.6980392156862745</real> <real>0.26666666666666666</real>
<key>Red Component</key> <key>Red Component</key>
<real>0.6705882352941176</real> <real>0.24313725490196078</real>
</dict> </dict>
<key>Ansi 2 Color</key> <key>Ansi 2 Color</key>
<dict> <dict>
@@ -150,33 +150,33 @@
<key>Color Space</key> <key>Color Space</key>
<string>sRGB</string> <string>sRGB</string>
<key>Blue Component</key> <key>Blue Component</key>
<real>0.4392156862745098</real> <real>0.7490196078431373</real>
<key>Green Component</key> <key>Green Component</key>
<real>0.38823529411764707</real> <real>0.6980392156862745</real>
<key>Red Component</key> <key>Red Component</key>
<real>0.3607843137254902</real> <real>0.6705882352941176</real>
</dict> </dict>
<key>Ansi 8 Color</key> <key>Ansi 8 Color</key>
<dict> <dict>
<key>Color Space</key> <key>Color Space</key>
<string>sRGB</string> <string>sRGB</string>
<key>Blue Component</key> <key>Blue Component</key>
<real>0.3215686274509804</real> <real>0.38823529411764707</real>
<key>Green Component</key> <key>Green Component</key>
<real>0.26666666666666666</real> <real>0.3215686274509804</real>
<key>Red Component</key> <key>Red Component</key>
<real>0.24313725490196078</real> <real>0.29411764705882354</real>
</dict> </dict>
<key>Ansi 9 Color</key> <key>Ansi 9 Color</key>
<dict> <dict>
<key>Color Space</key> <key>Color Space</key>
<string>sRGB</string> <string>sRGB</string>
<key>Blue Component</key> <key>Blue Component</key>
<real>0.4588235294117647</real> <real>0.27450980392156865</real>
<key>Green Component</key> <key>Green Component</key>
<real>0.4235294117647059</real> <real>0.3137254901960784</real>
<key>Red Component</key> <key>Red Component</key>
<real>0.8784313725490196</real> <real>0.7450980392156863</real>
</dict> </dict>
<key>Background Color</key> <key>Background Color</key>
<dict> <dict>

View File

@@ -1,20 +1,20 @@
# Cursor # Cursor
cursor #5c6370 cursor #abb2bf
cursor_text_color #2c323c cursor_text_color #5c6370
# Special # Special
foreground #abb2bf foreground #abb2bf
background #282c34 background #282c34
selection_foreground #2c323c selection_foreground #5c6370
selection_background #5c6370 selection_background #abb2bf
# Black # Black
color0 #2c323c color0 #5c6370
color8 #3e4452 color8 #4b5263
# Red # Red
color1 #e06c75 color1 #e06c75
color9 #e06c75 color9 #be5046
# Green # Green
color2 #98c379 color2 #98c379
@@ -22,7 +22,7 @@ color10 #98c379
# Yellow # Yellow
color3 #e5c07b color3 #e5c07b
color11 #e5c07b color11 #d19a66
# Blue # Blue
color4 #61afef color4 #61afef
@@ -37,5 +37,5 @@ color6 #56b6c2
color14 #56b6c2 color14 #56b6c2
# White # White
color7 #5c6370 color7 #abb2bf
color15 #abb2bf color15 #3e4452

View File

@@ -6,7 +6,7 @@
<data> <data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS
AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPECcw AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPECcw
LjE3MjU0OTAxOTYgMC4xOTYwNzg0MzE0IDAuMjM1Mjk0MTE3NgAQAYAC0hAREhNaJGNs LjM2MDc4NDMxMzcgMC4zODgyMzUyOTQxIDAuNDM5MjE1Njg2MwAQAYAC0hAREhNaJGNs
YXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9yohIUWE5TT2JqZWN0XxAPTlNLZXllZEFyY2hp YXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9yohIUWE5TT2JqZWN0XxAPTlNLZXllZEFyY2hp
dmVy0RcYVHJvb3SAAQgRGiMtMjc7QUhOW2KMjpCVoKmxtL3P0tcAAAAAAAABAQAAAAAA dmVy0RcYVHJvb3SAAQgRGiMtMjc7QUhOW2KMjpCVoKmxtL3P0tcAAAAAAAABAQAAAAAA
AAAZAAAAAAAAAAAAAAAAAAAA2Q== AAAZAAAAAAAAAAAAAAAAAAAA2Q==
@@ -24,7 +24,7 @@
<data> <data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS
AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPECcw AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPECcw
LjI0MzEzNzI1NDkgMC4yNjY2NjY2NjY3IDAuMzIxNTY4NjI3NQAQAYAC0hAREhNaJGNs LjI5NDExNzY0NzEgMC4zMjE1Njg2Mjc1IDAuMzg4MjM1Mjk0MQAQAYAC0hAREhNaJGNs
YXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9yohIUWE5TT2JqZWN0XxAPTlNLZXllZEFyY2hp YXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9yohIUWE5TT2JqZWN0XxAPTlNLZXllZEFyY2hp
dmVy0RcYVHJvb3SAAQgRGiMtMjc7QUhOW2KMjpCVoKmxtL3P0tcAAAAAAAABAQAAAAAA dmVy0RcYVHJvb3SAAQgRGiMtMjc7QUhOW2KMjpCVoKmxtL3P0tcAAAAAAAABAQAAAAAA
AAAZAAAAAAAAAAAAAAAAAAAA2Q== AAAZAAAAAAAAAAAAAAAAAAAA2Q==
@@ -69,7 +69,7 @@
<data> <data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS
AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPECcw AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPECcw
Ljg3ODQzMTM3MjUgMC40MjM1Mjk0MTE4IDAuNDU4ODIzNTI5NAAQAYAC0hAREhNaJGNs Ljc0NTA5ODAzOTIgMC4zMTM3MjU0OTAyIDAuMjc0NTA5ODAzOQAQAYAC0hAREhNaJGNs
YXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9yohIUWE5TT2JqZWN0XxAPTlNLZXllZEFyY2hp YXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9yohIUWE5TT2JqZWN0XxAPTlNLZXllZEFyY2hp
dmVy0RcYVHJvb3SAAQgRGiMtMjc7QUhOW2KMjpCVoKmxtL3P0tcAAAAAAAABAQAAAAAA dmVy0RcYVHJvb3SAAQgRGiMtMjc7QUhOW2KMjpCVoKmxtL3P0tcAAAAAAAABAQAAAAAA
AAAZAAAAAAAAAAAAAAAAAAAA2Q== AAAZAAAAAAAAAAAAAAAAAAAA2Q==
@@ -78,7 +78,7 @@
<data> <data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS
AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPECcw AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPECcw
LjY3MDU4ODIzNTMgMC42OTgwMzkyMTU3IDAuNzQ5MDE5NjA3OAAQAYAC0hAREhNaJGNs LjI0MzEzNzI1NDkgMC4yNjY2NjY2NjY3IDAuMzIxNTY4NjI3NQAQAYAC0hAREhNaJGNs
YXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9yohIUWE5TT2JqZWN0XxAPTlNLZXllZEFyY2hp YXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9yohIUWE5TT2JqZWN0XxAPTlNLZXllZEFyY2hp
dmVy0RcYVHJvb3SAAQgRGiMtMjc7QUhOW2KMjpCVoKmxtL3P0tcAAAAAAAABAQAAAAAA dmVy0RcYVHJvb3SAAQgRGiMtMjc7QUhOW2KMjpCVoKmxtL3P0tcAAAAAAAABAQAAAAAA
AAAZAAAAAAAAAAAAAAAAAAAA2Q== AAAZAAAAAAAAAAAAAAAAAAAA2Q==
@@ -87,7 +87,7 @@
<data> <data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS
AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPECcw AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPECcw
Ljg5ODAzOTIxNTcgMC43NTI5NDExNzY1IDAuNDgyMzUyOTQxMgAQAYAC0hAREhNaJGNs LjgxOTYwNzg0MzEgMC42MDM5MjE1Njg2IDAuNDAwMDAwMDAwMAAQAYAC0hAREhNaJGNs
YXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9yohIUWE5TT2JqZWN0XxAPTlNLZXllZEFyY2hp YXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9yohIUWE5TT2JqZWN0XxAPTlNLZXllZEFyY2hp
dmVy0RcYVHJvb3SAAQgRGiMtMjc7QUhOW2KMjpCVoKmxtL3P0tcAAAAAAAABAQAAAAAA dmVy0RcYVHJvb3SAAQgRGiMtMjc7QUhOW2KMjpCVoKmxtL3P0tcAAAAAAAABAQAAAAAA
AAAZAAAAAAAAAAAAAAAAAAAA2Q== AAAZAAAAAAAAAAAAAAAAAAAA2Q==
@@ -132,7 +132,7 @@
<data> <data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS
AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPECcw AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPECcw
LjM2MDc4NDMxMzcgMC4zODgyMzUyOTQxIDAuNDM5MjE1Njg2MwAQAYAC0hAREhNaJGNs LjY3MDU4ODIzNTMgMC42OTgwMzkyMTU3IDAuNzQ5MDE5NjA3OAAQAYAC0hAREhNaJGNs
YXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9yohIUWE5TT2JqZWN0XxAPTlNLZXllZEFyY2hp YXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9yohIUWE5TT2JqZWN0XxAPTlNLZXllZEFyY2hp
dmVy0RcYVHJvb3SAAQgRGiMtMjc7QUhOW2KMjpCVoKmxtL3P0tcAAAAAAAABAQAAAAAA dmVy0RcYVHJvb3SAAQgRGiMtMjc7QUhOW2KMjpCVoKmxtL3P0tcAAAAAAAABAQAAAAAA
AAAZAAAAAAAAAAAAAAAAAAAA2Q== AAAZAAAAAAAAAAAAAAAAAAAA2Q==
@@ -168,7 +168,7 @@
<data> <data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS
AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPECcw AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPECcw
LjY3MDU4ODIzNTMgMC42OTgwMzkyMTU3IDAuNzQ5MDE5NjA3OAAQAYAC0hAREhNaJGNs LjI0MzEzNzI1NDkgMC4yNjY2NjY2NjY3IDAuMzIxNTY4NjI3NQAQAYAC0hAREhNaJGNs
YXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9yohIUWE5TT2JqZWN0XxAPTlNLZXllZEFyY2hp YXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9yohIUWE5TT2JqZWN0XxAPTlNLZXllZEFyY2hp
dmVy0RcYVHJvb3SAAQgRGiMtMjc7QUhOW2KMjpCVoKmxtL3P0tcAAAAAAAABAQAAAAAA dmVy0RcYVHJvb3SAAQgRGiMtMjc7QUhOW2KMjpCVoKmxtL3P0tcAAAAAAAABAQAAAAAA
AAAZAAAAAAAAAAAAAAAAAAAA2Q== AAAZAAAAAAAAAAAAAAAAAAAA2Q==