add completion icons, and path completion

This commit is contained in:
Szwendacz99 2022-11-02 14:33:54 +01:00
parent c4c719241d
commit d09b527e0f
3 changed files with 164 additions and 150 deletions

View file

@ -12,10 +12,13 @@ Plug 'hrsh7th/nvim-cmp'
Plug 'williamboman/mason.nvim' Plug 'williamboman/mason.nvim'
Plug 'williamboman/mason-lspconfig.nvim' Plug 'williamboman/mason-lspconfig.nvim'
Plug 'mfussenegger/nvim-lint' Plug 'mfussenegger/nvim-lint'
"Plug 'dense-analysis/ale' Plug 'onsails/lspkind.nvim'
" various plugins " various plugins
Plug 'windwp/nvim-ts-autotag'
Plug 'hrsh7th/cmp-path'
Plug 'L3MON4D3/LuaSnip', {'tag': 'v1.*'} Plug 'L3MON4D3/LuaSnip', {'tag': 'v1.*'}
Plug 'saadparwaiz1/cmp_luasnip'
Plug 'lambdalisue/suda.vim' Plug 'lambdalisue/suda.vim'
Plug 'airblade/vim-gitgutter' Plug 'airblade/vim-gitgutter'
Plug 'akinsho/bufferline.nvim', { 'tag': 'v3.*' } Plug 'akinsho/bufferline.nvim', { 'tag': 'v3.*' }

View file

@ -34,56 +34,65 @@ codewindow.setup({
show_cursor = true, show_cursor = true,
exclude_filetypes = {}, -- Choose certain filetypes to not show minimap on exclude_filetypes = {}, -- Choose certain filetypes to not show minimap on
z_index = 1, -- The z-index the floating window will be on z_index = 1, -- The z-index the floating window will be on
}) })
codewindow.apply_default_keybinds() codewindow.apply_default_keybinds()
-- Set up nvim-cmp. -- Set up nvim-cmp.
local cmp = require'cmp' local cmp = require 'cmp'
local lspkind = require('lspkind')
cmp.setup({ cmp.setup({
snippet = { snippet = {
-- REQUIRED - you must specify a snippet engine -- REQUIRED - you must specify a snippet engine
expand = function(args) expand = function(args)
require('luasnip').lsp_expand(args.body) -- For `luasnip` users. require('luasnip').lsp_expand(args.body) -- For `luasnip` users.
end, end,
}, },
window = { window = {
-- completion = cmp.config.window.bordered(), -- completion = cmp.config.window.bordered(),
-- documentation = cmp.config.window.bordered(), -- documentation = cmp.config.window.bordered(),
}, },
mapping = cmp.mapping.preset.insert({ mapping = cmp.mapping.preset.insert({
['<C-b>'] = cmp.mapping.scroll_docs(-4), ['<C-b>'] = cmp.mapping.scroll_docs(-4),
['<C-f>'] = cmp.mapping.scroll_docs(4), ['<C-f>'] = cmp.mapping.scroll_docs(4),
['<C-Space>'] = cmp.mapping.complete(), ['<C-Space>'] = cmp.mapping.complete(),
['<C-e>'] = cmp.mapping.abort(), ['<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. ['<CR>'] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
}), }),
sources = cmp.config.sources({ sources = cmp.config.sources({
{ name = 'nvim_lsp' }, { name = 'nvim_lsp' },
{ name = 'vsnip' }, -- For vsnip users. --{ name = 'vsnip' }, -- For vsnip users.
-- { name = 'luasnip' }, -- For luasnip users. { name = 'luasnip' }, -- For luasnip users.
-- { name = 'ultisnips' }, -- For ultisnips users. -- { name = 'ultisnips' }, -- For ultisnips users.
-- { name = 'snippy' }, -- For snippy users. -- { name = 'snippy' }, -- For snippy users.
}, { }, {
{ name = 'buffer' }, { name = 'buffer' },
{ name = 'path' },
}),
formatting = {
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)
}) })
}
}) })
-- Set configuration for specific filetype. -- Set configuration for specific filetype.
cmp.setup.filetype('gitcommit', { cmp.setup.filetype('gitcommit', {
sources = cmp.config.sources({ sources = cmp.config.sources({
{ name = 'cmp_git' }, -- You can specify the `cmp_git` source if you were installed it. { name = 'cmp_git' }, -- You can specify the `cmp_git` source if you were installed it.
}, { }, {
{ name = 'buffer' }, { name = 'buffer' },
}) })
}) })
-- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore). -- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore).
cmp.setup.cmdline({ '/', '?' }, { cmp.setup.cmdline({ '/', '?' }, {
mapping = cmp.mapping.preset.cmdline(), mapping = cmp.mapping.preset.cmdline(),
sources = { sources = {
{ name = 'buffer' } { name = 'buffer' }
} }
}) })
@ -91,13 +100,12 @@ cmp.setup.cmdline({ '/', '?' }, {
cmp.setup.cmdline(':', { cmp.setup.cmdline(':', {
mapping = cmp.mapping.preset.cmdline(), mapping = cmp.mapping.preset.cmdline(),
sources = cmp.config.sources({ sources = cmp.config.sources({
{ name = 'path' } { name = 'path' }
}, { }, {
{ name = 'cmdline' } { name = 'cmdline' }
}) })
}) })
require("nvim-tree").setup({ require("nvim-tree").setup({
create_in_closed_folder = true, create_in_closed_folder = true,
hijack_cursor = true, hijack_cursor = true,
@ -105,141 +113,141 @@ require("nvim-tree").setup({
open_on_setup_file = true, open_on_setup_file = true,
sync_root_with_cwd = true, sync_root_with_cwd = true,
view = { view = {
adaptive_size = true, adaptive_size = true,
}, },
renderer = { renderer = {
full_name = true, full_name = true,
group_empty = true, group_empty = true,
special_files = {}, special_files = {},
symlink_destination = false, symlink_destination = false,
indent_markers = { indent_markers = {
enable = true, enable = true,
}, },
icons = { icons = {
git_placement = "signcolumn", git_placement = "signcolumn",
show = { show = {
file = true, file = true,
folder = true, folder = true,
folder_arrow = true, folder_arrow = true,
git = true, git = true,
},
}, },
},
}, },
update_focused_file = { update_focused_file = {
enable = true, enable = true,
update_root = true, update_root = true,
ignore_list = { "help" }, ignore_list = { "help" },
}, },
diagnostics = { diagnostics = {
enable = true, enable = true,
show_on_dirs = true, show_on_dirs = true,
}, },
filters = { filters = {
custom = { custom = {
"^.git$", "^.git$",
"^.mypy_cache$", "^.mypy_cache$",
}, },
}, },
actions = { actions = {
change_dir = { change_dir = {
enable = false, enable = false,
restrict_above_cwd = true, restrict_above_cwd = true,
}, },
open_file = { open_file = {
resize_window = true, resize_window = true,
}, },
remove_file = { remove_file = {
close_window = false, close_window = false,
}, },
}, },
log = { log = {
enable = false, enable = false,
truncate = true, truncate = true,
types = { types = {
all = false, all = false,
config = false, config = false,
copy_paste = false, copy_paste = false,
diagnostics = false, diagnostics = false,
git = false, git = false,
profile = false, profile = false,
watcher = false, watcher = false,
}, },
}, },
}) })
--Gruvbox theme settings --Gruvbox theme settings
-- setup must be called before loading the colorscheme -- setup must be called before loading the colorscheme
require("gruvbox").setup({ require("gruvbox").setup({
undercurl = true, undercurl = true,
underline = true, underline = true,
bold = true, bold = true,
italic = false, -- default=true italic = false, -- default=true
strikethrough = true, strikethrough = true,
invert_selection = false, invert_selection = false,
invert_signs = false, invert_signs = false,
invert_tabline = false, invert_tabline = false,
invert_intend_guides = false, invert_intend_guides = false,
inverse = true, -- invert background for search, diffs, statuslines and errors inverse = true, -- invert background for search, diffs, statuslines and errors
contrast = "hard", -- can be "hard", "soft" or empty string contrast = "hard", -- can be "hard", "soft" or empty string
palette_overrides = {}, palette_overrides = {},
overrides = {}, overrides = {},
dim_inactive = true, -- default=false dim_inactive = true, -- default=false
transparent_mode = false, transparent_mode = false,
}) })
require('bufferline').setup { require('bufferline').setup {
options = { options = {
mode = "buffers", -- set to "tabs" to only show tabpages instead mode = "buffers", -- set to "tabs" to only show tabpages instead
numbers = "buffer_id", numbers = "buffer_id",
close_command = "bdelete! %d", -- can be a string | function, see "Mouse actions" 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" 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" 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" middle_mouse_command = nil, -- can be a string | function, see "Mouse actions"
indicator = { indicator = {
icon = '>', -- this should be omitted if indicator style is not 'icon' icon = '>', -- this should be omitted if indicator style is not 'icon'
style = 'icon', style = 'icon',
}, },
buffer_close_icon = '', buffer_close_icon = '',
modified_icon = '', modified_icon = '',
close_icon = '', close_icon = '',
left_trunc_marker = '', left_trunc_marker = '',
right_trunc_marker = '', right_trunc_marker = '',
--- name_formatter can be used to change the buffer's label in the bufferline. --- name_formatter can be used to change the buffer's label in the bufferline.
--- Please note some names can/will break the --- Please note some names can/will break the
--- bufferline so use this at your discretion knowing that it has --- bufferline so use this at your discretion knowing that it has
--- some limitations that will *NOT* be fixed. --- some limitations that will *NOT* be fixed.
name_formatter = function(buf) -- buf contains: name_formatter = function(buf) -- buf contains:
-- name | str | the basename of the active file -- name | str | the basename of the active file
-- path | str | the full path of the active file -- path | str | the full path of the active file
-- bufnr (buffer only) | int | the number of the active buffer -- bufnr (buffer only) | int | the number of the active buffer
-- buffers (tabs only) | table(int) | the numbers of the buffers in the tab -- buffers (tabs only) | table(int) | the numbers of the buffers in the tab
-- tabnr (tabs only) | int | the "handle" of the tab, can be converted to its ordinal number using: `vim.api.nvim_tabpage_get_number(buf.tabnr)` -- tabnr (tabs only) | int | the "handle" of the tab, can be converted to its ordinal number using: `vim.api.nvim_tabpage_get_number(buf.tabnr)`
end, end,
max_name_length = 18, max_name_length = 18,
max_prefix_length = 15, -- prefix used when a buffer is de-duplicated max_prefix_length = 15, -- prefix used when a buffer is de-duplicated
truncate_names = true, -- whether or not tab names should be truncated truncate_names = true, -- whether or not tab names should be truncated
tab_size = 18, tab_size = 18,
diagnostics = "coc", diagnostics = "coc",
diagnostics_update_in_insert = false, diagnostics_update_in_insert = false,
-- The diagnostics indicator can be set to nil to keep the buffer name highlight but delete the highlighting -- 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 color_icons = true, -- whether or not to add the filetype icon highlights
show_buffer_icons = true, -- disable filetype icons for buffers show_buffer_icons = true, -- disable filetype icons for buffers
show_buffer_close_icons = true, show_buffer_close_icons = true,
show_buffer_default_icon = true, -- whether or not an unrecognised filetype should show a default icon show_buffer_default_icon = true, -- whether or not an unrecognised filetype should show a default icon
show_close_icon = false, show_close_icon = false,
show_tab_indicators = true, show_tab_indicators = true,
show_duplicate_prefix = true, -- whether to show duplicate buffer prefix show_duplicate_prefix = true, -- whether to show duplicate buffer prefix
persist_buffer_sort = true, -- whether or not custom sorted buffers should persist persist_buffer_sort = true, -- whether or not custom sorted buffers should persist
-- can also be a table containing 2 custom separators -- can also be a table containing 2 custom separators
-- [focused and unfocused]. eg: { '|', '|' } -- [focused and unfocused]. eg: { '|', '|' }
separator_style = "thick", separator_style = "thick",
enforce_regular_tabs = false, enforce_regular_tabs = false,
always_show_bufferline = true, always_show_bufferline = true,
hover = { hover = {
enabled = true, enabled = true,
delay = 200, delay = 200,
reveal = {'close'} reveal = { 'close' }
}, },
sort_by = 'tabs' sort_by = 'tabs'
}
} }
}

View file

@ -7,6 +7,9 @@ require('lint').linters_by_ft = {
local pydocstyle = require('lint.linters.pydocstyle') local pydocstyle = require('lint.linters.pydocstyle')
pydocstyle.args = { pydocstyle.args = {
'--ignore=D100', -- disable missing module docstring info '--ignore=D100', -- disable missing module docstring info
'--ignore=D203', -- disable one line before class docstring required
'--ignore=D213', -- disable multiline docstring summary
-- should start at the second line
} }
local pylint = require('lint.linters.pylint') local pylint = require('lint.linters.pylint')
pylint.args = { pylint.args = {