feat!: major rework
This commit is contained in:
parent
a38625b342
commit
e39a7af386
4
init.lua
4
init.lua
@ -16,10 +16,10 @@ vim.opt.runtimepath:prepend(lazypath)
|
|||||||
vim.api.nvim_create_autocmd('User', {
|
vim.api.nvim_create_autocmd('User', {
|
||||||
pattern = 'LazyVimStarted',
|
pattern = 'LazyVimStarted',
|
||||||
callback = function()
|
callback = function()
|
||||||
require 'feline'
|
require 'lualine'
|
||||||
require 'config.mappings'
|
require 'config.mappings'
|
||||||
require 'config.autocmd'
|
require 'config.autocmd'
|
||||||
require 'noice'
|
-- require 'noice'
|
||||||
require 'nvim-treesitter'
|
require 'nvim-treesitter'
|
||||||
vim.cmd 'colorscheme neogruber'
|
vim.cmd 'colorscheme neogruber'
|
||||||
end,
|
end,
|
||||||
|
@ -64,6 +64,7 @@ vim.api.nvim_create_autocmd('FileType', {
|
|||||||
callback = function()
|
callback = function()
|
||||||
vim.opt_local.wrap = true
|
vim.opt_local.wrap = true
|
||||||
vim.opt_local.spell = true
|
vim.opt_local.spell = true
|
||||||
|
vim.opt_local.textwidth = 80
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
function ToggleTroubleAuto()
|
function ToggleTroubleAuto()
|
||||||
|
@ -20,10 +20,10 @@ keymap('n', '<home>', '<cmd>ToggleTerm direction=horizontal<cr>', opt)
|
|||||||
keymap('t', '<home>', '<cmd>ToggleTerm direction=horizontal<cr>', opt)
|
keymap('t', '<home>', '<cmd>ToggleTerm direction=horizontal<cr>', opt)
|
||||||
keymap('v', '<home>', '<cmd>ToggleTerm direction=horizontal<cr>', opt)
|
keymap('v', '<home>', '<cmd>ToggleTerm direction=horizontal<cr>', opt)
|
||||||
keymap('i', '<home>', '<cmd>ToggleTerm direction=horizontal<cr>', opt)
|
keymap('i', '<home>', '<cmd>ToggleTerm direction=horizontal<cr>', opt)
|
||||||
keymap('n', '<end>', '<cmd>ToggleTerm direction=vertical<cr>', opt)
|
keymap('n', '<end>', '<cmd>ToggleTerm direction=float<cr>', opt)
|
||||||
keymap('t', '<end>', '<cmd>ToggleTerm direction=vertical<cr>', opt)
|
keymap('t', '<end>', '<cmd>ToggleTerm direction=float<cr>', opt)
|
||||||
keymap('v', '<end>', '<cmd>ToggleTerm direction=vertical<cr>', opt)
|
keymap('v', '<end>', '<cmd>ToggleTerm direction=float<cr>', opt)
|
||||||
keymap('i', '<end>', '<cmd>ToggleTerm direction=vertical<cr>', opt)
|
keymap('i', '<end>', '<cmd>ToggleTerm direction=float<cr>', opt)
|
||||||
-- }}}
|
-- }}}
|
||||||
|
|
||||||
keymap('n', '<BS>', ':', { noremap = true })
|
keymap('n', '<BS>', ':', { noremap = true })
|
||||||
@ -96,7 +96,17 @@ function UnMapDHM()
|
|||||||
vim.api.nvim_del_keymap('n', 'N')
|
vim.api.nvim_del_keymap('n', 'N')
|
||||||
end
|
end
|
||||||
|
|
||||||
MapDHM()
|
local function file_exists(name)
|
||||||
|
local f = io.open(name, "r")
|
||||||
|
if f ~= nil then
|
||||||
|
io.close(f)
|
||||||
|
return true
|
||||||
|
else return false end
|
||||||
|
end
|
||||||
|
|
||||||
|
if file_exists('/tmp/colemak') then
|
||||||
|
MapDHM()
|
||||||
|
end
|
||||||
|
|
||||||
local wk = require 'which-key'
|
local wk = require 'which-key'
|
||||||
|
|
||||||
@ -129,12 +139,12 @@ wk.setup {
|
|||||||
padding = { 1, 1, 1, 1 }, -- extra window padding [top, right, bottom, left]
|
padding = { 1, 1, 1, 1 }, -- extra window padding [top, right, bottom, left]
|
||||||
},
|
},
|
||||||
layout = {
|
layout = {
|
||||||
height = { min = 4, max = 25 }, -- min and max height of the columns
|
height = { min = 4, max = 25 }, -- min and max height of the columns
|
||||||
width = { min = 20, max = 50 }, -- min and max width of the columns
|
width = { min = 20, max = 50 }, -- min and max width of the columns
|
||||||
spacing = 3, -- spacing between columns
|
spacing = 3, -- spacing between columns
|
||||||
},
|
},
|
||||||
hidden = { '<silent>', '<cmd>', '<Cmd>', '<CR>', 'call', 'lua', '^:', '^ ' }, -- hide mapping boilerplate
|
hidden = { '<silent>', '<cmd>', '<Cmd>', '<CR>', 'call', 'lua', '^:', '^ ' }, -- hide mapping boilerplate
|
||||||
show_help = true, -- show help message on the command line when the popup is visible
|
show_help = true, -- show help message on the command line when the popup is visible
|
||||||
}
|
}
|
||||||
|
|
||||||
local opts = {
|
local opts = {
|
||||||
@ -159,6 +169,7 @@ local mappings = {
|
|||||||
['f'] = { '<cmd>e ~/.config/nvim/ <cr>', 'Neovim config' },
|
['f'] = { '<cmd>e ~/.config/nvim/ <cr>', 'Neovim config' },
|
||||||
['rr'] = 'Search and replace all',
|
['rr'] = 'Search and replace all',
|
||||||
['rs'] = 'Search and replace',
|
['rs'] = 'Search and replace',
|
||||||
|
['c'] = { '<cmd>lua UnMapDHM()<cr>', 'Qwerty' },
|
||||||
['b'] = {
|
['b'] = {
|
||||||
function()
|
function()
|
||||||
require('buffer_manager.ui').toggle_quick_menu()
|
require('buffer_manager.ui').toggle_quick_menu()
|
||||||
@ -211,6 +222,7 @@ local mappings = {
|
|||||||
['g'] = { '<cmd>Neogit<cr>', 'Neogit' },
|
['g'] = { '<cmd>Neogit<cr>', 'Neogit' },
|
||||||
l = {
|
l = {
|
||||||
name = 'LSP',
|
name = 'LSP',
|
||||||
|
l = { '<cmd>Lazy load lsp <bar> LspStart <cr>', 'Start LSP' },
|
||||||
f = { '<cmd>lua vim.lsp.buf.format { async = true }<cr>', 'Format' },
|
f = { '<cmd>lua vim.lsp.buf.format { async = true }<cr>', 'Format' },
|
||||||
i = 'Lsp Info',
|
i = 'Lsp Info',
|
||||||
a = 'Code action',
|
a = 'Code action',
|
||||||
|
@ -5,40 +5,27 @@ g.mapleader = ' '
|
|||||||
g.tex_flavor = 'latex'
|
g.tex_flavor = 'latex'
|
||||||
g.c_syntax_for_h = true
|
g.c_syntax_for_h = true
|
||||||
|
|
||||||
--opt.wildoptions = true -- TODO: see how it works
|
|
||||||
opt.termguicolors = true
|
opt.termguicolors = true
|
||||||
opt.guicursor = 'n-v-c-sm:hor20,i-ci-ve:ver20,r-cr-o:Block'
|
|
||||||
opt.mouse = 'nv'
|
opt.mouse = 'nv'
|
||||||
opt.path = '.,,**h'
|
|
||||||
-- opt.pumheight = 10 -- TODO: probably to change
|
|
||||||
opt.fileencoding = 'utf-8'
|
opt.fileencoding = 'utf-8'
|
||||||
opt.splitbelow = true
|
opt.splitbelow = true
|
||||||
opt.splitright = true
|
opt.splitright = true
|
||||||
opt.smartindent = false -- TODO: maybe?
|
|
||||||
opt.showmode = false
|
opt.showmode = false
|
||||||
opt.undofile = true
|
opt.undofile = true
|
||||||
opt.updatetime = 300
|
opt.updatetime = 300
|
||||||
opt.backup = false
|
opt.backup = false
|
||||||
opt.clipboard:prepend { 'unnamedplus' }
|
opt.clipboard:prepend { 'unnamedplus' }
|
||||||
|
opt.ignorecase = true
|
||||||
opt.smartcase = true
|
opt.smartcase = true
|
||||||
opt.cursorline = true
|
|
||||||
opt.sessionoptions = 'folds'
|
opt.sessionoptions = 'folds'
|
||||||
opt.foldmethod = 'marker'
|
|
||||||
opt.foldlevel = 0
|
|
||||||
opt.number = true
|
opt.number = true
|
||||||
opt.hidden = true
|
|
||||||
opt.shortmess:append('I', 'W', 's')
|
opt.shortmess:append('I', 'W', 's')
|
||||||
-- opt.scrolloff = 15 -- TODO: maybe ?
|
|
||||||
opt.iskeyword:prepend { '-' }
|
opt.iskeyword:prepend { '-' }
|
||||||
opt.inccommand = 'nosplit'
|
|
||||||
opt.completeopt:append 'menuone'
|
|
||||||
opt.timeoutlen = 300
|
opt.timeoutlen = 300
|
||||||
opt['foldenable'] = false
|
|
||||||
opt.fillchars = 'eob: '
|
opt.fillchars = 'eob: '
|
||||||
opt.cmdheight = 1
|
opt.cmdheight = 0
|
||||||
opt.grepprg = 'rg --vimgrep --no-heading --smart-case --hidden'
|
opt.grepprg = 'rg --vimgrep --no-heading --smart-case --hidden'
|
||||||
opt.grepformat = '%f:%l:%c:%m'
|
opt.grepformat = '%f:%l:%c:%m'
|
||||||
-- opt.autochdir = true
|
|
||||||
|
|
||||||
vim.api.nvim_create_user_command('Cd', 'lcd %:p:h', { nargs = 0 })
|
vim.api.nvim_create_user_command('Cd', 'lcd %:p:h', { nargs = 0 })
|
||||||
|
|
||||||
|
@ -1,242 +1,11 @@
|
|||||||
local M = {}
|
local M = {}
|
||||||
M.kind_icons = {
|
|
||||||
Text = '',
|
|
||||||
Method = '',
|
|
||||||
Function = '',
|
|
||||||
Constructor = '',
|
|
||||||
Field = '',
|
|
||||||
Variable = '',
|
|
||||||
Class = 'ﴯ',
|
|
||||||
Interface = '',
|
|
||||||
Module = '',
|
|
||||||
Property = 'ﰠ',
|
|
||||||
Unit = '',
|
|
||||||
Value = '',
|
|
||||||
Enum = '',
|
|
||||||
Keyword = '',
|
|
||||||
Snippet = '',
|
|
||||||
Color = '',
|
|
||||||
File = '',
|
|
||||||
Reference = '',
|
|
||||||
Folder = '',
|
|
||||||
EnumMember = '',
|
|
||||||
Constant = '',
|
|
||||||
Struct = '',
|
|
||||||
Event = '',
|
|
||||||
Operator = '',
|
|
||||||
TypeParameter = '',
|
|
||||||
}
|
|
||||||
|
|
||||||
M.has_words_before = function()
|
M.has_words_before = function()
|
||||||
local line, col = unpack(vim.api.nvim_win_get_cursor(0))
|
local line, col = unpack(vim.api.nvim_win_get_cursor(0))
|
||||||
return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match '%s' == nil
|
return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match '%s' == nil
|
||||||
end
|
end
|
||||||
|
|
||||||
M.feline_theme = {
|
--[=[ function M.on_attach(client, bufnr)
|
||||||
fg = '#c9d1d9',
|
|
||||||
bg = '#1f2428',
|
|
||||||
green = '#66cc66',
|
|
||||||
yellow = '#d5992a',
|
|
||||||
purple = '#c678dd',
|
|
||||||
orange = '#b17135',
|
|
||||||
peanut = '#f6d5a4',
|
|
||||||
red = '#e06c75',
|
|
||||||
aqua = '#61afef',
|
|
||||||
bg2 = '#24293a',
|
|
||||||
dark_red = '#f75f5f',
|
|
||||||
}
|
|
||||||
|
|
||||||
M.feline_vi_mode_colors = {
|
|
||||||
NORMAL = 'green',
|
|
||||||
OP = 'green',
|
|
||||||
INSERT = 'yellow',
|
|
||||||
VISUAL = 'purple',
|
|
||||||
LINES = 'orange',
|
|
||||||
BLOCK = 'dark_red',
|
|
||||||
REPLACE = 'red',
|
|
||||||
COMMAND = 'aqua',
|
|
||||||
}
|
|
||||||
|
|
||||||
M.feline_c = {
|
|
||||||
vim_mode = {
|
|
||||||
provider = {
|
|
||||||
name = 'vi_mode',
|
|
||||||
opts = {
|
|
||||||
show_mode_name = true,
|
|
||||||
-- padding = "center", -- Uncomment for extra padding.
|
|
||||||
},
|
|
||||||
},
|
|
||||||
hl = function()
|
|
||||||
return {
|
|
||||||
fg = require('feline.providers.vi_mode').get_mode_color(),
|
|
||||||
bg = 'bg2',
|
|
||||||
style = 'bold',
|
|
||||||
name = 'NeovimModeHLColor',
|
|
||||||
}
|
|
||||||
end,
|
|
||||||
left_sep = 'block',
|
|
||||||
right_sep = 'block',
|
|
||||||
},
|
|
||||||
gitBranch = {
|
|
||||||
provider = 'git_branch',
|
|
||||||
hl = {
|
|
||||||
fg = 'peanut',
|
|
||||||
bg = 'bg2',
|
|
||||||
style = 'bold',
|
|
||||||
},
|
|
||||||
left_sep = 'block',
|
|
||||||
right_sep = 'block',
|
|
||||||
},
|
|
||||||
gitDiffAdded = {
|
|
||||||
provider = 'git_diff_added',
|
|
||||||
hl = {
|
|
||||||
fg = 'green',
|
|
||||||
bg = 'bg2',
|
|
||||||
},
|
|
||||||
left_sep = 'block',
|
|
||||||
right_sep = 'block',
|
|
||||||
},
|
|
||||||
gitDiffRemoved = {
|
|
||||||
provider = 'git_diff_removed',
|
|
||||||
hl = {
|
|
||||||
fg = 'red',
|
|
||||||
bg = 'bg2',
|
|
||||||
},
|
|
||||||
left_sep = 'block',
|
|
||||||
right_sep = 'block',
|
|
||||||
},
|
|
||||||
gitDiffChanged = {
|
|
||||||
provider = 'git_diff_changed',
|
|
||||||
hl = {
|
|
||||||
fg = 'fg',
|
|
||||||
bg = 'bg2',
|
|
||||||
},
|
|
||||||
left_sep = 'block',
|
|
||||||
right_sep = 'right_filled',
|
|
||||||
},
|
|
||||||
separator = {
|
|
||||||
provider = '',
|
|
||||||
},
|
|
||||||
file_info = {
|
|
||||||
provider = {
|
|
||||||
name = 'file_info',
|
|
||||||
opts = {
|
|
||||||
colored_icon = false,
|
|
||||||
type = 'relative-short',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
hl = {
|
|
||||||
style = 'bold',
|
|
||||||
},
|
|
||||||
left_sep = ' ',
|
|
||||||
right_sep = ' ',
|
|
||||||
},
|
|
||||||
diagnostic_errors = {
|
|
||||||
provider = 'diagnostic_errors',
|
|
||||||
hl = {
|
|
||||||
fg = 'red',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
diagnostic_warnings = {
|
|
||||||
provider = 'diagnostic_warnings',
|
|
||||||
hl = {
|
|
||||||
fg = 'yellow',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
diagnostic_hints = {
|
|
||||||
provider = 'diagnostic_hints',
|
|
||||||
hl = {
|
|
||||||
fg = 'aqua',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
diagnostic_info = {
|
|
||||||
provider = 'diagnostic_info',
|
|
||||||
},
|
|
||||||
lsp_client_names = {
|
|
||||||
provider = 'lsp_client_names',
|
|
||||||
hl = {
|
|
||||||
fg = 'purple',
|
|
||||||
bg = 'bg2',
|
|
||||||
style = 'bold',
|
|
||||||
},
|
|
||||||
left_sep = 'left_filled',
|
|
||||||
right_sep = 'right_filled',
|
|
||||||
},
|
|
||||||
file_type = {
|
|
||||||
provider = {
|
|
||||||
name = 'file_type',
|
|
||||||
opts = {
|
|
||||||
-- filetype_icon = true,
|
|
||||||
colored_icon = false,
|
|
||||||
case = 'titlecase',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
hl = {
|
|
||||||
fg = 'red',
|
|
||||||
bg = 'bg2',
|
|
||||||
style = 'bold',
|
|
||||||
},
|
|
||||||
left_sep = 'left_filled',
|
|
||||||
right_sep = 'block',
|
|
||||||
},
|
|
||||||
file_encoding = {
|
|
||||||
provider = 'file_encoding',
|
|
||||||
hl = {
|
|
||||||
fg = 'orange',
|
|
||||||
bg = 'bg2',
|
|
||||||
-- style = 'italic',
|
|
||||||
},
|
|
||||||
left_sep = 'block',
|
|
||||||
right_sep = 'block',
|
|
||||||
},
|
|
||||||
position = {
|
|
||||||
provider = 'position',
|
|
||||||
hl = {
|
|
||||||
fg = 'green',
|
|
||||||
bg = 'bg2',
|
|
||||||
style = 'bold',
|
|
||||||
},
|
|
||||||
left_sep = 'block',
|
|
||||||
right_sep = 'block',
|
|
||||||
},
|
|
||||||
line_percentage = {
|
|
||||||
provider = 'line_percentage',
|
|
||||||
hl = {
|
|
||||||
fg = 'aqua',
|
|
||||||
bg = 'bg2',
|
|
||||||
style = 'bold',
|
|
||||||
},
|
|
||||||
left_sep = 'block',
|
|
||||||
right_sep = 'block',
|
|
||||||
},
|
|
||||||
scroll_bar = {
|
|
||||||
provider = 'scroll_bar',
|
|
||||||
hl = {
|
|
||||||
fg = 'yellow',
|
|
||||||
style = 'bold',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
search_count = {
|
|
||||||
provider = 'search_count',
|
|
||||||
hl = {
|
|
||||||
style = 'bold',
|
|
||||||
bg = 'bg2',
|
|
||||||
},
|
|
||||||
left_sep = 'block',
|
|
||||||
right_sep = 'block',
|
|
||||||
},
|
|
||||||
macro = {
|
|
||||||
provider = 'macro',
|
|
||||||
hl = {
|
|
||||||
style = 'bold',
|
|
||||||
bg = 'bg2',
|
|
||||||
},
|
|
||||||
left_sep = 'block',
|
|
||||||
right_sep = 'block',
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
function M.on_attach(client, bufnr)
|
|
||||||
--[[ vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc') ]]
|
--[[ vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc') ]]
|
||||||
if client.name == 'jdt.ls' then
|
if client.name == 'jdt.ls' then
|
||||||
client.server_capabilities.documentFormattingProvider = false
|
client.server_capabilities.documentFormattingProvider = false
|
||||||
@ -258,8 +27,9 @@ function M.on_attach(client, bufnr)
|
|||||||
|
|
||||||
-- util.info(client.name .. " " .. (enable and "yes" or "no"), "format")
|
-- util.info(client.name .. " " .. (enable and "yes" or "no"), "format")
|
||||||
client.server_capabilities.documentFormattingProvider = enable
|
client.server_capabilities.documentFormattingProvider = enable
|
||||||
client.server_capabilities.semanticTokensProvider = false
|
-- client.server_capabilities.semanticTokensProvider = false
|
||||||
end
|
client.server_capabilities.semanticTokensProvider = nil
|
||||||
|
end ]=]
|
||||||
|
|
||||||
M.lsp_config = {
|
M.lsp_config = {
|
||||||
virtual_text = {
|
virtual_text = {
|
||||||
|
@ -47,8 +47,8 @@ return {
|
|||||||
fields = { 'abbr', 'kind', 'menu' },
|
fields = { 'abbr', 'kind', 'menu' },
|
||||||
format = function(_, item)
|
format = function(_, item)
|
||||||
local ELLIPSIS_CHAR = '…'
|
local ELLIPSIS_CHAR = '…'
|
||||||
local MAX_LABEL_WIDTH = 20
|
local MAX_LABEL_WIDTH = 25
|
||||||
item.kind = string.format('%s %s', utils.kind_icons[item.kind], item.kind) -- This concatonates the icons with the name of the item kind
|
item.kind = string.format('%s', item.kind) -- This concatonates the icons with the name of the item kind
|
||||||
|
|
||||||
local label = item.abbr
|
local label = item.abbr
|
||||||
local truncated_label = vim.fn.strcharpart(label, 0, MAX_LABEL_WIDTH)
|
local truncated_label = vim.fn.strcharpart(label, 0, MAX_LABEL_WIDTH)
|
||||||
@ -103,7 +103,6 @@ return {
|
|||||||
mapping = cmp.mapping.preset.cmdline(),
|
mapping = cmp.mapping.preset.cmdline(),
|
||||||
sources = {
|
sources = {
|
||||||
{ name = 'cmdline' },
|
{ name = 'cmdline' },
|
||||||
{ name = 'path' },
|
|
||||||
},
|
},
|
||||||
-- view = {
|
-- view = {
|
||||||
-- entries = { name = 'wildmenu', separator = ' · ' },
|
-- entries = { name = 'wildmenu', separator = ' · ' },
|
||||||
@ -141,3 +140,4 @@ return {
|
|||||||
cmp.event:on('confirm_done', cmp_autopairs.on_confirm_done {})
|
cmp.event:on('confirm_done', cmp_autopairs.on_confirm_done {})
|
||||||
end,
|
end,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,64 +0,0 @@
|
|||||||
return {
|
|
||||||
'feline-nvim/feline.nvim',
|
|
||||||
-- lazy = false
|
|
||||||
-- event = 'UIEnter',
|
|
||||||
-- event = 'VeryLazy',
|
|
||||||
dependencies = {
|
|
||||||
'nvim-tree/nvim-web-devicons',
|
|
||||||
},
|
|
||||||
config = function()
|
|
||||||
local feline = require 'feline'
|
|
||||||
local utils = require 'config.utils'
|
|
||||||
local c = utils.feline_c
|
|
||||||
local theme = utils.feline_theme
|
|
||||||
local vi_mode_colors = utils.feline_vi_mode_colors
|
|
||||||
|
|
||||||
local left = {
|
|
||||||
c.vim_mode,
|
|
||||||
c.file_info,
|
|
||||||
-- c.gitBranch,
|
|
||||||
-- c.gitDiffAdded,
|
|
||||||
-- c.gitDiffRemoved,
|
|
||||||
-- c.gitDiffChanged,
|
|
||||||
-- c.separator,
|
|
||||||
c.diagnostic_errors,
|
|
||||||
c.diagnostic_warnings,
|
|
||||||
c.diagnostic_info,
|
|
||||||
c.diagnostic_hints,
|
|
||||||
}
|
|
||||||
|
|
||||||
local middle = {
|
|
||||||
c.lsp_client_names,
|
|
||||||
c.separator,
|
|
||||||
}
|
|
||||||
|
|
||||||
local right = {
|
|
||||||
c.file_type,
|
|
||||||
c.search_count,
|
|
||||||
c.macro,
|
|
||||||
c.file_encoding,
|
|
||||||
c.position,
|
|
||||||
c.line_percentage,
|
|
||||||
c.scroll_bar,
|
|
||||||
}
|
|
||||||
|
|
||||||
local components = {
|
|
||||||
active = {
|
|
||||||
left,
|
|
||||||
middle,
|
|
||||||
right,
|
|
||||||
},
|
|
||||||
inactive = {
|
|
||||||
left,
|
|
||||||
middle,
|
|
||||||
right,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
feline.setup {
|
|
||||||
components = components,
|
|
||||||
theme = theme,
|
|
||||||
vi_mode_colors = vi_mode_colors,
|
|
||||||
}
|
|
||||||
end,
|
|
||||||
}
|
|
@ -1,12 +1,14 @@
|
|||||||
return {
|
return {
|
||||||
'folke/which-key.nvim',
|
'folke/which-key.nvim',
|
||||||
'nvim-lua/plenary.nvim',
|
'nvim-lua/plenary.nvim',
|
||||||
'mfussenegger/nvim-jdtls',
|
-- 'mfussenegger/nvim-jdtls',
|
||||||
'simrat39/rust-tools.nvim',
|
-- 'simrat39/rust-tools.nvim',
|
||||||
'MunifTanjim/nui.nvim',
|
-- 'MunifTanjim/nui.nvim',
|
||||||
|
{'rush-rs/tree-sitter-asm', ft = 'asm'},
|
||||||
{ 'jghauser/mkdir.nvim', lazy = false },
|
{ 'jghauser/mkdir.nvim', lazy = false },
|
||||||
{
|
{
|
||||||
url = 'https://dev.filnar.com/fiplox/neogruber.nvim',
|
-- url = 'https://dev.filnar.com/fiplox/neogruber.nvim',
|
||||||
|
dir = '~/dev/neogruber.nvim/',
|
||||||
lazy = false,
|
lazy = false,
|
||||||
-- event = 'VeryLazy'
|
-- event = 'VeryLazy'
|
||||||
},
|
},
|
||||||
@ -16,7 +18,7 @@ return {
|
|||||||
keys = { { 's', ':HopChar2<cr>' }, { 'S', ':HopWord<cr>' } },
|
keys = { { 's', ':HopChar2<cr>' }, { 'S', ':HopWord<cr>' } },
|
||||||
config = true,
|
config = true,
|
||||||
},
|
},
|
||||||
{
|
--[[ {
|
||||||
'stevearc/dressing.nvim',
|
'stevearc/dressing.nvim',
|
||||||
lazy = true,
|
lazy = true,
|
||||||
init = function()
|
init = function()
|
||||||
@ -34,8 +36,8 @@ return {
|
|||||||
trim_prompt = false,
|
trim_prompt = false,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},]]
|
||||||
{
|
--[[ {
|
||||||
'folke/noice.nvim',
|
'folke/noice.nvim',
|
||||||
opts = {
|
opts = {
|
||||||
messages = {
|
messages = {
|
||||||
@ -67,7 +69,7 @@ return {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},]]
|
||||||
{
|
{
|
||||||
'numToStr/Comment.nvim',
|
'numToStr/Comment.nvim',
|
||||||
-- event = 'VeryLazy',
|
-- event = 'VeryLazy',
|
||||||
@ -256,8 +258,8 @@ return {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
'stevearc/oil.nvim',
|
'stevearc/oil.nvim',
|
||||||
-- lazy = false,
|
lazy = false,
|
||||||
event = 'Syntax',
|
-- event = 'Syntax',
|
||||||
opts = {
|
opts = {
|
||||||
-- Id is automatically added at the beginning, and name at the end
|
-- Id is automatically added at the beginning, and name at the end
|
||||||
-- See :help oil-columns
|
-- See :help oil-columns
|
||||||
@ -369,12 +371,19 @@ return {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'nvim-treesitter/nvim-treesitter',
|
'nvim-treesitter/nvim-treesitter',
|
||||||
-- lazy = false,
|
-- lazy = false,
|
||||||
-- dependencies = { 'nvim-treesitter/playground' },
|
-- dependencies = { 'nvim-treesitter/playground' },
|
||||||
-- dependencies = 'windwp/nvim-ts-autotag',
|
-- dependencies = 'windwp/nvim-ts-autotag',
|
||||||
config = function()
|
config = function()
|
||||||
|
-- require('nvim-treesitter.parsers').get_parser_configs().asm = {
|
||||||
|
-- install_info = {
|
||||||
|
-- url = 'https://github.com/rush-rs/tree-sitter-asm.git',
|
||||||
|
-- files = { 'src/parser.c' },
|
||||||
|
-- branch = 'main',
|
||||||
|
-- },
|
||||||
|
-- }
|
||||||
local configs = require 'nvim-treesitter.configs'
|
local configs = require 'nvim-treesitter.configs'
|
||||||
|
|
||||||
configs.setup {
|
configs.setup {
|
||||||
@ -386,7 +395,7 @@ return {
|
|||||||
-- context_commentstring = { enable = true, config = { css = '// %s' } },
|
-- context_commentstring = { enable = true, config = { css = '// %s' } },
|
||||||
-- indent = {enable = true, disable = {"python", "html", "javascript"}},
|
-- indent = {enable = true, disable = {"python", "html", "javascript"}},
|
||||||
-- TODO seems to be broken
|
-- TODO seems to be broken
|
||||||
indent = { enable = true, disable = { 'python', 'css' } },
|
indent = { enable = false, disable = { 'python', 'css' } },
|
||||||
-- autotag = { enable = true },
|
-- autotag = { enable = true },
|
||||||
}
|
}
|
||||||
end,
|
end,
|
||||||
@ -407,7 +416,8 @@ return {
|
|||||||
fold_closed = '', -- icon used for closed folds
|
fold_closed = '', -- icon used for closed folds
|
||||||
group = true, -- group results by file
|
group = true, -- group results by file
|
||||||
padding = true, -- add an extra new line on top of the list
|
padding = true, -- add an extra new line on top of the list
|
||||||
action_keys = { -- key mappings for actions in the trouble list
|
action_keys = {
|
||||||
|
-- key mappings for actions in the trouble list
|
||||||
-- map to {} to remove a mapping, for example:
|
-- map to {} to remove a mapping, for example:
|
||||||
-- close = {},
|
-- close = {},
|
||||||
close = 'q', -- close the list
|
close = 'q', -- close the list
|
||||||
@ -449,7 +459,7 @@ return {
|
|||||||
'j-morano/buffer_manager.nvim',
|
'j-morano/buffer_manager.nvim',
|
||||||
opts = {
|
opts = {
|
||||||
-- line_keys = '', -- deactivate line keybindings
|
-- line_keys = '', -- deactivate line keybindings
|
||||||
short_file_names = true,
|
short_file_names = false,
|
||||||
short_term_names = false,
|
short_term_names = false,
|
||||||
select_menu_item_commands = {
|
select_menu_item_commands = {
|
||||||
edit = {
|
edit = {
|
||||||
|
@ -1,12 +1,40 @@
|
|||||||
local M = {
|
local M = {
|
||||||
'neovim/nvim-lspconfig',
|
'neovim/nvim-lspconfig',
|
||||||
name = 'lsp',
|
name = 'lsp',
|
||||||
event = { 'BufRead *.lua,*.c,*.rust,*.go,*.py,*.java,*.cpp,*.h' , 'BufNewFile *.lua,*.c,*.rust,*.go,*.py,*.java,*.cpp,*.h' },
|
-- event = { 'BufRead *.lua,*.c,*.rust,*.go,*.py,*.java,*.cpp,*.h,*.asm,*.tex',
|
||||||
|
-- 'BufNewFile *.lua,*.c,*.rust,*.go,*.py,*.java,*.cpp,*.h,*,*.asm,*.tex' },
|
||||||
-- lazy = false,
|
-- lazy = false,
|
||||||
dependencies = { 'hrsh7th/cmp-nvim-lsp', 'williamboman/mason.nvim' },
|
dependencies = { 'hrsh7th/cmp-nvim-lsp', 'williamboman/mason.nvim' },
|
||||||
}
|
}
|
||||||
|
|
||||||
local servers = { 'clangd', 'rust_analyzer', 'lua_ls', 'pyright', 'gopls', 'jdtls' }
|
local servers = { 'clangd', 'rust_analyzer', 'lua_ls', 'pyright', 'gopls', 'jdtls', 'asm_lsp', 'texlab' }
|
||||||
|
|
||||||
|
local function on_attach(client, bufnr)
|
||||||
|
--[[ vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc') ]]
|
||||||
|
if client.name == 'jdt.ls' then
|
||||||
|
client.server_capabilities.documentFormattingProvider = false
|
||||||
|
vim.lsp.codelens.refresh()
|
||||||
|
if JAVA_DAP_ACTIVE then
|
||||||
|
require('jdtls').setup_dap { hotcodereplace = 'auto' }
|
||||||
|
require('jdtls.dap').setup_dap_main_class_configs()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
-- local ft = vim.api.nvim_buf_get_option(bufnr, 'filetype')
|
||||||
|
-- local has_formatter = require('null-ls.sources').get_available(ft, 'NULL_LS_FORMATTING') > 0
|
||||||
|
--
|
||||||
|
-- local enable = false
|
||||||
|
-- if has_formatter and not client.name == 'clangd' then
|
||||||
|
-- enable = client.name == 'null-ls'
|
||||||
|
-- else
|
||||||
|
-- enable = not (client.name == 'null-ls')
|
||||||
|
-- end
|
||||||
|
--
|
||||||
|
-- -- util.info(client.name .. " " .. (enable and "yes" or "no"), "format")
|
||||||
|
-- client.server_capabilities.documentFormattingProvider = enable
|
||||||
|
client.server_capabilities.documentFormattingProvider = true
|
||||||
|
-- client.server_capabilities.semanticTokensProvider = false
|
||||||
|
client.server_capabilities.semanticTokensProvider = nil
|
||||||
|
end
|
||||||
|
|
||||||
function M.config()
|
function M.config()
|
||||||
local utils = require 'config.utils'
|
local utils = require 'config.utils'
|
||||||
@ -17,7 +45,7 @@ function M.config()
|
|||||||
|
|
||||||
for _, server in ipairs(servers) do
|
for _, server in ipairs(servers) do
|
||||||
opts = {
|
opts = {
|
||||||
on_attach = utils.on_attach,
|
on_attach = on_attach,
|
||||||
capabilities = capabilities,
|
capabilities = capabilities,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
46
lua/plugins/lualine.lua
Normal file
46
lua/plugins/lualine.lua
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
return {
|
||||||
|
'nvim-lualine/lualine.nvim',
|
||||||
|
dependencies = {
|
||||||
|
'nvim-tree/nvim-web-devicons',
|
||||||
|
},
|
||||||
|
opts = {
|
||||||
|
options = {
|
||||||
|
icons_enabled = true,
|
||||||
|
theme = 'auto',
|
||||||
|
component_separators = { left = '', right = '' },
|
||||||
|
section_separators = { left = '', right = '' },
|
||||||
|
disabled_filetypes = {
|
||||||
|
statusline = {},
|
||||||
|
winbar = {},
|
||||||
|
},
|
||||||
|
ignore_focus = {},
|
||||||
|
always_divide_middle = true,
|
||||||
|
globalstatus = false,
|
||||||
|
refresh = {
|
||||||
|
statusline = 1000,
|
||||||
|
tabline = 1000,
|
||||||
|
winbar = 1000,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
sections = {
|
||||||
|
lualine_a = { 'mode' },
|
||||||
|
lualine_b = { 'diagnostics' },
|
||||||
|
lualine_c = { 'filename' },
|
||||||
|
lualine_x = { 'encoding', 'fileformat', 'filetype' },
|
||||||
|
lualine_y = { 'progress' },
|
||||||
|
lualine_z = { 'selectioncount', 'location' }
|
||||||
|
},
|
||||||
|
inactive_sections = {
|
||||||
|
lualine_a = {},
|
||||||
|
lualine_b = {},
|
||||||
|
lualine_c = { 'filename' },
|
||||||
|
lualine_x = { 'location' },
|
||||||
|
lualine_y = {},
|
||||||
|
lualine_z = {}
|
||||||
|
},
|
||||||
|
tabline = {},
|
||||||
|
winbar = {},
|
||||||
|
inactive_winbar = {},
|
||||||
|
extensions = {}
|
||||||
|
}
|
||||||
|
}
|
@ -1,58 +0,0 @@
|
|||||||
return {
|
|
||||||
'jose-elias-alvarez/null-ls.nvim',
|
|
||||||
ft = 'markdown',
|
|
||||||
config = function()
|
|
||||||
local null_ls = require 'null-ls'
|
|
||||||
|
|
||||||
-- https://github.com/jose-elias-alvarez/null-ls.nvim/tree/main/lua/null-ls/builtins/formatting
|
|
||||||
local formatting = null_ls.builtins.formatting
|
|
||||||
-- https://github.com/jose-elias-alvarez/null-ls.nvim/tree/main/lua/null-ls/builtins/diagnostics
|
|
||||||
local diagnostics = null_ls.builtins.diagnostics
|
|
||||||
|
|
||||||
null_ls.setup {
|
|
||||||
debug = false,
|
|
||||||
sources = {
|
|
||||||
formatting.prettier.with { extra_args = { '--no-semi', '--single-quote', '--jsx-single-quote' } },
|
|
||||||
formatting.black.with { extra_args = { '--fast' } },
|
|
||||||
formatting.stylua.with { extra_args = { '--quote-style=AutoPreferSingle', '--call-parentheses=None' } },
|
|
||||||
-- formatting.clang_format.with {
|
|
||||||
-- filetypes = { 'c' },
|
|
||||||
-- extra_args = {
|
|
||||||
-- '--style',
|
|
||||||
-- '{BasedOnStyle: LLVM, IndentWidth: 8, UseTab: Always, BreakBeforeBraces: Linux, AllowShortIfStatementsOnASingleLine: false, IndentCaseLabels: false, AlwaysBreakAfterReturnType: AllDefinitions}',
|
|
||||||
-- -- '{AccessModifierOffset : -2, AllowShortIfStatementsOnASingleLine : Never, AlignConsecutiveMacros : true, AllowShortLoopsOnASingleLine : false, AlwaysBreakTemplateDeclarations : true, Standard : c++20, NamespaceIndentation : All, IndentWidth : 4, TabWidth : 4, BreakBeforeBraces : Linux, AllowShortFunctionsOnASingleLine : Empty, AllowShortBlocksOnASingleLine : Never, FixNamespaceComments : true, PointerAlignment : Right, ColumnLimit : 120, ContinuationIndentWidth : 2, UseTab : Always }',
|
|
||||||
-- },
|
|
||||||
-- },
|
|
||||||
formatting.clang_format.with {
|
|
||||||
filetypes = { 'cpp' },
|
|
||||||
extra_args = {
|
|
||||||
'--style',
|
|
||||||
'google',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
formatting.beautysh,
|
|
||||||
formatting.goimports,
|
|
||||||
formatting.gofumpt,
|
|
||||||
formatting.sql_formatter,
|
|
||||||
diagnostics.golangci_lint.with {
|
|
||||||
extra_args = {
|
|
||||||
'-E',
|
|
||||||
'revive',
|
|
||||||
'-E',
|
|
||||||
'errcheck',
|
|
||||||
'-E',
|
|
||||||
'gosec',
|
|
||||||
'-E',
|
|
||||||
'nilerr',
|
|
||||||
'-E',
|
|
||||||
'nlreturn',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
formatting.asmfmt.with {
|
|
||||||
filetypes = { 'asm', 's' },
|
|
||||||
},
|
|
||||||
-- diagnostics.flake8
|
|
||||||
},
|
|
||||||
}
|
|
||||||
end,
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user