feat nvim: lualine, tabby, noice
This commit is contained in:
parent
3022dfe4af
commit
401d1effd3
18
dot_config/nvim/lua/plugins/barbar.lua
Normal file
18
dot_config/nvim/lua/plugins/barbar.lua
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
if true then return {} end -- 因為會與tabby衝突,先停用
|
||||||
|
|
||||||
|
return {
|
||||||
|
{'romgrk/barbar.nvim',
|
||||||
|
dependencies = {
|
||||||
|
'lewis6991/gitsigns.nvim', -- OPTIONAL: for git status
|
||||||
|
'nvim-tree/nvim-web-devicons', -- OPTIONAL: for file icons
|
||||||
|
},
|
||||||
|
init = function() vim.g.barbar_auto_setup = false end,
|
||||||
|
opts = {
|
||||||
|
-- lazy.nvim will automatically call setup for you. put your options here, anything missing will use the default:
|
||||||
|
-- animation = true,
|
||||||
|
-- insert_at_start = true,
|
||||||
|
-- …etc.
|
||||||
|
},
|
||||||
|
version = '^1.0.0', -- optional: only update when a new 1.x version is released
|
||||||
|
},
|
||||||
|
}
|
51
dot_config/nvim/lua/plugins/lualine.lua
Normal file
51
dot_config/nvim/lua/plugins/lualine.lua
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
-- if true then return {} end -- 暫時停用
|
||||||
|
|
||||||
|
return {
|
||||||
|
{
|
||||||
|
'nvim-lualine/lualine.nvim',
|
||||||
|
dependencies = { 'nvim-tree/nvim-web-devicons' },
|
||||||
|
config = function()
|
||||||
|
require('lualine').setup ({
|
||||||
|
options = {
|
||||||
|
icons_enabled = true,
|
||||||
|
theme = 'onedark',
|
||||||
|
component_separators = { left = '', right = ''},
|
||||||
|
section_separators = { left = '', right = ''},
|
||||||
|
disabled_filetypes = {
|
||||||
|
statusline = {},
|
||||||
|
winbar = {},
|
||||||
|
},
|
||||||
|
ignore_focus = {},
|
||||||
|
always_divide_middle = true,
|
||||||
|
always_show_tabline = true,
|
||||||
|
globalstatus = false,
|
||||||
|
refresh = {
|
||||||
|
statusline = 100,
|
||||||
|
tabline = 100,
|
||||||
|
winbar = 100,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
sections = {
|
||||||
|
lualine_a = {'mode'},
|
||||||
|
lualine_b = {'branch', 'diff', 'diagnostics'},
|
||||||
|
lualine_c = {'filename'},
|
||||||
|
lualine_x = {'encoding', 'fileformat', 'filetype'},
|
||||||
|
lualine_y = {'progress'},
|
||||||
|
lualine_z = {'location'}
|
||||||
|
},
|
||||||
|
inactive_sections = {
|
||||||
|
lualine_a = {},
|
||||||
|
lualine_b = {},
|
||||||
|
lualine_c = {'filename'},
|
||||||
|
lualine_x = {'location'},
|
||||||
|
lualine_y = {},
|
||||||
|
lualine_z = {}
|
||||||
|
},
|
||||||
|
tabline = {},
|
||||||
|
winbar = {},
|
||||||
|
inactive_winbar = {},
|
||||||
|
extensions = {}
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
}
|
87
dot_config/nvim/lua/plugins/noice.lua
Normal file
87
dot_config/nvim/lua/plugins/noice.lua
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
-- if true then return {} end -- 暫時停用
|
||||||
|
|
||||||
|
return {
|
||||||
|
{
|
||||||
|
"folke/noice.nvim",
|
||||||
|
event = "VeryLazy",
|
||||||
|
opts = {
|
||||||
|
-- add any options here
|
||||||
|
},
|
||||||
|
dependencies = {
|
||||||
|
-- if you lazy-load any plugin below, make sure to add proper `module="..."` entries
|
||||||
|
"MunifTanjim/nui.nvim",
|
||||||
|
-- OPTIONAL:
|
||||||
|
-- `nvim-notify` is only needed, if you want to use the notification view.
|
||||||
|
-- If not available, we use `mini` as the fallback
|
||||||
|
"rcarriga/nvim-notify",
|
||||||
|
},
|
||||||
|
config = function(_, opts)
|
||||||
|
|
||||||
|
require("noice").setup({
|
||||||
|
lsp = {
|
||||||
|
-- override markdown rendering so that **cmp** and other plugins use **Treesitter**
|
||||||
|
override = {
|
||||||
|
["vim.lsp.util.convert_input_to_markdown_lines"] = true,
|
||||||
|
["vim.lsp.util.stylize_markdown"] = true,
|
||||||
|
["cmp.entry.get_documentation"] = true, -- requires hrsh7th/nvim-cmp
|
||||||
|
},
|
||||||
|
},
|
||||||
|
-- you can enable a preset for easier configuration
|
||||||
|
presets = {
|
||||||
|
bottom_search = true, -- use a classic bottom cmdline for search
|
||||||
|
command_palette = true, -- position the cmdline and popupmenu together
|
||||||
|
long_message_to_split = true, -- long messages will be sent to a split
|
||||||
|
inc_rename = false, -- enables an input dialog for inc-rename.nvim
|
||||||
|
lsp_doc_border = false, -- add a border to hover docs and signature help
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Optional: add any additional configuration here
|
||||||
|
views = {
|
||||||
|
cmdline_popup = {
|
||||||
|
border = {
|
||||||
|
style = "rounded", -- 邊框樣式,可選 "none", "single", "double", "rounded", "solid", "shadow"
|
||||||
|
padding = { 1, 1 }, -- 邊框內的填充(上、右、下、左)
|
||||||
|
},
|
||||||
|
win_options = {
|
||||||
|
winhighlight = "NormalFloat:NormalFloat,FloatBorder:FloatBorder", -- 高亮設定
|
||||||
|
},
|
||||||
|
},
|
||||||
|
popupmenu = {
|
||||||
|
border = {
|
||||||
|
-- noice.nvim 支援以下邊框樣式:
|
||||||
|
-- * `"none"`:無邊框。
|
||||||
|
-- * `"single"`:單線邊框。
|
||||||
|
-- * `"double"`:雙線邊框。
|
||||||
|
-- * `"rounded"`:圓角邊框。
|
||||||
|
-- * `"solid"`:實心邊框。
|
||||||
|
-- * `"shadow"`:陰影效果。
|
||||||
|
style = "rounded", -- 這裡可以設定不同的樣式
|
||||||
|
pshadowadding = { 1, 1 }, -- 調整內部填充
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
win_options = {
|
||||||
|
winhighlight = {
|
||||||
|
Normal = "NormalFloat",
|
||||||
|
FloatBorder = "FloatBorder",
|
||||||
|
winblend = 10, -- 增加透明度,模擬陰影效果
|
||||||
|
winhighlight = "NormalFloat:NormalFloat,FloatBorder:FloatBorder",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"nvim-treesitter/nvim-treesitter",
|
||||||
|
build = ":TSUpdate",
|
||||||
|
config = function()
|
||||||
|
require("nvim-treesitter.configs").setup({
|
||||||
|
ensure_installed = { "regex" }, -- 確保安裝 regex 支援
|
||||||
|
highlight = {
|
||||||
|
enable = true, -- 啟用高亮
|
||||||
|
},
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
}
|
||||||
|
}
|
61
dot_config/nvim/lua/plugins/tabby.lua
Normal file
61
dot_config/nvim/lua/plugins/tabby.lua
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
return {
|
||||||
|
{
|
||||||
|
'nanozuki/tabby.nvim',
|
||||||
|
-- event = 'VimEnter', -- if you want lazy load, see below
|
||||||
|
dependencies = 'nvim-tree/nvim-web-devicons',
|
||||||
|
config = function()
|
||||||
|
vim.o.showtabline = 2 -- always show tabline
|
||||||
|
|
||||||
|
-- configs...
|
||||||
|
local theme = {
|
||||||
|
fill = 'TabLineFill',
|
||||||
|
-- Also you can do this: fill = { fg='#f2e9de', bg='#907aa9', style='italic' }
|
||||||
|
head = 'TabLine',
|
||||||
|
current_tab = 'TabLineSel',
|
||||||
|
tab = 'TabLine',
|
||||||
|
win = 'TabLine',
|
||||||
|
tail = 'TabLine',
|
||||||
|
}
|
||||||
|
require('tabby').setup({
|
||||||
|
line = function(line)
|
||||||
|
return {
|
||||||
|
{
|
||||||
|
{ ' ', hl = theme.head },
|
||||||
|
line.sep('', theme.head, theme.fill),
|
||||||
|
},
|
||||||
|
line.tabs().foreach(function(tab)
|
||||||
|
local hl = tab.is_current() and theme.current_tab or theme.tab
|
||||||
|
return {
|
||||||
|
line.sep('', hl, theme.fill),
|
||||||
|
tab.is_current() and '' or '',
|
||||||
|
tab.number(),
|
||||||
|
tab.name(),
|
||||||
|
tab.close_btn(''),
|
||||||
|
line.sep('', hl, theme.fill),
|
||||||
|
hl = hl,
|
||||||
|
margin = ' ',
|
||||||
|
}
|
||||||
|
end),
|
||||||
|
line.spacer(),
|
||||||
|
line.wins_in_tab(line.api.get_current_tab()).foreach(function(win)
|
||||||
|
return {
|
||||||
|
line.sep('', theme.win, theme.fill),
|
||||||
|
win.is_current() and '' or '',
|
||||||
|
win.buf_name(),
|
||||||
|
line.sep('', theme.win, theme.fill),
|
||||||
|
hl = theme.win,
|
||||||
|
margin = ' ',
|
||||||
|
}
|
||||||
|
end),
|
||||||
|
{
|
||||||
|
line.sep('', theme.tail, theme.fill),
|
||||||
|
{ ' ', hl = theme.tail },
|
||||||
|
},
|
||||||
|
hl = theme.fill,
|
||||||
|
}
|
||||||
|
end,
|
||||||
|
-- option = {}, -- setup modules' option,
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user