summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ftplugin/cmake.lua (renamed from lua/lsp/cmake-ls.lua)0
-rw-r--r--ftplugin/cpp.lua (renamed from lua/lsp/clangd.lua)0
-rw-r--r--ftplugin/css.lua (renamed from lua/lsp/css-ls.lua)1
-rw-r--r--ftplugin/css.vim1
-rw-r--r--ftplugin/dart.lua (renamed from lua/lsp/dart-ls.lua)0
-rw-r--r--ftplugin/docker.lua (renamed from lua/lsp/docker-ls.lua)0
-rw-r--r--ftplugin/elixir.lua (renamed from lua/lsp/elixir-ls.lua)0
-rw-r--r--ftplugin/elm.lua (renamed from lua/lsp/elm-ls.lua)0
-rw-r--r--ftplugin/go.lua (renamed from lua/lsp/go-ls.lua)0
-rw-r--r--ftplugin/graphql.lua (renamed from lua/lsp/graphql-ls.lua)0
-rw-r--r--ftplugin/html.lua (renamed from lua/lsp/html-ls.lua)1
-rw-r--r--ftplugin/html.vim1
-rw-r--r--ftplugin/java.lua (renamed from lua/lsp/java-ls.lua)0
-rw-r--r--ftplugin/javascript.lua (renamed from lua/lsp/js-ts-ls.lua)1
-rw-r--r--ftplugin/javascript.vim1
-rw-r--r--ftplugin/javascriptreact.lua68
-rw-r--r--ftplugin/javascriptreact.vim1
-rw-r--r--ftplugin/json.lua (renamed from lua/lsp/json-ls.lua)0
-rw-r--r--ftplugin/kotlin.lua (renamed from lua/lsp/kotlin-ls.lua)0
-rw-r--r--ftplugin/latex.lua (renamed from lua/lsp/latex-ls.lua)0
-rw-r--r--ftplugin/lua.lua (renamed from lua/lsp/lua-ls.lua)30
-rw-r--r--ftplugin/php.lua (renamed from lua/lsp/php-ls.lua)0
-rw-r--r--ftplugin/python.lua (renamed from lua/lsp/python-ls.lua)49
-rw-r--r--ftplugin/ruby.lua (renamed from lua/lsp/ruby-ls.lua)0
-rw-r--r--ftplugin/rust.lua (renamed from lua/lsp/rust-ls.lua)0
-rw-r--r--ftplugin/sh.lua33
-rw-r--r--ftplugin/tf.lua (renamed from lua/lsp/terraform-ls.lua)0
-rw-r--r--ftplugin/typescript.lua68
-rw-r--r--ftplugin/typescriptreact.lua88
-rw-r--r--ftplugin/vim.lua (renamed from lua/lsp/vim-ls.lua)0
-rw-r--r--ftplugin/vue.lua (renamed from lua/lsp/vue-ls.lua)1
-rw-r--r--ftplugin/yaml.lua (renamed from lua/lsp/yaml-ls.lua)1
-rw-r--r--ftplugin/yaml.vim1
-rw-r--r--ftplugin/zsh.lua40
-rw-r--r--init.lua34
-rw-r--r--lua/default-config.lua46
-rw-r--r--lua/lsp/angular-ls.lua1
-rw-r--r--lua/lsp/bash-ls.lua6
-rw-r--r--lua/lsp/efm-general-ls.lua61
-rw-r--r--lua/lsp/emmet-ls.lua2
-rw-r--r--lua/lsp/svelte-ls.lua1
-rw-r--r--lua/lsp/tailwindcss-ls.lua1
-rw-r--r--lua/lv-autopairs/init.lua1
-rw-r--r--lua/plugins.lua3
-rw-r--r--lv-config.lua4
45 files changed, 404 insertions, 142 deletions
diff --git a/lua/lsp/cmake-ls.lua b/ftplugin/cmake.lua
index a9647118..a9647118 100644
--- a/lua/lsp/cmake-ls.lua
+++ b/ftplugin/cmake.lua
diff --git a/lua/lsp/clangd.lua b/ftplugin/cpp.lua
index 594c375b..594c375b 100644
--- a/lua/lsp/clangd.lua
+++ b/ftplugin/cpp.lua
diff --git a/lua/lsp/css-ls.lua b/ftplugin/css.lua
index f68256a4..4affb45e 100644
--- a/lua/lsp/css-ls.lua
+++ b/ftplugin/css.lua
@@ -6,3 +6,4 @@ require'lspconfig'.cssls.setup {
},
on_attach = require'lsp'.common_on_attach
}
+vim.cmd("setl ts=2 sw=2")
diff --git a/ftplugin/css.vim b/ftplugin/css.vim
deleted file mode 100644
index eadd3f51..00000000
--- a/ftplugin/css.vim
+++ /dev/null
@@ -1 +0,0 @@
-setl ts=2 sw=2
diff --git a/lua/lsp/dart-ls.lua b/ftplugin/dart.lua
index fe4898e8..fe4898e8 100644
--- a/lua/lsp/dart-ls.lua
+++ b/ftplugin/dart.lua
diff --git a/lua/lsp/docker-ls.lua b/ftplugin/docker.lua
index b477a239..b477a239 100644
--- a/lua/lsp/docker-ls.lua
+++ b/ftplugin/docker.lua
diff --git a/lua/lsp/elixir-ls.lua b/ftplugin/elixir.lua
index 418b4c4d..418b4c4d 100644
--- a/lua/lsp/elixir-ls.lua
+++ b/ftplugin/elixir.lua
diff --git a/lua/lsp/elm-ls.lua b/ftplugin/elm.lua
index 3572a607..3572a607 100644
--- a/lua/lsp/elm-ls.lua
+++ b/ftplugin/elm.lua
diff --git a/lua/lsp/go-ls.lua b/ftplugin/go.lua
index b2d6a82a..b2d6a82a 100644
--- a/lua/lsp/go-ls.lua
+++ b/ftplugin/go.lua
diff --git a/lua/lsp/graphql-ls.lua b/ftplugin/graphql.lua
index 0bd97ed5..0bd97ed5 100644
--- a/lua/lsp/graphql-ls.lua
+++ b/ftplugin/graphql.lua
diff --git a/lua/lsp/html-ls.lua b/ftplugin/html.lua
index f3027fb8..26f149d5 100644
--- a/lua/lsp/html-ls.lua
+++ b/ftplugin/html.lua
@@ -7,3 +7,4 @@ require'lspconfig'.html.setup {
on_attach = require'lsp'.common_on_attach,
capabilities = capabilities
}
+vim.cmd("setl ts=2 sw=2")
diff --git a/ftplugin/html.vim b/ftplugin/html.vim
deleted file mode 100644
index eadd3f51..00000000
--- a/ftplugin/html.vim
+++ /dev/null
@@ -1 +0,0 @@
-setl ts=2 sw=2
diff --git a/lua/lsp/java-ls.lua b/ftplugin/java.lua
index 0b151b66..0b151b66 100644
--- a/lua/lsp/java-ls.lua
+++ b/ftplugin/java.lua
diff --git a/lua/lsp/js-ts-ls.lua b/ftplugin/javascript.lua
index 6fe4dd63..173f6693 100644
--- a/lua/lsp/js-ts-ls.lua
+++ b/ftplugin/javascript.lua
@@ -65,3 +65,4 @@ if O.lang.tsserver.autoformat then
}
})
end
+vim.cmd("setl ts=2 sw=2")
diff --git a/ftplugin/javascript.vim b/ftplugin/javascript.vim
deleted file mode 100644
index eadd3f51..00000000
--- a/ftplugin/javascript.vim
+++ /dev/null
@@ -1 +0,0 @@
-setl ts=2 sw=2
diff --git a/ftplugin/javascriptreact.lua b/ftplugin/javascriptreact.lua
new file mode 100644
index 00000000..173f6693
--- /dev/null
+++ b/ftplugin/javascriptreact.lua
@@ -0,0 +1,68 @@
+-- npm install -g typescript typescript-language-server
+-- require'snippets'.use_suggested_mappings()
+-- local capabilities = vim.lsp.protocol.make_client_capabilities()
+-- capabilities.textDocument.completion.completionItem.snippetSupport = true;
+-- local on_attach_common = function(client)
+-- print("LSP Initialized")
+-- require'completion'.on_attach(client)
+-- require'illuminate'.on_attach(client)
+-- end
+require'lspconfig'.tsserver.setup {
+ cmd = {
+ DATA_PATH ..
+ "/lspinstall/typescript/node_modules/.bin/typescript-language-server",
+ "--stdio"
+ },
+ filetypes = {
+ "javascript", "javascriptreact", "javascript.jsx", "typescript",
+ "typescriptreact", "typescript.tsx"
+ },
+ on_attach = require'lsp'.tsserver_on_attach,
+ -- This makes sure tsserver is not used for formatting (I prefer prettier)
+ -- on_attach = require'lsp'.common_on_attach,
+ root_dir = require('lspconfig/util').root_pattern("package.json",
+ "tsconfig.json",
+ "jsconfig.json", ".git"),
+ settings = {documentFormatting = false},
+ handlers = {
+ ["textDocument/publishDiagnostics"] = vim.lsp.with(
+ vim.lsp.diagnostic.on_publish_diagnostics, {
+ virtual_text = O.lang.tsserver.diagnostics.virtual_text,
+ signs = O.lang.tsserver.diagnostics.signs,
+ underline = O.lang.tsserver.diagnostics.underline,
+ update_in_insert = true
+
+ })
+ }
+}
+
+if O.lang.tsserver.autoformat then
+ require('lv-utils').define_augroups({
+ _javascript_autoformat = {
+ {
+
+ 'BufWritePre', '*.js',
+ 'lua vim.lsp.buf.formatting_sync(nil, 1000)'
+ }
+ },
+ _javascriptreact_autoformat = {
+ {
+ 'BufWritePre', '*.jsx',
+ 'lua vim.lsp.buf.formatting_sync(nil, 1000)'
+ }
+ },
+ _typescript_autoformat = {
+ {
+ 'BufWritePre', '*.ts',
+ 'lua vim.lsp.buf.formatting_sync(nil, 1000)'
+ }
+ },
+ _typescriptreact_autoformat = {
+ {
+ 'BufWritePre', '*.tsx',
+ 'lua vim.lsp.buf.formatting_sync(nil, 1000)'
+ }
+ }
+ })
+end
+vim.cmd("setl ts=2 sw=2")
diff --git a/ftplugin/javascriptreact.vim b/ftplugin/javascriptreact.vim
deleted file mode 100644
index 11332b5c..00000000
--- a/ftplugin/javascriptreact.vim
+++ /dev/null
@@ -1 +0,0 @@
-setl commentstring={/*%s*/} ts=2 sw=2
diff --git a/lua/lsp/json-ls.lua b/ftplugin/json.lua
index 3a565095..3a565095 100644
--- a/lua/lsp/json-ls.lua
+++ b/ftplugin/json.lua
diff --git a/lua/lsp/kotlin-ls.lua b/ftplugin/kotlin.lua
index fcbb736b..fcbb736b 100644
--- a/lua/lsp/kotlin-ls.lua
+++ b/ftplugin/kotlin.lua
diff --git a/lua/lsp/latex-ls.lua b/ftplugin/latex.lua
index 179c143c..179c143c 100644
--- a/lua/lsp/latex-ls.lua
+++ b/ftplugin/latex.lua
diff --git a/lua/lsp/lua-ls.lua b/ftplugin/lua.lua
index 4257605f..cfcd9b92 100644
--- a/lua/lsp/lua-ls.lua
+++ b/ftplugin/lua.lua
@@ -39,3 +39,33 @@ if O.lang.lua.autoformat then
})
end
+local lua_arguments = {}
+
+local luaFormat = {
+ formatCommand = "lua-format -i --no-keep-simple-function-one-line --column-limit=80",
+ formatStdin = true
+}
+
+local lua_fmt = {
+ formatCommand = "luafmt --indent-count 2 --line-width 120 --stdin",
+ formatStdin = true
+}
+
+if O.lang.lua.formatter == 'lua-format' then
+ table.insert(lua_arguments, luaFormat)
+elseif O.lang.lua.formatter == 'lua-fmt' then
+ table.insert(lua_arguments, lua_fmt)
+end
+
+require"lspconfig".efm.setup {
+ -- init_options = {initializationOptions},
+ cmd = {DATA_PATH .. "/lspinstall/efm/efm-langserver"},
+ init_options = {documentFormatting = true, codeAction = false},
+ filetypes = {"lua"},
+ settings = {
+ rootMarkers = {".git/"},
+ languages = {
+ lua = lua_arguments,
+ }
+ }
+}
diff --git a/lua/lsp/php-ls.lua b/ftplugin/php.lua
index abc90092..abc90092 100644
--- a/lua/lsp/php-ls.lua
+++ b/ftplugin/php.lua
diff --git a/lua/lsp/python-ls.lua b/ftplugin/python.lua
index e2ccf42e..7ae0d6fd 100644
--- a/lua/lsp/python-ls.lua
+++ b/ftplugin/python.lua
@@ -1,3 +1,52 @@
+local python_arguments = {}
+
+-- TODO replace with path argument
+local flake8 = {
+ LintCommand = "flake8 --ignore=E501 --stdin-display-name ${INPUT} -",
+ lintStdin = true,
+ lintFormats = {"%f:%l:%c: %m"}
+}
+
+local isort = {formatCommand = "isort --quiet -", formatStdin = true}
+
+local yapf = {formatCommand = "yapf --quiet", formatStdin = true}
+local black = {formatCommand = "black --quiet -", formatStdin = true}
+
+if O.lang.python.linter == 'flake8' then table.insert(python_arguments, flake8) end
+
+if O.lang.python.isort then table.insert(python_arguments, isort) end
+
+if O.lang.python.formatter == 'yapf' then
+ table.insert(python_arguments, yapf)
+elseif O.lang.python.formatter == 'black' then
+ table.insert(python_arguments, black)
+end
+
+require"lspconfig".efm.setup {
+ -- init_options = {initializationOptions},
+ cmd = {DATA_PATH .. "/lspinstall/efm/efm-langserver"},
+ init_options = {documentFormatting = true, codeAction = false},
+ filetypes = {"lua", "python", "javascriptreact", "javascript", "typescript","typescriptreact","sh", "html", "css", "yaml", "markdown", "vue"},
+ settings = {
+ rootMarkers = {".git/", "requirements.txt"},
+ languages = {
+ python = python_arguments,
+ }
+ }
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
-- npm i -g pyright
require'lspconfig'.pyright.setup {
cmd = {
diff --git a/lua/lsp/ruby-ls.lua b/ftplugin/ruby.lua
index f46a71f8..f46a71f8 100644
--- a/lua/lsp/ruby-ls.lua
+++ b/ftplugin/ruby.lua
diff --git a/lua/lsp/rust-ls.lua b/ftplugin/rust.lua
index d210cadb..d210cadb 100644
--- a/lua/lsp/rust-ls.lua
+++ b/ftplugin/rust.lua
diff --git a/ftplugin/sh.lua b/ftplugin/sh.lua
new file mode 100644
index 00000000..7d9312f6
--- /dev/null
+++ b/ftplugin/sh.lua
@@ -0,0 +1,33 @@
+-- npm i -g bash-language-server
+require'lspconfig'.bashls.setup {
+ cmd = {DATA_PATH .. "/lspinstall/bash/node_modules/.bin/bash-language-server", "start"},
+ on_attach = require'lsp'.common_on_attach,
+ filetypes = { "sh", "zsh" }
+}
+
+-- sh
+local sh_arguments = {}
+
+local shfmt = {formatCommand = 'shfmt -ci -s -bn', formatStdin = true}
+
+local shellcheck = {
+ LintCommand = 'shellcheck -f gcc -x',
+ lintFormats = {'%f:%l:%c: %trror: %m', '%f:%l:%c: %tarning: %m', '%f:%l:%c: %tote: %m'}
+}
+
+if O.lang.sh.formatter == 'shfmt' then table.insert(sh_arguments, shfmt) end
+
+if O.lang.sh.linter == 'shellcheck' then table.insert(sh_arguments, shellcheck) end
+
+require"lspconfig".efm.setup {
+ -- init_options = {initializationOptions},
+ cmd = {DATA_PATH .. "/lspinstall/efm/efm-langserver"},
+ init_options = {documentFormatting = true, codeAction = false},
+ filetypes = {"sh"},
+ settings = {
+ rootMarkers = {".git/"},
+ languages = {
+ sh = sh_arguments,
+ }
+ }
+}
diff --git a/lua/lsp/terraform-ls.lua b/ftplugin/tf.lua
index a2e751a4..a2e751a4 100644
--- a/lua/lsp/terraform-ls.lua
+++ b/ftplugin/tf.lua
diff --git a/ftplugin/typescript.lua b/ftplugin/typescript.lua
new file mode 100644
index 00000000..173f6693
--- /dev/null
+++ b/ftplugin/typescript.lua
@@ -0,0 +1,68 @@
+-- npm install -g typescript typescript-language-server
+-- require'snippets'.use_suggested_mappings()
+-- local capabilities = vim.lsp.protocol.make_client_capabilities()
+-- capabilities.textDocument.completion.completionItem.snippetSupport = true;
+-- local on_attach_common = function(client)
+-- print("LSP Initialized")
+-- require'completion'.on_attach(client)
+-- require'illuminate'.on_attach(client)
+-- end
+require'lspconfig'.tsserver.setup {
+ cmd = {
+ DATA_PATH ..
+ "/lspinstall/typescript/node_modules/.bin/typescript-language-server",
+ "--stdio"
+ },
+ filetypes = {
+ "javascript", "javascriptreact", "javascript.jsx", "typescript",
+ "typescriptreact", "typescript.tsx"
+ },
+ on_attach = require'lsp'.tsserver_on_attach,
+ -- This makes sure tsserver is not used for formatting (I prefer prettier)
+ -- on_attach = require'lsp'.common_on_attach,
+ root_dir = require('lspconfig/util').root_pattern("package.json",
+ "tsconfig.json",
+ "jsconfig.json", ".git"),
+ settings = {documentFormatting = false},
+ handlers = {
+ ["textDocument/publishDiagnostics"] = vim.lsp.with(
+ vim.lsp.diagnostic.on_publish_diagnostics, {
+ virtual_text = O.lang.tsserver.diagnostics.virtual_text,
+ signs = O.lang.tsserver.diagnostics.signs,
+ underline = O.lang.tsserver.diagnostics.underline,
+ update_in_insert = true
+
+ })
+ }
+}
+
+if O.lang.tsserver.autoformat then
+ require('lv-utils').define_augroups({
+ _javascript_autoformat = {
+ {
+
+ 'BufWritePre', '*.js',
+ 'lua vim.lsp.buf.formatting_sync(nil, 1000)'
+ }
+ },
+ _javascriptreact_autoformat = {
+ {
+ 'BufWritePre', '*.jsx',
+ 'lua vim.lsp.buf.formatting_sync(nil, 1000)'
+ }
+ },
+ _typescript_autoformat = {
+ {
+ 'BufWritePre', '*.ts',
+ 'lua vim.lsp.buf.formatting_sync(nil, 1000)'
+ }
+ },
+ _typescriptreact_autoformat = {
+ {
+ 'BufWritePre', '*.tsx',
+ 'lua vim.lsp.buf.formatting_sync(nil, 1000)'
+ }
+ }
+ })
+end
+vim.cmd("setl ts=2 sw=2")
diff --git a/ftplugin/typescriptreact.lua b/ftplugin/typescriptreact.lua
new file mode 100644
index 00000000..40c68c51
--- /dev/null
+++ b/ftplugin/typescriptreact.lua
@@ -0,0 +1,88 @@
+-- npm install -g typescript typescript-language-server
+-- require'snippets'.use_suggested_mappings()
+-- local capabilities = vim.lsp.protocol.make_client_capabilities()
+-- capabilities.textDocument.completion.completionItem.snippetSupport = true;
+-- local on_attach_common = function(client)
+-- print("LSP Initialized")
+-- require'completion'.on_attach(client)
+-- require'illuminate'.on_attach(client)
+-- end
+require'lspconfig'.tsserver.setup {
+ cmd = {
+ DATA_PATH ..
+ "/lspinstall/typescript/node_modules/.bin/typescript-language-server",
+ "--stdio"
+ },
+ filetypes = {
+ "javascript", "javascriptreact", "javascript.jsx", "typescript",
+ "typescriptreact", "typescript.tsx"
+ },
+ on_attach = require'lsp'.tsserver_on_attach,
+ -- This makes sure tsserver is not used for formatting (I prefer prettier)
+ -- on_attach = require'lsp'.common_on_attach,
+ root_dir = require('lspconfig/util').root_pattern("package.json",
+ "tsconfig.json",
+ "jsconfig.json", ".git"),
+ settings = {documentFormatting = false},
+ handlers = {
+ ["textDocument/publishDiagnostics"] = vim.lsp.with(
+ vim.lsp.diagnostic.on_publish_diagnostics, {
+ virtual_text = O.lang.tsserver.diagnostics.virtual_text,
+ signs = O.lang.tsserver.diagnostics.signs,
+ underline = O.lang.tsserver.diagnostics.underline,
+ update_in_insert = true
+
+ })
+ }
+}
+
+if O.lang.tsserver.autoformat then
+ require('lv-utils').define_augroups({
+ _javascript_autoformat = {
+ {
+
+ 'BufWritePre', '*.js',
+ 'lua vim.lsp.buf.formatting_sync(nil, 1000)'
+ }
+ },
+ _javascriptreact_autoformat = {
+ {
+ 'BufWritePre', '*.jsx',
+ 'lua vim.lsp.buf.formatting_sync(nil, 1000)'
+ }
+ },
+ _typescript_autoformat = {
+ {
+ 'BufWritePre', '*.ts',
+ 'lua vim.lsp.buf.formatting_sync(nil, 1000)'
+ }
+ },
+ _typescriptreact_autoformat = {
+ {
+ 'BufWritePre', '*.tsx',
+ 'lua vim.lsp.buf.formatting_sync(nil, 1000)'
+ }
+ }
+ })
+end
+vim.cmd("setl ts=2 sw=2")
+
+local nvim_lsp = require'lspconfig'
+local configs = require'lspconfig/configs'
+local capabilities = vim.lsp.protocol.make_client_capabilities()
+capabilities.textDocument.completion.completionItem.snippetSupport = true
+
+configs.emmet_ls = {
+ default_config = {
+ cmd = {'emmet-ls', '--stdio'};
+ filetypes = {'html', 'css', 'javascript', 'javascriptreact', 'typescript', 'typescriptreact'};
+ root_dir = function()
+ return vim.loop.cwd()
+ end;
+ settings = {};
+ };
+}
+
+nvim_lsp.emmet_ls.setup{
+ -- on_attach = on_attach;
+}
diff --git a/lua/lsp/vim-ls.lua b/ftplugin/vim.lua
index 39beb119..39beb119 100644
--- a/lua/lsp/vim-ls.lua
+++ b/ftplugin/vim.lua
diff --git a/lua/lsp/vue-ls.lua b/ftplugin/vue.lua
index f18fe2ab..66fba01e 100644
--- a/lua/lsp/vue-ls.lua
+++ b/ftplugin/vue.lua
@@ -1,4 +1,3 @@
-
require('lspconfig').vuels.setup {
cmd = {DATA_PATH .. "/lspinstall/vue/node_modules/.bin/vls", "--stdio"},
on_attach = require'lsp'.common_on_attach,
diff --git a/lua/lsp/yaml-ls.lua b/ftplugin/yaml.lua
index 3fbc41e4..7b6f9a25 100644
--- a/lua/lsp/yaml-ls.lua
+++ b/ftplugin/yaml.lua
@@ -3,3 +3,4 @@ require'lspconfig'.yamlls.setup{
cmd = {DATA_PATH .. "/lspinstall/yaml/node_modules/.bin/yaml-language-server", "--stdio"},
on_attach = require'lsp'.common_on_attach,
}
+vim.cmd("setl ts=2 sw=2 ts=2 ai et")
diff --git a/ftplugin/yaml.vim b/ftplugin/yaml.vim
deleted file mode 100644
index dcb1b038..00000000
--- a/ftplugin/yaml.vim
+++ /dev/null
@@ -1 +0,0 @@
-setl ts=2 sw=2 ts=2 ai et
diff --git a/ftplugin/zsh.lua b/ftplugin/zsh.lua
new file mode 100644
index 00000000..7e99ebd3
--- /dev/null
+++ b/ftplugin/zsh.lua
@@ -0,0 +1,40 @@
+-- npm i -g bash-language-server
+require'lspconfig'.bashls.setup {
+ cmd = {DATA_PATH .. "/lspinstall/bash/node_modules/.bin/bash-language-server", "start"},
+ on_attach = require'lsp'.common_on_attach,
+ filetypes = { "sh", "zsh" }
+}
+
+-- npm i -g bash-language-server
+require'lspconfig'.bashls.setup {
+ cmd = {DATA_PATH .. "/lspinstall/bash/node_modules/.bin/bash-language-server", "start"},
+ on_attach = require'lsp'.common_on_attach,
+ filetypes = { "sh", "zsh" }
+}
+
+-- sh
+local sh_arguments = {}
+
+local shfmt = {formatCommand = 'shfmt -ci -s -bn', formatStdin = true}
+
+local shellcheck = {
+ LintCommand = 'shellcheck -f gcc -x',
+ lintFormats = {'%f:%l:%c: %trror: %m', '%f:%l:%c: %tarning: %m', '%f:%l:%c: %tote: %m'}
+}
+
+if O.lang.sh.formatter == 'shfmt' then table.insert(sh_arguments, shfmt) end
+
+if O.lang.sh.linter == 'shellcheck' then table.insert(sh_arguments, shellcheck) end
+
+require"lspconfig".efm.setup {
+ -- init_options = {initializationOptions},
+ cmd = {DATA_PATH .. "/lspinstall/efm/efm-langserver"},
+ init_options = {documentFormatting = true, codeAction = false},
+ filetypes = {"zsh"},
+ settings = {
+ rootMarkers = {".git/"},
+ languages = {
+ sh = sh_arguments,
+ }
+ }
+}
diff --git a/init.lua b/init.lua
index 2fe8dd60..ab6d264a 100644
--- a/init.lua
+++ b/init.lua
@@ -8,39 +8,5 @@ require('keymappings')
require('lv-galaxyline')
require('lv-treesitter')
require('lv-which-key')
-
--- LSP
require('lsp')
--- TODO should I put this in the filetype files?
-if O.lang.java.active then require('lsp.java-ls') end
-if O.lang.clang.active then require('lsp.clangd') end
-if O.lang.sh.active then require('lsp.bash-ls') end
-if O.lang.cmake.active then require('lsp.cmake-ls') end
-if O.lang.css.active then require('lsp.css-ls') end
-if O.lang.dart.active then require('lsp.dart-ls') end
-if O.lang.docker.active then require('lsp.docker-ls') end
-if O.lang.efm.active then require('lsp.efm-general-ls') end
-if O.lang.elm.active then require('lsp.elm-ls') end
if O.lang.emmet.active then require('lsp.emmet-ls') end
-if O.lang.graphql.active then require('lsp.graphql-ls') end
-if O.lang.go.active then require('lsp.go-ls') end
-if O.lang.html.active then require('lsp.html-ls') end
-if O.lang.json.active then require('lsp.json-ls') end
-if O.lang.kotlin.active then require('lsp.kotlin-ls') end
-if O.lang.latex.active then require('lsp.latex-ls') end
-if O.lang.lua.active then require('lsp.lua-ls') end
-if O.lang.php.active then require('lsp.php-ls') end
-if O.lang.python.active then require('lsp.python-ls') end
-if O.lang.ruby.active then require('lsp.ruby-ls') end
-if O.lang.rust.active then require('lsp.rust-ls') end
-if O.lang.svelte.active then require('lsp.svelte-ls') end
-if O.lang.terraform.active then require('lsp.terraform-ls') end
-if O.lang.tailwindcss.active then require('lsp.tailwindcss-ls') end
-if O.lang.vim.active then require('lsp.vim-ls') end
-if O.lang.yaml.active then require('lsp.yaml-ls') end
-if O.lang.elixir.active then require('lsp.elixir-ls') end
-if O.lang.tsserver.active then
- require('lsp.js-ts-ls')
- require('lsp.angular-ls')
- require('lsp.vue-ls')
-end
diff --git a/lua/default-config.lua b/lua/default-config.lua
index 407e4c1f..efb94f01 100644
--- a/lua/default-config.lua
+++ b/lua/default-config.lua
@@ -67,7 +67,6 @@ O = {
lang = {
python = {
- active = false,
linter = '',
-- @usage can be 'yapf', 'black'
formatter = '',
@@ -85,11 +84,9 @@ O = {
}
},
dart = {
- active = false,
sdk_path = '/usr/lib/dart/bin/snapshots/analysis_server.dart.snapshot'
},
lua = {
- active = false,
-- @usage can be 'lua-format'
formatter = '',
autoformat = false,
@@ -100,7 +97,6 @@ O = {
}
},
sh = {
- active = false,
-- @usage can be 'shellcheck'
linter = '',
-- @usage can be 'shfmt'
@@ -113,7 +109,6 @@ O = {
}
},
tsserver = {
- active = false,
-- @usage can be 'eslint'
linter = '',
-- @usage can be 'prettier'
@@ -126,7 +121,6 @@ O = {
}
},
json = {
- active = false,
-- @usage can be 'prettier'
formatter = '',
autoformat = false,
@@ -137,14 +131,12 @@ O = {
}
},
tailwindcss = {
- active = false,
filetypes = {
'html', 'css', 'scss', 'javascript', 'javascriptreact',
'typescript', 'typescriptreact'
}
},
clang = {
- active = false,
diagnostics = {
virtual_text = {spacing = 0, prefix = "ï„‘"},
signs = true,
@@ -152,7 +144,6 @@ O = {
}
},
ruby = {
- active = false,
diagnostics = {
virtualtext = {spacing = 0, prefix = "ï„‘"},
signs = true,
@@ -160,13 +151,12 @@ O = {
},
filetypes = {'rb', 'erb', 'rakefile'}
},
- go = {active = false},
- elixir = {active = false},
- vim = {active = false},
- yaml = {active = false},
- terraform = {active = false},
+ go = {},
+ elixir = {},
+ vim = {},
+ yaml = {},
+ terraform = {},
rust = {
- active = false,
linter = '',
formatter = '',
autoformat = false,
@@ -176,21 +166,19 @@ O = {
underline = true
}
},
- svelte = {active = false},
- php = {active = false},
- latex = {active = false},
- kotlin = {active = false},
- html = {active = false},
- elm = {active = false},
- emmet = {active = false},
- graphql = {active = false},
- efm = {active = true},
- docker = {active = false},
- cmake = {active = false},
- java = {active = false},
+ svelte = {},
+ php = {},
+ latex = {},
+ kotlin = {},
+ html = {},
+ elm = {},
+ emmet = {active = true},
+ graphql = {},
+ efm = {},
+ docker = {},
+ cmake = {},
+ java = {},
css = {
- active = false,
-
formatter = '',
autoformat = false,
virtual_text = true
diff --git a/lua/lsp/angular-ls.lua b/lua/lsp/angular-ls.lua
index 9f5e6245..64a66c21 100644
--- a/lua/lsp/angular-ls.lua
+++ b/lua/lsp/angular-ls.lua
@@ -1,3 +1,4 @@
+-- TODO find correct root filetype
-- :LspInstall angular
require'lspconfig'.angularls.setup {
cmd = {DATA_PATH .. "/lspinstall/angular/node_modules/@angular/language-server/bin/ngserver", "--stdio"},
diff --git a/lua/lsp/bash-ls.lua b/lua/lsp/bash-ls.lua
deleted file mode 100644
index 7b430a6e..00000000
--- a/lua/lsp/bash-ls.lua
+++ /dev/null
@@ -1,6 +0,0 @@
--- npm i -g bash-language-server
-require'lspconfig'.bashls.setup {
- cmd = {DATA_PATH .. "/lspinstall/bash/node_modules/.bin/bash-language-server", "start"},
- on_attach = require'lsp'.common_on_attach,
- filetypes = { "sh", "zsh" }
-}
diff --git a/lua/lsp/efm-general-ls.lua b/lua/lsp/efm-general-ls.lua
index d85bc216..8b4b8449 100644
--- a/lua/lsp/efm-general-ls.lua
+++ b/lua/lsp/efm-general-ls.lua
@@ -1,62 +1,4 @@
-- Example configuations here: https://github.com/mattn/efm-langserver
--- TODO this file needs to be refactored eache lang should be it's own file
--- python
-local python_arguments = {}
-
--- TODO replace with path argument
-local flake8 = {
- LintCommand = "flake8 --ignore=E501 --stdin-display-name ${INPUT} -",
- lintStdin = true,
- lintFormats = {"%f:%l:%c: %m"}
-}
-
-local isort = {formatCommand = "isort --quiet -", formatStdin = true}
-
-local yapf = {formatCommand = "yapf --quiet", formatStdin = true}
-local black = {formatCommand = "black --quiet -", formatStdin = true}
-
-if O.lang.python.linter == 'flake8' then table.insert(python_arguments, flake8) end
-
-if O.lang.python.isort then table.insert(python_arguments, isort) end
-
-if O.lang.python.formatter == 'yapf' then
- table.insert(python_arguments, yapf)
-elseif O.lang.python.formatter == 'black' then
- table.insert(python_arguments, black)
-end
-
--- lua
-local lua_arguments = {}
-
-local luaFormat = {
- formatCommand = "lua-format -i --no-keep-simple-function-one-line --column-limit=80",
- formatStdin = true
-}
-
-local lua_fmt = {
- formatCommand = "luafmt --indent-count 2 --line-width 120 --stdin",
- formatStdin = true
-}
-
-if O.lang.lua.formatter == 'lua-format' then
- table.insert(lua_arguments, luaFormat)
-elseif O.lang.lua.formatter == 'lua-fmt' then
- table.insert(lua_arguments, lua_fmt)
-end
-
--- sh
-local sh_arguments = {}
-
-local shfmt = {formatCommand = 'shfmt -ci -s -bn', formatStdin = true}
-
-local shellcheck = {
- LintCommand = 'shellcheck -f gcc -x',
- lintFormats = {'%f:%l:%c: %trror: %m', '%f:%l:%c: %tarning: %m', '%f:%l:%c: %tote: %m'}
-}
-
-if O.lang.sh.formatter == 'shfmt' then table.insert(sh_arguments, shfmt) end
-
-if O.lang.sh.linter == 'shellcheck' then table.insert(sh_arguments, shellcheck) end
-- tsserver/web javascript react, vue, json, html, css, yaml
local prettier = {formatCommand = "prettier --stdin-filepath ${INPUT}", formatStdin = true}
@@ -96,9 +38,6 @@ require"lspconfig".efm.setup {
settings = {
rootMarkers = {".git/"},
languages = {
- python = python_arguments,
- lua = lua_arguments,
- sh = sh_arguments,
javascript = tsserver_args,
javascriptreact = tsserver_args,
typescript = tsserver_args,
diff --git a/lua/lsp/emmet-ls.lua b/lua/lsp/emmet-ls.lua
index 6531ccf0..46d6c90d 100644
--- a/lua/lsp/emmet-ls.lua
+++ b/lua/lsp/emmet-ls.lua
@@ -6,7 +6,7 @@ capabilities.textDocument.completion.completionItem.snippetSupport = true
configs.emmet_ls = {
default_config = {
cmd = {'emmet-ls', '--stdio'};
- filetypes = {'html', 'css'};
+ filetypes = {'html', 'css', 'javascript', 'javascriptreact', 'typescript', 'typescriptreact'};
root_dir = function()
return vim.loop.cwd()
end;
diff --git a/lua/lsp/svelte-ls.lua b/lua/lsp/svelte-ls.lua
index 753f7046..b9e8a5f8 100644
--- a/lua/lsp/svelte-ls.lua
+++ b/lua/lsp/svelte-ls.lua
@@ -1,3 +1,4 @@
+-- TODO what is a svelte filetype
require'lspconfig'.svelte.setup {
cmd = {DATA_PATH .. "/lspinstall/svelte/node_modules/.bin/svelteserver", "--stdio"},
on_attach = require'lsp'.common_on_attach
diff --git a/lua/lsp/tailwindcss-ls.lua b/lua/lsp/tailwindcss-ls.lua
index 923eb5d5..87cd924c 100644
--- a/lua/lsp/tailwindcss-ls.lua
+++ b/lua/lsp/tailwindcss-ls.lua
@@ -1,3 +1,4 @@
+-- TODO what is a tailwindcss filetype
local lspconfig = require 'lspconfig'
lspconfig.tailwindcss.setup {
diff --git a/lua/lv-autopairs/init.lua b/lua/lv-autopairs/init.lua
index 458f0d57..fb1300a2 100644
--- a/lua/lv-autopairs/init.lua
+++ b/lua/lv-autopairs/init.lua
@@ -1,4 +1,3 @@
-local remap = vim.api.nvim_set_keymap
local npairs = require('nvim-autopairs')
local Rule = require('nvim-autopairs.rule')
diff --git a/lua/plugins.lua b/lua/plugins.lua
index ccd1efa7..c15b0b27 100644
--- a/lua/plugins.lua
+++ b/lua/plugins.lua
@@ -35,10 +35,11 @@ return require("packer").startup(function(use)
-- TODO refactor all of this (for now it works, but yes I know it could be wrapped in a simpler function)
use {"neovim/nvim-lspconfig"}
use {"glepnir/lspsaga.nvim", event = "BufRead"}
- use {"kabouzeid/nvim-lspinstall", event = "BufRead"}
+ use {"kabouzeid/nvim-lspinstall"}
-- Telescope
use {"nvim-lua/popup.nvim"}
use {"nvim-lua/plenary.nvim"}
+ use {"tjdevries/astronauta.nvim"}
use {
"nvim-telescope/telescope.nvim",
config = [[require('lv-telescope')]],
diff --git a/lv-config.lua b/lv-config.lua
index 43408208..1746b9dd 100644
--- a/lv-config.lua
+++ b/lv-config.lua
@@ -49,7 +49,6 @@ O.lang.clang.diagnostics.underline = false
-- add things like O.python.formatter.isort.exec_path
O.lang.python.formatter = 'yapf'
-- O.python.linter = 'flake8'
-O.lang.python.active = true
O.lang.python.isort = true
O.lang.python.autoformat = true
O.lang.python.diagnostics.virtual_text = true
@@ -59,9 +58,9 @@ O.lang.python.analysis.type_checking = "off"
O.lang.python.analysis.auto_search_paths = true
O.lang.python.analysis.use_library_code_types = true
+
-- lua
-- TODO look into stylua
-O.lang.lua.active = true
O.lang.lua.formatter = 'lua-format'
-- O.lua.formatter = 'lua-format'
O.lang.lua.autoformat = false
@@ -72,7 +71,6 @@ O.lang.tsserver.linter = nil
O.lang.tsserver.autoformat = true
-- json
-O.lang.json.active = false
O.lang.json.autoformat = true
-- ruby