Compare commits

...

41 Commits

Author SHA1 Message Date
Artyom Andreev
fc4d7f263e Merge 275ca1f8f2 into 390b893d36 2024-10-01 11:27:07 -04:00
dependabot[bot]
390b893d36 Bump braces from 3.0.2 to 3.0.3 (#334)
Bumps [braces](https://github.com/micromatch/braces) from 3.0.2 to 3.0.3.
- [Changelog](https://github.com/micromatch/braces/blob/master/CHANGELOG.md)
- [Commits](https://github.com/micromatch/braces/compare/3.0.2...3.0.3)

---
updated-dependencies:
- dependency-name: braces
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-16 11:02:13 -04:00
dependabot[bot]
57b7774769 Bump word-wrap from 1.2.3 to 1.2.4 (#327)
Bumps [word-wrap](https://github.com/jonschlinkert/word-wrap) from 1.2.3 to 1.2.4.
- [Release notes](https://github.com/jonschlinkert/word-wrap/releases)
- [Commits](https://github.com/jonschlinkert/word-wrap/compare/1.2.3...1.2.4)

---
updated-dependencies:
- dependency-name: word-wrap
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-19 01:35:43 -04:00
dependabot[bot]
4e983447f0 Bump yaml from 2.1.1 to 2.2.2 (#324)
Bumps [yaml](https://github.com/eemeli/yaml) from 2.1.1 to 2.2.2.
- [Release notes](https://github.com/eemeli/yaml/releases)
- [Commits](https://github.com/eemeli/yaml/compare/v2.1.1...v2.2.2)

---
updated-dependencies:
- dependency-name: yaml
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-05-02 18:29:07 -04:00
Artyom Andreev
275ca1f8f2 add highlighting for 'lspInlayHintsType', 'lspInlayHintsParameter' of vim-lsp 2022-12-30 11:30:53 +03:00
Artyom Andreev
b6b5ffe31a fix highlight color for ALEWarningSign, also set it for ALEErrorSign, ALEInfoSign (#317) 2022-10-10 16:39:11 -04:00
Josh Dick
0c23bb090f Fix #313 - Add CocMenuSel (#316) 2022-10-02 21:48:37 -04:00
Dionisio E Alonso
57ece9e7d4 Fix Keyword default color (#281)
Co-authored-by: Dionisio E Alonso <dionisio.alonso@comprandoengrupo.net>
2022-10-02 21:30:10 -04:00
Josh Dick
1fe54f212f Fix vim-lsp highlighting. (#308)
Fixes #251.
2022-07-18 03:26:45 -04:00
Will Norris
3acc4314ff fix: allow extend_highlight to set cterm attribute (#307)
Fixes #301.
2022-07-17 20:09:16 -04:00
Josh Dick
ff0e0a488c Update build dependencies (#305) 2022-06-27 10:06:32 -04:00
Chris Midgley
7db2ed5b82 feat: support CocFadeOut (#293)
* feat: support CocFadeOut

Co-authored-by: Josh Dick <josh@joshdick.net>
2022-03-24 19:55:34 -04:00
Josh Dick
d472198ec6 Add htmlBoldItalic/markdownBoldItalic highlight groups. (#298)
Fixes #257.
2022-03-08 00:46:45 +00:00
Josh Dick
607dfdc84d Add Neovim-specific terminal color configuration. (#297)
Fixes #255.
2022-03-07 18:30:59 +00:00
Josh Dick
e86ce939d8 Fix misleading example in README. (#291)
Fixes #284.
2021-10-15 11:04:46 -04:00
Olivier Roques
cc8ecccd32 Update Neovim LSP colors (#288) 2021-09-24 15:51:23 -10:00
Almaz
bd199dfa76 Add Selection colors for alacritty (#283) 2021-08-12 12:04:51 -04:00
Almaz
44f01aef5a Add monsonjeremy/onedark.nvim to relative section (#282) 2021-08-12 00:52:25 -04:00
Josh Dick
ee4b22cbae chore: Update old "master" branch refernces to use "main" instead (#277) 2021-07-12 02:29:02 -04:00
Josh Dick
ad9610cdab Overhaul 16-color styling (#271)
Includes regenerated terminal themes.
2021-07-11 20:00:38 -04:00
Josh Dick
d954737e00 chore(build): Build/linting infrastructure updates. (#276)
* Move npm/linting config files to root directory
* Apply prettier/eslint autofixes
* Update CONTRIBUTING.md
2021-07-11 19:19:55 -04:00
Josh Dick
4bd214fbcb chore(plugins): Add list of supported plugins to README, update companion links (#275) 2021-07-11 18:07:22 -04:00
Josh Dick
7d1f6d1476 feat(plugin): Add support for lewis6991/gitsigns.nvim (#274)
Resolves #272.
2021-07-11 17:44:52 -04:00
Josh Dick
1794dd73dd fix(nvim-lsp): Make nvim-lsp highlighting consistent with existing related highlighting (#273) 2021-07-11 17:35:59 -04:00
Josh Dick
a4dadcd2a3 fix: prabirshrestha/vim-lsp is not Neovim LSP :) (#270) 2021-06-22 01:09:23 -04:00
Josh Dick
5f81e96d06 Improve Neovim LSP highlighting (#269) 2021-06-22 00:56:29 -04:00
Josh Dick
d42ae8e741 feat: Add higlight groups for neoclide/coc.nvim (#268)
* Add higlight groups for neoclide/coc.nvim
2021-06-22 00:41:55 -04:00
Navarasu
c344261efd Added navarasu/onedark.nvim to relative section (#266)
* Added navarasu/onedark.nvim to relative section

Co-authored-by: Josh Dick <josh@joshdick.net>
2021-06-22 00:03:30 -04:00
nstetter
1a4c75beeb Add KDE Konsole colorscheme (#265)
Resolves #264.
2021-06-21 23:56:36 -04:00
Josh Dick
3e535c2331 chore(build): Update dependencies and regenerate lockfile (#267)
* Remove accidental usage of private authenticated NPM registry; add explicit .npmrc to prevent this in the future
* Update ESLint/Husky to latest versions
* `npm audit fix` termcolors transitive lodash dependency
2021-06-21 23:52:29 -04:00
Josh Dick
f209c5b674 README.md: Add link to ii14/onedark.nvim in "relatives" section (#261) 2021-06-01 21:52:08 -04:00
Snyk bot
ff7b30ebd2 fix: upgrade termcolors from 0.7.2 to 0.7.3 (#258)
Snyk has created this PR to upgrade termcolors from 0.7.2 to 0.7.3.

See this package in npm:
https://www.npmjs.com/package/termcolors

See this project in Snyk:
https://app.snyk.io/org/joshdick/project/8bcd347a-088a-4466-84d3-9ff5a6e77b49?utm_source=github&utm_medium=upgrade-pr
2021-05-24 15:22:54 -04:00
dependabot[bot]
bb94912242 Bump lodash from 4.17.20 to 4.17.21 in /build (#256)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.20 to 4.17.21.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.20...4.17.21)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-06 19:50:32 -04:00
Dan Rodriguez
b70ed293f3 Do not overwrite scheme-wide colors with extend_highlight (#249)
Fixes #220

Create a copy of color dictionary and apply changes to it instead of
the original

Ex: If extend_highlight is called on a Highlight Group with default
purple foreground, don't overwrite values in the dictionary assigned to
purple.fg, e.g., {'gui': '#C678DD', 'cterm': '170', 'cterm16': '5'}.
Instead make a copy of the dictionary, apply changes to the copy, and
assign the altered copy to the user-specified Highlight Group.
2021-02-25 13:04:36 -05:00
Olivier Roques
94ff495eac Add support for Neovim LSP (#245)
* Add support for Neovim LSP

* Create a Neovim-specific highlighting fold
2020-12-13 20:24:18 -05:00
Josh Dick
935016df26 Consistent highlighting for special characters (#244)
`SpecialChar` currently has no highlighting, but the majority of
other existing `Special` characters in the theme are highlighted as
dark yellow (`htmlSpecialChar`, `texSpecialChar`.)

So, add dark yellow highlighting for `SpecialChar` and change
`perlSpecialString` accordingly, so special characters are highlighted
consistently across all languages.

Resolves #222.

Closes #237.
2020-12-01 18:33:03 -05:00
Josh Dick
712a728c38 Update build dependencies (#243) 2020-12-01 18:22:54 -05:00
Josh Dick
68a18c7eed Adds highlighting for dense-analysis/ale plugin. (#242)
Resolves #194.
2020-12-01 18:12:07 -05:00
Snyk bot
05e237915f fix: upgrade termcolors from 0.5.0 to 0.7.0 (#240)
Snyk has created this PR to upgrade termcolors from 0.5.0 to 0.7.0.

See this package in npm:
https://www.npmjs.com/package/termcolors

See this project in Snyk:
https://app.snyk.io/org/joshdick/project/8bcd347a-088a-4466-84d3-9ff5a6e77b49?utm_source=github&utm_medium=upgrade-pr
2020-12-01 17:52:53 -05:00
Khue Doan
7f9b1802b0 Update One Dark syntax theme link (#234)
The old one is deprecated
2020-08-12 19:30:30 -04:00
Josh Dick
727f7ede99 Attempt to address #221 (#233) 2020-08-05 02:47:50 -04:00
30 changed files with 5557 additions and 1758 deletions

10
.eslintrc.json Normal file
View File

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

View File

@@ -6,6 +6,7 @@
Thank you!
-->
- [ ] 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

View File

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

2
.gitignore vendored
View File

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

1
.husky/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
_

1
.husky/pre-commit Executable file
View File

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

1
.npmrc Normal file
View File

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

6
.prettierrc Normal file
View File

@@ -0,0 +1,6 @@
{
"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:
| Theme Location | Template Location |
|----------------------------------------------|------------------------------------------|
| `autoload/onedark.vim` | `build/templates/autoload.template.vim` |
| `term/One Dark.Xresources` | `build/templates/One Dark.Xresources` |
| `term/One Dark.itermcolors` | `build/templates/One Dark.itermcolors` |
| `term/One Dark.terminal` | `build/templates/One Dark.terminal` |
| `term/One Dark.alacritty` | `build/templates/One Dark.alacritty` |
| Theme Location | Template Location |
| --------------------------- | --------------------------------------- |
| `autoload/onedark.vim` | `build/templates/autoload.template.vim` |
| `term/One Dark.Xresources` | `build/templates/One Dark.Xresources` |
| `term/One Dark.itermcolors` | `build/templates/One Dark.itermcolors` |
| `term/One Dark.terminal` | `build/templates/One Dark.terminal` |
| `term/One Dark.alacritty` | `build/templates/One Dark.alacritty` |
| `term/One Dark.colorscheme` | `build/templates/One Dark.colorscheme` |
### 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
> cd build
> npm install
```
@@ -37,16 +37,17 @@ That's it!
### Use It
The build system consists of a single Node.js script, `build.js`, which supports two commands:
The build system consists of a single Node.js script, `build/build.js`, which supports two commands:
* Running `./build.js` or `npm run build` generates theme files from the templates, **overwriting changes to the theme files without confirmation.**
* 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.)
- Running `./build/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.
- 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:
1. Make changes to the appropriate template files in `build/templates`, then run `npm run build` from inside the `build` directory.
1. Make changes to the appropriate template files in `build/templates`, then run `npm run build`.
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.
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.
## Style Guidelines
@@ -54,7 +55,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").
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.
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`.
## Thanks!

View File

@@ -1,10 +1,34 @@
![onedark.vim](https://raw.githubusercontent.com/joshdick/onedark.vim/master/img/readme_header.png)
![onedark.vim](https://raw.githubusercontent.com/joshdick/onedark.vim/main/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/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/atom/tree/master/packages/one-dark-syntax) for the [Atom text editor](https://atom.io).
## Color Reference
![Color Reference](https://raw.githubusercontent.com/joshdick/onedark.vim/master/img/color_reference.png)
![Color Reference](https://raw.githubusercontent.com/joshdick/onedark.vim/main/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
@@ -59,22 +83,22 @@ A dark Vim/Neovim color scheme for the GUI and 16/256/true-color terminals, base
**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-onedark.vim Preview](https://raw.github.com/joshdick/onedark.vim/master/img/preview_lightline.png)
![lightline-onedark.vim Preview](https://raw.github.com/joshdick/onedark.vim/main/img/preview_lightline.png)
This repository includes a companion [lightline.vim](https://github.com/itchyny/lightline.vim) colorscheme for use with onedark.vim.
The lightline.vim colorscheme:
* 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.
- 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.
### Installation
@@ -90,15 +114,15 @@ let g:lightline = {
## vim-airline Theme
![airline-onedark.vim Preview](https://raw.github.com/joshdick/onedark.vim/master/img/preview_airline.png)
![airline-onedark.vim Preview](https://raw.github.com/joshdick/onedark.vim/main/img/preview_airline.png)
This repository includes a companion [vim-airline](https://github.com/vim-airline/vim-airline) theme for use with onedark.vim.
The vim-airline theme:
* 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.
* Is based on vim-airline's ["tomorrow" theme](https://github.com/vim-airline/vim-airline-themes/blob/master/autoload/airline/themes/tomorrow.vim).
- 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.
- Is based on vim-airline's ["tomorrow" theme](https://github.com/vim-airline/vim-airline-themes/blob/master/autoload/airline/themes/tomorrow.vim).
### Installation
@@ -114,7 +138,7 @@ let g:airline_theme='onedark'
### Why do the colors in terminal Vim look totally crazy?
![Broken Colors](https://raw.githubusercontent.com/joshdick/onedark.vim/master/img/broken_colors.png)
![Broken Colors](https://raw.githubusercontent.com/joshdick/onedark.vim/main/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.
@@ -128,27 +152,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.
* **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
let g:onedark_termcolors=256
```
```vim
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
let g:onedark_termcolors=16
```
```vim
let g:onedark_termcolors=16
```
### Why do all comments look like they're highlighted?
![Broken Italics](https://raw.githubusercontent.com/joshdick/onedark.vim/master/img/broken_italics.png)
![Broken Italics](https://raw.githubusercontent.com/joshdick/onedark.vim/main/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.
@@ -213,7 +237,7 @@ You can override colors across all highlights by adding color definitions to the
```vim
let g:onedark_color_overrides = {
\ "black": {"gui": "#2F343F", "cterm": "235", "cterm16": "0" },
\ "background": {"gui": "#2F343F", "cterm": "235", "cterm16": "0" },
\ "purple": { "gui": "#C678DF", "cterm": "170", "cterm16": "5" }
\}
```
@@ -236,16 +260,18 @@ 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!
* [drewtempelmeyer/palenight.vim](https://github.com/drewtempelmeyer/palenight.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)
* Associated base16 scheme: [tilal6991/base16-onedark-scheme](https://github.com/tilal6991/base16-onedark-scheme)
* [rakr/vim-one](https://github.com/rakr/vim-one)
- [drewtempelmeyer/palenight.vim](https://github.com/drewtempelmeyer/palenight.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)
- Associated base16 scheme: [tilal6991/base16-onedark-scheme](https://github.com/tilal6991/base16-onedark-scheme)
- [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 were taken using:
* [iTerm2](https://iterm2.com) terminal emulator on macOS
* 13 pt. [PragmataPro Mono](http://www.fsd.it/fonts/pragmatapro.htm#.VlDa1q6rTOY) font
* [vim-polyglot](https://github.com/sheerun/vim-polyglot) plug-in
- [iTerm2](https://iterm2.com) terminal emulator on macOS
- 13 pt. [PragmataPro Mono](http://www.fsd.it/fonts/pragmatapro.htm#.VlDa1q6rTOY) font
- [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_purple = s:colors.purple.cterm16
let s:term_white = s:colors.white.cterm16
let s:term_black = s:colors.black.cterm16
let s:term_grey = s:colors.cursor_grey.cterm16
let s:term_cursor_grey = s:colors.cursor_grey.cterm16
let s:term_visual_grey = s:colors.visual_grey.cterm16
else
let s:term_red = s:colors.red.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_purple = s:colors.purple.cterm
let s:term_white = s:colors.white.cterm
let s:term_black = s:colors.black.cterm
let s:term_grey = s:colors.cursor_grey.cterm
let s:term_cursor_grey = s:colors.cursor_grey.cterm
let s:term_visual_grey = s:colors.visual_grey.cterm
endif
let g:airline#themes#onedark#palette = {}
@@ -33,9 +33,9 @@ function! airline#themes#onedark#refresh()
\ 'red': [ s:colors.red.gui, '', s:term_red, 0 ]
\ }
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_grey ]
let s:N3 = [ s:colors.green.gui, s:colors.black.gui, s:term_green, '' ]
let s:N1 = [ s:colors.cursor_grey.gui, s:colors.green.gui, s:term_cursor_grey, s:term_green ]
let s:N2 = [ s:colors.white.gui, s:colors.visual_grey.gui, s:term_white, s:term_visual_grey ]
let s:N3 = [ s:colors.green.gui, s:colors.cursor_grey.gui, s:term_green, s:term_cursor_grey ]
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')
@@ -43,26 +43,26 @@ function! airline#themes#onedark#refresh()
\ 'airline_c': [ group[0], '', group[2], '', '' ]
\ }
let s:I1 = [ s:colors.black.gui, s:colors.blue.gui, s:term_black, s:term_blue ]
let s:I1 = [ s:colors.cursor_grey.gui, s:colors.blue.gui, s:term_cursor_grey, s:term_blue ]
let s:I2 = s:N2
let s:I3 = [ s:colors.blue.gui, s:colors.black.gui, s:term_blue, '' ]
let s:I3 = [ s:colors.blue.gui, s:colors.cursor_grey.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_modified = g:airline#themes#onedark#palette.normal_modified
let s:R1 = [ s:colors.black.gui, s:colors.red.gui, s:term_black, s:term_red ]
let s:R1 = [ s:colors.cursor_grey.gui, s:colors.red.gui, s:term_cursor_grey, s:term_red ]
let s:R2 = s:N2
let s:R3 = [ s:colors.red.gui, s:colors.black.gui, s:term_red, '' ]
let s:R3 = [ s:colors.red.gui, s:colors.cursor_grey.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_modified = g:airline#themes#onedark#palette.normal_modified
let s:V1 = [ s:colors.black.gui, s:colors.purple.gui, s:term_black, s:term_purple ]
let s:V1 = [ s:colors.cursor_grey.gui, s:colors.purple.gui, s:term_cursor_grey, s:term_purple ]
let s:V2 = s:N2
let s:V3 = [ s:colors.purple.gui, s:colors.black.gui, s:term_purple, '' ]
let s:V3 = [ s:colors.purple.gui, s:colors.cursor_grey.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_modified = g:airline#themes#onedark#palette.normal_modified
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_grey ]
let s:IA1 = [ s:colors.cursor_grey.gui, s:colors.white.gui, s:term_cursor_grey, s:term_white ]
let s:IA2 = [ s:colors.white.gui, s:colors.visual_grey.gui, s:term_white, s:term_visual_grey ]
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_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)
" Warnings
let s:WI = [ s:colors.black.gui, s:colors.yellow.gui, s:term_black, s:term_yellow ]
let s:WI = [ s:colors.cursor_grey.gui, s:colors.yellow.gui, s:term_cursor_grey, s:term_yellow ]
let g:airline#themes#onedark#palette.normal.airline_warning = [
\ 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
" Errors
let s:ER = [ s:colors.black.gui, s:colors.red.gui, s:term_black, s:term_red ]
let s:ER = [ s:colors.cursor_grey.gui, s:colors.red.gui, s:term_cursor_grey, s:term_red ]
let g:airline#themes#onedark#palette.normal.airline_error = [
\ 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_purple = s:colors.purple.cterm16
let s:term_white = s:colors.white.cterm16
let s:term_black = s:colors.black.cterm16
let s:term_grey = s:colors.cursor_grey.cterm16
let s:term_cursor_grey = s:colors.cursor_grey.cterm16
let s:term_visual_grey = s:colors.visual_grey.cterm16
else
let s:term_red = s:colors.red.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_purple = s:colors.purple.cterm
let s:term_white = s:colors.white.cterm
let s:term_black = s:colors.black.cterm
let s:term_grey = s:colors.cursor_grey.cterm
let s:term_cursor_grey = s:colors.cursor_grey.cterm
let s:term_visual_grey = s:colors.visual_grey.cterm
endif
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:purple = [ s:colors.purple.gui, s:term_purple ]
let s:white = [ s:colors.white.gui, s:term_white ]
let s:black = [ s:colors.black.gui, s:term_black ]
let s:grey = [ s:colors.visual_grey.gui, s:term_grey ]
let s:cursor_grey = [ s:colors.cursor_grey.gui, s:term_cursor_grey ]
let s:visual_grey = [ s:colors.visual_grey.gui, s:term_visual_grey ]
let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}}
let s:p.normal.left = [ [ s:black, s:green ], [ s:white, s:grey ] ]
let s:p.normal.right = [ [ s:black, s:green ], [ s:white, s:grey ] ]
let s:p.inactive.left = [ [ s:white, s:grey ], [ s:white, s:grey ] ]
let s:p.inactive.right = [ [ s:black, s:white ], [ s:black, s:white ] ]
let s:p.insert.left = [ [ s:black, s:blue ], [ s:white, s:grey ] ]
let s:p.insert.right = [ [ s:black, s:blue ], [ s:white, s:grey ] ]
let s:p.replace.left = [ [ s:black, s:red ], [ s:white, s:grey ] ]
let s:p.replace.right = [ [ s:black, s:red ], [ s:white, s:grey ] ]
let s:p.visual.left = [ [ s:black, s:purple ], [ s:white, s:grey ] ]
let s:p.visual.right = [ [ s:black, s:purple ], [ s:white, s:grey ] ]
let s:p.normal.middle = [ [ s:white, s:black ] ]
let s:p.inactive.middle = [ [ s:white, s:grey ] ]
let s:p.tabline.left = [ [ s:white, s:grey ] ]
let s:p.tabline.tabsel = [ [ s:black, s:white ] ]
let s:p.tabline.middle = [ [ s:white, s:black ] ]
let s:p.tabline.right = [ [ s:white, s:grey ] ]
let s:p.normal.error = [ [ s:black, s:red ] ]
let s:p.normal.warning = [ [ s:black, s:yellow ] ]
let s:p.normal.left = [ [ s:cursor_grey, s:green ], [ s:white, s:visual_grey ] ]
let s:p.normal.right = [ [ s:cursor_grey, s:green ], [ s:white, s:visual_grey ] ]
let s:p.inactive.left = [ [ s:white, s:visual_grey ], [ s:white, s:visual_grey ] ]
let s:p.inactive.right = [ [ s:cursor_grey, s:white ], [ s:cursor_grey, s:white ] ]
let s:p.insert.left = [ [ s:cursor_grey, s:blue ], [ s:white, s:visual_grey ] ]
let s:p.insert.right = [ [ s:cursor_grey, s:blue ], [ s:white, s:visual_grey ] ]
let s:p.replace.left = [ [ s:cursor_grey, s:red ], [ s:white, s:visual_grey ] ]
let s:p.replace.right = [ [ s:cursor_grey, s:red ], [ s:white, s:visual_grey ] ]
let s:p.visual.left = [ [ s:cursor_grey, s:purple ], [ s:white, s:visual_grey ] ]
let s:p.visual.right = [ [ s:cursor_grey, s:purple ], [ s:white, s:visual_grey ] ]
let s:p.normal.middle = [ [ s:white, s:cursor_grey ] ]
let s:p.inactive.middle = [ [ s:white, s:visual_grey ] ]
let s:p.tabline.left = [ [ s:white, s:visual_grey ] ]
let s:p.tabline.tabsel = [ [ s:cursor_grey, s:white ] ]
let s:p.tabline.middle = [ [ s:white, s:cursor_grey ] ]
let s:p.tabline.right = [ [ s:white, s:visual_grey ] ]
let s:p.normal.error = [ [ s:cursor_grey, s:red ] ]
let s:p.normal.warning = [ [ s:cursor_grey, s:yellow ] ]
let g:lightline#colorscheme#onedark#palette = lightline#colorscheme#flatten(s:p)

View File

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

View File

@@ -1,28 +0,0 @@
{
"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,170 +1,185 @@
#!/usr/bin/env node
const _ = require('lodash') // ships with termcolors; only used because of termcolors customization
const termcolors = require('termcolors')
const { readFileSync, writeFileSync } = require('fs')
const { resolve } = require('path')
const _ = require('lodash'); // ships with termcolors; only used because of termcolors customization
const termcolors = require('termcolors');
const { readFileSync, writeFileSync } = require('fs');
const { resolve } = require('path');
const baseColors = Object.freeze({
red: { gui: '#E06C75', cterm: '204', cterm16: '1' }, // alternate cterm: 168
dark_red: { gui: '#BE5046', cterm: '196', cterm16: '9' },
green: { gui: '#98C379', cterm: '114', cterm16: '2' },
yellow: { gui: '#E5C07B', cterm: '180', cterm16: '3' },
dark_yellow: { gui: '#D19A66', cterm: '173', cterm16: '11' },
blue: { gui: '#61AFEF', cterm: '39', cterm16: '4' }, // alternate cterm: 75
purple: { gui: '#C678DD', cterm: '170', cterm16: '5' }, // alternate cterm: 176
cyan: { gui: '#56B6C2', cterm: '38', cterm16: '6' }, // alternate cterm: 73
white: { gui: '#ABB2BF', cterm: '145', cterm16 : '7' },
black: { gui: '#282C34', cterm: '235', cterm16: '0' }
})
red: { gui: '#E06C75', cterm: '204', cterm16: '1' }, // alternate cterm: 168
dark_red: { gui: '#BE5046', cterm: '196', cterm16: '9' },
green: { gui: '#98C379', cterm: '114', cterm16: '2' },
yellow: { gui: '#E5C07B', cterm: '180', cterm16: '3' },
dark_yellow: { gui: '#D19A66', cterm: '173', cterm16: '11' },
blue: { gui: '#61AFEF', cterm: '39', cterm16: '4' }, // alternate cterm: 75
purple: { gui: '#C678DD', cterm: '170', cterm16: '5' }, // alternate cterm: 176
cyan: { gui: '#56B6C2', cterm: '38', cterm16: '6' }, // alternate cterm: 73
white: { gui: '#ABB2BF', cterm: '145', cterm16: '15' },
black: { gui: '#282C34', cterm: '235', cterm16: '0' }
});
const specialColors = Object.freeze({
comment_grey: { gui: '#5C6370', cterm: '59', cterm16: '15' },
gutter_fg_grey: { gui: '#4B5263', cterm: '238', cterm16: '15' },
cursor_grey: { gui: '#2C323C', cterm: '236', cterm16: '8' },
visual_grey: { gui: '#3E4452', cterm: '237', cterm16: '15' },
menu_grey: { cterm16: '8' }, // vim theme handles gui/cterm values
special_grey: { gui: '#3B4048', cterm: '238', cterm16: '15' },
vertsplit: { gui: '#181A1F', cterm: '59', cterm16: '15' },
})
comment_grey: { gui: '#5C6370', cterm: '59', cterm16: '7' },
gutter_fg_grey: { gui: '#4B5263', cterm: '238', cterm16: '8' },
cursor_grey: { gui: '#2C323C', cterm: '236', cterm16: '0' },
visual_grey: { gui: '#3E4452', cterm: '237', cterm16: '8' },
menu_grey: { cterm16: '7' }, // vim theme handles gui/cterm values
special_grey: { gui: '#3B4048', cterm: '238', cterm16: '7' },
vertsplit: { gui: '#3E4452', cterm: '59', cterm16: '7' }
});
const colors = Object.assign({}, baseColors, specialColors)
const colors = Object.assign({}, baseColors, specialColors);
const templateMap = Object.freeze({
'templates/autoload.template.vim': '../autoload/onedark.vim',
'templates/One Dark.Xresources': '../term/One Dark.Xresources'
})
'templates/autoload.template.vim': '../autoload/onedark.vim',
'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) => {
console.error('Error:', message)
if (cause) console.error('Cause:', cause)
process.exit(-1)
}
console.error('Error:', message);
if (cause) console.error('Cause:', cause);
process.exit(-1);
};
console.log(
shouldCheck ?
'Checking for inconsistencies between templates and existing output files...'
:
'Generating output files from templates...'
)
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);
}
// 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);
}
// 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);
}
// 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)
}
})
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)
// 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
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)
})
)
// 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()
})
)
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)
})
)
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')
]
konsoleTemplate = termcolors.export(
// From termcolors/lib/formats/konsole.js
readFileSync(resolve(__dirname, 'templates/One Dark.colorscheme')),
_.partialRight(_.mapValues, function (color) {
return color.toRgbArray().join();
})
);
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')
})
)
// From termcolors/lib/formats/terminal-app.js
const code = [
Buffer.from(
'62706c6973743030d40102030405061516582476657273696f6e58246f626a65637473592461726368697665725424746f7012000186a0a307080f55246e756c6cd3090a0b0c0d0e554e535247425c4e53436f6c6f7253706163655624636c6173734f1027',
'hex'
),
Buffer.from(
'0010018002d2101112135a24636c6173736e616d655824636c6173736573574e53436f6c6f72a21214584e534f626a6563745f100f4e534b657965644172636869766572d1171854726f6f74800108111a232d32373b41484e5b628c8e9095a0a9b1b4bdcfd2d700000000000001010000000000000019000000000000000000000000000000d9',
'hex'
)
];
} 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)
}
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)
handleError('Error reading Xresources terminal color file', e);
}
console.log('Success!')
console.log('Success!');

1362
build/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

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

View File

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

View File

@@ -0,0 +1,96 @@
[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,7 +13,8 @@ let s:colors = {
\ "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%>" }),
\ "black": get(s:overrides, "black", { "gui": "<%=black.gui%>", "cterm": "<%=black.cterm%>", "cterm16": "<%=black.cterm16%>" }),
\ "visual_black": get(s:overrides, "visual_black", { "gui": "NONE", "cterm": "NONE", "cterm16": "<%=black.cterm16%>" }),
\ "foreground": get(s:overrides, "foreground", { "gui": "<%=white.gui%>", "cterm": "<%=white.cterm%>", "cterm16": "NONE" }),
\ "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%>" }),
\ "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%>" }),

View File

@@ -5,7 +5,10 @@
" License: The MIT License (MIT)
" Based On: https://github.com/MaxSt/FlatColor/
" A companion [vim-airline](https://github.com/bling/vim-airline) theme is available at: https://github.com/joshdick/airline-onedark.vim
" Companion statusline plugin and terminal themes are included with 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 {{{
@@ -56,7 +59,7 @@ let g:colors_name="onedark"
" Set to "256" for 256-color terminals, or
" set to "16" to use your terminal emulator's native colors
" (a 16-color palette for this color scheme is available; see
" < https://github.com/joshdick/onedark.vim/blob/master/README.md >
" < https://github.com/joshdick/onedark.vim/blob/main/README.md >
" for more information.)
if !exists("g:onedark_termcolors")
let g:onedark_termcolors = 256
@@ -75,13 +78,16 @@ function! s:h(group, style, ...)
let s:highlight = s:group_colors[a:group]
for style_type in ["fg", "bg", "sp"]
if (has_key(a:style, style_type))
let l:default_style = (has_key(s:highlight, style_type) ? s:highlight[style_type] : { "cterm16": "NONE", "cterm": "NONE", "gui": "NONE" })
let l:default_style = (has_key(s:highlight, style_type) ? copy(s:highlight[style_type]) : { "cterm16": "NONE", "cterm": "NONE", "gui": "NONE" })
let s:highlight[style_type] = extend(l:default_style, a:style[style_type])
endif
endfor
if (has_key(a:style, "gui"))
let s:highlight.gui = a:style.gui
endif
if (has_key(a:style, "cterm"))
let s:highlight.cterm = a:style.cterm
endif
else
let s:highlight = a:style
let s:group_colors[a:group] = s:highlight " Cache default highlight group settings
@@ -142,7 +148,8 @@ let s:purple = s:colors.purple
let s:cyan = s:colors.cyan
let s:white = s:colors.white
let s:black = s:colors.black
let s:visual_black = s:colors.visual_black " Black out selected text in 16-color visual mode
let s:foreground = s:colors.foreground
let s:background = s:colors.background
let s:comment_grey = s:colors.comment_grey
let s:gutter_fg_grey = s:colors.gutter_fg_grey
let s:cursor_grey = s:colors.cursor_grey
@@ -155,12 +162,31 @@ let s:vertsplit = s:colors.vertsplit
" Terminal Colors {{{
let g:terminal_ansi_colors = [
\ 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: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
\]
if has('nvim')
let g:terminal_color_0 = s:black.gui
let g:terminal_color_1 = s:red.gui
let g:terminal_color_2 = s:green.gui
let g:terminal_color_3 = s:yellow.gui
let g:terminal_color_4 = s:blue.gui
let g:terminal_color_5 = s:purple.gui
let g:terminal_color_6 = s:cyan.gui
let g:terminal_color_7 = s:comment_grey.gui
let g:terminal_color_8 = s:visual_grey.gui
let g:terminal_color_9 = s:red.gui
let g:terminal_color_10 = s:green.gui
let g:terminal_color_11 = s:yellow.gui
let g:terminal_color_12 = s:blue.gui
let g:terminal_color_13 = s:purple.gui
let g:terminal_color_14 = s:cyan.gui
let g:terminal_color_15 = s:white.gui
else
let g:terminal_ansi_colors = [
\ s:black.gui, s:red.gui, s:green.gui, s:yellow.gui,
\ s:blue.gui, s:purple.gui, s:cyan.gui, s:comment_grey.gui,
\ s:visual_grey.gui, s:red.gui, s:green.gui, s:yellow.gui,
\ s:blue.gui, s:purple.gui, s:cyan.gui, s:white.gui
\]
endif
" }}}
@@ -180,7 +206,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("Label", { "fg": s:purple }) " case, default, etc.
call s:h("Operator", { "fg": s:purple }) " sizeof", "+", "*", etc.
call s:h("Keyword", { "fg": s:red }) " any other keyword
call s:h("Keyword", { "fg": s:purple }) " any other keyword
call s:h("Exception", { "fg": s:purple }) " try, catch, throw
call s:h("PreProc", { "fg": s:yellow }) " generic Preprocessor
call s:h("Include", { "fg": s:blue }) " preprocessor #include
@@ -192,7 +218,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("Typedef", { "fg": s:yellow }) " A typedef
call s:h("Special", { "fg": s:blue }) " any special symbol
call s:h("SpecialChar", {}) " special character in a constant
call s:h("SpecialChar", { "fg": s:dark_yellow }) " special character in a constant
call s:h("Tag", {}) " you can use CTRL-] on this
call s:h("Delimiter", {}) " character that needs attention
call s:h("SpecialComment", { "fg": s:comment_grey }) " special things inside a comment
@@ -237,10 +263,10 @@ call s:h("MatchParen", { "fg": s:blue, "gui": "underline", "cterm": "underline"
call s:h("ModeMsg", {}) " 'showmode' message (e.g., "-- INSERT --")
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("Normal", { "fg": s:white, "bg": s:black }) " normal text
call s:h("Pmenu", { "bg": s:menu_grey }) " Popup menu: normal item.
call s:h("PmenuSel", { "fg": s:black, "bg": s:blue }) " Popup menu: selected item.
call s:h("PmenuSbar", { "bg": s:special_grey }) " Popup menu: scrollbar.
call s:h("Normal", { "fg": s:foreground, "bg": s:background }) " normal text
call s:h("Pmenu", { "fg": s:white, "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("PmenuSbar", { "bg": s:cursor_grey }) " Popup menu: 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("QuickFixLine", { "fg": s:black, "bg": s:yellow }) " Current quickfix item in the quickfix window.
@@ -259,7 +285,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("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("Visual", { "fg": s:visual_black, "bg": s:visual_grey }) " Visual mode selection
call s:h("Visual", { "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("WarningMsg", { "fg": s:yellow }) " warning messages
call s:h("WildMenu", { "fg": s:black, "bg": s:blue }) " current match in 'wildmenu' completion
@@ -317,6 +343,7 @@ call s:h("goTypeDecl", { "fg": s:purple })
" HTML (keep consistent with Markdown, below)
call s:h("htmlArg", { "fg": s:dark_yellow })
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("htmlH1", { "fg": s:red })
call s:h("htmlH2", { "fg": s:red })
@@ -409,6 +436,7 @@ call s:h("lessClass", { "fg": s:dark_yellow })
" Markdown (keep consistent with HTML, above)
call s:h("markdownBlockquote", { "fg": s:comment_grey })
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("markdownCodeBlock", { "fg": s:green })
call s:h("markdownCodeDelimiter", { "fg": s:green })
@@ -438,7 +466,7 @@ call s:h("perlMatchStartEnd",{ "fg": s:blue })
call s:h("perlMethod", { "fg": s:purple })
call s:h("perlPOD", { "fg": s:comment_grey })
call s:h("perlSharpBang", { "fg": s:comment_grey })
call s:h("perlSpecialString",{ "fg": s:cyan })
call s:h("perlSpecialString",{ "fg": s:dark_yellow })
call s:h("perlStatementFiledesc", { "fg": s:red })
call s:h("perlStatementFlow",{ "fg": s:red })
call s:h("perlStatementInclude", { "fg": s:purple })
@@ -541,9 +569,17 @@ call s:h("xmlTagName", { "fg": s:red })
" Plugin Highlighting {{{
" airblade/vim-gitgutter
hi link GitGutterAdd SignifySignAdd
hi link GitGutterChange SignifySignChange
hi link GitGutterDelete SignifySignDelete
call s:h("GitGutterAdd", { "fg": s:green })
call s:h("GitGutterChange", { "fg": s:yellow })
call s:h("GitGutterDelete", { "fg": s:red })
" 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
call s:h("EasyMotionTarget", { "fg": s:red, "gui": "bold", "cterm": "bold" })
@@ -551,21 +587,47 @@ 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("EasyMotionShade", { "fg": s:comment_grey })
" lewis6991/gitsigns.nvim
hi link GitSignsAdd GitGutterAdd
hi link GitSignsChange GitGutterChange
hi link GitSignsDelete GitGutterDelete
" mhinz/vim-signify
call s:h("SignifySignAdd", { "fg": s:green })
call s:h("SignifySignChange", { "fg": s:yellow })
call s:h("SignifySignDelete", { "fg": s:red })
hi link SignifySignAdd GitGutterAdd
hi link SignifySignChange GitGutterChange
hi link SignifySignDelete GitGutterDelete
" 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
call s:h("NeomakeWarningSign", { "fg": s:yellow })
call s:h("NeomakeErrorSign", { "fg": s:red })
call s:h("NeomakeWarningSign", { "fg": s:yellow })
call s:h("NeomakeInfoSign", { "fg": s:blue })
" plasticboy/vim-markdown (keep consistent with Markdown, above)
call s:h("mkdDelimiter", { "fg": s:purple })
call s:h("mkdHeading", { "fg": s:red })
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("lspInlayHintsType", { "fg":s:cyan })
call s:h("lspInlayHintsParameter", { "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
call s:h("diffAdded", { "fg": s:green })
@@ -599,9 +661,10 @@ hi link gitcommitUnmergedArrow gitcommitUnmergedFile
" }}}
" Neovim terminal colors {{{
" Neovim-Specific Highlighting {{{
if has("nvim")
" Neovim terminal colors {{{
let g:terminal_color_0 = s:black.gui
let g:terminal_color_1 = s:red.gui
let g:terminal_color_2 = s:green.gui
@@ -618,8 +681,31 @@ if has("nvim")
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_15 = s:comment_grey.gui
let g:terminal_color_background = g:terminal_color_0
let g:terminal_color_foreground = g:terminal_color_7
let g:terminal_color_background = s:background.gui
let g:terminal_color_foreground = s:foreground.gui
" }}}
" 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
" }}}

4826
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

45
package.json Normal file
View File

@@ -0,0 +1,45 @@
{
"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
! black
*.color0: #5C6370
*.color8: #4B5263
*.color0: #2C323C
*.color8: #3E4452
! red
*.color1: #E06C75
*.color9: #BE5046
*.color9: #E06C75
! green
*.color2: #98C379
@@ -17,7 +17,7 @@
! yellow
*.color3: #E5C07B
*.color11: #D19A66
*.color11: #E5C07B
! blue
*.color4: #61AFEF
@@ -32,6 +32,6 @@
*.color14: #56B6C2
! white
*.color7: #ABB2BF
*.color15: #3E4452
*.color7: #5C6370
*.color15: #ABB2BF

View File

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

96
term/One Dark.colorscheme Normal file
View File

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

View File

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

View File

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