Compare commits

...

4 Commits

4 changed files with 97 additions and 13 deletions

View File

@ -7,16 +7,44 @@
lvim.colorscheme = "melange" lvim.colorscheme = "melange"
lvim.builtin.breadcrumbs.active = false lvim.builtin.breadcrumbs.active = false
lvim.lsp.automatic_servers_installation = false lvim.builtin.gitsigns.opts.signs = {
lvim.lsp.automatic_configuration.skipped_servers = { "rust_analyzer", "rust-analyzer", "typst_lsp", "typst-lsp" } add = {
require"lspconfig".tinymist.setup{ hl = "GitSignsAdd",
exportPdf = "onType", text = "",
outputPath = "$root/target/$dir/$name", numhl = "GitSignsAddNr",
linehl = "GitSignsAddLn",
},
change = {
hl = "GitSignsChange",
text = "",
numhl = "GitSignsChangeNr",
linehl = "GitSignsChangeLn",
},
delete = {
hl = "GitSignsDelete",
text = "",
numhl = "GitSignsDeleteNr",
linehl = "GitSignsDeleteLn",
},
topdelete = {
hl = "GitSignsDelete",
text = "",
numhl = "GitSignsDeleteNr",
linehl = "GitSignsDeleteLn",
},
changedelete = {
hl = "GitSignsChange",
text = "",
numhl = "GitSignsChangeNr",
linehl = "GitSignsChangeLn",
},
} }
lvim.lsp.automatic_servers_installation = false
lvim.lsp.automatic_configuration.skipped_servers = { "rust_analyzer" }
require "plugins.init" require "plugins.init"
require "mappings" require "mappings"
require "configs.autocommand"
require "configs.nvimtree" require "configs.nvimtree"
require "configs.bufferline" require "configs.bufferline"
require "configs.dropbar" require "configs.dropbar"
@ -26,5 +54,3 @@ require "configs.colorizer"
require "configs.autotag" require "configs.autotag"
require "configs.prettier" require "configs.prettier"
require "configs.nvimufo" require "configs.nvimufo"
vim.lsp.inlay_hint.enable(true)

View File

@ -17,7 +17,7 @@ require("dropbar").setup(
for _, symbol in ipairs(symbols) do for _, symbol in ipairs(symbols) do
-- get correct icon color -- get correct icon color
local icon_fg = get_hl_color(symbol.icon_hl, "fg#") local icon_fg = get_hl_color(symbol.icon_hl, "fg#")
symbol.icon_hl = "DropbarSymbol" .. symbol.icon_hl -- symbol.icon_hl = "DropbarSymbol" .. symbol
local icon_string = "" local icon_string = ""
-- if icon_fg == "" then -- if icon_fg == "" then

View File

@ -1,8 +1,8 @@
vim.o.foldcolumn = '1' -- '0' is not bad vim.o.foldcolumn = "auto:9" -- '0' is not bad
vim.o.foldlevel = 99 -- Using ufo provider need a large value, feel free to decrease the value vim.o.foldlevel = 99 -- Using ufo provider need a large value, feel free to decrease the value
vim.o.foldlevelstart = 99 vim.o.foldlevelstart = 99
vim.o.foldenable = true vim.o.foldenable = true
vim.o.fillchars = [[eob: ,fold: ,foldopen:󰅀,foldsep:,foldclose:󰅂]] vim.o.fillchars = [[eob: ,fold: ,foldopen:󰅀,foldsep:,foldclose:󰅂]]
-- Using ufo provider need remap `zR` and `zM`. If Neovim is 0.6.1, remap yourself -- Using ufo provider need remap `zR` and `zM`. If Neovim is 0.6.1, remap yourself
vim.keymap.set('n', 'zR', require('ufo').openAllFolds) vim.keymap.set('n', 'zR', require('ufo').openAllFolds)

View File

@ -23,6 +23,66 @@ lvim.plugins = {
}, },
{ {
'kevinhwang91/nvim-ufo', 'kevinhwang91/nvim-ufo',
opts = {
open_fold_hl_timeout = 400,
close_fold_kinds = { "imports", "comment" },
preview = {
win_config = {
border = { "", "", "", "", "", "", "", "" },
-- winhighlight = "Normal:Folded",
winblend = 0,
},
mappings = {
scrollU = "<C-u>",
scrollD = "<C-d>",
jumpTop = "[",
jumpBot = "]",
},
},
},
config = function(_, opts)
local handler = function(virtText, lnum, endLnum, width, truncate)
local newVirtText = {}
local totalLines = vim.api.nvim_buf_line_count(0)
local foldedLines = endLnum - lnum
local suffix = ("  %d %d%%"):format(foldedLines, foldedLines / totalLines * 100)
local sufWidth = vim.fn.strdisplaywidth(suffix)
local targetWidth = width - sufWidth
local curWidth = 0
for _, chunk in ipairs(virtText) do
local chunkText = chunk[1]
local chunkWidth = vim.fn.strdisplaywidth(chunkText)
if targetWidth > curWidth + chunkWidth then
table.insert(newVirtText, chunk)
else
chunkText = truncate(chunkText, targetWidth - curWidth)
local hlGroup = chunk[2]
table.insert(newVirtText, { chunkText, hlGroup })
chunkWidth = vim.fn.strdisplaywidth(chunkText)
-- str width returned from truncate() may less than 2nd argument, need padding
if curWidth + chunkWidth < targetWidth then
suffix = suffix .. (" "):rep(targetWidth - curWidth - chunkWidth)
end
break
end
curWidth = curWidth + chunkWidth
end
local rAlignAppndx =
math.max(math.min(vim.opt.textwidth["_value"], width - 1) - curWidth - sufWidth, 0)
suffix = (" "):rep(rAlignAppndx) .. suffix
table.insert(newVirtText, { suffix, "MoreMsg" })
return newVirtText
end
opts["fold_virt_text_handler"] = handler
require("ufo").setup(opts)
vim.keymap.set("n", "K", function()
local winid = require("ufo").peekFoldedLinesUnderCursor()
if not winid then
-- vim.lsp.buf.hover()
vim.cmd [[ Lspsaga hover_doc ]]
end
end)
end,
}, },
{ {
'kevinhwang91/promise-async', 'kevinhwang91/promise-async',
@ -90,7 +150,6 @@ lvim.plugins = {
event = "InsertEnter", event = "InsertEnter",
dependencies = { dependencies = {
{ {
-- snippet plugin
"L3MON4D3/LuaSnip", "L3MON4D3/LuaSnip",
dependencies = "rafamadriz/friendly-snippets", dependencies = "rafamadriz/friendly-snippets",
opts = { history = true, updateevents = "TextChanged,TextChangedI" }, opts = { history = true, updateevents = "TextChanged,TextChangedI" },
@ -99,7 +158,6 @@ lvim.plugins = {
require "configs.luasnip" require "configs.luasnip"
end, end,
}, },
-- cmp sources plugins
{ {
"saadparwaiz1/cmp_luasnip", "saadparwaiz1/cmp_luasnip",
"hrsh7th/cmp-nvim-lua", "hrsh7th/cmp-nvim-lua",