b971f3b49b
This updates the links to two plugins: 1. java-syntax.vim 2. rust.vim java-syntax.vim hasn't had a commit in a few months, and is pending a PR from me which will enable syntax highlighting of delimiters. For the time being, it would be better to use that. rust.vim has made the decision to not allow highlighting of user types, and while I understand their reasoning, I completely disagree. For that reason I will maintain the fork and merge any changes from upstream. |
||
---|---|---|
colors | ||
doc | ||
lua | ||
media | ||
.gitignore | ||
LICENSE | ||
README.md | ||
setup.sh |
README.md
Default Settings Preview
Introduction
nvim-highlite
is a colorscheme template repository for Neovim 0.5+.
This template's defaults focus on:
- Compatability with semantic highlighting.
- I was using colorschemes that often did not provide enough highlight groups to provide distinction between tokens.
- Visibility in any range of blue-light.
- I use
redshift
often, and many colorschemes did not allow for me to see when I had lower color temperatures.
- I use
This template's design focuses on:
- Ease of use and rapid development.
- New features may simply be integrated with current configurations, rather than rewritten over them.
- Merging with the upstream repository is simplified by GitHub, allowing you to select what new defaults to add.
- It provides a large supply of defaults for plugins and programming languages.
- Define a smaller set of "categorical" highlights (see Neovim's
group-name
help page) and many more willlink
automatically.
- Define a smaller set of "categorical" highlights (see Neovim's
- Inversion of Control
- Changes made to the highlighting algorithm won't affect how you write your colorscheme.
- New highlight group attributes which are unaccounted for in older versions will simply be ignored without errors due to Lua's
table
s.
Prerequisites
- Neovim 0.5+
Installation
Creating Your Own
- Fork this repository, or clone it with
git clone https://github.com/Iron-E/nvim-highlite
. - Follow the instructions in
colors/highlite.vim
.- If you are on a Unix system, use the setup script like so:
Wherechmod +x ./setup.sh ./setup.sh highlite <colorscheme>
<colorscheme>
is the name of your desired colorscheme.- If you are on Windows, rename the files manually.
Just The Defaults
- Install a plugin manager such as
vim-plug
and use it to "plug" this repository." vim-plug example Plug "Iron-E/nvim-highlite"
- Specify this colorscheme as your default colorscheme in the
init.vim
:" Enable 24-bit color output. Only do this IF your environment supports it. " This plugin is fully compatible with 8-bit, 16-bit, and 24-bit colors. set termguicolors " Use the colorscheme colorscheme highlite
Usage
Examples
This repository in itself is an example of how to use nvim-highlite
. Aside from this, the following colorschemes are built using nvim-highlite
:
- (if you use this, open an issue and I'll add it here!)
As Dependency
Below is an example of how to use nvim-highlite
as a dependency.
- See
:h highlite-usage
for more.
-- Import nvim-highlite
local highlite = require('highlite')
-- First, define some colors
local red = {'#FF0000', 1, 'red'}
local black = {'#000000', 0, 'black'}
local white = {'#FFFFFF', 255, 'white'}
-- Highlight 'Identifier'
highlite.highlight('Identifier', {bg=red, fg=black, style='bold'})
-- Highlight 'Function' conditionally according to background color.
highlite.highlight('Function', {bg=black, fg=red, light={bg=white}})
-- Link 'Example' to 'Identifier'
highlite.highlight('Example', 'Identifier')
-- You can also reference specific attributes of another highlight group.
highlite.highlight('AnotherExample', {bg=highlite.group'SpellBad'.bg, fg=white})
As Template
Below is an example of how to use nvim-highlite
as a template.
- See
highlite.vim
for more.
-- First, define some colors
local red = {'#FF0000', 1, 'red'}
local black = {'#000000', 0, 'black'}
local white = {'#FFFFFF', 255, 'white'}
-- Next define some highlight groups.
local highlight_groups = {
-- Any field which can be set to "NONE" doesn't need to be set, it will be automatically assumed to be "NONE".
Identifier = {bg=red, fg=black, style='bold'},
-- If your colorscheme should respond to multiple background settings, you can do that too:
Function = {bg=black, fg=red, light={bg=white}},
--[[ Note that light/dark differentiation is completely optional. ]]
-- You can also reference specific attributes of another highlight group.
SomethingElse = function(self) return {fg=self.Identifier.fg, bg=self.Function.bg} end,
}
-- The rest is mostly handled by the template.
FAQ
Why am I receiving
E5108: Error executing lua [string ":lua"]:1: module '<colorscheme>' not found
?
Ensure your colorscheme's base folder is in Neovim's rtp
before sourcing.
What syntax files should I use for
X
language?
You can either use nvim-treesitter
, nvim-polyglot
, or one of the following:
Contribution
This repository is looking for contributions! The following things are appreciated:
- More default support for plugins, languages, etc.
- Setup scripts for Windows.
If you would like to contribute something, and you aren't sure how, open a ticket! I'd love to help you help me.