muniftanjim / nougat.nvim Goto Github PK
View Code? Open in Web Editor NEW๐ซ Hyperextensible Statusline / Tabline / Winbar for Neovim ๐
License: MIT License
๐ซ Hyperextensible Statusline / Tabline / Winbar for Neovim ๐
License: MIT License
i saw this snippet in the examples:
stl:add_item(Item({
hl = {fg = color.bg, bg = color.fg0},
prefix = ' ',
suffix = ' ',
content = core.group({core.code('l'), ':', core.code('c')})
}))
is it somehow possible to get the number of lines a file has too with core.code?
i could not find the documentation for it.
get_content of LSP config is currently hardcoded to a set function
Allow for a configurable opts to be passed to allow overriding the default implementation
An alternative would be created the Item
then merging it with another table that has my custom function
local item = nut.lsp({
config = {},
prefix = " ๏
",
hl = { fg = color.green },
sep_right = sep.right_chevron_solid(true),
on_click = function()
vim.cmd("LspInfo")
end,
})
stl:add_item(Utils.merge(item, { content = custom_content_fn }))
No response
It would be also very nice if we could see LSP information on the statusline.
This is not a bug, much more relate to system design.
But I think it's worth to discuss, when people use (for example) color.yellow
config/API, I believe this API is going to try to retrieve color from a syntax highlighting group (for example 'Visual'), if failed it's going to use yellow
color as fallback.
But people will not know what highlighting it's going to use.
We could either document it explicitly, or change the API to color.yellow('Visual')
to be more explicit, and even people can customize the highlighting group name by themselves.
Already in Problem
section.
No response
No response
hey hey,
awesome plugin, thx for writing it!
is it possible to change the colors for the different modes like normal, visual, insert?
i looked at the 3 examples and wasn't able to find it?
the same goes for the diagnostic_count?
can i somewhere change these too, like i'll do it for the git counts?
thx again for the plugin!
I'm using vim-gitbranch as git branch data source, and vim-gitgutter as git diff/status data source.
I know most people are using gitsigns, but it has some small bugs on Windows, gitgutter has much better cross-platform compatibilities.
For now I'm configure it with:
local function git_branch()
if vim.g.loaded_gitbranch == nil or vim.g.loaded_gitbranch <= 0 then
return ""
end
local name = vim.fn["gitbranch#name"]()
return name or ""
end
local function git_diff()
if vim.g.loaded_gitgutter == nil or vim.g.loaded_gitgutter <= 0 then
return ""
end
local changes = vim.fn["GitGutterGetHunkSummary"]()
if changes == nil or #changes ~= 3 then
return ""
end
local symbols = { "+", "~", "-" }
local builder = {}
for i, c in ipairs(changes) do
if type(c) == "number" and c > 0 then
table.insert(builder, string.format("%s%d", symbols[i], c))
end
end
return table.concat(builder, " ")
end
-- git branch and status
stl:add_item(Item({
hl = { bg = color.magenta, fg = color.bg },
sep_right = sep.right_upper_triangle_solid(true),
prefix = " ๎ฅ ",
suffix = " ",
type = "lua_expr",
content = function(ctx)
local branch = git_branch()
if string.len(branch) == 0 then
return ""
end
local changes = git_diff()
if string.len(changes) == 0 then
return branch
else
return branch .. " " .. changes
end
end,
}))
It is working, looks like:
But I want to enable the green
, yellow
, red
colors for the added
, changed
and removed
lines count number.
How should I do it?
I am using the slanty.lua template, the git status sample is:
-- -- git changes
stl:add_item(nut.git.status.create({
hl = { fg = color.bg },
content = {
nut.git.status.count("added", {
hl = { bg = color.green },
prefix = "+",
sep_right = sep.right_upper_triangle_solid(true),
}),
nut.git.status.count("changed", {
hl = { bg = color.yellow },
prefix = "~",
sep_right = sep.right_upper_triangle_solid(true),
}),
nut.git.status.count("removed", {
hl = { bg = color.red },
prefix = "-",
sep_right = sep.right_upper_triangle_solid(true),
}),
},
}))
It seems the content
in nut.git.status.count
is not overwrite-able, correct?
Use self-defined data source for git status.
No response
No response
What information would be helpful to debug?
E5108: Error executing lua Error executing lua: ...cal/share/nvim/lazy/nougat.nvim/lua/nougat/item/init.lua:117: attempt to index local 'cache' (a function value)
stack traceback:
...cal/share/nvim/lazy/nougat.nvim/lua/nougat/item/init.lua:117: in function 'item'
/Users/dsully/.config/nvim/lua/plugins/nougat.lua:156: in function 'content'
...y/.local/share/nvim/lazy/nougat.nvim/lua/nougat/util.lua:388: in function 'prepare_parts'
...ocal/share/nvim/lazy/nougat.nvim/lua/nougat/bar/init.lua:118: in function 'generate'
...ocal/share/nvim/lazy/nougat.nvim/lua/nougat/bar/util.lua:19: in function <...ocal/share/nvim/lazy/nougat.nvim/lua/nougat/bar/util.lua:17>
[C]: at 0x0100ec0e38
stack traceback:
[C]: at 0x0100ec0e38
This started happening with change dba049f or more likely 45cc6e6 which started using the cache.
https://github.com/MunifTanjim/nougat.nvim/blob/main/lua/nougat/nut/buf/filetype.lua, the filetype component don't have 'format' function, which cannot use devicons to show the colored file type icons.
lualine have filetype icon:
add 'format' function to allow user do customization.
No response
No response
I want to display a clock, but it is not updating.
nougat.nvim config
-- datetime {{{
local datetime = (function()
local item = Item {
sep_left = sep.left_half_circle_solid(true),
content = {
Item {
hl = { bg = color.green, fg = color.bg },
content = vim.fn.strftime('%H:%M'), -- FIXME: Not refreshing
},
},
sep_right = sep.right_half_circle_solid(true),
}
return item
end)()
-- }}}
-- statusline {{{
local stl = Bar('statusline')
stl:add_item(datetime)
bar_util.set_statusline(stl)
-- }}}
Clock is refreshed.
No response
No response
Instead of hardcode color palettes, could we consider extract the existing palettes from the current using colorscheme? that way the statusline style would be very naturally blended in with the rest of themes.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.