From 3291f2f88bb0b6285998539300b9d3573ed4208f Mon Sep 17 00:00:00 2001 From: leiserfg Date: Fri, 25 Sep 2020 21:40:06 +0200 Subject: [PATCH 1/3] Add lighline support --- lua/base16.lua | 3 +++ lua/lightline.lua | 50 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 lua/lightline.lua diff --git a/lua/base16.lua b/lua/base16.lua index 14843301..80e5e8ec 100644 --- a/lua/base16.lua +++ b/lua/base16.lua @@ -1,4 +1,5 @@ local nvim = require 'nvim' +local lighline = require 'lighline' local function highlight(group, guifg, guibg, ctermfg, ctermbg, attr, guisp) local parts = {group} @@ -18,6 +19,8 @@ end -- Modified from https://github.com/chriskempson/base16-vim local function apply_base16_theme(theme, use_256_colorspace) + lighline.base16_to_lightline(theme) + -- Terminal color definitions local cterm00 = "00" local cterm03 = "08" diff --git a/lua/lightline.lua b/lua/lightline.lua new file mode 100644 index 00000000..421c7bd2 --- /dev/null +++ b/lua/lightline.lua @@ -0,0 +1,50 @@ +--Based on https://github.com/mike-hearn/base16-vim-lightline/blob/master/templates/default.mustache +local nvim = require('nvim') + +local function part(color1, color2) + return {color1[1], color2[1], color1[2], color2[2]} +end + +function base16_to_lightline(theme) + local base00 = { theme.base00, '0' } -- black + local base01 = { theme.base01, '18' } + local base02 = { theme.base02, '19' } + local base03 = { theme.base03, '8' } + local base04 = { theme.base04, '20' } + local base05 = { theme.base05, '7' } + local base06 = { theme.base06, '21' } + local base07 = { theme.base07, '15' } -- white + + local base08 = { theme.base08, '1' } -- red + local base09 = { theme.base09, '16' } -- orange + local base0A = { theme.base0A, '3' } -- yellow + local base0B = { theme.base0B, '2' } -- green + local base0C = { theme.base0C, '6' } -- teal + local base0D = { theme.base0D, '4' } -- blue + local base0E = { theme.base0E, '5' } -- pink + local base0F = { theme.base0F, '17' } -- brown + + local p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}} + + p.normal.left = { part( s:base00, s:base0D ), part( s:base05, s:base02 ) } + p.insert.left = { part( s:base01, s:base0B ), part( s:base05, s:base02 ) } + p.visual.left = { part( s:base00, s:base09 ), part( s:base05, s:base02 ) } + p.replace.left = { part( s:base00, s:base08 ), part( s:base05, s:base02 ) } + p.inactive.left = { part( s:base02, s:base00 ) } + + p.normal.middle = { part( s:base07, s:base01 ) } + p.inactive.middle = { part( s:base01, s:base00 ) } + + p.normal.right = { part( s:base01, s:base03 ), part( s:base06, s:base02 ) } + p.inactive.right = { part( s:base01, s:base00 ) } + + p.normal.error = { part( s:base07, s:base08 ) } + p.normal.warning = { part( s:base07, s:base09 ) } + + p.tabline.left = { part( s:base05, s:base02 ) } + p.tabline.middle = { part( s:base05, s:base01 ) } + p.tabline.right = { part( s:base05, s:base02 ) } + p.tabline.tabsel = { part( s:base02, s:base0A ) } + + vim.g['lightline#colorscheme#base16_nvim#palette'] = p +end From 6fd6e008b2ec3e66508fccbacd9a5583ea8ca3e8 Mon Sep 17 00:00:00 2001 From: leiserfg Date: Fri, 25 Sep 2020 22:56:00 +0200 Subject: [PATCH 2/3] Add lightline feature --- lua/base16.lua | 8 +++++--- lua/lightline.lua | 41 ++++++++++++++++++++--------------------- 2 files changed, 25 insertions(+), 24 deletions(-) diff --git a/lua/base16.lua b/lua/base16.lua index 80e5e8ec..eb9ca974 100644 --- a/lua/base16.lua +++ b/lua/base16.lua @@ -1,5 +1,4 @@ local nvim = require 'nvim' -local lighline = require 'lighline' local function highlight(group, guifg, guibg, ctermfg, ctermbg, attr, guisp) local parts = {group} @@ -18,8 +17,11 @@ local function highlight(group, guifg, guibg, ctermfg, ctermbg, attr, guisp) end -- Modified from https://github.com/chriskempson/base16-vim -local function apply_base16_theme(theme, use_256_colorspace) - lighline.base16_to_lightline(theme) +local function apply_base16_theme(theme, use_256_colorspace, extra_features) + + -- if extra_features and extra_features['lighline'] then + require 'lightline'.base16_to_lightline(theme) + -- end -- Terminal color definitions local cterm00 = "00" diff --git a/lua/lightline.lua b/lua/lightline.lua index 421c7bd2..d107f68a 100644 --- a/lua/lightline.lua +++ b/lua/lightline.lua @@ -1,11 +1,9 @@ ---Based on https://github.com/mike-hearn/base16-vim-lightline/blob/master/templates/default.mustache -local nvim = require('nvim') - +-- Based on https://github.com/mike-hearn/base16-vim-lightline/blob/master/templates/default.mustache local function part(color1, color2) - return {color1[1], color2[1], color1[2], color2[2]} + return {"#"..color1[1], "#"..color2[1], color1[2], color2[2]} end -function base16_to_lightline(theme) +local function base16_to_lightline(theme) local base00 = { theme.base00, '0' } -- black local base01 = { theme.base01, '18' } local base02 = { theme.base02, '19' } @@ -24,27 +22,28 @@ function base16_to_lightline(theme) local base0E = { theme.base0E, '5' } -- pink local base0F = { theme.base0F, '17' } -- brown - local p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}} + local p = {normal={}, inactive={}, insert={}, replace={}, visual={}, tabline={}} - p.normal.left = { part( s:base00, s:base0D ), part( s:base05, s:base02 ) } - p.insert.left = { part( s:base01, s:base0B ), part( s:base05, s:base02 ) } - p.visual.left = { part( s:base00, s:base09 ), part( s:base05, s:base02 ) } - p.replace.left = { part( s:base00, s:base08 ), part( s:base05, s:base02 ) } - p.inactive.left = { part( s:base02, s:base00 ) } + p.normal.left = { part( base00, base0D ), part( base05, base02 ) } + p.insert.left = { part( base01, base0B ), part( base05, base02 ) } + p.visual.left = { part( base00, base09 ), part( base05, base02 ) } + p.replace.left = { part( base00, base08 ), part( base05, base02 ) } + p.inactive.left = { part( base02, base00 ) } - p.normal.middle = { part( s:base07, s:base01 ) } - p.inactive.middle = { part( s:base01, s:base00 ) } + p.normal.middle = { part( base07, base01 ) } + p.inactive.middle = { part( base01, base00 ) } - p.normal.right = { part( s:base01, s:base03 ), part( s:base06, s:base02 ) } - p.inactive.right = { part( s:base01, s:base00 ) } + p.normal.right = { part( base01, base03 ), part( base06, base02 ) } + p.inactive.right = { part( base01, base00 ) } - p.normal.error = { part( s:base07, s:base08 ) } - p.normal.warning = { part( s:base07, s:base09 ) } + p.normal.error = { part( base07, base08 ) } + p.normal.warning = { part( base07, base09 ) } - p.tabline.left = { part( s:base05, s:base02 ) } - p.tabline.middle = { part( s:base05, s:base01 ) } - p.tabline.right = { part( s:base05, s:base02 ) } - p.tabline.tabsel = { part( s:base02, s:base0A ) } + p.tabline.left = { part( base05, base02 ) } + p.tabline.middle = { part( base05, base01 ) } + p.tabline.right = { part( base05, base02 ) } + p.tabline.tabsel = { part( base02, base0A ) } vim.g['lightline#colorscheme#base16_nvim#palette'] = p end +return { base16_to_lightline=base16_to_lightline } From 4512aefacfeee7a73677ae821af87ab59bb57f30 Mon Sep 17 00:00:00 2001 From: leiserfg Date: Sun, 27 Sep 2020 17:45:21 +0200 Subject: [PATCH 3/3] Check for extra features --- lua/base16.lua | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lua/base16.lua b/lua/base16.lua index eb9ca974..1ca6501d 100644 --- a/lua/base16.lua +++ b/lua/base16.lua @@ -18,10 +18,10 @@ end -- Modified from https://github.com/chriskempson/base16-vim local function apply_base16_theme(theme, use_256_colorspace, extra_features) - - -- if extra_features and extra_features['lighline'] then + local extra_features = extra_features or {lightline=false} + if extra_features.lightline then require 'lightline'.base16_to_lightline(theme) - -- end + end -- Terminal color definitions local cterm00 = "00"