Rewrote init.vim, added lsp things for elixir
This commit is contained in:
parent
2687639d49
commit
8e02fdea1e
|
@ -1,12 +1,34 @@
|
|||
" Load plugins
|
||||
call plug#begin()
|
||||
|
||||
" CodeStats and Airline
|
||||
Plug 'https://gitlab.com/code-stats/code-stats-vim.git'
|
||||
Plug 'vim-airline/vim-airline'
|
||||
|
||||
" Syntax highlighters
|
||||
Plug 'tikhomirov/vim-glsl'
|
||||
|
||||
" Treesitter things
|
||||
Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'}
|
||||
Plug 'https://gitlab.com/code-stats/code-stats-vim.git', {'do': ':TSUpdate'}
|
||||
Plug 'vim-airline/vim-airline', {'do': ':TSUpdate'}
|
||||
|
||||
" Language server protocol
|
||||
Plug 'neovim/nvim-lspconfig'
|
||||
|
||||
" Autocompletion shenanigans
|
||||
Plug 'hrsh7th/cmp-nvim-lsp'
|
||||
Plug 'hrsh7th/cmp-buffer'
|
||||
Plug 'hrsh7th/cmp-path'
|
||||
Plug 'hrsh7th/cmp-cmdline'
|
||||
Plug 'hrsh7th/nvim-cmp'
|
||||
Plug 'hrsh7th/cmp-vsnip'
|
||||
Plug 'hrsh7th/vim-vsnip'
|
||||
Plug 'petertriho/cmp-git'
|
||||
|
||||
call plug#end()
|
||||
|
||||
" Set custom glsl extensions
|
||||
autocmd! BufNewFile,BufRead *.effect set ft=glsl
|
||||
|
||||
" Python plugins, needed for CodeStats
|
||||
let g:python3_host_prog = '/usr/bin/python'
|
||||
|
||||
|
@ -35,22 +57,82 @@ require 'nvim-treesitter.configs'.setup {
|
|||
"json", "json5", "jq",
|
||||
"lua", "php", "phpdoc",
|
||||
"markdown", "markdown_inline",
|
||||
"rst", "yaml",
|
||||
"rst", "yaml"
|
||||
},
|
||||
highlight = {
|
||||
enable = true
|
||||
enable = true,
|
||||
}
|
||||
}
|
||||
|
||||
-- Parser config for dfraw language
|
||||
local parser_config = require'nvim-treesitter.parsers'.get_parser_configs()
|
||||
parser_config.dfraw = {
|
||||
install_info = {
|
||||
url = 'https://code.criminallycute.fi/mirrors/tree-sitter-dfraw',
|
||||
files = {'src/parser.c'},
|
||||
branch = 'main'
|
||||
branch = 'main',
|
||||
},
|
||||
filetype = 'text',
|
||||
used_by = { 'dfraw' }
|
||||
used_by = {'dfraw'},
|
||||
}
|
||||
|
||||
-- Autocompletion shenanigans
|
||||
local cmp = require'cmp'
|
||||
|
||||
cmp.setup({
|
||||
snippet = {
|
||||
expand = function(args)
|
||||
vim.fn["vsnip#anonymous"](args.body)
|
||||
end,
|
||||
},
|
||||
window = {
|
||||
completion = cmp.config.window.bordered(),
|
||||
documentation = cmp.config.window.bordered(),
|
||||
},
|
||||
mapping = cmp.mapping.preset.insert({
|
||||
['<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 }),
|
||||
}),
|
||||
sources = cmp.config.sources({
|
||||
{ name = 'nvim_lsp' },
|
||||
{ name = 'vsnip' },
|
||||
{ name = 'buffer' },
|
||||
})
|
||||
})
|
||||
|
||||
-- filetype specific setup
|
||||
-- gitconfig
|
||||
cmp.setup.filetype('gitcommit', {
|
||||
sources = cmp.config.sources({
|
||||
{ name = 'git' },
|
||||
{ name = 'buffer' },
|
||||
})
|
||||
})
|
||||
|
||||
-- / andd ? completion
|
||||
cmp.setup.cmdline({'/', '?'}, {
|
||||
mapping = cmp.mapping.preset.cmdline(),
|
||||
sources = { { name = 'buffer' } },
|
||||
})
|
||||
|
||||
-- : completion
|
||||
cmp.setup.cmdline(':', {
|
||||
mapping = cmp.mapping.preset.cmdline(),
|
||||
sources = {
|
||||
{ name = 'path' },
|
||||
{ name = 'cmdline' },
|
||||
},
|
||||
matching = { disallow_symbol_nonprefix_matching = false },
|
||||
})
|
||||
|
||||
-- Elixir LSP configuration
|
||||
local capabilities = require('cmp_nvim_lsp').default_capabilities()
|
||||
require'lspconfig'.elixirls.setup {
|
||||
capabilities = capabilities,
|
||||
cmd = { '~/.local/share/lsp-servers/elixir-ls/language_server.sh' }
|
||||
}
|
||||
EOF
|
||||
|
||||
|
|
Loading…
Reference in New Issue