use only builtin lsp client, add support for linters

This commit is contained in:
Szwendacz99 2022-10-28 12:02:25 +02:00
parent 3a60f0b2c2
commit 647cfeefb2
4 changed files with 93 additions and 94 deletions

View file

@ -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 <leader>fg <cmd>Telescope live_grep<cr>
nnoremap <leader>fb <cmd>Telescope buffers<cr>
nnoremap <leader>fh <cmd>Telescope help_tags<cr>
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

View file

@ -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', '<space>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', '<space>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 <c-x><c-o>
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', '<C-k>', vim.lsp.buf.signature_help, bufopts)
vim.keymap.set('n', '<space>wa', vim.lsp.buf.add_workspace_folder, bufopts)
vim.keymap.set('n', '<space>wr', vim.lsp.buf.remove_workspace_folder, bufopts)
vim.keymap.set('n', '<space>wl', function()
print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
end, bufopts)
vim.keymap.set('n', '<space>D', vim.lsp.buf.type_definition, bufopts)
vim.keymap.set('n', '<space>rn', vim.lsp.buf.rename, bufopts)
vim.keymap.set('n', '<space>ca', vim.lsp.buf.code_action, bufopts)
vim.keymap.set('n', 'gr', vim.lsp.buf.references, bufopts)
vim.keymap.set('n', '<space>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.

10
lua/my-lint.lua Normal file
View file

@ -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,
})

79
lua/my-lspconfig.lua Normal file
View file

@ -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', '<space>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', '<space>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 <c-x><c-o>
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', '<leader>k', vim.lsp.buf.hover, bufopts)
vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, bufopts)
vim.keymap.set('n', '<C-k>', vim.lsp.buf.signature_help, bufopts)
vim.keymap.set('n', '<space>wa', vim.lsp.buf.add_workspace_folder, bufopts)
vim.keymap.set('n', '<space>wr', vim.lsp.buf.remove_workspace_folder, bufopts)
vim.keymap.set('n', '<space>wl', function()
print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
end, bufopts)
vim.keymap.set('n', '<space>D', vim.lsp.buf.type_definition, bufopts)
vim.keymap.set('n', '<space>rn', vim.lsp.buf.rename, bufopts)
vim.keymap.set('n', '<space>ca', vim.lsp.buf.code_action, bufopts)
vim.keymap.set('n', 'gr', vim.lsp.buf.references, bufopts)
vim.keymap.set('n', '<space>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,
}