Git Product home page Git Product logo

nvim-solarized-lua's Introduction

Solarized Neovim

This aims to be a complete port vim-solarized8 with support for lua plugins, LSP and Treesitter for neovim 0.5.

NOTE

Also added 8 bit color support.(Can't be a complete port if the theme isn't accessible for all neovim users.) I used this Javascript code to convert the rgb to neared 8 bit color.

Installation

VIM Packages

git submodule add --name nvim-solarized-lua https://github.com/ishan9299/nvim-solarized-lua
pack/packages/start/solarized

Plug

Plug 'ishan9299/nvim-solarized-lua'

Options

  • italics Enable italics for comments (default: enabled)
vim.g.solarized_italics = 1
  • visibility SpecialChars (like trailing whitespace and tabs) visibility
    • low
    • normal (default)
    • high
vim.g.solarized_visibility = 'normal'
  • diffmode
    • low
    • normal (default)
    • high
vim.g.solarized_diffmode = 'normal'
  • termtrans If you want to keep the transparency in your terminal (default: disabled)
-- To enable transparency
if vim.fn.has('gui_running') == 0 then
    vim.g.solarized_termtrans = 0
else
    vim.g.solarized_termtrans = 1
end
  • statusline
    • low
    • flat
    • normal (default)
vim.g.solarized_statusline = 'normal'

NOTE :-

  • If you set statusline option's normal and flat are the same when using the solarized-flat colorscheme.
  • This option doesn't affect the lua line plugin it has it's own solarized theme.

Variants

  • solarized

The normal solarized scheme.
vim.cmd('colorscheme solarized')

  • solarized-high

This one has a higher contrast ratio.
vim.cmd('colorscheme solarized-high')

  • solarized-flat

This is the flat variant.
vim.cmd('colorscheme solarized-flat')

  • solarized-low

This is the low contrast option.
vim.cmd('colorscheme solarized-low')

Screenshots

Screenshot from 2021-05-12 10-01-23

TODO

  • The light colorscheme
  • Plugins :-
    • LSP
    • Treesitter
    • Telescope
    • FZF
    • lualine
    • lspsaga
    • nvim-navic

NOTE

  • Thanks for lifepillar's vim-solarized8 for providing most of the highlights and color codes for this scheme.
  • If you have an issue with the highlight groups in theme open an issue but also mention the variant of the colorscheme you are using.
  • If any more plugins are needed then open an issue.

Maybe Checkout

nvim-solarized-lua's People

Contributors

app avatar aruhier avatar bryanforbes avatar chrs8 avatar dbaynard avatar greenhat avatar icholy avatar ishan9299 avatar luator avatar rbjorklin avatar samdoshi avatar sbruder avatar xpmo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

nvim-solarized-lua's Issues

solarized dark?

Hello,
As per the title I've been unable to get the dark mode to work. I am using iTerm2 with Solarized Dark colour scheme. I can't find any references in README.md that tells me how to change to a dark theme, so perhaps it's not implemented?

solarized not dark

:version
NVIM v0.5.0
Build type: Release
LuaJIT 2.1.0-beta3
Compilation: clang -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -DNVIM_TS_HAS_SET_MATCH_LIMIT -O2 -DNDEBUG -Wall -Wextra -pedantic -Wno-u
nused-parameter -Wstrict-prototypes -std=gnu99 -Wshadow -Wconversion -Wmissing-prototypes -Wimplicit-fallthrough -Wvla -fstack-pro
tector-strong -fno-common -fdiagnostics-color=auto -DINCLUDE_GENERATED_DECLARATIONS -D_GNU_SOURCE -DNVIM_MSGPACK_HAS_FLOAT32 -DNVI
M_UNIBI_HAS_VAR_FROM -DMIN_LOG_LEVEL=3 -I/tmp/neovim-20210702-97973-1wtbty6/neovim-0.5.0/build/config -I/tmp/neovim-20210702-97973
-1wtbty6/neovim-0.5.0/src -I/opt/homebrew/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -I/opt/homebre
w/opt/gettext/include -I/tmp/neovim-20210702-97973-1wtbty6/neovim-0.5.0/build/src/nvim/auto -I/tmp/neovim-20210702-97973-1wtbty6/n
eovim-0.5.0/build/include
Compiled by [email protected]

Features: +acl +iconv +tui
See ":help feature-compile"

   system vimrc file: "$VIM/sysinit.vim"
  fall-back for $VIM: "/opt/homebrew/Cellar/neovim/0.5.0/share/nvim"

Run :checkhealth for more info

Transparency issues

sometimes whitespace and certain text backgrounds don't properly become transparent

working correctly:

image

not correctly:
image

(im using my pager because the init.vim for it is very small, my main nvim config doesnt have vim-solarized8 installed so there's no chance its a plugin conflict, im just using it to illustrate how it should look wrt transparency)

thanks!

All highlights, almost no normal text with TreeSitter highlights

When enabling tree-sitter highlights, almost all the code gets highlighted (mostly blue) and only the ; stays in the normal text color. I joined a screenshot of lua code, but it is the same with python (almost all in blue) and for .vim files it is mostly orange/yellow but still almost nothing in the normal color.

Screenshot from 2021-08-02 15-48-22

How to have multiple colours for the same Treesitter value?

I am not sure, if this is the place to ask for this but; is it possible to have different colours depending not only on Treesitter, but on both Treesitter & Syntax?

Here is a sample code from Ruby on Rails project:

scope :ok_world, -> { where(ok_world: true) }

def hello
  puts "Hello world!"
end
Treesitter Enabled Treesitter Disabled
Screenshot 2022-01-21 at 23 28 03 Screenshot 2022-01-21 at 23 28 17
Playground data
call [266, 2] - [266, 41]
  method: identifier [266, 2] - [266, 7]
  arguments: argument_list [266, 8] - [266, 41]
    simple_symbol [266, 8] - [266, 14]
    lambda [266, 16] - [266, 41]
      body: block [266, 19] - [266, 41]
        call [266, 21] - [266, 39]
          method: identifier [266, 21] - [266, 26]
          arguments: argument_list [266, 26] - [266, 39]
            pair [266, 27] - [266, 38]
              key: hash_key_symbol [266, 27] - [266, 32]
              value: true [266, 34] - [266, 38]
method [268, 2] - [270, 5]
  name: identifier [268, 6] - [268, 11]
  call [269, 4] - [269, 23]
    method: identifier [269, 4] - [269, 8]
    arguments: argument_list [269, 9] - [269, 23]
      string [269, 9] - [269, 23]
        string_content [269, 10] - [269, 22]
scope hello
Screenshot 2022-01-21 at 23 29 50 Screenshot 2022-01-21 at 23 30 23

As shown above, Treesitter thinks both scope and hello is a TSFunction –which is technically true–, but they are not only a TSFunction:

  • scope is a TSFunction and rubyMacro.
  • hello is a TSFunction and rubyMethodName.

I hoped maybe lua/solarized/solarized-normal/highlights.lua file is similar to how CSS works and assigning Ruby specific colours after TSFunction like

syntax['TSFunction'] = syntax['Function']
syntax['rubyClassBlock'] = {fg=colors.red}
syntax['rubyMacro'] = {fg=colors.red}

can change how words are highlighted, but that did not work.

So, is it possible to override Treesitter highlighting with the Syntax one, whenever it is needed?

Error when initializing any theme

Hi,
Due to a color variable non initialized to 'none', the string.format fails when initializing any theme:

Error detected while processing /home/anthony/.local/share/nvim/plugged/nvim-solarized-lua/colors/solarized.lua:
E5113: Error while calling lua chunk: ...gged/nvim-solarized-lua/lua/solarized/utils/init.lua:31: bad argument #5 to 'format' (string expected, got nil)
stack traceback:
        [C]: in function 'format'
        ...gged/nvim-solarized-lua/lua/solarized/utils/init.lua:31: in function '?'
        ...ed-lua/lua/solarized/solarized-normal/highlights.lua:417: in function 'load_syntax'
        ...nvim/plugged/nvim-solarized-lua/colors/solarized.lua:52: in main chunk

Forcing the guisp and style to default to 'none' fixes the issue.

LSP float text not visible in light mode with high contrast variant

I'm using this theme with neovim 0.8.x from the nightly releases and alacritty as my terminal.

Overall it looks neat, but I have an issue with the LSP completion (I use https://github.com/hrsh7th/nvim-cmp/ for autocompletion) floating list of suggestions which are "invisible" in light mode. Dark mode works well.
image
image

My config is as shown on the screenshots above, and I have:

vim.o.termguicolors = true
vim.o.background = 'dark'

in my init.lua (I toggle the background value to light as needed).
Any tips on what might be causing this? I haven't managed to figure out which element in the theme I need to change to fix this, but happy to send a PR if someone can point me in the right direction.
This only happens with solarized-high, the other variants work fine.

License?

What license is this released under please?

endofbuffer

can you highlight EndOfBuffer to completely hide the tildes?

Solarize the gray tab bar

Hey,

I just switched from NeoSolarized to this theme to get support for nvim-treesitter in the colorscheme.

One thing that I directly noticed that I miss is to have the tab bar stylized in solarized colors.

In this theme the tab bar is gray:
Screen Shot 2022-10-19 at 08 26 31

However in NeoSolarized the tab bar looked more pleasing by applying the solarized colors to the tab bar as well:
Screen Shot 2022-10-19 at 08 29 08

It would be great to have a nicer tab bar! :)

Missing terminal colors

Cheers on the colorscheme ! I've noticed colour differences between terminals initiated from within Neovim relative to a regular terminal. I think it's because of missing terminal_color_ definitions in the colour scheme. Would you be interested in adding these ?

Does not work on windows

I have this error message when starting neovim under windows with this pluggin enabled:

E5113: Error while calling lua chunk: ...led-packages\opt\nvim-solarized-lua\colors\solarized.lua:1: module 'solarized.solarized-normal.highlights' not found:
        no field package.preload['solarized.solarized-normal.highlights']
        no file '.\solarized\solarized-normal\highlights.lua'
        no file 'C:\tools\neovim\Neovim\bin\lua\solarized\solarized-normal\highlights.lua'
        no file 'C:\tools\neovim\Neovim\bin\lua\solarized\solarized-normal\highlights\init.lua'
        no file '.\solarized\solarized-normal\highlights.dll'
        no file 'C:\tools\neovim\Neovim\bin\solarized\solarized-normal\highlights.dll'
        no file 'C:\tools\neovim\Neovim\bin\loadall.dll'
        no file '.\solarized.dll'
        no file 'C:\tools\neovim\Neovim\bin\solarized.dll'
        no file 'C:\tools\neovim\Neovim\bin\loadall.dll'

no config file?

searching everywhere, usually plugins have example config files to tweak from. but this one has none. so i dont know how to really disable italics. even after trying to tweak it many times.

Cannot find color sheme solarized

I updated my plugins and it suddenly stopped working.
I get the following error when starting neovim: Cannot find color scheme 'solarized'.
Other colorscheme works properly.

neotest summary in light mode

Running lazyvim with neotest for python, while toggling the summary the folder names are a light blue and hard to read. Looks fine in dark mode.

how to switch to white?

it white is available (seems like it from the screenshots), please add instructions to switch in readme.

Inverted borders with FTerm and SnipRun

In Neovim v0.5.0-dev+1318-g61aefaf29, using the solarized variant of this theme, the borders become inverted while using FTerm and SnipRun.

At the beginning, I didn't know where to report this because I also noticed this behaviour in older, built-in colorschemes, so I opened an issue with screenshots and steps to reproduce for FTerm and later for SnipRun.

Differences in ruby with solarized8

Hi, I've noticed some differences between nvim-solarized-lua (flat) and solarized8 (or the original solarized)

nvim-solarized-lua
Screenshot 2021-07-07 at 17 15 17

and solarized8
Screenshot 2021-07-07 at 17 14 58

Here's a reference of how the original solarized looks like (there are no symbols, but it's should look like a string):

The main thing is that having symbols rendered as a type make it a bit hard to read (and different from the original).

There are other two differences, but for me they don't change much: The def/end color and true being different from a string.

Add lua formatter style guide

It would make it easier to contribute if everyone was on the same page style-wise.

A .lua-format file would be fantastic for this, or whatever other formatter you use.

missing colors/*.vim files in master

in commit 0a076f8 the .vim files in colors/ were removed.

When I tried to use master I got the error E185: Cannot find color scheme 'solarized'

If I use commit aae6d8d then it works as expected

Was this intentional? Am I doing something wrong?

my init.lua

require('packer').startup(function()
    use 'wbthomason/packer.nvim' -- Packer can manage itself
    use "ishan9299/nvim-solarized-lua"
end)

vim.opt.termguicolors = true
vim.opt.background = "dark"
vim.cmd("colorscheme solarized")

Dark background on errors difficult to read

Hello,
Thanks for the plugin first!
I'm using the solarized-normal scheme with light background and find some highlighted characters hard to read like this in markdown for example:
last
I cannot determine what to change.

red brackets

Screen Shot 2021-11-22 at 10 59 03

Screen Shot 2021-11-22 at 10 46 03

all brackets are red: ( [ {
and: !, ,, some golang keywords, etc..

red means error, right?
I don’t know if I have misconfigured something. but without vim.cmd('colorscheme solarized-flat'), the color looks correct(?)
Screen Shot 2021-11-22 at 11 05 32

8 bit colors are very wrong

I use alacritty, which for some reason nvim doesn't pick up from the terminfo database, and so I got 8-bit colors. But the colors I got are not correct. Your convert.js does not use the correct formula:

2021-12-23_23:43:50 Zoi

The biggest problems here:

  • No rounding each color to the nearest integer in [0-5]
  • Missing the +16 offset to account for named colors (0-15)

New implementation (I changed the console.log() line to demo the truecolor as well):

	let c8 = 16 + Math.floor(red*6/256)*36 + Math.floor(green*6/256)*6 + Math.floor(blue*6/256)
        // don't shoot me i'm not a js dev
	console.log("\x1b[38;2;" + red + ";" + green + ";" + blue + "m" + str + "\x1b[0m -> \x1b[38;5;" + c8 + "m" + c8);

2021-12-24_00:05:41 9Dp

split marker is ugly

it's grey with dotted black line in between. is there something that gives a sort of smoother blend?

Reducing the visibility of whitespace characters

Using Neovim v0.5.0-dev+1318-g61aefaf29, I would like to darken whitespace characters using the solarized variant, but I don't know how to do that.

I used a minimal init.test.vim for reproducing it (by running nvim -u ~/.config/nvim/init.test.vim --noplugin init.test.vim) with the following content:

" Load plugin
let $PLUGIN_DIRECTORY = '~/.local/share/nvim/plugtest'
set runtimepath^=$PLUGIN_DIRECTORY/indent-blankline.nvim

" Initialize
set termguicolors
colorscheme solarized

" Whitespace
set list
lua vim.g.solarized_visibility = 'low'
highlight Whitespace guifg=black

" Test area
" trailing space                          
" trailing tabs					

Screenshots (notice how vim.g.solarized_visibility = 'low' is actually much brighter than normal):

nvim-solarized-low
nvim-solarized-normal
nvim-solarized-high

Another thing to note is that highlight Whitespace guifg=black doesn't seem to do anything, only if I :source the init file while Neovim is already running.

Strikethrough, italic and bold problems

Hello,
I have started using this plugin for markdown with nvim-treesitter and noticed that strikethrough ~~STRIKETHROUGH~~ , italic *ITALIC* and bold **BOLD** seem to work badly.

solarized-normal

STRIKETHROUGH

This one seems to be a bug, the line defining the strikethrough highlight is:

syntax['Strikethrough'] = {fg=colors.base01,strikethrough=true}

instead of

syntax['Strikethrough'] = {fg=colors.base01,style='strikethrough'}

It is later used in syntax['@text.strike'] = syntax['Strikethrough'].

ITALICS

This one might be a bug but I'm not sure, the line defining the italic highlight is:

syntax['@text.emphasis'] = {fg=colors.base1,bg=colors.base03,style='bold'}

instead of

syntax['@text.emphasis'] = {fg=colors.base1,bg=colors.base03,style=utils.italics()}

ITALICS AND BOLD

Both italics and bold set bg=colors.base03, this doesn't seem like a bug but it is a little ugly, maybe this should be removed?

Other solarized variants

The other solarized variants do not contain the -- Text {{{ section with the syntax['@text... highlight definitions, I'm not sure if this is intentional or not.

Error really sticks out?

Error sign in ALE a bit "noisy"?
2022-11-14-212302_446x63_scrot

I want this:
2022-11-14-212243_481x84_scrot

Which i achived by adding this to the bottom of my config:

hi Error cterm=bold,reverse ctermfg=23 ctermbg=203 gui=bold,reverse guifg=#002b36 guibg=#dc322f

If changed in the theme it would be this and im not sure why fg vs bg seems swapped.

syntax['Error'] = {fg=colors.base03,bg=colors.red,style='bold,reverse'}

Information required: how to setup plugin using packer

Hello, and thank you for your contribution. I have a question (comes from the issue I've faced). How to setup/configure the plugin using packer properly? My issue is that I couldn't specify plugin options, such as, vim.g.solarized_italics, vim.g.solarized_termtrans and so on. Even default option for italic font doesn't work for me.

After nvim has loaded the values are set to the options correctly, but it's probably performed after the color scheme has loaded. With tradition color scheme plugins (not lua) I didn't see such an issue. May you @ishan9299 pls a bit elaborate in this regard?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.