a lot more stuff

This commit is contained in:
2025-04-17 11:41:32 -05:00
parent 8eaa615596
commit 3094bf2a39
37 changed files with 891 additions and 281 deletions

View File

@ -1,3 +1,6 @@
local misc = require('core.misc')
local auto = misc.auto
-- color stuff
if vim.fn.has("termguicolors") then
vim.opt.termguicolors = true
@ -5,6 +8,10 @@ end
vim.opt.laststatus = 3
-- numbers
vim.opt.number = true
vim.opt.relativenumber = true
-- buffer
vim.opt.scrolloff = 5
vim.opt.wrap = true -- wraping lines
@ -21,7 +28,12 @@ vim.opt.tabstop = tabwidth
vim.opt.shiftwidth = tabwidth
vim.opt.softtabstop = tabwidth
vim.opt.clipboard = 'unnamedplus' -- system clipboard
-- Schedule the setting after `UiEnter` because it can increase startup-time.
-- (yoinked from kickstart.nvim)
vim.schedule(function()
vim.opt.clipboard = 'unnamedplus' -- system clipboard
end)
vim.opt.updatetime = 200
-- file saving
@ -50,3 +62,71 @@ vim.g.netrw_winsize = 30
vim.g.netrw_liststyle = 1
vim.g.netrw_sizestyle = "H"
vim.g.netrw_hide = 1
-- folding
auto("FileType", {
callback = function()
-- support lsp folding
if vim.fn.has("nvim-0.11") then
auto('LspAttach', {
callback = function(args)
local client = vim.lsp.get_client_by_id(args.data.client_id)
if not client then
return
end
if client:supports_method('textDocument/foldingRange') then
local win = vim.api.nvim_get_current_win()
vim.wo[win][0].foldmethod = "expr"
vim.wo[win][0].foldexpr = 'v:lua.vim.lsp.foldexpr()'
end
end,
})
end
-- or just rely on treesitter
if require("nvim-treesitter.parsers").has_parser() then
vim.opt.foldmethod = "expr"
vim.opt.foldexpr = "nvim_treesitter#foldexpr()"
else
vim.opt.foldmethod = "syntax"
end
end
})
-- lsp folding: vim.o.foldexpr = "v:lua.vim.lsp.foldexpr()"
-- waiting on https://github.com/neovim/neovim/pull/31311 to hit a release
require('core.lsp.functions').add_capabilities({
textDocument = {
foldingRange = {
dynamicRegistration = false,
lineFoldingOnly = true
}
}
})
vim.opt.foldlevelstart = 99
vim.opt.foldlevel = 99
vim.opt.foldenable = true
vim.o.fillchars = 'fold: '
_G.Fold_text = require('core.folding')
vim.opt.foldtext = 'v:lua.Fold_text()'
-- statusline
function _G.Status()
return table.concat {
"%t", -- file name
" %h", -- help buffer tag
"%m", -- modify tag
"%r", -- readonly flag
"%=", -- seperate left and right side
-- print out the number of lsp clients attached
"λ"..#vim.lsp.get_clients({ bufnr = 0 }).." ",
"%l,%c%V", -- line, column-virtual column
" %P" -- percentage through display window
}
end
vim.o.statusline="%!v:lua.Status()"