summaryrefslogtreecommitdiff
path: root/ftplugin
diff options
context:
space:
mode:
Diffstat (limited to 'ftplugin')
-rw-r--r--ftplugin/c.lua16
-rw-r--r--ftplugin/css.lua3
-rw-r--r--ftplugin/dart.lua14
-rw-r--r--ftplugin/euphoria3.lua2
-rw-r--r--ftplugin/go.lua15
-rw-r--r--ftplugin/java.lua44
-rw-r--r--ftplugin/javascript.lua2
-rw-r--r--ftplugin/json.lua14
l---------ftplugin/less.lua1
-rw-r--r--ftplugin/lua.lua28
-rw-r--r--ftplugin/php.lua14
-rw-r--r--ftplugin/python.lua20
-rw-r--r--ftplugin/ruby.lua14
-rw-r--r--ftplugin/rust.lua18
l---------ftplugin/sass.lua1
l---------ftplugin/scss.lua1
-rw-r--r--ftplugin/sh.lua15
-rw-r--r--ftplugin/tex.lua30
-rw-r--r--ftplugin/tf.lua16
-rw-r--r--ftplugin/yaml.lua14
-rw-r--r--ftplugin/zsh.lua1
21 files changed, 259 insertions, 24 deletions
diff --git a/ftplugin/c.lua b/ftplugin/c.lua
index f9064213..8beaae5d 100644
--- a/ftplugin/c.lua
+++ b/ftplugin/c.lua
@@ -1,3 +1,19 @@
+O.formatters.filetype["c"] = {
+ function()
+ return {
+ exe = O.lang.c.formatter.exe,
+ args = O.lang.c.formatter.args,
+ stdin = not (O.lang.c.formatter.stdin ~= nil),
+ }
+ end,
+}
+O.formatters.filetype["cpp"] = O.formatters.filetype["c"]
+
+require("formatter.config").set_defaults {
+ logging = false,
+ filetype = O.formatters.filetype,
+}
+
if require("lv-utils").check_lsp_client_active "clangd" then
return
end
diff --git a/ftplugin/css.lua b/ftplugin/css.lua
index ff8c1004..9cd7cc71 100644
--- a/ftplugin/css.lua
+++ b/ftplugin/css.lua
@@ -1,4 +1,6 @@
if not require("lv-utils").check_lsp_client_active "cssls" then
+ local capabilities = vim.lsp.protocol.make_client_capabilities()
+ capabilities.textDocument.completion.completionItem.snippetSupport = true
-- npm install -g vscode-css-languageserver-bin
require("lspconfig").cssls.setup {
cmd = {
@@ -7,6 +9,7 @@ if not require("lv-utils").check_lsp_client_active "cssls" then
"--stdio",
},
on_attach = require("lsp").common_on_attach,
+ capabilities = capabilities,
}
end
diff --git a/ftplugin/dart.lua b/ftplugin/dart.lua
index a0de0fd5..f9b68e9d 100644
--- a/ftplugin/dart.lua
+++ b/ftplugin/dart.lua
@@ -1,3 +1,17 @@
+O.formatters.filetype["dart"] = {
+ function()
+ return {
+ exe = O.lang.dart.formatter.exe,
+ args = O.lang.dart.formatter.args,
+ stdin = not (O.lang.dart.formatter.stdin ~= nil),
+ }
+ end,
+}
+
+require("formatter.config").set_defaults {
+ logging = false,
+ filetype = O.formatters.filetype,
+}
if require("lv-utils").check_lsp_client_active "dartls" then
return
end
diff --git a/ftplugin/euphoria3.lua b/ftplugin/euphoria3.lua
index 7c3a1da3..b59a265a 100644
--- a/ftplugin/euphoria3.lua
+++ b/ftplugin/euphoria3.lua
@@ -2,7 +2,7 @@ if require("lv-utils").check_lsp_client_active "elixirls" then
return
end
--- TODO Remove this at some point
+-- TODO: Remove this at some point
require("lspconfig").elixirls.setup {
cmd = { DATA_PATH .. "/lspinstall/elixir/elixir-ls/language_server.sh" },
}
diff --git a/ftplugin/go.lua b/ftplugin/go.lua
index fbad5a2b..47de932f 100644
--- a/ftplugin/go.lua
+++ b/ftplugin/go.lua
@@ -1,3 +1,18 @@
+O.formatters.filetype["go"] = {
+ function()
+ return {
+ exe = O.lang.go.formatter.exe,
+ args = O.lang.go.formatter.args,
+ stdin = not (O.lang.go.formatter.stdin ~= nil),
+ }
+ end,
+}
+
+require("formatter.config").set_defaults {
+ logging = false,
+ filetype = O.formatters.filetype,
+}
+
if not require("lv-utils").check_lsp_client_active "gopls" then
require("lspconfig").gopls.setup {
cmd = { DATA_PATH .. "/lspinstall/go/gopls" },
diff --git a/ftplugin/java.lua b/ftplugin/java.lua
index bba968b9..7db90f0e 100644
--- a/ftplugin/java.lua
+++ b/ftplugin/java.lua
@@ -1,3 +1,28 @@
+vim.cmd "let proj = FindRootDirectory()"
+local root_dir = vim.api.nvim_get_var "proj"
+
+-- use the global prettier if you didn't find the local one
+local prettier_instance = root_dir .. "/node_modules/.bin/prettier"
+if vim.fn.executable(prettier_instance) ~= 1 then
+ prettier_instance = O.lang.tsserver.formatter.exe
+end
+
+O.formatters.filetype["java"] = {
+ function()
+ return {
+ exe = prettier_instance,
+ -- TODO: allow user to override this
+ args = { "--stdin-filepath", vim.api.nvim_buf_get_name(0) },
+ stdin = true,
+ }
+ end,
+}
+
+require("formatter.config").set_defaults {
+ logging = false,
+ filetype = O.formatters.filetype,
+}
+
if require("lv-utils").check_lsp_client_active "jdtls" then
return
end
@@ -18,11 +43,24 @@ if O.lang.java.java_tools.active then
cmd = { JAVA_LS_EXECUTABLE, WORKSPACE_PATH .. vim.fn.fnamemodify(vim.fn.getcwd(), ":p:h:t") },
}
+ vim.api.nvim_set_keymap(
+ "n",
+ "<leader>la",
+ ":lua require('jdtls').code_action()<CR>",
+ { noremap = true, silent = true }
+ )
+ vim.api.nvim_set_keymap(
+ "n",
+ "<leader>lR",
+ ":lua require('jdtls').code_action(false, 'refactor')<CR>",
+ { noremap = true, silent = true }
+ )
+
vim.cmd "command! -buffer JdtCompile lua require('jdtls').compile()"
vim.cmd "command! -buffer JdtUpdateConfig lua require('jdtls').update_project_config()"
- vim.cmd "command! -buffer JdtJol lua require('jdtls').jol()"
+ -- vim.cmd "command! -buffer JdtJol lua require('jdtls').jol()"
vim.cmd "command! -buffer JdtBytecode lua require('jdtls').javap()"
- vim.cmd "command! -buffer JdtJshell lua require('jdtls').jshell()"
+ -- vim.cmd "command! -buffer JdtJshell lua require('jdtls').jshell()"
else
local util = require "lspconfig/util"
@@ -48,7 +86,7 @@ end
-- init_options = {bundles = bundles}
-- })
--- TODO setup autoformat stuff later
+-- TODO: setup autoformat stuff later
-- _java = {
-- -- {'FileType', 'java', 'luafile '..CONFIG_PATH..'/lua/lsp/java-ls.lua'},
-- {
diff --git a/ftplugin/javascript.lua b/ftplugin/javascript.lua
index f74b54e9..fc59ab68 100644
--- a/ftplugin/javascript.lua
+++ b/ftplugin/javascript.lua
@@ -1,3 +1 @@
require "lsp.tsserver-ls"
-
-vim.cmd "setl ts=2 sw=2"
diff --git a/ftplugin/json.lua b/ftplugin/json.lua
index c7246e76..cb73995c 100644
--- a/ftplugin/json.lua
+++ b/ftplugin/json.lua
@@ -1,3 +1,17 @@
+O.formatters.filetype["json"] = {
+ function()
+ return {
+ exe = O.lang.json.formatter.exe,
+ args = O.lang.json.formatter.args,
+ stdin = not (O.lang.json.formatter.stdin ~= nil),
+ }
+ end,
+}
+
+require("formatter.config").set_defaults {
+ logging = false,
+ filetype = O.formatters.filetype,
+}
if require("lv-utils").check_lsp_client_active "jsonls" then
return
end
diff --git a/ftplugin/less.lua b/ftplugin/less.lua
new file mode 120000
index 00000000..6b9e5a8d
--- /dev/null
+++ b/ftplugin/less.lua
@@ -0,0 +1 @@
+css.lua \ No newline at end of file
diff --git a/ftplugin/lua.lua b/ftplugin/lua.lua
index 2ffaa472..eb7b9944 100644
--- a/ftplugin/lua.lua
+++ b/ftplugin/lua.lua
@@ -1,3 +1,17 @@
+O.formatters.filetype["lua"] = {
+ function()
+ return {
+ exe = O.lang.lua.formatter.exe,
+ args = O.lang.lua.formatter.args,
+ stdin = not (O.lang.lua.formatter.stdin ~= nil),
+ }
+ end,
+}
+
+require("formatter.config").set_defaults {
+ logging = false,
+ filetype = O.formatters.filetype,
+}
if not require("lv-utils").check_lsp_client_active "sumneko_lua" then
-- https://github.com/sumneko/lua-language-server/wiki/Build-and-Run-(Standalone)
local sumneko_root_path = DATA_PATH .. "/lspinstall/lua"
@@ -31,17 +45,3 @@ if not require("lv-utils").check_lsp_client_active "sumneko_lua" then
},
}
end
-
-if O.lang.lua.autoformat then
- require("lv-utils").define_augroups {
- _lua_autoformat = {
- {
- "BufWritePre",
- "*.lua",
- "lua vim.lsp.buf.formatting_sync(nil, 1000)",
- },
- },
- }
-end
-
-vim.cmd "setl ts=2 sw=2"
diff --git a/ftplugin/php.lua b/ftplugin/php.lua
index 713ef44e..054dff79 100644
--- a/ftplugin/php.lua
+++ b/ftplugin/php.lua
@@ -1,3 +1,17 @@
+O.formatters.filetype["php"] = {
+ function()
+ return {
+ exe = O.lang.php.formatter.exe,
+ args = O.lang.php.formatter.args,
+ stdin = not (O.lang.php.formatter.stdin ~= nil),
+ }
+ end,
+}
+
+require("formatter.config").set_defaults {
+ logging = false,
+ filetype = O.formatters.filetype,
+}
if require("lv-utils").check_lsp_client_active "intelephense" then
return
end
diff --git a/ftplugin/python.lua b/ftplugin/python.lua
index 0cf7c1a7..d2ade7e2 100644
--- a/ftplugin/python.lua
+++ b/ftplugin/python.lua
@@ -1,6 +1,21 @@
+O.formatters.filetype["python"] = {
+ function()
+ return {
+ exe = O.lang.python.formatter.exe,
+ args = O.lang.python.formatter.args,
+ stdin = not (O.lang.python.formatter.stdin ~= nil),
+ }
+ end,
+}
+
+require("formatter.config").set_defaults {
+ logging = false,
+ filetype = O.formatters.filetype,
+}
+
local python_arguments = {}
--- TODO replace with path argument
+-- TODO: replace with path argument
local flake8 = {
LintCommand = "flake8 --ignore=E501 --stdin-display-name ${INPUT} -",
lintStdin = true,
@@ -25,6 +40,7 @@ if not require("lv-utils").check_lsp_client_active "efm" then
-- init_options = {initializationOptions},
cmd = { DATA_PATH .. "/lspinstall/efm/efm-langserver" },
init_options = { documentFormatting = true, codeAction = false },
+ root_dir = require("lspconfig").util.root_pattern(".git/", "requirements.txt"),
filetypes = { "python" },
settings = {
rootMarkers = { ".git/", "requirements.txt" },
@@ -63,7 +79,7 @@ if not require("lv-utils").check_lsp_client_active "pyright" then
}
end
-if O.plugin.debug.active and O.plugin.dap_install.active then
+if O.plugin.dap.active then
local dap_install = require "dap-install"
dap_install.config("python_dbg", {})
end
diff --git a/ftplugin/ruby.lua b/ftplugin/ruby.lua
index 7f86ffb9..ff7e7c8b 100644
--- a/ftplugin/ruby.lua
+++ b/ftplugin/ruby.lua
@@ -1,3 +1,17 @@
+O.formatters.filetype["ruby"] = {
+ function()
+ return {
+ exe = O.lang.ruby.formatter.exe,
+ args = O.lang.ruby.formatter.args,
+ stdin = not (O.lang.ruby.formatter.stdin ~= nil),
+ }
+ end,
+}
+
+require("formatter.config").set_defaults {
+ logging = false,
+ filetype = O.formatters.filetype,
+}
if require("lv-utils").check_lsp_client_active "solargraph" then
return
end
diff --git a/ftplugin/rust.lua b/ftplugin/rust.lua
index 4fb47582..dd34483e 100644
--- a/ftplugin/rust.lua
+++ b/ftplugin/rust.lua
@@ -1,3 +1,17 @@
+O.formatters.filetype["rust"] = {
+ function()
+ return {
+ exe = O.lang.rust.formatter.exe,
+ args = O.lang.rust.formatter.args,
+ stdin = not (O.lang.rust.formatter.stdin ~= nil),
+ }
+ end,
+}
+
+require("formatter.config").set_defaults {
+ logging = false,
+ filetype = O.formatters.filetype,
+}
if require("lv-utils").check_lsp_client_active "rust_analyzer" then
return
end
@@ -81,11 +95,11 @@ else
cmd = { DATA_PATH .. "/lspinstall/rust/rust-analyzer" },
on_attach = require("lsp").common_on_attach,
filetypes = { "rust" },
- root_dir = require("lspconfig.util").root_pattern("Cargo.toml", "rust-project.json"),
+ root_dir = require("lspconfig.util").root_pattern("Carrust.toml", "rust-project.json"),
}
end
--- TODO fix these mappings
+-- TODO: fix these mappings
vim.api.nvim_exec(
[[
autocmd Filetype rust nnoremap <leader>lm <Cmd>RustExpandMacro<CR>
diff --git a/ftplugin/sass.lua b/ftplugin/sass.lua
new file mode 120000
index 00000000..6b9e5a8d
--- /dev/null
+++ b/ftplugin/sass.lua
@@ -0,0 +1 @@
+css.lua \ No newline at end of file
diff --git a/ftplugin/scss.lua b/ftplugin/scss.lua
new file mode 120000
index 00000000..6b9e5a8d
--- /dev/null
+++ b/ftplugin/scss.lua
@@ -0,0 +1 @@
+css.lua \ No newline at end of file
diff --git a/ftplugin/sh.lua b/ftplugin/sh.lua
index c299f2de..54002f19 100644
--- a/ftplugin/sh.lua
+++ b/ftplugin/sh.lua
@@ -1,3 +1,17 @@
+O.formatters.filetype["sh"] = {
+ function()
+ return {
+ exe = O.lang.sh.formatter.exe,
+ args = O.lang.sh.formatter.args,
+ stdin = not (O.lang.sh.formatter.stdin ~= nil),
+ }
+ end,
+}
+
+require("formatter.config").set_defaults {
+ logging = false,
+ filetype = O.formatters.filetype,
+}
if not require("lv-utils").check_lsp_client_active "bashls" then
-- npm i -g bash-language-server
require("lspconfig").bashls.setup {
@@ -26,6 +40,7 @@ if not require("lv-utils").check_lsp_client_active "efm" then
-- init_options = {initializationOptions},
cmd = { DATA_PATH .. "/lspinstall/efm/efm-langserver" },
init_options = { documentFormatting = true, codeAction = false },
+ root_dir = require("lspconfig").util.root_pattern ".git/",
filetypes = { "sh" },
settings = {
rootMarkers = { ".git/" },
diff --git a/ftplugin/tex.lua b/ftplugin/tex.lua
index 7ad35000..c5748189 100644
--- a/ftplugin/tex.lua
+++ b/ftplugin/tex.lua
@@ -6,3 +6,33 @@ require("lspconfig").texlab.setup {
cmd = { DATA_PATH .. "/lspinstall/latex/texlab" },
on_attach = require("lsp").common_on_attach,
}
+
+vim.g.vimtex_compiler_method = "latexmk"
+vim.g.vimtex_view_method = "zathura"
+vim.g.vimtex_fold_enabled = 0
+vim.g.vimtex_quickfix_ignore_filters = O.lang.latex.ignore_errors
+
+O.plugin.which_key.mappings["L"] = {
+ name = "+Latex",
+ c = { "<cmd>VimtexCompile<cr>", "Toggle Compilation Mode" },
+ f = { "<cmd>call vimtex#fzf#run()<cr>", "Fzf Find" },
+ i = { "<cmd>VimtexInfo<cr>", "Project Information" },
+ s = { "<cmd>VimtexStop<cr>", "Stop Project Compilation" },
+ t = { "<cmd>VimtexTocToggle<cr>", "Toggle Table Of Content" },
+ v = { "<cmd>VimtexView<cr>", "View PDF" },
+}
+
+-- Compile on initialization, cleanup on quit
+vim.api.nvim_exec(
+ [[
+ augroup vimtex_event_1
+ au!
+ au User VimtexEventQuit call vimtex#compiler#clean(0)
+ au User VimtexEventInitPost call vimtex#compiler#compile()
+ augroup END
+ ]],
+ false
+)
+if O.lang.latex.auto_save then
+ vim.api.nvim_exec([[au FocusLost * :wa]], false)
+end
diff --git a/ftplugin/tf.lua b/ftplugin/tf.lua
index 7291cbd8..a328f7c2 100644
--- a/ftplugin/tf.lua
+++ b/ftplugin/tf.lua
@@ -1,3 +1,19 @@
+O.formatters.filetype["hcl"] = {
+ function()
+ return {
+ exe = O.lang.terraform.formatter.exe,
+ args = O.lang.terraform.formatter.args,
+ stdin = not (O.lang.terraform.formatter.stdin ~= nil),
+ }
+ end,
+}
+O.formatters.filetype["tf"] = O.formatters.filetype["hcl"]
+
+require("formatter.config").set_defaults {
+ logging = false,
+ filetype = O.formatters.filetype,
+}
+
if require("lv-utils").check_lsp_client_active "terraformls" then
return
end
diff --git a/ftplugin/yaml.lua b/ftplugin/yaml.lua
index 219022f5..f1dfc5dc 100644
--- a/ftplugin/yaml.lua
+++ b/ftplugin/yaml.lua
@@ -1,3 +1,17 @@
+O.formatters.filetype["yaml"] = {
+ function()
+ return {
+ exe = O.lang.yaml.formatter.exe,
+ args = O.lang.yaml.formatter.args,
+ stdin = not (O.lang.yaml.formatter.stdin ~= nil),
+ }
+ end,
+}
+
+require("formatter.config").set_defaults {
+ logging = false,
+ filetype = O.formatters.filetype,
+}
if require("lv-utils").check_lsp_client_active "yamlls" then
return
end
diff --git a/ftplugin/zsh.lua b/ftplugin/zsh.lua
index 49cd103d..750e8ede 100644
--- a/ftplugin/zsh.lua
+++ b/ftplugin/zsh.lua
@@ -24,6 +24,7 @@ if not require("lv-utils").check_lsp_client_active "efm" then
-- init_options = {initializationOptions},
cmd = { DATA_PATH .. "/lspinstall/efm/efm-langserver" },
init_options = { documentFormatting = true, codeAction = false },
+ root_dir = require("lspconfig").util.root_pattern ".git/",
filetypes = { "zsh" },
settings = {
rootMarkers = { ".git/" },