diff --git a/init.vim b/init.vim index e63feac..ce28c1e 100644 --- a/init.vim +++ b/init.vim @@ -12,7 +12,8 @@ Plug 'hrsh7th/nvim-cmp' Plug 'williamboman/mason.nvim' Plug 'williamboman/mason-lspconfig.nvim' Plug 'jose-elias-alvarez/null-ls.nvim' -Plug 'dense-analysis/ale' +Plug 'mfussenegger/nvim-lint' +"Plug 'dense-analysis/ale' " various plugins Plug 'akinsho/bufferline.nvim', { 'tag': 'v3.*' } @@ -52,6 +53,8 @@ call plug#end() set termguicolors " load main lua file with additional configs +lua require("my-lspconfig") +lua require("my-lint") lua require("general") " highlight all .conf files as apache config (:]) @@ -103,13 +106,6 @@ nnoremap fg Telescope live_grep nnoremap fb Telescope buffers nnoremap fh Telescope help_tags - -let g:ale_set_balloons = 1 -let g:ale_linters = { -\ 'pyhon': ['bandit'], -\} -let g:ale_fixers = {'python': ['yapf']} - " general configs set modeline let g:sls_use_jinja_syntax = 1 diff --git a/lua/general.lua b/lua/general.lua index 2e9ab7e..bb0df77 100644 --- a/lua/general.lua +++ b/lua/general.lua @@ -1,7 +1,3 @@ --- disable netrw at the very start of your init.lua (strongly advised) -vim.g.loaded = 1 -vim.g.loaded_netrwPlugin = 1 - -- load lsp and dependencies (help for both coc and independent lsp setup) require("mason").setup() require("mason-lspconfig").setup({ @@ -17,14 +13,6 @@ require("mason-lspconfig").setup({ "eslint" } }) -require("null-ls").setup({ - sources = { - require("null-ls").builtins.formatting.stylua, - require("null-ls").builtins.diagnostics.eslint, - require("null-ls").builtins.completion.spell, - require("null-ls").builtins.code_actions.gitsigns, - }, -}) -- setup minimap local codewindow = require('codewindow') @@ -40,80 +28,6 @@ codewindow.setup({ codewindow.apply_default_keybinds() --- setup nvim-lspconfig --- Mappings. --- See `:help vim.diagnostic.*` for documentation on any of the below functions -local opts = { noremap=true, silent=true } -vim.keymap.set('n', 'e', vim.diagnostic.open_float, opts) -vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, opts) -vim.keymap.set('n', ']d', vim.diagnostic.goto_next, opts) -vim.keymap.set('n', 'q', vim.diagnostic.setloclist, opts) - --- Use an on_attach function to only map the following keys --- after the language server attaches to the current buffer -local on_attach = function(client, bufnr) - -- Enable completion triggered by - vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc') - - -- Mappings. - -- See `:help vim.lsp.*` for documentation on any of the below functions - local bufopts = { noremap=true, silent=true, buffer=bufnr } - vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, bufopts) - vim.keymap.set('n', 'gd', vim.lsp.buf.definition, bufopts) - --vim.keymap.set('n', 'K', vim.lsp.buf.hover, bufopts) - vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, bufopts) - vim.keymap.set('n', '', vim.lsp.buf.signature_help, bufopts) - vim.keymap.set('n', 'wa', vim.lsp.buf.add_workspace_folder, bufopts) - vim.keymap.set('n', 'wr', vim.lsp.buf.remove_workspace_folder, bufopts) - vim.keymap.set('n', 'wl', function() - print(vim.inspect(vim.lsp.buf.list_workspace_folders())) - end, bufopts) - vim.keymap.set('n', 'D', vim.lsp.buf.type_definition, bufopts) - vim.keymap.set('n', 'rn', vim.lsp.buf.rename, bufopts) - vim.keymap.set('n', 'ca', vim.lsp.buf.code_action, bufopts) - vim.keymap.set('n', 'gr', vim.lsp.buf.references, bufopts) - vim.keymap.set('n', 'f', function() vim.lsp.buf.format { async = true } end, bufopts) -end - -local capabilities = require('cmp_nvim_lsp').default_capabilities() - -require'lspconfig'.pyright.setup{ - on_attach = on_attach, - capabilities = capabilities, -} -require'lspconfig'.bashls.setup{ - on_attach = on_attach, -} -require'lspconfig'.salt_ls.setup{ - on_attach = on_attach, -} -require'lspconfig'.dockerls.setup{ - on_attach = on_attach, -} -require'lspconfig'.kotlin_language_server.setup{ - on_attach = on_attach, -} -require'lspconfig'.intelephense.setup{ - on_attach = on_attach, -} -require'lspconfig'.eslint.setup{ - on_attach = on_attach, -} - --- load perl lsp -require'lspconfig'.perlnavigator.setup{ - settings = { - perlnavigator = { - perlPath = 'perl', - enableWarnings = true, - perltidyProfile = '', - perlcriticProfile = '', - perlcriticEnabled = true, - } - }, - on_attach = on_attach, - capabilities = capabilities, -} -- Set up nvim-cmp. diff --git a/lua/my-lint.lua b/lua/my-lint.lua new file mode 100644 index 0000000..be424ef --- /dev/null +++ b/lua/my-lint.lua @@ -0,0 +1,10 @@ +require('lint').linters_by_ft = { + python = {'flake8', 'pylint', 'pycodestyle',} +} + +vim.api.nvim_create_autocmd({ "TextChanged" }, { + callback = function() + require("lint").try_lint() + end, +}) + diff --git a/lua/my-lspconfig.lua b/lua/my-lspconfig.lua new file mode 100644 index 0000000..1f2005d --- /dev/null +++ b/lua/my-lspconfig.lua @@ -0,0 +1,79 @@ +-- setup nvim-lspconfig +-- Mappings. +-- See `:help vim.diagnostic.*` for documentation on any of the below functions +local opts = { noremap=true, silent=true } +vim.keymap.set('n', 'e', vim.diagnostic.open_float, opts) +vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, opts) +vim.keymap.set('n', ']d', vim.diagnostic.goto_next, opts) +vim.keymap.set('n', 'q', vim.diagnostic.setloclist, opts) + +-- Use an on_attach function to only map the following keys +-- after the language server attaches to the current buffer +local on_attach = function(client, bufnr) + -- Enable completion triggered by + vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc') + + -- Mappings. + -- See `:help vim.lsp.*` for documentation on any of the below functions + local bufopts = { noremap=true, silent=true, buffer=bufnr } + vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, bufopts) + vim.keymap.set('n', 'gd', vim.lsp.buf.definition, bufopts) + vim.keymap.set('n', 'k', vim.lsp.buf.hover, bufopts) + vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, bufopts) + vim.keymap.set('n', '', vim.lsp.buf.signature_help, bufopts) + vim.keymap.set('n', 'wa', vim.lsp.buf.add_workspace_folder, bufopts) + vim.keymap.set('n', 'wr', vim.lsp.buf.remove_workspace_folder, bufopts) + vim.keymap.set('n', 'wl', function() + print(vim.inspect(vim.lsp.buf.list_workspace_folders())) + end, bufopts) + vim.keymap.set('n', 'D', vim.lsp.buf.type_definition, bufopts) + vim.keymap.set('n', 'rn', vim.lsp.buf.rename, bufopts) + vim.keymap.set('n', 'ca', vim.lsp.buf.code_action, bufopts) + vim.keymap.set('n', 'gr', vim.lsp.buf.references, bufopts) + vim.keymap.set('n', 'f', function() vim.lsp.buf.format { async = true } end, bufopts) +end + +local capabilities = require('cmp_nvim_lsp').default_capabilities() + +require'lspconfig'.pyright.setup{ + on_attach = on_attach, + capabilities = capabilities, +} +require'lspconfig'.bashls.setup{ + on_attach = on_attach, + capabilities = capabilities, +} +require'lspconfig'.salt_ls.setup{ + on_attach = on_attach, + capabilities = capabilities, +} +require'lspconfig'.dockerls.setup{ + on_attach = on_attach, + capabilities = capabilities, +} +require'lspconfig'.kotlin_language_server.setup{ + on_attach = on_attach, + capabilities = capabilities, +} +require'lspconfig'.intelephense.setup{ + on_attach = on_attach, + capabilities = capabilities, +} +require'lspconfig'.eslint.setup{ + on_attach = on_attach, + capabilities = capabilities, +} +require'lspconfig'.perlnavigator.setup{ + settings = { + perlnavigator = { + perlPath = 'perl', + enableWarnings = true, + perltidyProfile = '', + perlcriticProfile = '', + perlcriticEnabled = true, + } + }, + on_attach = on_attach, + capabilities = capabilities, +} +