2022-11-04 18:24:22 +00:00
|
|
|
require('lualine').setup {
|
|
|
|
options = {
|
|
|
|
icons_enabled = true,
|
|
|
|
theme = 'dracula',
|
|
|
|
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 = { 'branch', 'diff', 'diagnostics' },
|
|
|
|
lualine_c = { 'filename' },
|
|
|
|
lualine_x = { 'encoding', 'fileformat', 'filetype' },
|
|
|
|
lualine_y = { 'progress' },
|
|
|
|
lualine_z = { 'tabs' }
|
|
|
|
},
|
|
|
|
inactive_sections = {
|
|
|
|
lualine_a = {},
|
|
|
|
lualine_b = {},
|
|
|
|
lualine_c = { 'filename' },
|
|
|
|
lualine_x = { 'location' },
|
|
|
|
lualine_y = {},
|
|
|
|
lualine_z = {}
|
|
|
|
},
|
|
|
|
tabline = {},
|
|
|
|
winbar = {},
|
|
|
|
inactive_winbar = {},
|
|
|
|
extensions = {
|
|
|
|
'quickfix',
|
|
|
|
'nvim-tree',
|
|
|
|
'symbols-outline',
|
|
|
|
'fugitive',
|
|
|
|
'man'
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
2022-10-28 18:55:05 +00:00
|
|
|
-- load lsp and dependencies
|
2022-10-16 17:04:48 +00:00
|
|
|
require("mason").setup()
|
2022-10-21 14:41:35 +00:00
|
|
|
require("mason-lspconfig").setup({
|
|
|
|
ensure_installed = {
|
|
|
|
"bashls",
|
|
|
|
"pyright",
|
2022-10-28 18:55:05 +00:00
|
|
|
"pylsp",
|
|
|
|
--"pyre",
|
2022-10-21 14:41:35 +00:00
|
|
|
"perlnavigator",
|
|
|
|
"dockerls",
|
|
|
|
"kotlin_language_server",
|
|
|
|
"intelephense",
|
2022-10-28 18:55:05 +00:00
|
|
|
"eslint",
|
|
|
|
"tsserver",
|
|
|
|
"cssls",
|
|
|
|
"cssmodules_ls",
|
|
|
|
"diagnosticls",
|
|
|
|
"jsonls",
|
|
|
|
"sumneko_lua",
|
|
|
|
"sqlls",
|
|
|
|
"yamlls",
|
2022-10-31 18:38:32 +00:00
|
|
|
"lemminx",
|
|
|
|
"marksman"
|
2022-10-21 14:41:35 +00:00
|
|
|
}
|
|
|
|
})
|
2022-10-16 17:04:48 +00:00
|
|
|
|
2022-10-18 18:59:31 +00:00
|
|
|
-- setup minimap
|
|
|
|
local codewindow = require('codewindow')
|
|
|
|
codewindow.setup({
|
|
|
|
minimap_width = 20, -- The width of the text part of the minimap
|
|
|
|
width_multiplier = 4, -- How many characters one dot represents
|
|
|
|
use_lsp = true, -- Use the builtin LSP to show errors and warnings
|
|
|
|
use_treesitter = true, -- Use nvim-treesitter to highlight the code
|
2022-10-24 15:58:34 +00:00
|
|
|
show_cursor = true,
|
2022-10-18 18:59:31 +00:00
|
|
|
exclude_filetypes = {}, -- Choose certain filetypes to not show minimap on
|
|
|
|
z_index = 1, -- The z-index the floating window will be on
|
2022-11-02 13:33:54 +00:00
|
|
|
})
|
2022-10-18 18:59:31 +00:00
|
|
|
codewindow.apply_default_keybinds()
|
|
|
|
|
2022-10-27 20:08:57 +00:00
|
|
|
|
2022-10-27 17:14:44 +00:00
|
|
|
-- Set up nvim-cmp.
|
2022-11-02 13:33:54 +00:00
|
|
|
local cmp = require 'cmp'
|
|
|
|
local lspkind = require('lspkind')
|
2022-10-27 17:14:44 +00:00
|
|
|
|
|
|
|
cmp.setup({
|
2022-11-02 13:33:54 +00:00
|
|
|
snippet = {
|
|
|
|
-- REQUIRED - you must specify a snippet engine
|
|
|
|
expand = function(args)
|
|
|
|
require('luasnip').lsp_expand(args.body) -- For `luasnip` users.
|
|
|
|
end,
|
2022-11-02 11:39:26 +00:00
|
|
|
},
|
2022-11-02 13:33:54 +00:00
|
|
|
window = {
|
|
|
|
-- completion = cmp.config.window.bordered(),
|
|
|
|
-- documentation = cmp.config.window.bordered(),
|
2022-10-27 17:14:44 +00:00
|
|
|
},
|
|
|
|
mapping = cmp.mapping.preset.insert({
|
2022-11-02 13:33:54 +00:00
|
|
|
['<C-b>'] = cmp.mapping.scroll_docs(-4),
|
|
|
|
['<C-f>'] = cmp.mapping.scroll_docs(4),
|
|
|
|
['<C-Space>'] = cmp.mapping.complete(),
|
|
|
|
['<C-e>'] = cmp.mapping.abort(),
|
|
|
|
['<CR>'] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
|
2022-10-27 17:14:44 +00:00
|
|
|
}),
|
|
|
|
sources = cmp.config.sources({
|
2022-11-02 13:33:54 +00:00
|
|
|
{ name = 'nvim_lsp' },
|
|
|
|
--{ name = 'vsnip' }, -- For vsnip users.
|
|
|
|
{ name = 'luasnip' }, -- For luasnip users.
|
|
|
|
-- { name = 'ultisnips' }, -- For ultisnips users.
|
|
|
|
-- { name = 'snippy' }, -- For snippy users.
|
2022-10-27 17:14:44 +00:00
|
|
|
}, {
|
2022-11-02 13:33:54 +00:00
|
|
|
{ name = 'buffer' },
|
|
|
|
{ name = 'path' },
|
|
|
|
}),
|
|
|
|
formatting = {
|
2022-11-04 18:24:22 +00:00
|
|
|
format = lspkind.cmp_format({
|
|
|
|
--mode = 'symbol', -- show only symbol annotations
|
|
|
|
maxwidth = 50, -- prevent the popup from showing more than provided characters (e.g 50 will not show more than 50 characters)
|
|
|
|
ellipsis_char = '...', -- when popup menu exceed maxwidth, the truncated part would show ellipsis_char instead (must define maxwidth first)
|
|
|
|
})
|
|
|
|
}
|
2022-10-27 17:14:44 +00:00
|
|
|
})
|
|
|
|
|
|
|
|
-- Set configuration for specific filetype.
|
|
|
|
cmp.setup.filetype('gitcommit', {
|
2022-11-02 13:33:54 +00:00
|
|
|
sources = cmp.config.sources({
|
|
|
|
{ name = 'cmp_git' }, -- You can specify the `cmp_git` source if you were installed it.
|
|
|
|
}, {
|
|
|
|
{ name = 'buffer' },
|
|
|
|
})
|
2022-10-27 17:14:44 +00:00
|
|
|
})
|
|
|
|
|
|
|
|
-- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore).
|
|
|
|
cmp.setup.cmdline({ '/', '?' }, {
|
|
|
|
mapping = cmp.mapping.preset.cmdline(),
|
|
|
|
sources = {
|
2022-11-02 13:33:54 +00:00
|
|
|
{ name = 'buffer' }
|
2022-10-27 17:14:44 +00:00
|
|
|
}
|
|
|
|
})
|
|
|
|
|
|
|
|
-- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore).
|
|
|
|
cmp.setup.cmdline(':', {
|
|
|
|
mapping = cmp.mapping.preset.cmdline(),
|
|
|
|
sources = cmp.config.sources({
|
2022-11-02 13:33:54 +00:00
|
|
|
{ name = 'path' }
|
|
|
|
}, {
|
|
|
|
{ name = 'cmdline' }
|
|
|
|
})
|
2022-10-27 17:14:44 +00:00
|
|
|
})
|
|
|
|
|
2022-10-06 12:01:05 +00:00
|
|
|
require("nvim-tree").setup({
|
2022-10-09 14:30:57 +00:00
|
|
|
create_in_closed_folder = true,
|
|
|
|
hijack_cursor = true,
|
|
|
|
open_on_setup = true,
|
|
|
|
open_on_setup_file = true,
|
|
|
|
sync_root_with_cwd = true,
|
|
|
|
view = {
|
2022-11-02 13:33:54 +00:00
|
|
|
adaptive_size = true,
|
2022-10-09 14:30:57 +00:00
|
|
|
},
|
|
|
|
renderer = {
|
2022-11-02 13:33:54 +00:00
|
|
|
full_name = true,
|
|
|
|
group_empty = true,
|
|
|
|
special_files = {},
|
|
|
|
symlink_destination = false,
|
|
|
|
indent_markers = {
|
|
|
|
enable = true,
|
|
|
|
},
|
|
|
|
icons = {
|
|
|
|
git_placement = "signcolumn",
|
|
|
|
show = {
|
|
|
|
file = true,
|
|
|
|
folder = true,
|
|
|
|
folder_arrow = true,
|
|
|
|
git = true,
|
|
|
|
},
|
2022-10-09 14:30:57 +00:00
|
|
|
},
|
|
|
|
},
|
|
|
|
update_focused_file = {
|
2022-11-02 13:33:54 +00:00
|
|
|
enable = true,
|
|
|
|
update_root = true,
|
|
|
|
ignore_list = { "help" },
|
2022-10-09 14:30:57 +00:00
|
|
|
},
|
|
|
|
diagnostics = {
|
2022-11-02 13:33:54 +00:00
|
|
|
enable = true,
|
|
|
|
show_on_dirs = true,
|
2022-10-09 14:30:57 +00:00
|
|
|
},
|
|
|
|
filters = {
|
2022-11-02 13:33:54 +00:00
|
|
|
custom = {
|
|
|
|
"^.git$",
|
|
|
|
"^.mypy_cache$",
|
|
|
|
},
|
2022-10-09 14:30:57 +00:00
|
|
|
},
|
|
|
|
actions = {
|
2022-11-02 13:33:54 +00:00
|
|
|
change_dir = {
|
|
|
|
enable = false,
|
|
|
|
restrict_above_cwd = true,
|
|
|
|
},
|
|
|
|
open_file = {
|
|
|
|
resize_window = true,
|
|
|
|
},
|
|
|
|
remove_file = {
|
|
|
|
close_window = false,
|
|
|
|
},
|
2022-10-09 14:30:57 +00:00
|
|
|
},
|
|
|
|
log = {
|
2022-11-02 13:33:54 +00:00
|
|
|
enable = false,
|
|
|
|
truncate = true,
|
|
|
|
types = {
|
|
|
|
all = false,
|
|
|
|
config = false,
|
|
|
|
copy_paste = false,
|
|
|
|
diagnostics = false,
|
|
|
|
git = false,
|
|
|
|
profile = false,
|
|
|
|
watcher = false,
|
|
|
|
},
|
2022-10-09 14:30:57 +00:00
|
|
|
},
|
2022-11-02 13:33:54 +00:00
|
|
|
})
|
2022-10-09 10:14:32 +00:00
|
|
|
|
|
|
|
--Gruvbox theme settings
|
|
|
|
-- setup must be called before loading the colorscheme
|
|
|
|
require("gruvbox").setup({
|
2022-11-02 13:33:54 +00:00
|
|
|
undercurl = true,
|
|
|
|
underline = true,
|
|
|
|
bold = true,
|
|
|
|
italic = false, -- default=true
|
|
|
|
strikethrough = true,
|
|
|
|
invert_selection = false,
|
|
|
|
invert_signs = false,
|
|
|
|
invert_tabline = false,
|
|
|
|
invert_intend_guides = false,
|
|
|
|
inverse = true, -- invert background for search, diffs, statuslines and errors
|
|
|
|
contrast = "hard", -- can be "hard", "soft" or empty string
|
|
|
|
palette_overrides = {},
|
|
|
|
overrides = {},
|
|
|
|
dim_inactive = true, -- default=false
|
|
|
|
transparent_mode = false,
|
2022-10-09 10:14:32 +00:00
|
|
|
})
|
|
|
|
|
2022-11-02 13:33:54 +00:00
|
|
|
require('bufferline').setup {
|
|
|
|
options = {
|
|
|
|
mode = "buffers", -- set to "tabs" to only show tabpages instead
|
|
|
|
numbers = "buffer_id",
|
|
|
|
close_command = "bdelete! %d", -- can be a string | function, see "Mouse actions"
|
|
|
|
right_mouse_command = "bdelete! %d", -- can be a string | function, see "Mouse actions"
|
|
|
|
left_mouse_command = "buffer %d", -- can be a string | function, see "Mouse actions"
|
|
|
|
middle_mouse_command = nil, -- can be a string | function, see "Mouse actions"
|
|
|
|
indicator = {
|
|
|
|
icon = '>', -- this should be omitted if indicator style is not 'icon'
|
|
|
|
style = 'icon',
|
|
|
|
},
|
|
|
|
buffer_close_icon = '',
|
|
|
|
modified_icon = '●',
|
|
|
|
close_icon = '',
|
|
|
|
left_trunc_marker = '',
|
|
|
|
right_trunc_marker = '',
|
|
|
|
max_name_length = 18,
|
|
|
|
max_prefix_length = 15, -- prefix used when a buffer is de-duplicated
|
|
|
|
truncate_names = true, -- whether or not tab names should be truncated
|
|
|
|
tab_size = 18,
|
|
|
|
diagnostics = "coc",
|
|
|
|
diagnostics_update_in_insert = false,
|
|
|
|
-- The diagnostics indicator can be set to nil to keep the buffer name highlight but delete the highlighting
|
|
|
|
color_icons = true, -- whether or not to add the filetype icon highlights
|
|
|
|
show_buffer_icons = true, -- disable filetype icons for buffers
|
|
|
|
show_buffer_close_icons = true,
|
|
|
|
show_buffer_default_icon = true, -- whether or not an unrecognised filetype should show a default icon
|
|
|
|
show_close_icon = false,
|
|
|
|
show_tab_indicators = true,
|
|
|
|
show_duplicate_prefix = true, -- whether to show duplicate buffer prefix
|
|
|
|
persist_buffer_sort = true, -- whether or not custom sorted buffers should persist
|
|
|
|
-- can also be a table containing 2 custom separators
|
|
|
|
-- [focused and unfocused]. eg: { '|', '|' }
|
|
|
|
separator_style = "thick",
|
|
|
|
enforce_regular_tabs = false,
|
|
|
|
always_show_bufferline = true,
|
|
|
|
hover = {
|
|
|
|
enabled = true,
|
|
|
|
delay = 200,
|
|
|
|
reveal = { 'close' }
|
|
|
|
},
|
2022-11-04 18:24:22 +00:00
|
|
|
sort_by = 'tabs',
|
2022-10-23 18:58:08 +00:00
|
|
|
}
|
2022-11-02 13:33:54 +00:00
|
|
|
}
|