nvim now uses terminal bg colour; split config to more files

This commit is contained in:
Siina Mashek 2024-11-08 10:24:54 +02:00
parent fa4add0be8
commit 6df4d4169f
6 changed files with 151 additions and 131 deletions

View File

@ -1,36 +1,17 @@
" Load plugins " Main configuration
call plug#begin() set tabstop=2 softtabstop=2 shiftwidth=2 expandtab smarttab autoindent
set mouse=
set laststatus=2
set t_Co=256
" CodeStats and Airline " stop overriding terminal bg colour
Plug 'https://gitlab.com/code-stats/code-stats-vim.git' highlight Normal guibg=none
Plug 'vim-airline/vim-airline' highlight NonText guibg=none
highlight Normal ctermbg=none
highlight NonText ctermbg=none
" Syntax highlighters source $HOME/.config/nvim/plugins.vim
Plug 'tikhomirov/vim-glsl' source $HOME/.config/nvim/keymaps.vim
" Treesitter things
Plug 'nvim-treesitter/nvim-treesitter', {'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()
" Key remap for resizing split windows
nnoremap <C-H> <C-W><C-H>
nnoremap <C-J> <C-W><C-J>
nnoremap <C-K> <C-W><C-K>
nnoremap <C-L> <C-W><C-L>
" Set custom glsl extensions " Set custom glsl extensions
autocmd! BufNewFile,BufRead *.effect set ft=glsl autocmd! BufNewFile,BufRead *.effect set ft=glsl
@ -41,106 +22,9 @@ let g:python3_host_prog = '/usr/bin/python'
" CodeStats " CodeStats
let g:codestats_api_key = $CODESTATS_API_KEY let g:codestats_api_key = $CODESTATS_API_KEY
" Main configuration lua require('treesitter')
set tabstop=2 softtabstop=2 shiftwidth=2 expandtab smarttab autoindent lua require('autocomplete')
set mouse= lua require('lsp')
set laststatus=2
set t_Co=256
lua <<EOF
require'nvim-treesitter.configs'.setup {
ensure_installed = {
"bash", "vim", "regex",
"cpp", "go", "rust",
"diff", "make",
"dockerfile",
"elixir", "erlang",
"godot_resource", "gdscript",
"git_rebase", "gitattributes", "gitcommit", "gitignore",
"html", "scss",
"http", "sql",
"javascript", "jsdoc", "typescript", "vue",
"json", "json5", "jq",
"lua", "php", "phpdoc",
"markdown", "markdown_inline",
"rst", "yaml"
},
highlight = {
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',
},
filetype = 'text',
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
" disable dfraw for text files " disable dfraw for text files
if did_filetype() if did_filetype()

5
config/nvim/keymaps.vim Normal file
View File

@ -0,0 +1,5 @@
" Key remap for resizing split windows
nnoremap <C-H> <C-W><C-H>
nnoremap <C-J> <C-W><C-J>
nnoremap <C-K> <C-W><C-K>
nnoremap <C-L> <C-W><C-L>

View File

@ -0,0 +1,51 @@
-- 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 },
})

16
config/nvim/lua/lsp.lua Normal file
View File

@ -0,0 +1,16 @@
-- Elixir shenanigans
local lspdir = '~/.local/share/lsp-servers'
local capabilities = require('cmp_nvim_lsp').default_capabilities()
require'lspconfig'.elixirls.setup {
capabilities = capabilities,
capabilities = { lspdir .. '/elixir-ls/language_server.sh' }
}
local elixir = require('elixir')
local elixirls = require('elixir.elixirls')
elixir.setup {
elixirls = {
cmd = lspdir .. '/elixir-ls/language_server.sh'
}
}

View File

@ -0,0 +1,34 @@
require'nvim-treesitter.configs'.setup {
ensure_installed = {
"bash", "vim", "regex",
"cpp", "go", "rust",
"diff", "make",
"dockerfile",
"elixir", "erlang",
"godot_resource", "gdscript",
"git_rebase", "gitattributes", "gitcommit", "gitignore",
"html", "scss",
"http", "sql",
"javascript", "jsdoc", "typescript", "vue",
"json", "json5", "jq",
"lua", "php", "phpdoc",
"markdown", "markdown_inline",
"rst", "yaml"
},
highlight = {
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',
},
filetype = 'text',
used_by = {'dfraw'},
}

30
config/nvim/plugins.vim Normal file
View File

@ -0,0 +1,30 @@
" 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'}
" 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'
Plug 'elixir-tools/elixir-tools.nvim', {'tag': 'stable'}
Plug 'nvim-lua/plenary.nvim'
call plug#end()