/night-owl.nvim

Primary LanguageLuaBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Syntax highlight demo

πŸ¦‰ night-owl.nvim 🌌

All Contributors
Illustration of an owl

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
    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, since that already sets the colorscheme.

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

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
  }
}

πŸ–₯️ Requirements

TODO

πŸ”Ž Comparison

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

Original 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 This Theme
Screenshot of haishanh theme Screenshot of this theme

Language Support 🌐

JavaScript Typescript JSON Markdown Lua

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: Lua βœ…, Vimscript (in progress), TSX, R, Rust, Python, Ruby, Bash, and many more!

🧩 Plugins Supported

πŸŽ‡ Credits

  • Sarah Drasner first and foremost, for creating such a beautiful and artistic color scheme that has made, for me personally, so much more pleasurable the exhilirating act of building software.
  • https://www.monolisa.dev/ for one of the sweetest programming fonts out there.

Code of Conduct

License

Contributors


AndrΓ©s QuilodrΓ‘n

Dominik Garcia

Rish

Michael Lazarski

Denis Washington

kmlopez-hhl

Benson9954029

Silver Hong

Sebastian Vilhelm Juhl

Jason Sprinkle