adisen99/codeschool.nvim

github github
colorschemetreesitter-colorschemes
stars 43
issues 1
subscribers 2
forks 4
CREATED

2021-06-24

UPDATED

9 months ago


codeschool.nvim

A pretty colorscheme for neovim written in Lua based on the codeschool.vim color pattete with support for nvim-treesitter and neovim built-in lsp which can be enabled using setup() function (please refer to #Usage)

The basic structure and most of the code is inspired from the gruvbox.nvim colorscheme written by npxbr and Ellison Leao

Installation

Requirements - codeschool.nvim requires the neovim v0.5 or greater to work.

Using vim-plug

Plug 'rktjmp/lush.nvim'
Plug 'adisen99/codeschool.nvim'

Using packer

use {"adisen99/codeschool.nvim", requires = {"rktjmp/lush.nvim"}}

Usage

Inside init.vim (this does not support treesitter, built-in lsp, use the init.lua method below or wrap it between lua << EOF ... EOF)

set background=dark " or light if you want light mode
colorscheme codeschool

Inside init.lua

vim.o.background = "dark" -- or "light" for light mode

-- Load and setup function to choose plugin and language highlights
require('lush')(require('codeschool').setup({
  plugins = {
    "buftabline",
    "coc",
    "cmp", -- nvim-cmp
    "fzf",
    "gitgutter",
    "gitsigns",
    "lsp",
    "lspsaga",
    "nerdtree",
    "netrw",
    "nvimtree",
    "neogit",
    "packer",
    "signify",
    "startify",
    "syntastic",
    "telescope",
    "treesitter"
  },
  langs = {
    "c",
    "clojure",
    "coffeescript",
    "csharp",
    "css",
    "elixir",
    "golang",
    "haskell",
    "html",
    "java",
    "js",
    "json",
    "jsx",
    "lua",
    "markdown",
    "moonscript",
    "objc",
    "ocaml",
    "purescript",
    "python",
    "ruby",
    "rust",
    "scala",
    "typescript",
    "viml",
    "xml"
  }
}))

If you want no plugin support then use colorscheme command instead -

vim.cmd(colorscheme codeschool)

NOTE - None of the plugins or languages highlights are enabled by default, the user is free to use the setup function to select which plugin highlights or language highlights they want to load.

Configuration

  • Setting the Contrast (hard, medium or soft)
lua vim.g.codeschool_contrast_dark = "medium"
" or
let g:codeschool_contrast_dark = "medium"

or

lua vim.g.codeschool_contrast_light = "soft"
" or
let g:codeschool_contrast_light = "soft"
  • Setting miscellaneous options
g.codeschool_hls_lspreference = "orange"
g.codeschool_hls_cursor = "orange"
g.codeschool_hls_highlight = "orange"
g.codeschool_italicize_booleans = true
g.codeschool_tabline_sel = "fg0"
}))

For more Configuration option - go to the CONFIGURATION page in the WIKI

Additional supported plugins

Statusline/Tabline

You can use the nvim-hardline written by ojroques on GitHub. It has support for codeschool colorscheme. You can also use lightline or airline.

Screenshots

dark mode

hard contrast

Dark mode

medium contrast (default)

Dark mode

soft contrast

Dark mode

light mode

hard contrast

Light mode

medium contrast (default)

Light mode

soft contrast

Light mode

Contribution

This colorscheme is still in development and testing. Users are welcome to use it however for programming daily. In case a user spots any bugs or error especially related to the supported plugins, treesitter or built-in LSP highlight support, then they can contribute by opening an issue or by making a pull request. More plugin highlight support is also welcome.

TODO

  • Enable setup function
  • Enable support for choosing plugin highlights
  • Enable support for choosing language highlights
  • Enable supprt for choosing options via setup function (maybe)
  • Disable global set options functionality (this seems easier)
  • Write a toggle_style or change_style function (maybe)
  • Removed support for airline/lualine
  • Added theme in nvim-hardline

HAPPY CODING :smile: