working new nvim config, but not quite as good as coc-land yet
This commit is contained in:
parent
d60d88a930
commit
52e8ee033c
|
@ -76,9 +76,6 @@ in
|
|||
csv-vim
|
||||
rainbow_parentheses-vim
|
||||
vim-surround
|
||||
bufferline-nvim
|
||||
feline-nvim
|
||||
nvim-web-devicons
|
||||
vim-devicons
|
||||
# kitaab stuff
|
||||
vimwiki
|
||||
|
@ -86,6 +83,7 @@ in
|
|||
vim-zettel
|
||||
telescope-nvim
|
||||
plenary-nvim
|
||||
bufferline-nvim
|
||||
# lsp stuff
|
||||
ale
|
||||
nvim-lspconfig
|
||||
|
@ -278,314 +276,56 @@ in
|
|||
|
||||
" lua config
|
||||
lua <<EOF
|
||||
-- Setup nvim-cmp.
|
||||
local cmp = require'cmp'
|
||||
cmp.setup({
|
||||
mapping = {
|
||||
['<C-b>'] = cmp.mapping(cmp.mapping.scroll_docs(-4), { 'i', 'c' }),
|
||||
['<C-f>'] = cmp.mapping(cmp.mapping.scroll_docs(4), { 'i', 'c' }),
|
||||
['<C-Space>'] = cmp.mapping(cmp.mapping.complete(), { 'i', 'c' }),
|
||||
['<C-y>'] = cmp.config.disable, -- Specify `cmp.config.disable` if you want to remove the default `<C-y>` mapping.
|
||||
['<C-e>'] = cmp.mapping({
|
||||
i = cmp.mapping.abort(),
|
||||
c = cmp.mapping.close(),
|
||||
}),
|
||||
['<CR>'] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
|
||||
},
|
||||
sources = cmp.config.sources({
|
||||
{ name = 'nvim_lsp' },
|
||||
}, {
|
||||
{ name = 'buffer' },
|
||||
})
|
||||
})
|
||||
-- Use buffer source for `/` (if you enabled `native_menu`, this won't work anymore).
|
||||
cmp.setup.cmdline('/', {
|
||||
sources = {
|
||||
{ name = 'buffer' },
|
||||
{ name = "nvim_lsp"},
|
||||
{ name = "path" },
|
||||
{ name = 'conjure'},
|
||||
{ name = 'cmp_tabnine'},
|
||||
}
|
||||
})
|
||||
-- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore).
|
||||
cmp.setup.cmdline(':', {
|
||||
sources = cmp.config.sources({
|
||||
{ name = 'path' }
|
||||
}, {
|
||||
{ name = 'cmdline' }
|
||||
})
|
||||
})
|
||||
-- Setup nvim-cmp.
|
||||
local cmp = require'cmp'
|
||||
cmp.setup({
|
||||
mapping = {
|
||||
['<C-b>'] = cmp.mapping(cmp.mapping.scroll_docs(-4), { 'i', 'c' }),
|
||||
['<C-f>'] = cmp.mapping(cmp.mapping.scroll_docs(4), { 'i', 'c' }),
|
||||
['<C-Space>'] = cmp.mapping(cmp.mapping.complete(), { 'i', 'c' }),
|
||||
['<C-y>'] = cmp.config.disable, -- Specify `cmp.config.disable` if you want to remove the default `<C-y>` mapping.
|
||||
['<C-e>'] = cmp.mapping({
|
||||
i = cmp.mapping.abort(),
|
||||
c = cmp.mapping.close(),
|
||||
}),
|
||||
['<CR>'] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
|
||||
},
|
||||
sources = cmp.config.sources({
|
||||
{ name = 'nvim_lsp' },
|
||||
}, {
|
||||
{ name = 'buffer' },
|
||||
})
|
||||
})
|
||||
-- Use buffer source for `/` (if you enabled `native_menu`, this won't work anymore).
|
||||
cmp.setup.cmdline('/', {
|
||||
sources = {
|
||||
{ name = 'buffer' },
|
||||
{ name = "nvim_lsp"},
|
||||
{ name = "path" },
|
||||
{ name = 'conjure'},
|
||||
{ name = 'cmp_tabnine'},
|
||||
}
|
||||
})
|
||||
-- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore).
|
||||
cmp.setup.cmdline(':', {
|
||||
sources = cmp.config.sources({
|
||||
{ name = 'path' }
|
||||
}, {
|
||||
{ name = 'cmdline' }
|
||||
})
|
||||
})
|
||||
|
||||
-- Setup lspconfig.
|
||||
local capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities())
|
||||
require'lspconfig'nvim_lsp.setup {}
|
||||
require'lspconfig'clojure_lsp.setup {}
|
||||
require'lspconfig'rnix.setup {}
|
||||
require'lspconfig'pylsp.setup {}
|
||||
require'lspconfig'terraform_lsp.setup {}
|
||||
-- Setup lspconfig.
|
||||
-- local capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities())
|
||||
-- require'lspconfig'nvim_lsp.setup {}
|
||||
-- require'lspconfig'clojure_lsp.setup {}
|
||||
-- require'lspconfig'rnix.setup {}
|
||||
-- require'lspconfig'pylsp.setup {}
|
||||
-- require'lspconfig'terraform_lsp.setup {}
|
||||
|
||||
-- Feline
|
||||
local colors = require 'theme.colors'
|
||||
local lsp = require 'feline.providers.lsp'
|
||||
local vi_mode_utils = require 'feline.providers.vi_mode'
|
||||
local vi_mode_colors = {
|
||||
NORMAL = colors.green,
|
||||
INSERT = colors.red,
|
||||
VISUAL = colors.magenta,
|
||||
OP = colors.green,
|
||||
BLOCK = colors.blue,
|
||||
REPLACE = colors.violet,
|
||||
['V-REPLACE'] = colors.violet,
|
||||
ENTER = colors.cyan,
|
||||
MORE = colors.cyan,
|
||||
SELECT = colors.orange,
|
||||
COMMAND = colors.green,
|
||||
SHELL = colors.green,
|
||||
TERM = colors.green,
|
||||
NONE = colors.yellow
|
||||
}
|
||||
local icons = {
|
||||
linux = ' ',
|
||||
macos = ' ',
|
||||
windows = ' ',
|
||||
errs = ' ',
|
||||
warns = ' ',
|
||||
infos = ' ',
|
||||
hints = ' ',
|
||||
lsp = ' ',
|
||||
git = ''
|
||||
}
|
||||
local function file_osinfo()
|
||||
local os = vim.bo.fileformat:upper()
|
||||
local icon
|
||||
if os == 'UNIX' then
|
||||
icon = icons.linux
|
||||
elseif os == 'MAC' then
|
||||
icon = icons.macos
|
||||
else
|
||||
icon = icons.windows
|
||||
end
|
||||
return icon .. os
|
||||
end
|
||||
local function lsp_diagnostics_info()
|
||||
return {
|
||||
errs = lsp.get_diagnostics_count('Error'),
|
||||
warns = lsp.get_diagnostics_count('Warning'),
|
||||
infos = lsp.get_diagnostics_count('Information'),
|
||||
hints = lsp.get_diagnostics_count('Hint')
|
||||
}
|
||||
end
|
||||
local function diag_enable(f, s)
|
||||
return function()
|
||||
local diag = f()[s]
|
||||
return diag and diag ~= 0
|
||||
end
|
||||
end
|
||||
local function diag_of(f, s)
|
||||
local icon = icons[s]
|
||||
return function()
|
||||
local diag = f()[s]
|
||||
return icon .. diag
|
||||
end
|
||||
end
|
||||
local function vimode_hl()
|
||||
return {
|
||||
name = vi_mode_utils.get_mode_highlight_name(),
|
||||
fg = vi_mode_utils.get_mode_color()
|
||||
}
|
||||
end
|
||||
-- LuaFormatter off
|
||||
local comps = {
|
||||
vi_mode = {
|
||||
left = {
|
||||
provider = '▊',
|
||||
hl = vimode_hl,
|
||||
right_sep = ' '
|
||||
},
|
||||
right = {
|
||||
provider = '▊',
|
||||
hl = vimode_hl,
|
||||
left_sep = ' '
|
||||
}
|
||||
},
|
||||
file = {
|
||||
info = {
|
||||
provider = 'file_info',
|
||||
hl = {
|
||||
fg = colors.blue,
|
||||
style = 'bold'
|
||||
}
|
||||
},
|
||||
encoding = {
|
||||
provider = 'file_encoding',
|
||||
left_sep = ' ',
|
||||
hl = {
|
||||
fg = colors.violet,
|
||||
style = 'bold'
|
||||
}
|
||||
},
|
||||
type = {
|
||||
provider = 'file_type'
|
||||
},
|
||||
os = {
|
||||
provider = file_osinfo,
|
||||
left_sep = ' ',
|
||||
hl = {
|
||||
fg = colors.violet,
|
||||
style = 'bold'
|
||||
}
|
||||
}
|
||||
},
|
||||
line_percentage = {
|
||||
provider = 'line_percentage',
|
||||
left_sep = ' ',
|
||||
hl = {
|
||||
style = 'bold'
|
||||
}
|
||||
},
|
||||
scroll_bar = {
|
||||
provider = 'scroll_bar',
|
||||
left_sep = ' ',
|
||||
hl = {
|
||||
fg = colors.blue,
|
||||
style = 'bold'
|
||||
}
|
||||
},
|
||||
diagnos = {
|
||||
err = {
|
||||
provider = diag_of(lsp_diagnostics_info, 'errs'),
|
||||
left_sep = ' ',
|
||||
enabled = diag_enable(lsp_diagnostics_info, 'errs'),
|
||||
hl = {
|
||||
fg = colors.red
|
||||
}
|
||||
},
|
||||
warn = {
|
||||
provider = diag_of(lsp_diagnostics_info, 'warns'),
|
||||
left_sep = ' ',
|
||||
enabled = diag_enable(lsp_diagnostics_info, 'warns'),
|
||||
hl = {
|
||||
fg = colors.yellow
|
||||
}
|
||||
},
|
||||
info = {
|
||||
provider = diag_of(lsp_diagnostics_info, 'infos'),
|
||||
left_sep = ' ',
|
||||
enabled = diag_enable(lsp_diagnostics_info, 'infos'),
|
||||
hl = {
|
||||
fg = colors.blue
|
||||
}
|
||||
},
|
||||
hint = {
|
||||
provider = diag_of(lsp_diagnostics_info, 'hints'),
|
||||
left_sep = ' ',
|
||||
enabled = diag_enable(lsp_diagnostics_info, 'hints'),
|
||||
hl = {
|
||||
fg = colors.cyan
|
||||
}
|
||||
},
|
||||
},
|
||||
lsp = {
|
||||
name = {
|
||||
provider = 'lsp_client_names',
|
||||
left_sep = ' ',
|
||||
icon = icons.lsp,
|
||||
hl = {
|
||||
fg = colors.yellow
|
||||
}
|
||||
}
|
||||
},
|
||||
git = {
|
||||
branch = {
|
||||
provider = 'git_branch',
|
||||
icon = icons.git,
|
||||
left_sep = ' ',
|
||||
hl = {
|
||||
fg = colors.violet,
|
||||
style = 'bold'
|
||||
},
|
||||
},
|
||||
add = {
|
||||
provider = 'git_diff_added',
|
||||
hl = {
|
||||
fg = colors.green
|
||||
}
|
||||
},
|
||||
change = {
|
||||
provider = 'git_diff_changed',
|
||||
hl = {
|
||||
fg = colors.orange
|
||||
}
|
||||
},
|
||||
remove = {
|
||||
provider = 'git_diff_removed',
|
||||
hl = {
|
||||
fg = colors.red
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
local properties = {
|
||||
force_inactive = {
|
||||
filetypes = {
|
||||
'NvimTree',
|
||||
'dbui',
|
||||
'packer',
|
||||
'startify',
|
||||
'fugitive',
|
||||
'fugitiveblame'
|
||||
},
|
||||
buftypes = {'terminal'},
|
||||
bufnames = {}
|
||||
}
|
||||
}
|
||||
local components = {
|
||||
left = {
|
||||
active = {
|
||||
comps.vi_mode.left,
|
||||
comps.file.info,
|
||||
comps.lsp.name,
|
||||
comps.diagnos.err,
|
||||
comps.diagnos.warn,
|
||||
comps.diagnos.hint,
|
||||
comps.diagnos.info
|
||||
},
|
||||
inactive = {
|
||||
comps.vi_mode.left,
|
||||
comps.file.info
|
||||
}
|
||||
},
|
||||
mid = {
|
||||
active = {},
|
||||
inactive = {}
|
||||
},
|
||||
right = {
|
||||
active = {
|
||||
comps.git.add,
|
||||
comps.git.change,
|
||||
comps.git.remove,
|
||||
comps.file.os,
|
||||
comps.git.branch,
|
||||
comps.line_percentage,
|
||||
comps.scroll_bar,
|
||||
comps.vi_mode.right
|
||||
},
|
||||
inactive = {}
|
||||
}
|
||||
}
|
||||
-- LuaFormatter on
|
||||
require'feline'.setup {
|
||||
default_bg = colors.bg,
|
||||
default_fg = colors.fg,
|
||||
components = components,
|
||||
properties = properties,
|
||||
vi_mode_colors = vi_mode_colors
|
||||
}
|
||||
|
||||
-- Buffeline
|
||||
require('bufferline').setup {}
|
||||
EOF
|
||||
-- Bufferline
|
||||
require('bufferline').setup {}
|
||||
EOF
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue