abyss.nvim
abyss.nvim copied to clipboard
🎨 Abyss.nvim is a (Neo)Vim colorscheme inspired by Abyss theme in Visual Studio Code.
abyss.nvim
Unofficial port for (Neo)Vim inspired by the Abyss theme from Visual Studio Code.
This is the latest version of the old abyss.vim, now supporting Vim.
https://github.com/barrientosvctor/abyss.nvim/assets/113469901/7d20f6f0-c438-4ac1-9838-7c1d49f412b9
⚡️ Requeriments
📦 Installation
You can use any package manager you like.
I highly recommend updating abyss.nvim when a release/tag comes out, since it is possible that there are development commits before that that can cause unexpected errors when using the colorscheme. To do this, make sure to specify a tag in your preferred package manager (if it supports it) before downloading the colorscheme.
| Package manager | Installation |
| packer.nvim |
|
| lazy.nvim |
|
| Vim-plug |
|
| Vundle.vim |
|
| Vim's built-in package manager |
|
💻 Setup
Abyss.nvim has options to customize your colorscheme instance according to your preferences.
These are the available options for the colorscheme:
require('abyss').setup({
italic_comments = true, -- Toggle italic comments
italic = false, -- Toggle italic for function names, keywords, strings and booleans
bold = false, -- Toggle bold for function names, keywords and booleans
transparent_background = false, -- Toggle transparency on neovim background
treesitter = true -- Enable treesitter highlighting. No need to configuration. Default value: (Neovim = true), (Vim = false)
overrides = {} -- Override the default colorscheme highlight to a any else. Default value: nil
})
Vim Script with Lua
lua << EOF
require("abyss").setup {
" your setup options
}
EOF
Overwriting highlights
You can be able to use all of nvim_set_hl() function properties to override the colorscheme colors.
local c = require('abyss.colors')
require('abyss').setup({
overrides = {
String = { fg = c.heavyyellow, bold = true },
-- or:
['String'] = { fg = "#ffeebb", bold = true },
-- ...rest of highlight overrides
}
})
🔌 Plugins supported
- TreeSitter
- Bufferline.nvim
- LSP Diagnostics
- Telescope.nvim
- nvim-cmp
- LspSaga
- Git Signs
- Git Gutter
- nvim-tree.lua
- NERDTree
- Neotree.nvim
- Indent-Blankline.nvim
- nvim-notify
- Dashboard
- Which-key
🚀 Usage
Vim Script
colorscheme abyss
Lua
vim.cmd.colorscheme 'abyss'
Abyss.nvim also includes a lualine.nvim theme, you can use it setting up into lualine setup options:
require('lualine').setup {
options = {
theme = 'abyss'
}
}
📝 Notes
- If you have Bufferline.nvim installed in your dotfiles, bufferline should be loaded after setting up abyss.nvim or it will highlight incorrectly. I'll provide you examples about this using Packer.nvim and Lazy.nvim
Click to see Lazy.nvim example
- Abyss.nvim config
{
'barrientosvctor/abyss.nvim',
lazy = false,
priority = 1000,
opts = {}
}
- Bufferline config
{
'akinsho/bufferline.nvim',
lazy = true,
event = "UIEnter",
-- ...rest of your config
}
Click to see Packer.nvim example
- Bufferline config
use {
'akinsho/bufferline.nvim',
after = 'abyss.nvim',
-- ...rest of your config
}
👥 Contributing
Any issue or pull request is welcome. In this section, I will guide you to make your first contribution.
-
Before these instructions, it's recommended to before create an issue about your change to talk about it.
-
All branches must be based from
developbranch. So, you need to create a new branch based on this one.
$ git switch develop
$ git checkout -b branch-name
-
Make sure to pull the latest commits from
developbranch to your branch before make a commit. -
All pull requests must go from your branch to
developbranch.
Merging the pull request
Your pull request should pass all code reviews (if there is) to
merge it to develop . These code reviews are GitHub workflows.
Also make sure you don't include any CHANGELOG.md in your pull request so you
don't have conflicts with the original file in the main branch.
How should you write your commits?
Refer to release-please-action section.
Syntax highlight groups
If you want to contribute about wrong syntax highlighting on colorscheme. This section will help you to determine what highlight group is being applied to a specific piece of syntax. It'll output the highlight group for the value under the cursor.
Treesitter highlighting
Neovim has included a command with these characteristics. Just type: :Inspect.
Vim highlighting
Add this function to your vimrc:
function! SynStack()
for i1 in synstack(line("."), col("."))
let i2 = synIDtrans(i1)
let n1 = synIDattr(i1, "name")
let n2 = synIDattr(i2, "name")
echo n1 "->" n2
endfor
endfunction
map <F2> <cmd>call SynStack()<cr>
🤗 Acknowledgements
- nightfox -> codebase for vim support