aboutsummaryrefslogtreecommitdiff
path: root/Common
diff options
context:
space:
mode:
Diffstat (limited to 'Common')
-rwxr-xr-xCommon/nvim/lua/basic.lua.m410
-rwxr-xr-xCommon/nvim/lua/helper_functions.lua8
-rw-r--r--Common/nvim/lua/lsp-conf.lua102
-rwxr-xr-xCommon/nvim/lua/plugins.lua154
4 files changed, 59 insertions, 215 deletions
diff --git a/Common/nvim/lua/basic.lua.m4 b/Common/nvim/lua/basic.lua.m4
index 70d78cc..eedc5c6 100755
--- a/Common/nvim/lua/basic.lua.m4
+++ b/Common/nvim/lua/basic.lua.m4
@@ -17,22 +17,14 @@ vim.opt.softtabstop = 4
-- Disable highlight when <leader><cr> is pressed
vim.api.nvim_set_keymap('n', '<leader><cr>', ':noh<cr>', { noremap = true, silent = true })
--- Tab commands
-vim.api.nvim_set_keymap('n', '<leader>tp', ':tabprevious<cr>', { noremap = true, silent = true })
-vim.api.nvim_set_keymap('n', '<leader>tn', ':tabnext<cr>', { noremap = true, silent = true })
-vim.api.nvim_set_keymap('n', '<leader>tc', ':tabnew<cr>', { noremap = true, silent = true })
-vim.api.nvim_set_keymap('n', '<leader>tx', ':tabclose<cr>', { noremap = true, silent = true })
-
-- Return to last edit position when opening files
vim.cmd [[
au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
]]
-- Colorscheme
-vim.cmd [[ colorscheme bw ]]
vim.opt.background = "light"
--- No idea why, preview in fzf does at least work extremely porly without this
-vim.cmd [[ let $BAT_THEME = 'gruvbox-light' ]]
m4_ifelse(DT_DOTFILES_TYPE, `remote', `m4_dnl
vim.opt.termguicolors = true
')m4_dnl
+vim.cmd.colorscheme("bw")
diff --git a/Common/nvim/lua/helper_functions.lua b/Common/nvim/lua/helper_functions.lua
index 15db30a..12e2328 100755
--- a/Common/nvim/lua/helper_functions.lua
+++ b/Common/nvim/lua/helper_functions.lua
@@ -1,13 +1,5 @@
-- Load local configuration
-- For me this is usually something like
--- let g:vimwiki_list = [
--- \ {'name': 'I45', 'syntax': 'markdown', 'ext': 'md', 'auto_toc': 1, 'diary_frequency': 'monthly',
--- \ 'path': '~/_library/I45/',
--- \ 'nested_syntaxes': {'python': 'python', 'sql': 'sql', 'ioql': 'ioql'}},
--- \ {'name': 'P01', 'syntax': 'markdown', 'ext': 'md', 'auto_toc': 1,
--- \ 'path': '~/_library/',
--- \ }
--- \]
-- let g:db = "mysql://user@db001"
vim.cmd [[
if !empty(glob("~/.env.vim"))
diff --git a/Common/nvim/lua/lsp-conf.lua b/Common/nvim/lua/lsp-conf.lua
index 9025244..ec1754b 100644
--- a/Common/nvim/lua/lsp-conf.lua
+++ b/Common/nvim/lua/lsp-conf.lua
@@ -1,91 +1,33 @@
--- Mason Setup
-require("mason").setup({
- ui = {
- icons = {
- package_installed = "",
- package_pending = "",
- package_uninstalled = "",
- },
- }
-})
+require("mason").setup()
require("mason-lspconfig").setup({
- ensure_installed = { "rust_analyzer", "tsserver", "clangd", "intelephense", "pyright", "texlab", "jdtls", "sqlls" }
+ handlers = {
+ function(server_name)
+ vim.lsp.enable(server_name)
+ end,
+ }
})
-require("mason-lspconfig").setup_handlers {
- function (server_name) -- default handler (optional)
- require("lspconfig")[server_name].setup {}
- end,
-}
-
--- LSP Diagnostics Options Setup
-local sign = function(opts)
- vim.fn.sign_define(opts.name, {
- texthl = opts.name,
- text = opts.text,
- numhl = ''
- })
-end
-
-sign({name = 'DiagnosticSignError', text = '!'})
-sign({name = 'DiagnosticSignWarn', text = '!!'})
-sign({name = 'DiagnosticSignHint', text = '?'})
-sign({name = 'DiagnosticSignInfo', text = 'i'})
vim.diagnostic.config({
- virtual_text = false,
- signs = true,
update_in_insert = true,
- underline = true,
- severity_sort = false,
})
-vim.cmd [[
-hi DiagnosticUnderlineError gui=none guibg='LightRed'
-hi DiagnosticUnderlineWarn guisp='Orange' gui=undercurl
-hi DiagnosticUnderlineInfo guisp='Cyan' gui=undercurl
-hi DiagnosticUnderlineHint guisp='Cyan' gui=undercurl
-hi DiagnosticUnderlineOk gui=none
-
-hi link DiagnosticFloatingHint Normal
-hi link DiagnosticFloatingInfo Normal
-hi DiagnosticFloatingOk guifg=Green
-hi link DiagnosticFloatingWarn Normal
-]]
+local highlights = {
+ DiagnosticUnderlineError = { underline = false, bg = "LightRed" },
+ DiagnosticUnderlineWarn = { sp = "Orange", undercurl = true },
+ DiagnosticUnderlineInfo = { sp = "Cyan", undercurl = true },
+ DiagnosticUnderlineHint = { sp = "Cyan", undercurl = true },
+ DiagnosticUnderlineOK = { underline = false },
+
+ DiagnosticFloatingHint = { link = "Normal" },
+ DiagnosticFloatingInfo = { link = "Normal" },
+ DiagnosticFloatingWarn = { link = "Normal" },
+ DiagnosticFloatingOk = { fg = "Green" },
+}
-vim.opt.completeopt = {'menuone', 'noselect', 'noinsert'}
-vim.opt.shortmess = vim.opt.shortmess + { c = true}
-vim.api.nvim_set_option('updatetime', 300)
+for group, settings in pairs(highlights) do
+ vim.api.nvim_set_hl(0, group, settings)
+end
--- Enable signcolumn
+vim.opt.updatetime = 300
vim.opt.signcolumn = 'yes'
--- Remove background in SignColumn, looks odd without this
-vim.api.nvim_set_hl(0, "SignColumn", {link = "LineNr"})
-
vim.keymap.set('n', '<leader>q', vim.diagnostic.setloclist)
-
-vim.api.nvim_create_autocmd('LspAttach', {
- group = vim.api.nvim_create_augroup('UserLspConfig', {}),
- callback = function(ev)
- -- Enable completion triggered by <c-x><c-o>
- vim.bo[ev.buf].omnifunc = 'v:lua.vim.lsp.omnifunc'
-
- local opts = { buffer = ev.buf }
- vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, opts)
- vim.keymap.set('n', 'gd', vim.lsp.buf.definition, opts)
- vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, opts)
- vim.keymap.set('n', '<C-k>', vim.lsp.buf.signature_help, opts)
- vim.keymap.set('i', '<C-k>', vim.lsp.buf.signature_help, opts)
- vim.keymap.set('n', '<leader>wa', vim.lsp.buf.add_workspace_folder, opts)
- vim.keymap.set('n', '<leader>wr', vim.lsp.buf.remove_workspace_folder, opts)
- vim.keymap.set('n', '<leader>wl', function()
- print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
- end, opts)
- vim.keymap.set('n', '<space>D', vim.lsp.buf.type_definition, opts)
- vim.keymap.set('n', '<leader>rn', vim.lsp.buf.rename, opts)
- vim.keymap.set({ 'n', 'v' }, '<space>ca', vim.lsp.buf.code_action, opts)
- vim.keymap.set('n', 'gr', vim.lsp.buf.references, opts)
- vim.keymap.set('n', '<space>f', function()
- vim.lsp.buf.format { async = true }
- end, opts)
- end
-})
diff --git a/Common/nvim/lua/plugins.lua b/Common/nvim/lua/plugins.lua
index 2ad775f..04b474e 100755
--- a/Common/nvim/lua/plugins.lua
+++ b/Common/nvim/lua/plugins.lua
@@ -1,119 +1,37 @@
--- Autoinstall packer
-local fn = vim.fn
-local install_path = fn.stdpath('data')..'/site/pack/packer/start/packer.nvim'
-if fn.empty(fn.glob(install_path)) > 0 then
- packer_bootstrap = fn.system({'git', 'clone', '--depth', '1', 'https://github.com/wbthomason/packer.nvim', install_path})
-end
-
--- Autocompile packer
-vim.cmd([[
- augroup packer_user_config
- autocmd!
- autocmd BufWritePost plugins.lua source <afile> | PackerCompile
- augroup end
-]])
-
-return require('packer').startup(function(use)
- -- Packer itself :)
- use 'wbthomason/packer.nvim'
-
- use 'tpope/vim-fugitive'
- use {
- 'junegunn/fzf.vim',
- requires = { 'junegunn/fzf', 'kyazdani42/nvim-web-devicons' },
- config = function()
- vim.cmd [[
- let g:fzf_layout = { 'down': '40%' }
-
- autocmd! FileType fzf
- autocmd FileType fzf set laststatus=0 noshowmode noruler
- \| autocmd BufLeave <buffer> set laststatus=2 showmode ruler
-
- let g:fzf_colors =
- \ { 'fg': ['fg', 'Normal'],
- \ 'bg': ['bg', 'Normal'],
- \ 'hl': ['fg', 'Comment'],
- \ 'fg+': ['fg', 'CursorLine', 'CursorColumn', 'Normal'],
- \ 'bg+': ['bg', 'CursorLine', 'CursorColumn'],
- \ 'hl+': ['fg', 'Statement'],
- \ 'info': ['fg', 'PreProc'],
- \ 'border': ['fg', 'Ignore'],
- \ 'prompt': ['fg', 'Conditional'],
- \ 'pointer': ['fg', 'Exception'],
- \ 'marker': ['fg', 'Keyword'],
- \ 'spinner': ['fg', 'Label'],
- \ 'header': ['fg', 'Comment'] }
- ]]
- vim.api.nvim_set_keymap("n", ";", ":Files<cr>", { noremap = true, silent = true })
- vim.api.nvim_set_keymap("n", "<leader>;", ":Rg<cr>", { noremap = true, silent = true })
- vim.api.nvim_set_keymap("n", "<leader><leader>;", ":Lines<cr>", { noremap = true, silent = true })
- end,
- }
-
- -- Lsp things
- use {
- 'williamboman/mason.nvim',
- 'williamboman/mason-lspconfig.nvim',
- 'neovim/nvim-lspconfig' ,
- }
-
- -- vim-dadbob (run sql directly)
- use {
- 'tpope/vim-dadbod',
- config = function()
- vim.cmd [[
- xnoremap <expr> <Plug>(DBExe) db#op_exec()
- nnoremap <expr> <Plug>(DBExe) db#op_exec()
- nnoremap <expr> <Plug>(DBExeLine) db#op_exec() . '_'
-
- xmap <leader>db <Plug>(DBExe)
- nmap <leader>db <Plug>(DBExe)
- omap <leader>db <Plug>(DBExe)
- nmap <leader>dbb <Plug>(DBExeLine)
-
- autocmd FileType dbout setlocal nofoldenable
- ]]
- end,
- }
-
- -- VimWiki stuff
- use {
- 'vimwiki/vimwiki',
- config = function ()
- vim.g.vimwiki_global_ext = 0
- vim.g.vimwiki_auto_header = 1
- vim.g.vimwiki_links_space_char = '_'
- vim.g.vimwiki_url_maxsave = 0
- vim.g.vimwiki_auto_chdir = 1
- end,
- }
- use {
- 'mattn/calendar-vim',
- config = function()
- vim.g.calendar_monday = 1
- vim.g.calendar_weeknm = 5
- vim.api.nvim_create_autocmd("QuitPre", {
- callback = function()
- local invalid_win = {}
- local wins = vim.api.nvim_list_wins()
- for _, w in ipairs(wins) do
- local bufname = vim.api.nvim_buf_get_name(vim.api.nvim_win_get_buf(w))
- if bufname:match("__Calendar") ~= nil then
- table.insert(invalid_win, w)
- end
- end
- if #invalid_win == #wins - 1 then
- for _, w in ipairs(invalid_win) do vim.api.nvim_win_close(w, true) end
- end
- end
- })
- end
- }
-
- -- Automatically set up your configuration after cloning packer.nvim
- -- Put this at the end after all plugins
- if packer_bootstrap then
- require('packer').sync()
- end
-end)
+vim.pack.add({
+ 'https://github.com/tpope/vim-fugitive',
+ 'https://github.com/tpope/vim-dadbod',
+ -- Fzf
+ 'https://github.com/junegunn/fzf',
+ 'https://github.com/junegunn/fzf.vim',
+ -- LSP
+ 'https://github.com/neovim/nvim-lspconfig',
+ 'https://github.com/mason-org/mason.nvim',
+ 'https://github.com/mason-org/mason-lspconfig.nvim'
+})
+
+-- Fzf setup
+vim.cmd [[
+ autocmd! FileType fzf
+ autocmd FileType fzf set laststatus=0 noshowmode noruler
+ \| autocmd BufLeave <buffer> set laststatus=2 showmode ruler
+]]
+vim.g.fzf_layout = { down = "40%" }
+vim.api.nvim_set_keymap("n", ";", ":Files<cr>", { noremap = true, silent = true })
+vim.api.nvim_set_keymap("n", "<leader>;", ":Rg<cr>", { noremap = true, silent = true })
+vim.api.nvim_set_keymap("n", "<leader><leader>;", ":Lines<cr>", { noremap = true, silent = true })
+
+-- Vim-dadbod setup
+vim.cmd [[
+xnoremap <expr> <Plug>(DBExe) db#op_exec()
+nnoremap <expr> <Plug>(DBExe) db#op_exec()
+nnoremap <expr> <Plug>(DBExeLine) db#op_exec() . '_'
+
+xmap <leader>db <Plug>(DBExe)
+nmap <leader>db <Plug>(DBExe)
+omap <leader>db <Plug>(DBExe)
+nmap <leader>dbb <Plug>(DBExeLine)
+
+autocmd FileType dbout setlocal nofoldenable
+]]