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.
abyss_nvim_video.mp4
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 |
use {
'barrientosvctor/abyss.nvim',
run = function()
local status, abyss = pcall(require, 'abyss')
if not status then return end
abyss.setup()
end
} |
lazy.nvim |
{
'barrientosvctor/abyss.nvim',
lazy = false,
priority = 1000,
opts = {}
} |
Vim-plug |
Plug 'barrientosvctor/abyss.nvim' |
Vundle.vim |
Plugin 'barrientosvctor/abyss.nvim' |
Vim's built-in package manager |
mkdir -p ~/.vim/pack/colors/start
cd ~/.vim/pack/colors/start
git clone https://github.com/barrientosvctor/abyss.nvim.git |
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
})
lua << EOF
require("abyss").setup {
" your setup options
}
EOF
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
}
})
- 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
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'
}
}
- 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
}
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
develop
branch. 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
develop
branch to your branch before make a commit. -
All pull requests must go from your branch to
develop
branch.
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.
Refer to release-please-action section.
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.
Neovim has included a command with these characteristics. Just type: :Inspect
.
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>
- nightfox -> codebase for vim support