feat(nvim): extend CursorLine into the status column
This commit is contained in:
parent
803b07ee70
commit
cb7f87aa3f
@ -83,6 +83,9 @@ return {
|
|||||||
["@keyword.import"] = { link = "@include" },
|
["@keyword.import"] = { link = "@include" },
|
||||||
["@keyword.repeat"] = { link = "@repeat" },
|
["@keyword.repeat"] = { link = "@repeat" },
|
||||||
|
|
||||||
|
CursorLineNr = { fg = colors.roninYellow, bg = palette.theme.ui.bg_p1 },
|
||||||
|
CursorLineFold = { fg = colors.crystalBlue, bg = palette.theme.ui.bg_p1 },
|
||||||
|
CursorLineSign = { bg = palette.theme.ui.bg_p1 },
|
||||||
WinSeparator = { fg = colors.fujiGray },
|
WinSeparator = { fg = colors.fujiGray },
|
||||||
StatusLine = { fg = colors.fujiWhite, bg = colors.sumiInk0 },
|
StatusLine = { fg = colors.fujiWhite, bg = colors.sumiInk0 },
|
||||||
WinBar = { fg = colors.fujiWhite, bg = nil },
|
WinBar = { fg = colors.fujiWhite, bg = nil },
|
||||||
|
@ -3,13 +3,37 @@ return {
|
|||||||
"luukvbaal/statuscol.nvim",
|
"luukvbaal/statuscol.nvim",
|
||||||
opts = function()
|
opts = function()
|
||||||
local builtin = require("statuscol.builtin")
|
local builtin = require("statuscol.builtin")
|
||||||
|
local last_sign_def_len = 0
|
||||||
|
|
||||||
|
-- HACK: Ensure all signs get the correct CursorLineSign set to their "culhl" value
|
||||||
|
-- This, in effect, extends the CursorLine background highlight into the signcolumn
|
||||||
|
vim.uv.new_timer():start(50, 1000, vim.schedule_wrap(function()
|
||||||
|
-- Make all signs support "CusorLine.*" highlights
|
||||||
|
local signs_defined = vim.fn.sign_getdefined()
|
||||||
|
if #signs_defined == last_sign_def_len or #signs_defined == 0 then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
last_sign_def_len = signs_defined
|
||||||
|
local bg = vim.api.nvim_get_hl(0, { name = "SignColumn", link = false }).bg
|
||||||
|
local cl_bg = vim.api.nvim_get_hl(0, { name = "CursorLineSign", link = false }).bg
|
||||||
|
for _, sign in ipairs(signs_defined) do
|
||||||
|
local name = sign.texthl
|
||||||
|
if name then
|
||||||
|
local hl = vim.api.nvim_get_hl(0, { name = name, link = false })
|
||||||
|
vim.api.nvim_set_hl(0, name, { fg = hl.fg, bg = bg })
|
||||||
|
name = name .. "Cul"
|
||||||
|
vim.api.nvim_set_hl(0, name, { fg = hl.fg, bg = cl_bg })
|
||||||
|
vim.fn.sign_define(sign.name, { culhl = name })
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end))
|
||||||
|
|
||||||
return {
|
return {
|
||||||
foldfunc = "builtin",
|
|
||||||
setopt = true,
|
setopt = true,
|
||||||
relculright = false,
|
relculright = false,
|
||||||
segments = {
|
segments = {
|
||||||
{ text = { "%s" }, click = "v:lua.ScSa" },
|
{ text = { "%s" }, click = "v:lua.ScSa" },
|
||||||
{ text = { builtin.lnumfunc }, click = "v:lua.ScLa" },
|
{ text = { builtin.lnumfunc }, click = "v:lua.ScLa" },
|
||||||
{ text = { " ", builtin.foldfunc, " " }, click = "v:lua.ScFa" },
|
{ text = { " ", builtin.foldfunc, " " }, click = "v:lua.ScFa" },
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
@ -23,6 +47,8 @@ return {
|
|||||||
current_line_blame_opts = {
|
current_line_blame_opts = {
|
||||||
delay = 0,
|
delay = 0,
|
||||||
},
|
},
|
||||||
},
|
-- HACK: This allows the gitsigns to correctly use the culhl for their bg
|
||||||
|
_extmark_signs = false
|
||||||
|
}
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user