Updated statusbar
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
vim.loader.enable()
|
||||
require('DarthMooMancer.opts')
|
||||
vim.cmd.colorscheme('min-kanso')
|
||||
|
||||
|
||||
@@ -4,8 +4,6 @@ require('lazydev').setup({
|
||||
},
|
||||
})
|
||||
|
||||
-- local capabilities = require('blink.cmp').get_lsp_capabilities()
|
||||
|
||||
vim.lsp.config('*', { capabilities = require('blink.cmp').get_lsp_capabilities() })
|
||||
vim.lsp.config('lua_ls', {
|
||||
settings = {
|
||||
@@ -23,9 +21,6 @@ vim.lsp.config('lua_ls', {
|
||||
workspace = {
|
||||
checkThirdParty = false,
|
||||
},
|
||||
-- library = {
|
||||
-- vim.fn.stdpath('data') .. '/site/pack/dev/opt/vern.nvim',
|
||||
-- },
|
||||
didChangeWatchedFiles = {
|
||||
dynamicRegistration = false,
|
||||
},
|
||||
|
||||
@@ -40,15 +40,4 @@ vim.opt.showmode = false
|
||||
vim.opt.smoothscroll = true
|
||||
vim.diagnostic.config({ severity_sort = true })
|
||||
vim.o.winborder = 'rounded'
|
||||
vim.api.nvim_create_autocmd('FileType', {
|
||||
pattern = { 'text', 'plaintex' },
|
||||
callback = function()
|
||||
vim.opt_local.wrap = true
|
||||
vim.opt_local.linebreak = true
|
||||
vim.opt_local.breakindent = true
|
||||
|
||||
vim.keymap.set('n', 'j', 'gj', { buffer = true })
|
||||
vim.keymap.set('n', 'k', 'gk', { buffer = true })
|
||||
end,
|
||||
})
|
||||
vim.opt.updatetime = 250
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
require('conform').setup({
|
||||
formatters_by_ft = {
|
||||
-- rust = { 'rustfmt', lsp_format = 'fallback' },
|
||||
lua = { 'stylua', lsp_format = 'fallback' },
|
||||
javascript = { 'prettier', stop_after_first = true },
|
||||
typescript = { 'prettier', stop_after_first = true },
|
||||
@@ -8,8 +7,7 @@ require('conform').setup({
|
||||
html = { 'prettier' },
|
||||
c = { 'clang-format' },
|
||||
cpp = { 'clang-format' },
|
||||
-- css = { 'csskit' },
|
||||
python = { 'autopep8' },
|
||||
python = { 'ruff_fix', 'ruff_format' },
|
||||
['_'] = { 'trim_whitespace' },
|
||||
},
|
||||
format_on_save = {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
require('nvim-treesitter').install({
|
||||
local parsers = {
|
||||
'json',
|
||||
'rust',
|
||||
'c',
|
||||
@@ -6,11 +6,13 @@ require('nvim-treesitter').install({
|
||||
'lua',
|
||||
'javascript',
|
||||
'typescript',
|
||||
'tsx',
|
||||
'css',
|
||||
'html',
|
||||
'python',
|
||||
'yaml',
|
||||
})
|
||||
}
|
||||
require('nvim-treesitter').install(parsers)
|
||||
|
||||
require('nvim-ts-autotag').setup({
|
||||
opts = {
|
||||
@@ -20,22 +22,16 @@ require('nvim-ts-autotag').setup({
|
||||
},
|
||||
})
|
||||
|
||||
local group = vim.api.nvim_create_augroup('UserTreesitter', { clear = true })
|
||||
|
||||
vim.api.nvim_create_autocmd('FileType', {
|
||||
pattern = {
|
||||
'json',
|
||||
'c',
|
||||
'cpp',
|
||||
'rust',
|
||||
'lua',
|
||||
'typescript',
|
||||
'javascript',
|
||||
'css',
|
||||
'html',
|
||||
'python',
|
||||
'yaml',
|
||||
},
|
||||
callback = function()
|
||||
vim.treesitter.start()
|
||||
-- vim.bo.indentexpr = "v:lua.require'nvim-treesitter'.indentexpr()"
|
||||
group = group,
|
||||
desc = 'Start treesitter highlighting when a parser is installed',
|
||||
callback = function(ev)
|
||||
local lang = vim.treesitter.language.get_lang(ev.match) or ev.match
|
||||
if not vim.treesitter.language.add(lang) then
|
||||
return
|
||||
end
|
||||
vim.treesitter.start(ev.buf, lang)
|
||||
end,
|
||||
})
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
local icon_cache = {}
|
||||
|
||||
local diagnostic_configs = {
|
||||
{ sev = vim.diagnostic.severity.ERROR, label = 'E', hl = 'DiagnosticError' },
|
||||
{ sev = vim.diagnostic.severity.WARN, label = 'W', hl = 'DiagnosticWarn' },
|
||||
{ sev = vim.diagnostic.severity.HINT, label = 'H', hl = 'DiagnosticHint' },
|
||||
}
|
||||
|
||||
function _G.Status()
|
||||
local win = tonumber(vim.g.statusline_winid)
|
||||
local buf = (win and vim.api.nvim_win_is_valid(win)) and vim.api.nvim_win_get_buf(win)
|
||||
@@ -10,35 +16,38 @@ function _G.Status()
|
||||
display_path = '[No Name]'
|
||||
end
|
||||
|
||||
local icon, hl = icon_cache[display_path]
|
||||
local ext = vim.fn.fnamemodify(bufname, ':e')
|
||||
if ext == '' then
|
||||
ext = display_path
|
||||
end
|
||||
local icon, hl = icon_cache[ext]
|
||||
if not icon then
|
||||
icon, hl = MiniIcons.get('file', display_path)
|
||||
icon_cache[display_path] = { icon, hl }
|
||||
icon_cache[ext] = { icon, hl }
|
||||
else
|
||||
icon, hl = icon[1], icon[2]
|
||||
end
|
||||
|
||||
local nm = (icon ~= '' and hl ~= '') and ('%#' .. hl .. '#' .. icon .. '%* ' .. display_path) or (' ' .. display_path)
|
||||
local nm = (icon ~= '' and hl ~= '') and ('%#' .. hl .. '#' .. icon .. '%* ' .. display_path)
|
||||
or (' ' .. display_path)
|
||||
|
||||
local dg_parts = {}
|
||||
if (vim.diagnostic.count(buf)[vim.diagnostic.severity.ERROR] or 0) > 0 then
|
||||
table.insert(dg_parts, '%#DiagnosticError#E' .. vim.diagnostic.count(buf)[vim.diagnostic.severity.ERROR] .. '%*')
|
||||
local counts = vim.diagnostic.count(buf)
|
||||
local parts = {}
|
||||
|
||||
for _, cfg in ipairs(diagnostic_configs) do
|
||||
local n = counts[cfg.sev]
|
||||
if n and n > 0 then
|
||||
parts[#parts + 1] = ('%%#%s#%s%d%%*'):format(cfg.hl, cfg.label, n)
|
||||
end
|
||||
if (vim.diagnostic.count(buf)[vim.diagnostic.severity.WARN] or 0) > 0 then
|
||||
table.insert(dg_parts, '%#DiagnosticWarn#W' .. vim.diagnostic.count(buf)[vim.diagnostic.severity.WARN] .. '%*')
|
||||
end
|
||||
if (vim.diagnostic.count(buf)[vim.diagnostic.severity.HINT] or 0) > 0 then
|
||||
table.insert(dg_parts, '%#DiagnosticHint#H' .. vim.diagnostic.count(buf)[vim.diagnostic.severity.HINT] .. '%*')
|
||||
end
|
||||
local dg = #dg_parts > 0 and (table.concat(dg_parts, ' ') .. ' ') or ''
|
||||
local dg = #parts > 0 and (table.concat(parts, ' ') .. ' ') or ''
|
||||
|
||||
local clients = vim.lsp.get_clients({ bufnr = buf })
|
||||
local lsp_clients = ''
|
||||
if #clients > 0 then
|
||||
local names = {}
|
||||
for i = 1, #clients do
|
||||
names[i] = clients[i].name
|
||||
end
|
||||
local names = vim.tbl_map(function(c)
|
||||
return c.name
|
||||
end, clients)
|
||||
lsp_clients = ' ' .. table.concat(names, '/') .. ' '
|
||||
end
|
||||
|
||||
@@ -51,25 +60,12 @@ end
|
||||
vim.opt.statusline = '%!v:lua.Status()'
|
||||
|
||||
local augroup = vim.api.nvim_create_augroup('CustomStatusline', { clear = true })
|
||||
vim.api.nvim_create_autocmd({
|
||||
'DiagnosticChanged',
|
||||
'LspAttach',
|
||||
'LspDetach',
|
||||
'BufEnter',
|
||||
'LspProgress',
|
||||
'TextChanged',
|
||||
'TextChangedI',
|
||||
}, {
|
||||
vim.api.nvim_create_autocmd(
|
||||
{ 'DiagnosticChanged', 'LspAttach', 'LspDetach', 'BufEnter', 'LspProgress' },
|
||||
{
|
||||
group = augroup,
|
||||
callback = function()
|
||||
vim.cmd.redrawstatus()
|
||||
end,
|
||||
})
|
||||
|
||||
vim.api.nvim_create_autocmd('BufWipeout', {
|
||||
group = augroup,
|
||||
callback = function(args)
|
||||
local name = vim.fn.fnamemodify(vim.api.nvim_buf_get_name(args.buf), ':.')
|
||||
icon_cache[name] = nil
|
||||
end,
|
||||
})
|
||||
}
|
||||
)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
column_width = 120
|
||||
column_width = 100
|
||||
line_endings = "Unix"
|
||||
indent_type = "Tabs"
|
||||
indent_width = 2
|
||||
|
||||
Reference in New Issue
Block a user