oxfist / night-owl.nvim

πŸ¦‰ 🌌 Night Owl colorscheme implementation for Neovim with support for Treesitter and semantic tokens
BSD 3-Clause "New" or "Revised" License
250 stars 17 forks source link
colorscheme dark-theme lua neovim neovim-colorscheme neovim-lua neovim-theme night-owl night-owl-theme vim vim-colorscheme vim-theme

πŸ¦‰ night-owl.nvim 🌌

All Contributors
Illustration of an owl TypeScript code with Night Owl syntax highlighting on

The best implementation of Sarah Drasner's Night Owl VSCode theme for Neovim with support for Tree-sitter and semantic tokens.

πŸ“¦ Install In Zero Time

packer.nvim

use("oxfist/night-owl.nvim")

lazy.nvim

require("lazy").setup({
  "oxfist/night-owl.nvim",
  lazy = false, -- make sure we load this during startup if it is your main colorscheme
  priority = 1000, -- make sure to load this before all the other start plugins
  config = function()
    -- load the colorscheme here
    require("night-owl").setup()
    vim.cmd.colorscheme("night-owl")
  end,
})

vim-plug

Plug 'oxfist/night-owl.nvim'

πŸš€ Start Using With A Single Line

[!NOTE] You can skip this step if you followed the lazy.nvim setup, which already sets the colorscheme.

Add the following to your Lua configuration files, e.g. ~/.config/nvim/init.lua (your actual path might be different):

require("night-owl").setup()
vim.cmd.colorscheme("night-owl")

To enable night-owl for lualine.nvim, simply set the theme like this in your settings πŸ‘‡:

-- This Lualine config should be somewhere in your config files
require('lualine').setup {
  options = {
    -- ... other configs
    theme = 'night-owl'
    -- ... other configs
  }
}

βš™οΈ Configuration

The styling of the theme can be customized by calling setup():

local night_owl = require("night-owl")

-- πŸ‘‡ Add your own personal settings here
--@param options Config|nil
night_owl.setup({
    -- These are the default settings
    bold = true,
    italics = true,
    underline = true,
    undercurl = true,
    transparent_background = false,
})

πŸ–₯️ Requirements

TODO

πŸ”Ž Comparison

How does this port compare to the original VSCode theme? Check it out!

Night Owl for VSCode This Theme 🀩
Screenshot of VSCode theme Screenshot of this theme

✨ Why Should You Pick This Version of Night Owl?

This implementation of Night Owl solves several syntax highlight issues and discrepancies similar ports have when comparing to the original VSCode theme.

The following features allow making the programming experience as close to the original VSCode theme as possible:

  1. Extended highlight groups: through additional Treesitter queries. See after/queries for implementation details.
  2. Different background color when Neovim is inactive: through autocommands. See after/plugin/autocmds.lua for implementation details.
πŸ‘‡ Click to see comparison with haishanh/night-owl.vim With Treesitter installed you can see the overall look and feel is significantly different: - Different colors for several keywords like `let`, `const`, `async`, `function`, etc. Same happens for class names `EditFishForm` and `Sale`. - Italics _not_ applied anywhere except for comments. - Italics _incorrectly_ applied to JSDoc keywords `@param` and `@returns`.
| [haishanh/night-owl.vim](https://github.com/haishanh/night-owl.vim) | This Theme | | ------------------------------------------------------------------------------- | -------------------------------------------------------------------------- | | Screenshot of haishanh theme | Screenshot of this theme |

Language Support 🌐

JavaScript Typescript JSON Markdown Lua
Vimscript R Python Bash

[!NOTE] I've personally optimized the colorscheme styling and robustness for these languages extensively enough to confidently say they look acceptable to me. If you happen to build software with them, then I invite you to try out this theme! πŸ™‚

Coming Soon:

🧩 Plugins Supported

πŸŽ‡ Credits

Code of Conduct

License

Contributors

AndrΓ©s QuilodrΓ‘n
AndrΓ©s QuilodrΓ‘n

🚧 πŸ’» πŸ› πŸ“–
Dominik Garcia
Dominik Garcia

πŸ› πŸ’»
Rish
Rish

πŸ›
Michael Lazarski
Michael Lazarski

πŸ›
Denis Washington
Denis Washington

πŸ›
kmlopez-hhl
kmlopez-hhl

πŸ›
Benson9954029
Benson9954029

πŸ“–
Silver Hong
Silver Hong

πŸ›
Sebastian Vilhelm Juhl
Sebastian Vilhelm Juhl

πŸ›
Jason Sprinkle
Jason Sprinkle

πŸ’»
bendk
bendk

πŸ’»
GΓΆkay BÜRΓœΓ‡
GΓΆkay BÜRΓœΓ‡

πŸ€”
Sean Tsai
Sean Tsai

πŸ“– πŸ’»
Georgiy Kuzora
Georgiy Kuzora

πŸ’»
Andrew Berty
Andrew Berty

πŸ›
FStanDev
FStanDev

πŸ›
Roland Haller
Roland Haller

πŸ› πŸ’»