diff --git a/nvim/.config/nvim/lua/opdavies/init.lua b/nvim/.config/nvim/lua/opdavies/init.lua index 896c9e0..8e24d15 100644 --- a/nvim/.config/nvim/lua/opdavies/init.lua +++ b/nvim/.config/nvim/lua/opdavies/init.lua @@ -1,105 +1,6 @@ -require('colorbuddy').colorscheme('gruvbuddy') +require("colorbuddy").colorscheme("gruvbuddy") --- TreeSitter - -local configs = require'nvim-treesitter.configs' - -configs.setup { - context_commenting = { - enable = true - }, - ensure_installed = "maintained", - highlight = { - enable = true, - } -} - --- LSP -local has_lsp, lspconfig = pcall(require, "lspconfig") - -local servers = { - ansiblels = true, - bashls = true, - cssls = true, - html = true, - - intelephense = { - filetypes = { "install", "inc", "module", "php", "test", "theme" } - }, - - tsserver = { - filetypes = { "js", "jsx", "typescript", "vue" } - }, - - yamlls = true, -} - -local setup_server = function(server, config) - if not config then - return - end - - if type(config) ~= "table" then - config = {} - end - - lspconfig[server].setup(config) -end - -for server, config in pairs(servers) do - setup_server(server, config) -end - -vim.lsp.handlers["textDocument/publishDiagnostics"] = vim.lsp.with( - vim.lsp.diagnostic.on_publish_diagnostics, { - underline = true, - virtual_text = false, - signs = true, - update_in_insert = true, - } -) - -local key_mapper = function(mode, key, result) - vim.api.nvim_set_keymap( - mode, - key, - result, - {noremap = true, silent = true} - ) -end - -key_mapper('n', '', ':lua vim.lsp.buf.signature_help()') -key_mapper('n', 'af', ':lua vim.lsp.buf.code_action()') -key_mapper('n', 'dn', ':lua vim.lsp.diagnostic.goto_next()') -key_mapper('n', 'dp', ':lua vim.lsp.diagnostic.goto_prev()') -key_mapper('n', 'ds', ':lua vim.lsp.diagnostic.show_line_diagnostics()') -key_mapper('n', 'fb', ':lua require"telescope.builtin".buffers()') -key_mapper('n', 'fh', ':lua require"telescope.builtin".help_tags()') -key_mapper('n', 'fs', ':lua require"telescope.builtin".live_grep()') -key_mapper('n', 'rn', ':lua vim.lsp.buf.rename()') -key_mapper('n', 'K', ':lua vim.lsp.buf.hover()') -key_mapper('n', 'gD', ':lua vim.lsp.buf.declaration()') -key_mapper('n', 'gW', ':lua vim.lsp.buf.workspace_symbol()') -key_mapper('n', 'gd', ':lua vim.lsp.buf.definition()') -key_mapper('n', 'gi', ':lua vim.lsp.buf.implementation()') -key_mapper('n', 'gr', ':lua vim.lsp.buf.references()') -key_mapper('n', 'gt', ':lua vim.lsp.buf.type_definition()') -key_mapper('n', 'gw', ':lua vim.lsp.buf.document_symbol()') - -vim.opt.termguicolors = true - -vim.cmd [[highlight IndentBlanklineIndent6 guifg=#888888 gui=nocombine]] - -vim.opt.list = true -vim.opt.listchars = { - eol = "↴", -} - -require("indent_blankline").setup { - char_highlight_list = { - "IndentBlanklineIndent1", - }, - show_end_of_line = true, -} - -require 'opdavies.plugins.completion' +require "opdavies.plugins.completion" +require "opdavies.plugins.indent-blankline" +require "opdavies.plugins.lsp" +require "opdavies.plugins.treesitter" diff --git a/nvim/.config/nvim/lua/opdavies/plugins/indent-blankline.lua b/nvim/.config/nvim/lua/opdavies/plugins/indent-blankline.lua new file mode 100644 index 0000000..e2d224f --- /dev/null +++ b/nvim/.config/nvim/lua/opdavies/plugins/indent-blankline.lua @@ -0,0 +1,11 @@ +vim.opt.list = true +vim.opt.listchars = { + eol = "↴", +} + +require("indent_blankline").setup { + char_highlight_list = { + "IndentBlanklineIndent1", + }, + show_end_of_line = true, +} diff --git a/nvim/.config/nvim/lua/opdavies/plugins/lsp.lua b/nvim/.config/nvim/lua/opdavies/plugins/lsp.lua new file mode 100644 index 0000000..236b6fc --- /dev/null +++ b/nvim/.config/nvim/lua/opdavies/plugins/lsp.lua @@ -0,0 +1,70 @@ +local has_lsp, lspconfig = pcall(require, "lspconfig") + +local servers = { + ansiblels = true, + bashls = true, + cssls = true, + html = true, + + intelephense = { + filetypes = { "install", "inc", "module", "php", "test", "theme" } + }, + + tsserver = { + filetypes = { "js", "jsx", "typescript", "vue" } + }, + + yamlls = true, +} + +local setup_server = function(server, config) + if not config then + return + end + + if type(config) ~= "table" then + config = {} + end + + lspconfig[server].setup(config) +end + +for server, config in pairs(servers) do + setup_server(server, config) +end + +vim.lsp.handlers["textDocument/publishDiagnostics"] = vim.lsp.with( + vim.lsp.diagnostic.on_publish_diagnostics, { + underline = true, + virtual_text = false, + signs = true, + update_in_insert = true, + } +) + +local key_mapper = function(mode, key, result) + vim.api.nvim_set_keymap( + mode, + key, + result, + {noremap = true, silent = true} + ) +end + +key_mapper('n', '', ':lua vim.lsp.buf.signature_help()') +key_mapper('n', 'af', ':lua vim.lsp.buf.code_action()') +key_mapper('n', 'dn', ':lua vim.lsp.diagnostic.goto_next()') +key_mapper('n', 'dp', ':lua vim.lsp.diagnostic.goto_prev()') +key_mapper('n', 'ds', ':lua vim.lsp.diagnostic.show_line_diagnostics()') +key_mapper('n', 'fb', ':lua require"telescope.builtin".buffers()') +key_mapper('n', 'fh', ':lua require"telescope.builtin".help_tags()') +key_mapper('n', 'fs', ':lua require"telescope.builtin".live_grep()') +key_mapper('n', 'rn', ':lua vim.lsp.buf.rename()') +key_mapper('n', 'K', ':lua vim.lsp.buf.hover()') +key_mapper('n', 'gD', ':lua vim.lsp.buf.declaration()') +key_mapper('n', 'gW', ':lua vim.lsp.buf.workspace_symbol()') +key_mapper('n', 'gd', ':lua vim.lsp.buf.definition()') +key_mapper('n', 'gi', ':lua vim.lsp.buf.implementation()') +key_mapper('n', 'gr', ':lua vim.lsp.buf.references()') +key_mapper('n', 'gt', ':lua vim.lsp.buf.type_definition()') +key_mapper('n', 'gw', ':lua vim.lsp.buf.document_symbol()') diff --git a/nvim/.config/nvim/lua/opdavies/plugins/treesitter.lua b/nvim/.config/nvim/lua/opdavies/plugins/treesitter.lua new file mode 100644 index 0000000..e3f81b8 --- /dev/null +++ b/nvim/.config/nvim/lua/opdavies/plugins/treesitter.lua @@ -0,0 +1,11 @@ +local configs = require'nvim-treesitter.configs' + +configs.setup { + context_commenting = { + enable = true + }, + ensure_installed = "maintained", + highlight = { + enable = true, + } +}