├── .github
└── workflows
│ └── release.yml
├── .releaserc.js
├── CHANGELOG.md
├── README.md
├── colors
└── spaceduck.lua
└── lua
├── lualine
└── themes
│ └── spaceduck.lua
├── palette.lua
└── spaceduck.lua
/.github/workflows/release.yml:
--------------------------------------------------------------------------------
1 | name: Release
2 | on:
3 | push:
4 | branches:
5 | - master
6 |
7 | jobs:
8 | release:
9 | name: Release
10 | runs-on: ubuntu-latest
11 | steps:
12 | - name: Checkout
13 | uses: actions/checkout@v3
14 | with:
15 | # get all commits
16 | fetch-depth: 0
17 | - name: Setup NodeJS
18 | uses: actions/setup-node@v3
19 | with:
20 | node-version: "lts/*"
21 | - name: Install dependencies
22 | # @see: https://github.com/semantic-release/semantic-release/discussions/2500#discussioncomment-3118983
23 | run: npm --location=global i semantic-release{@19,-gitmoji} @semantic-release/{changelog,git}
24 | - name: Release
25 | env:
26 | GITHUB_TOKEN: ${{ github.token }}
27 | run: npx semantic-release@19
28 |
--------------------------------------------------------------------------------
/.releaserc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: [
3 | "semantic-release-gitmoji",
4 | "@semantic-release/changelog",
5 | [
6 | "@semantic-release/git",
7 | {
8 | message:
9 | ":bookmark: ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}",
10 | },
11 | ],
12 | "@semantic-release/github",
13 | ],
14 | };
15 |
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # [v1.1.0](https://github.com/spaceduck-theme/nvim/compare/v1.0.1...v1.1.0) (2023-12-29)
2 |
3 | ## ✨ New Features
4 | - [`a7aa1ea`](https://github.com/spaceduck-theme/nvim/commit/a7aa1ea) Add highlight for float border (Issues: [`#1`](https://github.com/spaceduck-theme/nvim/issues/1))
5 |
6 | # [v1.0.1](https://github.com/spaceduck-theme/nvim/compare/v1.0.0...v1.0.1) (2023-07-01)
7 |
8 | ## 🐛 Bug Fixes
9 | - [`5e95aa5`](https://github.com/spaceduck-theme/nvim/commit/5e95aa5) Set proper style for window separator
10 | - [`c9307d1`](https://github.com/spaceduck-theme/nvim/commit/c9307d1) Change window separator color from cream to dark_purple (Issues: [`#5`](https://github.com/spaceduck-theme/nvim/issues/5))
11 |
12 | # v1.0.0 (2022-12-20)
13 |
14 | ## ✨ New Features
15 | - [`62bd408`](https://github.com/spaceduck-theme/nvim/commit/62bd408) port basic spaceduck to lua
16 | - [`00cbec8`](https://github.com/spaceduck-theme/nvim/commit/00cbec8) add lualine support
17 |
18 | ## 🐛 Bug Fixes
19 | - [`b351754`](https://github.com/spaceduck-theme/nvim/commit/b351754) assert syntax_on existence properly and disable broken groups
20 | - [`ab971f0`](https://github.com/spaceduck-theme/nvim/commit/ab971f0) fix errors in lualine support
21 | - [`73c45d1`](https://github.com/spaceduck-theme/nvim/commit/73c45d1) remove unwanted character from StatusLineTermNC
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
Spaceduck theme for Nvim
3 | Spaceduck for neovim. All Lua, all spaceduck, always intergalactic.
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 | This is Nvim spaceduck theme port written in Lua.
17 |
18 | # Inspiration 💭
19 |
20 | This theme was inspired from my incessant desire to feel like I'm in space when I stare at a computer.
21 | "Spaceduck" takes its name from my love of [duck dodgers](https://m.media-amazon.com/images/M/MV5BNDY2YjgyZGMtMWY2Zi00ZmQ5LTg0YjgtNjYyMGNkMTMzNWU1XkEyXkFqcGdeQXVyMzM4NjcxOTc@._V1_.jpg) as a kid.
22 |
23 | # Current Language Support
24 |
25 | Basically languages I looked at with my eyes to make sure they didn't look like poop.
26 |
27 | **Languages:**
28 |
29 | _Note: if something looks off please submit an issue with a screenshot_
30 |
31 | - C, C++, fortran, haskell, html, java, javascript, markdown, php, python, ruby, sql, LaTeX, typescript
32 |
33 | # Installation
34 |
35 | ## [packer.nvim](https://github.com/wbthomason/packer.nvim)
36 |
37 | ```lua
38 | use({ "spaceduck-theme/nvim", as = "spaceduck" })
39 | ```
40 |
41 | We use semver on spaceduck so you can refer to a specific tag if you want instead of the `master` branch.
42 |
43 | # Plugins support
44 |
45 | ## [Lualine](https://github.com/hoob3rt/lualine.nvim)
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 | ```lua
55 | require("lualine").setup({
56 | options = {
57 | theme = "spaceduck",
58 | },
59 | })
60 | ```
61 |
62 | # Contributing
63 |
64 | We welcome all contributions. Before you contribute you should be aware of some tooling we have in place to help us maintaining this project.
65 |
66 | We use [`gitmoji`](https://gitmoji.dev/) and [`semantic-release`](https://semantic-release.gitbook.io/semantic-release/) to respectively give meaning to our commits and automatically version the project based on these commits. `gitmoji` has a lot of different emojis you can use to give meaning to your commits. We recommend you check the link given to familiarize yourself with it. They provide a [quizz website](https://gitmemoji.lalilo.com/) to learn it.
67 |
68 | To assist you in writing your commits when you develop on this project, we recommend you to use [gitmoji-cli](https://github.com/carloscuesta/gitmoji-cli).
69 |
70 | To inspect the highlight groups used for a specific portion of text, you can use the built-in command `:Inspect` provided by NeoVim.
71 |
--------------------------------------------------------------------------------
/colors/spaceduck.lua:
--------------------------------------------------------------------------------
1 | require("spaceduck")
2 |
--------------------------------------------------------------------------------
/lua/lualine/themes/spaceduck.lua:
--------------------------------------------------------------------------------
1 | local colors = require("palette")
2 | local spaceduck = {}
3 |
4 | spaceduck.normal = {
5 | -- gui parameter is optional and behaves the same way as in vim's highlight command
6 | a = { bg = colors.grey_purple.hex, fg = colors.blackish.hex, gui = "bold" },
7 | b = { bg = colors.dark_purple.hex, fg = colors.greyer.hex },
8 | c = { bg = colors.blackish.hex, fg = colors.greyer.hex },
9 | }
10 |
11 | spaceduck.insert = {
12 | a = { bg = colors.green.hex, fg = colors.blackish.hex, gui = "bold" },
13 | b = { bg = colors.dark_purple.hex, fg = colors.greyer.hex },
14 | c = { bg = colors.blackish.hex, fg = colors.greyer.hex },
15 | }
16 |
17 | spaceduck.visual = {
18 | a = { bg = colors.yellow.hex, fg = colors.blackish.hex, gui = "bold" },
19 | b = { bg = colors.dark_purple.hex, fg = colors.greyer.hex },
20 | c = { bg = colors.blackish.hex, fg = colors.greyer.hex },
21 | }
22 |
23 | spaceduck.replace = {
24 | a = { bg = colors.purple.hex, fg = colors.blackish.hex, gui = "bold" },
25 | b = { bg = colors.dark_purple.hex, fg = colors.greyer.hex },
26 | c = { bg = colors.blackish.hex, fg = colors.greyer.hex },
27 | }
28 |
29 | spaceduck.command = {
30 | a = { bg = colors.cyan.hex, fg = colors.blackish.hex, gui = "bold" },
31 | b = { bg = colors.dark_purple.hex, fg = colors.greyer.hex },
32 | c = { bg = colors.blackish.hex, fg = colors.greyer.hex },
33 | }
34 |
35 | -- you can assign one colorscheme to another, if a colorscheme is
36 | -- undefined it falls back to normal
37 | spaceduck.terminal = spaceduck.normal
38 |
39 | spaceduck.inactive = {
40 | a = { bg = colors.blackish.hex, fg = colors.greyer.hex, gui = "bold" },
41 | b = { bg = colors.blackish.hex, fg = colors.greyer.hex },
42 | c = { bg = colors.blackish.hex, fg = colors.greyer.hex },
43 | }
44 |
45 | -- lualine.theme = spaceduck
46 | return spaceduck
47 |
--------------------------------------------------------------------------------
/lua/palette.lua:
--------------------------------------------------------------------------------
1 | local colors = {
2 | cream = { hex = "#ecf0c1", cterm = 255 },
3 | white = { hex = "#FFFFFF", cterm = 15 },
4 |
5 | black = { hex = "#000000", cterm = 0 },
6 | blackish = { hex = "#0f111b", cterm = 233 },
7 |
8 | dark_blue = { hex = "#16172d", cterm = 234 },
9 |
10 | dark_grey = { hex = "#1b1c36", cterm = 234 },
11 | greyer = { hex = "#c1c3cc", cterm = 251 },
12 | grey = { hex = "#818596", cterm = 102 },
13 |
14 | dark_purple = { hex = "#30365F", cterm = 237 },
15 | grey_purple = { hex = "#686f9a", cterm = 60 },
16 | purple = { hex = "#7a5ccc", cterm = 98 },
17 | light_purple = { hex = "#b3a1e6", cterm = 146 },
18 |
19 | cyan = { hex = "#00a3cc", cterm = 38 },
20 | green = { hex = "#5ccc96", cterm = 78 },
21 | orange = { hex = "#e39400", cterm = 172 },
22 | red = { hex = "#e33400", cterm = 166 },
23 | yellow = { hex = "#f2ce00", cterm = 220 },
24 | magenta = { hex = "#ce6f8f", cterm = 168 },
25 | }
26 |
27 | return colors
28 |
--------------------------------------------------------------------------------
/lua/spaceduck.lua:
--------------------------------------------------------------------------------
1 | -- ===============================================================
2 | -- spaceduck
3 | --
4 | -- URL: https://github.com/pineapplegiant/spaceduck
5 | -- Author: Guillermo Rodriguez
6 | -- License: MIT
7 | -- ===============================================================
8 | local colors = require("palette")
9 |
10 | vim.opt.background = "dark"
11 | vim.api.nvim_command("hi clear")
12 |
13 | if vim.g.syntax_on then
14 | vim.api.nvim_command("syntax reset")
15 | end
16 |
17 | vim.g.colors_name = "spaceduck"
18 |
19 | local Italic = ""
20 | if vim.g.spaceduck_italic then
21 | Italic = "italic"
22 | end
23 |
24 | local Bold = ""
25 | if vim.g.spaceduck_bold then
26 | Bold = "bold"
27 | end
28 |
29 | vim.g.terminal_color_foreground = colors.cream.hex
30 | vim.g.terminal_color_background = colors.blackish.hex
31 | vim.g.terminal_color_0 = colors.black.hex
32 | vim.g.terminal_color_1 = colors.red.hex
33 | vim.g.terminal_color_2 = colors.green.hex
34 | vim.g.terminal_color_3 = colors.light_purple.hex
35 | vim.g.terminal_color_4 = colors.cyan.hex
36 | vim.g.terminal_color_5 = colors.magenta.hex
37 | vim.g.terminal_color_6 = colors.purple.hex
38 | vim.g.terminal_color_7 = colors.grey_purple.hex
39 | vim.g.terminal_color_8 = colors.grey_purple.hex
40 | vim.g.terminal_color_9 = colors.red.hex
41 | vim.g.terminal_color_10 = colors.green.hex
42 | vim.g.terminal_color_11 = colors.light_purple.hex
43 | vim.g.terminal_color_12 = colors.cyan.hex
44 | vim.g.terminal_color_13 = colors.magenta.hex
45 | vim.g.terminal_color_14 = colors.purple.hex
46 | vim.g.terminal_color_15 = colors.cream.hex
47 |
48 | vim.g.terminal_ansi_colors = {
49 | colors.black.hex,
50 | colors.red.hex,
51 | colors.green.hex,
52 | colors.light_purple.hex,
53 | colors.cyan.hex,
54 | colors.magenta.hex,
55 | colors.purple.hex,
56 | colors.grey_purple,
57 | colors.grey_purple,
58 | colors.red.hex,
59 | colors.green.hex,
60 | colors.light_purple.hex,
61 | colors.cyan.hex,
62 | colors.magenta.hex,
63 | colors.purple.hex,
64 | colors.cream.hex,
65 | }
66 |
67 | local scheme = {
68 | ColorColumn = { bg = colors.dark_blue.hex, ctermbg = colors.dark_blue.cterm },
69 | CursorColumn = { bg = colors.dark_blue.hex, ctermbg = colors.dark_blue.cterm },
70 | Conceal = { fg = colors.grey_purple.hex, ctermfg = colors.grey_purple.cterm },
71 | Cursor = {
72 | fg = colors.blackish.hex,
73 | ctermfg = colors.blackish.cterm,
74 | bg = colors.grey.hex,
75 | ctermbg = colors.grey.cterm,
76 | },
77 | CursorIM = { link = "Cursor" },
78 | CursorLine = { bg = colors.dark_blue.hex, ctermfg = colors.dark_blue.cterm },
79 | CursorLineNr = {
80 | fg = colors.greyer.hex,
81 | ctermfg = colors.greyer.cterm,
82 | bg = colors.dark_blue.hex,
83 | ctermbg = colors.dark_blue.cterm,
84 | },
85 | Directory = { fg = colors.cyan.hex, ctermfg = colors.cyan.cterm },
86 | DiffAdd = {
87 | fg = colors.green.hex,
88 | ctermfg = colors.green.cterm,
89 | bg = colors.dark_grey.hex,
90 | ctermbg = colors.dark_grey.cterm,
91 | },
92 | DiffChange = {
93 | fg = colors.orange.hex,
94 | ctermfg = colors.orange.cterm,
95 | bg = colors.dark_grey.hex,
96 | ctermbg = colors.dark_grey.cterm,
97 | },
98 | DiffDelete = {
99 | fg = colors.red.hex,
100 | ctermfg = colors.red.cterm,
101 | bg = colors.dark_grey.hex,
102 | ctermbg = colors.dark_grey.cterm,
103 | },
104 | DiffText = {
105 | fg = colors.yellow.hex,
106 | ctermfg = colors.yellow.cterm,
107 | bg = colors.dark_grey.hex,
108 | ctermbg = colors.dark_grey.cterm,
109 | },
110 | EndOfBuffer = {
111 | fg = colors.dark_purple.hex,
112 | ctermfg = colors.dark_purple.cterm,
113 | bg = colors.blackish.hex,
114 | ctermbg = colors.blackish.cterm,
115 | },
116 | TermCursor = { link = "Cursor" },
117 | ErrorMsg = { fg = colors.red.hex, ctermfg = colors.red.cterm },
118 | VertSplit = {
119 | fg = colors.dark_purple.hex,
120 | ctermfg = colors.dark_purple.cterm,
121 | bg = colors.blackish.hex,
122 | ctermbg = colors.blackish.cterm,
123 | },
124 | Folded = {
125 | fg = colors.grey_purple.hex,
126 | ctermfg = colors.grey_purple.cterm,
127 | bg = colors.blackish.hex,
128 | ctermbg = colors.blackish.cterm,
129 | },
130 | FoldColumn = {
131 | fg = colors.dark_purple.hex,
132 | ctermfg = colors.dark_purple.cterm,
133 | bg = colors.blackish.hex,
134 | ctermbg = colors.blackish.cterm,
135 | },
136 | SignColumn = {
137 | fg = colors.dark_purple.hex,
138 | ctermfg = colors.dark_purple.cterm,
139 | bg = colors.blackish.hex,
140 | ctermbg = colors.blackish.cterm,
141 | },
142 | IncSearch = {
143 | fg = colors.white.hex,
144 | ctermfg = colors.white.cterm,
145 | bg = colors.dark_purple.hex,
146 | ctermbg = colors.dark_purple.cterm,
147 | },
148 | LineNr = {
149 | fg = colors.dark_purple.hex,
150 | ctermfg = colors.dark_purple.cterm,
151 | bg = colors.blackish.hex,
152 | ctermbg = colors.blackish.cterm,
153 | },
154 | MatchParen = {
155 | fg = colors.white.hex,
156 | ctermfg = colors.white.cterm,
157 | bg = colors.dark_purple.hex,
158 | ctermbg = colors.dark_purple.cterm,
159 | },
160 | ModeMsg = { fg = colors.light_purple.hex, ctermfg = colors.light_purple.cterm },
161 | MoreMsg = { fg = colors.light_purple.hex, ctermfg = colors.light_purple.cterm },
162 | NonText = { link = "EndOfBuffer" },
163 | Pmenu = {
164 | fg = colors.cream.hex,
165 | ctermfg = colors.cream.cterm,
166 | bg = colors.dark_grey.hex,
167 | ctermbg = colors.dark_grey.cterm,
168 | },
169 | PmenuSel = {
170 | fg = colors.white.hex,
171 | ctermfg = colors.white.cterm,
172 | bg = colors.dark_purple.hex,
173 | ctermbg = colors.dark_purple.cterm,
174 | },
175 | PmenuSbar = { bg = colors.dark_purple.hex, ctermbg = colors.dark_purple.cterm },
176 | PmenuThumb = { bg = colors.grey_purple.hex, ctermbg = colors.grey_purple.cterm },
177 | Question = { fg = colors.light_purple.hex, ctermfg = colors.light_purple.cterm },
178 | QuickFixLine = {
179 | fg = colors.cream.hex,
180 | ctermfg = colors.cream.cterm,
181 | bg = colors.dark_blue.hex,
182 | ctermbg = colors.dark_blue.cterm,
183 | },
184 | Search = {
185 | fg = colors.white.hex,
186 | ctermfg = colors.white.cterm,
187 | bg = colors.grey_purple.hex,
188 | ctermbg = colors.grey_purple.cterm,
189 | },
190 | SpecialKey = {
191 | fg = colors.orange.hex,
192 | ctermfg = colors.orange.cterm,
193 | bg = colors.blackish.hex,
194 | ctermbg = colors.blackish.cterm,
195 | },
196 | SpellBad = { fg = colors.red.hex, ctermfg = colors.red.cterm, underline = true },
197 | SpellLocal = { fg = colors.cream.hex, ctermfg = colors.cream.cterm, underline = true },
198 | SpellCap = { fg = colors.green.hex, ctermfg = colors.green.cterm, underline = true },
199 | SpellRare = { fg = colors.yellow.hex, ctermfg = colors.yellow.cterm, underline = true },
200 | StatusLine = {
201 | fg = colors.cream.hex,
202 | ctermfg = colors.cream.cterm,
203 | bg = colors.blackish.hex,
204 | ctermbg = colors.blackish.cterm,
205 | reverse = true,
206 | },
207 | StatusLineTerm = { link = "StatusLine" },
208 | StatusLineTermNC = {
209 | fg = colors.black.hex,
210 | ctermfg = colors.black.cterm,
211 | bg = colors.dark_purple.hex,
212 | ctermbg = colors.dark_purple.cterm,
213 | reverse = true,
214 | },
215 | StatusLineNC = { link = "StatusLineTermNC" },
216 | TabLine = {
217 | fg = colors.black.hex,
218 | ctermfg = colors.black.cterm,
219 | bg = colors.grey.hex,
220 | ctermbg = colors.grey.cterm,
221 | },
222 | TabLineFill = {
223 | fg = colors.grey.hex,
224 | ctermfg = colors.grey.cterm,
225 | bg = colors.black.hex,
226 | ctermbg = colors.black.cterm,
227 | },
228 | TabLineSel = {
229 | fg = colors.greyer.hex,
230 | ctermfg = colors.greyer.cterm,
231 | bg = colors.blackish.hex,
232 | ctermbg = colors.blackish.cterm,
233 | },
234 | Visual = { bg = colors.dark_grey.hex, ctermbg = colors.dark_grey.cterm },
235 | VisualNOS = { link = "Visual" },
236 | WarningMsg = {
237 | fg = colors.orange.hex,
238 | ctermfg = colors.orange.cterm,
239 | bg = colors.blackish.hex,
240 | ctermbg = colors.blackish.cterm,
241 | },
242 | WildMenu = {
243 | fg = colors.black.hex,
244 | ctermfg = colors.black.cterm,
245 | bg = colors.greyer.hex,
246 | ctermbg = colors.greyer.cterm,
247 | },
248 | Whitespace = { link = "EndOfBuffer" },
249 | diffAdded = { fg = colors.light_purple.hex, ctermfg = colors.light_purple.cterm },
250 | diffRemoved = { fg = colors.red.hex, ctermfg = colors.red.cterm },
251 | Normal = {
252 | fg = colors.cream.hex,
253 | ctermfg = colors.cream.cterm,
254 | bg = colors.blackish.hex,
255 | ctermbg = colors.blackish.cterm,
256 | },
257 | Comment = { fg = colors.dark_purple.hex, ctermfg = colors.dark_purple.cterm },
258 | Constant = { fg = colors.yellow.hex, ctermfg = colors.yellow.cterm },
259 | Identifier = { fg = colors.cyan.hex, ctermfg = colors.cyan.cterm },
260 | Statement = { fg = colors.green.hex, ctermfg = colors.green.cterm },
261 | PreProc = { fg = colors.light_purple.hex, ctermfg = colors.light_purple.cterm },
262 | Type = { fg = colors.magenta.hex, ctermfg = colors.magenta.cterm },
263 | Special = { fg = colors.light_purple.hex, ctermfg = colors.light_purple.cterm },
264 | Underlined = { fg = colors.green.hex, ctermfg = colors.green.cterm, underline = true },
265 | Error = { fg = colors.red.hex, ctermfg = colors.red.cterm },
266 | Ignore = { fg = colors.red.hex, ctermfg = colors.red.cterm },
267 | Delimiter = { fg = colors.cream.hex, ctermfg = colors.cream.cterm },
268 | Operator = { fg = colors.magenta.hex, ctermfg = colors.magenta.cterm },
269 | Tag = { fg = colors.light_purple.hex, ctermfg = colors.light_purple.cterm },
270 | Debug = { fg = colors.light_purple.hex, ctermfg = colors.light_purple.cterm },
271 | StorageClass = { fg = colors.light_purple.hex, ctermfg = colors.light_purple.cterm },
272 | String = { fg = colors.cyan.hex, ctermfg = colors.cyan.cterm },
273 | Structure = { fg = colors.cyan.hex, ctermfg = colors.cyan.cterm },
274 | Typedef = { fg = colors.cyan.hex, ctermfg = colors.cyan.cterm },
275 | Function = { fg = colors.green.hex, ctermfg = colors.green.cterm },
276 | Include = { fg = colors.green.hex, ctermfg = colors.green.cterm },
277 | Label = { fg = colors.green.hex, ctermfg = colors.green.cterm },
278 | Exception = { fg = colors.orange.hex, ctermfg = colors.orange.cterm },
279 | Keyword = { fg = colors.orange.hex, ctermfg = colors.orange.cterm },
280 | SpecialChar = { fg = colors.orange.hex, ctermfg = colors.orange.cterm },
281 | Boolean = { fg = colors.yellow.hex, ctermfg = colors.yellow.cterm },
282 | Character = { fg = colors.yellow.hex, ctermfg = colors.yellow.cterm },
283 | Float = { fg = colors.yellow.hex, ctermfg = colors.yellow.cterm },
284 | FloatBorder = {
285 | fg = colors.cream.hex,
286 | ctermfg = colors.cream.cterm,
287 | bg = colors.dark_grey.hex,
288 | ctermbg = colors.dark_grey.cterm,
289 | },
290 | Number = { fg = colors.yellow.hex, ctermfg = colors.yellow.cterm },
291 | Conditional = { fg = colors.green.hex, ctermfg = colors.green.cterm },
292 | Repeat = { fg = colors.green.hex, ctermfg = colors.green.cterm },
293 | Title = { fg = colors.purple.hex, ctermfg = colors.purple.cterm },
294 | Define = { fg = colors.purple.hex, ctermfg = colors.purple.cterm },
295 | Macro = { fg = colors.purple.hex, ctermfg = colors.purple.cterm },
296 | PreCondit = { fg = colors.purple.hex, ctermfg = colors.purple.cterm },
297 | SpecialComment = { link = "Comment" },
298 | Todo = {
299 | fg = colors.white.hex,
300 | ctermfg = colors.white.cterm,
301 | bg = colors.grey_purple.hex,
302 | ctermbg = colors.grey_purple.cterm,
303 | underline = true,
304 | },
305 |
306 | cFormat = { link = "Title" },
307 | cCppOutIf1 = { link = "Normal" },
308 | cCppOutIf2 = { link = "Normal" },
309 | cBracket = { link = "Title" },
310 |
311 | cssBraces = { link = "Normal" },
312 | cssSelectorOp = { fg = colors.magenta.hex, ctermfg = colors.magenta.cterm },
313 |
314 | fortranType = { link = "Tag" },
315 | fortranStructure = { link = "Structure" },
316 | fortranStorageClass = { link = "StorageClass" },
317 | fortranUnitHeader = { link = "Title" },
318 |
319 | haskellType = { link = "Tag" },
320 | haskellIdentifier = { link = "Label" },
321 | haskellKeyword = { link = "Boolean" },
322 | haskellDecl = { link = "Boolean" },
323 |
324 | htmlTagName = { link = "Function" },
325 | htmlEndTag = { link = "Conditional" },
326 | htmlArg = { link = "Tag" },
327 | htmlSpecialTagName = { link = "Type" },
328 |
329 | javaClassDecl = { link = "Structure" },
330 | javaTypeDef = { link = "Keyword" },
331 |
332 | jsStorageClass = { link = "Title" },
333 | jsFunction = { link = "Function" },
334 | jsFuncName = { link = "Special" },
335 | jsOperator = { link = "Operator" },
336 | jsNull = { link = "Constant" },
337 | jsGlobalObjects = { link = "Constant" },
338 | jsFuncCall = { link = "Function" },
339 | jsOperatorKeyword = { link = "Operator" },
340 | jsExceptions = { link = "Error" },
341 | jsTernaryIfOperator = { link = "Title" },
342 | jsTemplateBraces = { link = "Title" },
343 | jsTemplateExpression = { link = "String" },
344 |
345 | texTypeStyle = { link = "Special" },
346 |
347 | mkdDelimiter = { link = "Normal" },
348 |
349 | phpFunction = { link = "Function" },
350 | phpMethod = { link = "Function" },
351 | phpType = { link = "Constant" },
352 | phpIdentifier = { link = "Type" },
353 | phpStringSingle = { link = "String" },
354 | phpStringDouble = { link = "String" },
355 |
356 | pythonOperator = { fg = colors.magenta.hex, ctermfg = colors.magenta.cterm },
357 |
358 | rubyConstant = { link = "Constant" },
359 | rubyDefine = { link = "Define" },
360 | rubyMethodName = { link = "Function" },
361 | rubyInstanceVariable = { link = "Tag" },
362 | rubyKeywordAsMethod = { link = "Tag" },
363 |
364 | jsxTagName = { link = "HTMLTagName" },
365 | jsxComponentName = { link = "Tag" },
366 | jsxOpenPunct = { link = "jsxTagName" },
367 | jsxClosePunct = { link = "jsxOpenPunct" },
368 | jsxCloseString = { link = "jsxClosePunct" },
369 |
370 | typescriptProp = { link = "Tag" },
371 | typescriptVariable = { link = "Title" },
372 | typescriptArrowFunc = { fg = colors.magenta.hex, ctermfg = colors.magenta.cterm },
373 | typescriptBraces = { link = "Normal" },
374 | typescriptNumberStaticMethod = { link = "Function" },
375 | typescriptNumberMethod = { link = "Function" },
376 | typescriptStringStaticMethod = { link = "Function" },
377 | typescriptStringMethod = { link = "Function" },
378 | typescriptArrayStaticMethod = { link = "Function" },
379 | typescriptArrayMethod = { link = "Function" },
380 | typescriptObjectStaticMethod = { link = "Function" },
381 | typescriptObjectMethod = { link = "Function" },
382 | typescriptSymbolStaticMethod = { link = "Function" },
383 | typescriptFunctionMethod = { link = "Function" },
384 | typescriptMathStaticMethod = { link = "Function" },
385 | typescriptDateStaticMethod = { link = "Function" },
386 | typescriptDateMethod = { link = "Function" },
387 | typescriptJSONStaticMethod = { link = "Function" },
388 | typescriptRegExpMethod = { link = "Function" },
389 | typescriptES6MapMethod = { link = "Function" },
390 | typescriptES6SetMethod = { link = "Function" },
391 | typescriptPromiseStaticMethod = { link = "Function" },
392 | typescriptPromiseMethod = { link = "Function" },
393 | typescriptReflectMethod = { link = "Function" },
394 | typescriptIntlMethod = { link = "Function" },
395 | typescriptBOMNavigatorMethod = { link = "Function" },
396 | typescriptServiceWorkerMethod = { link = "Function" },
397 | typescriptBOMLocationMethod = { link = "Function" },
398 | typescriptBOMHistoryMethod = { link = "Function" },
399 | typescriptConsoleMethod = { link = "Function" },
400 | typescriptXHRMethod = { link = "Function" },
401 | typescriptFileMethod = { link = "Function" },
402 | typescriptFileReaderMethod = { link = "Function" },
403 | typescriptFileListMethod = { link = "Function" },
404 | typescriptBlobMethod = { link = "Function" },
405 | typescriptURLStaticMethod = { link = "Function" },
406 | typescriptSubtleCryptoMethod = { link = "Function" },
407 | typescriptCryptoMethod = { link = "Function" },
408 | typescriptHeadersMethod = { link = "Function" },
409 | typescriptRequestMethod = { link = "Function" },
410 | typescriptResponseMethod = { link = "Function" },
411 | typescriptCacheMethod = { link = "Function" },
412 | typescriptEncodingMethod = { link = "Function" },
413 | typescriptGeolocationMethod = { link = "Function" },
414 | typescriptPaymentMethod = { link = "Function" },
415 | typescriptPaymentResponseMethod = { link = "Function" },
416 | typescriptDOMNodeMethod = { link = "Function" },
417 | typescriptDOMDocMethod = { link = "Function" },
418 | typescriptDOMEventTargetMethod = { link = "Function" },
419 | typescriptDOMEventMethod = { link = "Function" },
420 | typescriptDOMStorageMethod = { link = "Function" },
421 | typescriptDOMFormMethod = { link = "Function" },
422 |
423 | vimGroupName = { link = "Normal" },
424 |
425 | yamlKeyValueDelimiter = { link = "Normal" },
426 | yamlBlockMappingKey = { link = "Function" },
427 |
428 | vistaTag = { link = "Conditional" },
429 | vistaIcon = { link = "Identifier" },
430 | vistaColon = { link = "Normal" },
431 | vistaScope = { link = "Constant" },
432 | vistaKind = { link = "Conditional" },
433 |
434 | Sneak = {
435 | fg = colors.black.hex,
436 | ctermfg = colors.black.cterm,
437 | bg = colors.yellow.hex,
438 | ctermbg = colors.yellow.cterm,
439 | },
440 | BufferCurrent = {
441 | fg = colors.greyer.hex,
442 | ctermfg = colors.greyer.cterm,
443 | bg = colors.blackish.hex,
444 | ctermbg = colors.blackish.cterm,
445 | },
446 | BufferVisible = {
447 | fg = colors.dark_purple.hex,
448 | ctermfg = colors.dark_purple.cterm,
449 | bg = colors.blackish.hex,
450 | ctermbg = colors.blackish.cterm,
451 | },
452 | BufferInactive = {
453 | fg = colors.dark_purple.hex,
454 | ctermfg = colors.dark_purple.cterm,
455 | bg = colors.blackish.hex,
456 | ctermbg = colors.blackish.cterm,
457 | },
458 | BufferTabpageFill = {
459 | fg = colors.blackish.hex,
460 | ctermfg = colors.blackish.cterm,
461 | bg = colors.blackish.hex,
462 | ctermbg = colors.blackish.cterm,
463 | },
464 | BufferCurrentIndex = {
465 | fg = colors.green.hex,
466 | ctermfg = colors.green.cterm,
467 | bg = colors.blackish.hex,
468 | ctermbg = colors.blackish.cterm,
469 | },
470 | BufferVisibleIndex = {
471 | fg = colors.dark_purple.hex,
472 | ctermfg = colors.dark_purple.cterm,
473 | bg = colors.blackish.hex,
474 | ctermbg = colors.blackish.cterm,
475 | },
476 | BufferInactiveIndex = {
477 | fg = colors.dark_purple.hex,
478 | ctermfg = colors.dark_purple.cterm,
479 | bg = colors.blackish.hex,
480 | ctermbg = colors.blackish.cterm,
481 | },
482 | BufferCurrentMod = {
483 | fg = colors.orange.hex,
484 | ctermfg = colors.orange.cterm,
485 | bg = colors.blackish.hex,
486 | ctermbg = colors.blackish.cterm,
487 | },
488 | BufferVisibleMod = {
489 | fg = colors.orange.hex,
490 | ctermfg = colors.orange.cterm,
491 | bg = colors.blackish.hex,
492 | ctermbg = colors.blackish.cterm,
493 | },
494 | BufferInactiveMod = {
495 | fg = colors.orange.hex,
496 | ctermfg = colors.orange.cterm,
497 | bg = colors.blackish.hex,
498 | ctermbg = colors.blackish.cterm,
499 | },
500 | BufferCurrentSign = {
501 | fg = colors.green.hex,
502 | ctermfg = colors.green.cterm,
503 | bg = colors.blackish.hex,
504 | ctermbg = colors.blackish.cterm,
505 | },
506 | BufferVisibleSign = {
507 | fg = colors.dark_purple.hex,
508 | ctermfg = colors.dark_purple.cterm,
509 | bg = colors.blackish.hex,
510 | ctermbg = colors.blackish.cterm,
511 | },
512 | BufferInactiveSign = {
513 | fg = colors.dark_purple.hex,
514 | ctermfg = colors.dark_purple.cterm,
515 | bg = colors.blackish.hex,
516 | ctermbg = colors.blackish.cterm,
517 | },
518 | BufferCurrentTarget = {
519 | fg = colors.magenta.hex,
520 | ctermfg = colors.magenta.cterm,
521 | bg = colors.blackish.hex,
522 | ctermbg = colors.blackish.cterm,
523 | },
524 | BufferVisibleTarget = {
525 | fg = colors.magenta.hex,
526 | ctermfg = colors.magenta.cterm,
527 | bg = colors.blackish.hex,
528 | ctermbg = colors.blackish.cterm,
529 | },
530 | BufferInactiveTarget = {
531 | fg = colors.magenta.hex,
532 | ctermfg = colors.magenta.cterm,
533 | bg = colors.blackish.hex,
534 | ctermbg = colors.blackish.cterm,
535 | },
536 | }
537 |
538 | for group, config in pairs(scheme) do
539 | vim.api.nvim_set_hl(0, group, config)
540 | end
541 |
--------------------------------------------------------------------------------