summaryrefslogtreecommitdiff
path: root/lua/lang
diff options
context:
space:
mode:
Diffstat (limited to 'lua/lang')
-rw-r--r--lua/lang/clang.lua159
-rw-r--r--lua/lang/clojure.lua37
-rw-r--r--lua/lang/cmake.lua42
-rw-r--r--lua/lang/cs.lua38
-rw-r--r--lua/lang/css.lua77
-rw-r--r--lua/lang/dart.lua59
-rw-r--r--lua/lang/dockerfile.lua39
-rw-r--r--lua/lang/elixir.lua61
-rw-r--r--lua/lang/elm.lua48
-rw-r--r--lua/lang/erlang.lua32
-rw-r--r--lua/lang/euphoria3.lua42
-rw-r--r--lua/lang/fish.lua28
-rw-r--r--lua/lang/go.lua60
-rw-r--r--lua/lang/graphql.lua38
-rw-r--r--lua/lang/html.lua50
-rw-r--r--lua/lang/java.lua127
-rw-r--r--lua/lang/javascript.lua25
-rw-r--r--lua/lang/javascriptreact.lua25
-rw-r--r--lua/lang/json.lua72
-rw-r--r--lua/lang/julia.lua53
-rw-r--r--lua/lang/kotlin.lua67
-rw-r--r--lua/lang/less.lua25
-rw-r--r--lua/lang/lua.lua87
-rw-r--r--lua/lang/php.lua88
-rw-r--r--lua/lang/python.lua95
-rw-r--r--lua/lang/r.lua56
-rw-r--r--lua/lang/ruby.lua77
-rw-r--r--lua/lang/rust.lua155
-rw-r--r--lua/lang/scala.lua80
-rw-r--r--lua/lang/sh.lua65
-rw-r--r--lua/lang/svelte.lua39
-rw-r--r--lua/lang/swift.lua55
-rw-r--r--lua/lang/terraform.lua57
-rw-r--r--lua/lang/tex.lua159
-rw-r--r--lua/lang/typescript.lua25
-rw-r--r--lua/lang/typescriptreact.lua25
-rw-r--r--lua/lang/vim.lua40
-rw-r--r--lua/lang/vue.lua71
-rw-r--r--lua/lang/yaml.lua54
-rw-r--r--lua/lang/zig.lua58
-rw-r--r--lua/lang/zsh.lua53
41 files changed, 0 insertions, 2543 deletions
diff --git a/lua/lang/clang.lua b/lua/lang/clang.lua
deleted file mode 100644
index 0a568620..00000000
--- a/lua/lang/clang.lua
+++ /dev/null
@@ -1,159 +0,0 @@
-local M = {}
-
-M.config = function()
- O.lang.clang = {
- diagnostics = {
- virtual_text = { spacing = 0, prefix = "ï„‘" },
- signs = true,
- underline = true,
- },
- cross_file_rename = true,
- header_insertion = "never",
- filetypes = { "c", "cpp", "objc" },
- formatter = {
- exe = "clang-format",
- args = {},
- stdin = true,
- },
- linters = {
- "cppcheck",
- "clangtidy",
- },
- debug = {
- adapter = {
- command = "/usr/bin/lldb-vscode",
- },
- stop_on_entry = false,
- },
- lsp = {
- path = DATA_PATH .. "/lspinstall/cpp/clangd/bin/clangd",
- },
- }
-end
-
-M.format = function()
- local shared_config = {
- function()
- return {
- exe = O.lang.clang.formatter.exe,
- args = O.lang.clang.formatter.args,
- stdin = O.lang.clang.formatter.stdin,
- cwd = vim.fn.expand "%:h:p",
- }
- end,
- }
- O.formatters.filetype["c"] = shared_config
- O.formatters.filetype["cpp"] = shared_config
- O.formatters.filetype["objc"] = shared_config
-
- require("formatter.config").set_defaults {
- logging = false,
- filetype = O.formatters.filetype,
- }
-end
-
-M.lint = function()
- require("lint").linters_by_ft = {
- c = O.lang.clang.linters,
- cpp = O.lang.clang.linters,
- }
-end
-
-M.lsp = function()
- if require("lv-utils").check_lsp_client_active "clangd" then
- return
- end
- local clangd_flags = { "--background-index" }
-
- if O.lang.clang.cross_file_rename then
- table.insert(clangd_flags, "--cross-file-rename")
- end
-
- table.insert(clangd_flags, "--header-insertion=" .. O.lang.clang.header_insertion)
-
- require("lspconfig").clangd.setup {
- cmd = { O.lang.clang.lsp.path, unpack(clangd_flags) },
- on_attach = require("lsp").common_on_attach,
- handlers = {
- ["textDocument/publishDiagnostics"] = vim.lsp.with(vim.lsp.diagnostic.on_publish_diagnostics, {
- virtual_text = O.lang.clang.diagnostics.virtual_text,
- signs = O.lang.clang.diagnostics.signs,
- underline = O.lang.clang.diagnostics.underline,
- update_in_insert = true,
- }),
- },
- }
-end
-
-M.dap = function()
- if O.plugin.dap.active then
- local dap_install = require "dap-install"
- local dap = require "dap"
- dap_install.config("ccppr_vsc_dbg", {})
- dap.adapters.lldb = {
- type = "executable",
- command = O.lang.clang.debug.adapter.command,
- name = "lldb",
- }
- local shared_dap_config = {
- {
- name = "Launch",
- type = "lldb",
- request = "launch",
- program = function()
- return vim.fn.input("Path to executable: ", vim.fn.getcwd() .. "/", "file")
- end,
- cwd = "${workspaceFolder}",
- stopOnEntry = O.lang.clang.debug.stop_on_entry,
- args = {},
- env = function()
- local variables = {}
- for k, v in pairs(vim.fn.environ()) do
- table.insert(variables, string.format("%s=%s", k, v))
- end
- return variables
- end,
- runInTerminal = false,
- },
- {
- -- If you get an "Operation not permitted" error using this, try disabling YAMA:
- -- echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
- name = "Attach to process",
- type = "lldb", -- Adjust this to match your adapter name (`dap.adapters.<name>`)
- request = "attach",
- pid = function()
- local output = vim.fn.system { "ps", "a" }
- local lines = vim.split(output, "\n")
- local procs = {}
- for _, line in pairs(lines) do
- -- output format
- -- " 107021 pts/4 Ss 0:00 /bin/zsh <args>"
- local parts = vim.fn.split(vim.fn.trim(line), " \\+")
- local pid = parts[1]
- local name = table.concat({ unpack(parts, 5) }, " ")
- if pid and pid ~= "PID" then
- pid = tonumber(pid)
- if pid ~= vim.fn.getpid() then
- table.insert(procs, { pid = tonumber(pid), name = name })
- end
- end
- end
- local choices = { "Select process" }
- for i, proc in ipairs(procs) do
- table.insert(choices, string.format("%d: pid=%d name=%s", i, proc.pid, proc.name))
- end
- local choice = vim.fn.inputlist(choices)
- if choice < 1 or choice > #procs then
- return nil
- end
- return procs[choice].pid
- end,
- args = {},
- },
- }
- dap.configurations.c = shared_dap_config
- dap.configurations.cpp = shared_dap_config
- end
-end
-
-return M
diff --git a/lua/lang/clojure.lua b/lua/lang/clojure.lua
deleted file mode 100644
index e973a0e3..00000000
--- a/lua/lang/clojure.lua
+++ /dev/null
@@ -1,37 +0,0 @@
-local M = {}
-
-M.config = function()
- O.lang.erlang = {
- lsp = {
- path = DATA_PATH .. "/lspinstall/clojure/clojure-lsp",
- },
- }
-end
-
-M.format = function()
- -- TODO: implement formatter for language
- return "No formatter available!"
-end
-
-M.lint = function()
- -- TODO: implement linters (if applicable)
- return "No linters configured!"
-end
-
-M.lsp = function()
- if require("lv-utils").check_lsp_client_active "clojure_lsp" then
- return
- end
-
- require("lspconfig").clojure_lsp.setup {
- cmd = { O.lang.erlang.lsp.path },
- on_attach = require("lsp").common_on_attach,
- }
-end
-
-M.dap = function()
- -- TODO: implement dap
- return "No DAP configured!"
-end
-
-return M
diff --git a/lua/lang/cmake.lua b/lua/lang/cmake.lua
deleted file mode 100644
index a4d8d045..00000000
--- a/lua/lang/cmake.lua
+++ /dev/null
@@ -1,42 +0,0 @@
-local M = {}
-
-M.config = function()
- O.lang.cmake = {
- formatter = {
- exe = "clang-format",
- args = {},
- },
- lsp = {
- path = DATA_PATH .. "/lspinstall/cmake/venv/bin/cmake-language-server",
- },
- }
-end
-
-M.format = function()
- -- TODO: implement formatters (if applicable)
- return "No formatters configured!"
-end
-
-M.lint = function()
- -- TODO: implement linters (if applicable)
- return "No linters configured!"
-end
-
-M.lsp = function()
- if require("lv-utils").check_lsp_client_active "cmake" then
- return
- end
-
- require("lspconfig").cmake.setup {
- cmd = { O.lang.cmake.lsp.path },
- on_attach = require("lsp").common_on_attach,
- filetypes = { "cmake" },
- }
-end
-
-M.dap = function()
- -- TODO: implement dap
- return "No DAP configured!"
-end
-
-return M
diff --git a/lua/lang/cs.lua b/lua/lang/cs.lua
deleted file mode 100644
index 851e226f..00000000
--- a/lua/lang/cs.lua
+++ /dev/null
@@ -1,38 +0,0 @@
-local M = {}
-
-M.config = function()
- O.lang.csharp = {
- lsp = {
- path = DATA_PATH .. "/lspinstall/csharp/omnisharp/run",
- },
- }
-end
-
-M.format = function()
- -- TODO: implement formatter for language
- return "No formatter available!"
-end
-
-M.lint = function()
- -- TODO: implement linters (if applicable)
- return "No linters configured!"
-end
-
-M.lsp = function()
- if require("lv-utils").check_lsp_client_active "omnisharp" then
- return
- end
-
- -- C# language server (csharp/OmniSharp) setup
- require("lspconfig").omnisharp.setup {
- on_attach = require("lsp").common_on_attach,
- cmd = { O.lang.csharp.lsp.path, "--languageserver", "--hostPID", tostring(vim.fn.getpid()) },
- }
-end
-
-M.dap = function()
- -- TODO: implement dap
- return "No DAP configured!"
-end
-
-return M
diff --git a/lua/lang/css.lua b/lua/lang/css.lua
deleted file mode 100644
index 257896f2..00000000
--- a/lua/lang/css.lua
+++ /dev/null
@@ -1,77 +0,0 @@
-local M = {}
-
-M.config = function()
- O.lang.css = {
- virtual_text = true,
- formatter = {
- exe = "prettier",
- args = {},
- },
- lsp = {
- path = DATA_PATH .. "/lspinstall/css/vscode-css/css-language-features/server/dist/node/cssServerMain.js",
- },
- }
-end
-
-M.format = function()
- 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
-
- local ft = vim.bo.filetype
- O.formatters.filetype[ft] = {
- function()
- local args = { "--stdin-filepath", vim.fn.fnameescape(vim.api.nvim_buf_get_name(0)) }
- -- TODO: O.lang.[ft].formatter.args
- local extend_args = O.lang.css.formatter.args
-
- for i = 1, #extend_args do
- table.insert(args, extend_args[i])
- end
-
- return {
- exe = prettier_instance,
- args = args,
- stdin = true,
- }
- end,
- }
- require("formatter.config").set_defaults {
- logging = false,
- filetype = O.formatters.filetype,
- }
-end
-
-M.lint = function()
- -- TODO: implement linters (if applicable)
- return "No linters configured!"
-end
-
-M.lsp = function()
- 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 = {
- "node",
- O.lang.css.lsp.path,
- "--stdio",
- },
- on_attach = require("lsp").common_on_attach,
- capabilities = capabilities,
- }
- end
-end
-
-M.dap = function()
- -- TODO: implement dap
- return "No DAP configured!"
-end
-
-return M
diff --git a/lua/lang/dart.lua b/lua/lang/dart.lua
deleted file mode 100644
index b95d303d..00000000
--- a/lua/lang/dart.lua
+++ /dev/null
@@ -1,59 +0,0 @@
-local M = {}
-
-M.config = function()
- O.lang.dart = {
- sdk_path = "/usr/lib/dart/bin/snapshots/analysis_server.dart.snapshot",
- formatter = {
- exe = "dart",
- args = { "format" },
- stdin = true,
- },
- }
-end
-
-M.format = function()
- O.formatters.filetype["dart"] = {
- function()
- return {
- exe = O.lang.dart.formatter.exe,
- args = O.lang.dart.formatter.args,
- stdin = O.lang.dart.formatter.stdin,
- }
- end,
- }
-
- require("formatter.config").set_defaults {
- logging = false,
- filetype = O.formatters.filetype,
- }
-end
-
-M.lint = function()
- -- TODO: implement linters (if applicable)
- return "No linters configured!"
-end
-
-M.lsp = function()
- if require("lv-utils").check_lsp_client_active "dartls" then
- return
- end
-
- require("lspconfig").dartls.setup {
- cmd = { "dart", O.lang.dart.sdk_path, "--lsp" },
- on_attach = require("lsp").common_on_attach,
- init_options = {
- closingLabels = false,
- flutterOutline = false,
- onlyAnalyzeProjectsWithOpenFiles = false,
- outline = false,
- suggestFromUnimportedLibraries = true,
- },
- }
-end
-
-M.dap = function()
- -- TODO: implement dap
- return "No DAP configured!"
-end
-
-return M
diff --git a/lua/lang/dockerfile.lua b/lua/lang/dockerfile.lua
deleted file mode 100644
index 35134f36..00000000
--- a/lua/lang/dockerfile.lua
+++ /dev/null
@@ -1,39 +0,0 @@
-local M = {}
-
-M.config = function()
- O.lang.docker = {
- lsp = {
- path = DATA_PATH .. "/lspinstall/dockerfile/node_modules/.bin/docker-langserver",
- },
- }
-end
-
-M.format = function()
- -- TODO: implement formatter for language
- return "No formatter available!"
-end
-
-M.lint = function()
- -- TODO: implement linters (if applicable)
- return "No linters configured!"
-end
-
-M.lsp = function()
- if require("lv-utils").check_lsp_client_active "dockerls" then
- return
- end
-
- -- npm install -g dockerfile-language-server-nodejs
- require("lspconfig").dockerls.setup {
- cmd = { O.lang.docker.lsp.path, "--stdio" },
- on_attach = require("lsp").common_on_attach,
- root_dir = vim.loop.cwd,
- }
-end
-
-M.dap = function()
- -- TODO: implement dap
- return "No DAP configured!"
-end
-
-return M
diff --git a/lua/lang/elixir.lua b/lua/lang/elixir.lua
deleted file mode 100644
index e702e89b..00000000
--- a/lua/lang/elixir.lua
+++ /dev/null
@@ -1,61 +0,0 @@
-local M = {}
-
-M.config = function()
- O.lang.elixir = {
- formatter = {
- exe = "mix",
- args = { "format" },
- stdin = true,
- },
- lsp = {
- path = DATA_PATH .. "/lspinstall/elixir/elixir-ls/language_server.sh",
- },
- }
-end
-
-M.format = function()
- O.formatters.filetype["elixir"] = {
- function()
- return {
- exe = O.lang.elixir.formatter.exe,
- args = O.lang.elixir.formatter.args,
- stdin = O.lang.elixir.formatter.stdin,
- }
- end,
- }
-
- require("formatter.config").set_defaults {
- logging = false,
- filetype = O.formatters.filetype,
- }
-end
-
-M.lint = function()
- -- TODO: implement linters (if applicable)
- return "No linters configured!"
-end
-
-M.lsp = function()
- if require("lv-utils").check_lsp_client_active "elixirls" then
- return
- end
-
- require("lspconfig").elixirls.setup {
- cmd = { O.lang.elixir.lsp.path },
- on_attach = require("lsp").common_on_attach,
- }
-end
-
-M.dap = function()
- -- TODO: implement dap
- return "No DAP configured!"
-end
-
--- needed for the LSP to recognize elixir files (alternativly just use elixir-editors/vim-elixir)
--- vim.cmd [[
--- au BufRead,BufNewFile *.ex,*.exs set filetype=elixir
--- au BufRead,BufNewFile *.eex,*.leex,*.sface set filetype=eelixir
--- au BufRead,BufNewFile mix.lock set filetype=elixir
--- ]]
-
-return M
diff --git a/lua/lang/elm.lua b/lua/lang/elm.lua
deleted file mode 100644
index 8fc8cebb..00000000
--- a/lua/lang/elm.lua
+++ /dev/null
@@ -1,48 +0,0 @@
-local M = {}
-
-M.config = function()
- local elm_bin = DATA_PATH .. "/lspinstall/elm/node_modules/.bin"
-
- O.lang.elm = {
- lsp = {
- path = elm_bin .. "/elm-language-server",
- format = elm_bin .. "/elm-format",
- root = elm_bin,
- test = elm_bin .. "/elm-test",
- },
- }
-end
-
-M.format = function()
- -- TODO: implement formatter for language
- return "No formatter available!"
-end
-
-M.lint = function()
- -- TODO: implement linters (if applicable)
- return "No linters configured!"
-end
-
-M.lsp = function()
- if require("lv-utils").check_lsp_client_active "elmls" then
- return
- end
-
- require("lspconfig").elmls.setup {
- cmd = { O.lang.elm.lsp.path },
- on_attach = require("lsp").common_on_attach,
- init_options = {
- elmAnalyseTrigger = "change",
- elmFormatPath = O.lang.elm.lsp.format,
- elmPath = O.lang.elm.lsp.root,
- elmTestPath = O.lang.elm.lsp.test,
- },
- }
-end
-
-M.dap = function()
- -- TODO: implement dap
- return "No DAP configured!"
-end
-
-return M
diff --git a/lua/lang/erlang.lua b/lua/lang/erlang.lua
deleted file mode 100644
index c98b65cf..00000000
--- a/lua/lang/erlang.lua
+++ /dev/null
@@ -1,32 +0,0 @@
-local M = {}
-
-M.config = function()
- O.lang.erlang = {}
-end
-
-M.format = function()
- -- TODO: implement formatter for language
- return "No formatter available!"
-end
-
-M.lint = function()
- -- TODO: implement linters (if applicable)
- return "No linters configured!"
-end
-
-M.lsp = function()
- if require("lv-utils").check_lsp_client_active "erlangls" then
- return
- end
-
- require("lspconfig").erlangls.setup {
- on_attach = require("lsp").common_on_attach,
- }
-end
-
-M.dap = function()
- -- TODO: implement dap
- return "No DAP configured!"
-end
-
-return M
diff --git a/lua/lang/euphoria3.lua b/lua/lang/euphoria3.lua
deleted file mode 100644
index f8e32c61..00000000
--- a/lua/lang/euphoria3.lua
+++ /dev/null
@@ -1,42 +0,0 @@
-local M = {}
-
-M.config = function()
- -- TODO: implement config for language
- return "No config available!"
-end
-
-M.format = function()
- -- TODO: implement formatter for language
- return "No formatter available!"
-end
-
-M.lint = function()
- -- TODO: implement linters (if applicable)
- return "No linters configured!"
-end
-
-M.lsp = function()
- if require("lv-utils").check_lsp_client_active "elixirls" then
- return
- end
-
- -- TODO: Remove this at some point
- require("lspconfig").elixirls.setup {
- cmd = { DATA_PATH .. "/lspinstall/elixir/elixir-ls/language_server.sh" },
- on_attach = require("lsp").common_on_attach,
- }
-end
-
--- needed for the LSP to recognize elixir files (alternativly just use elixir-editors/vim-elixir)
--- vim.cmd([[
--- au BufRead,BufNewFile *.ex,*.exs set filetype=elixir
--- au BufRead,BufNewFile *.eex,*.leex,*.sface set filetype=eelixir
--- au BufRead,BufNewFile mix.lock set filetype=elixir
--- ]])
-
-M.dap = function()
- -- TODO: implement dap
- return "No DAP configured!"
-end
-
-return M
diff --git a/lua/lang/fish.lua b/lua/lang/fish.lua
deleted file mode 100644
index a347cff7..00000000
--- a/lua/lang/fish.lua
+++ /dev/null
@@ -1,28 +0,0 @@
-local M = {}
-
-M.config = function()
- -- TODO: implement config for language
- return "No config available!"
-end
-
-M.format = function()
- -- TODO: implement formatters (if applicable)
- return "No formatters configured!"
-end
-
-M.lint = function()
- -- TODO: implement linters (if applicable)
- return "No linters configured!"
-end
-
-M.lsp = function()
- -- TODO: implement lsp
- return "No LSP configured!"
-end
-
-M.dap = function()
- -- TODO: implement dap
- return "No DAP configured!"
-end
-
-return M
diff --git a/lua/lang/go.lua b/lua/lang/go.lua
deleted file mode 100644
index 16b55ffb..00000000
--- a/lua/lang/go.lua
+++ /dev/null
@@ -1,60 +0,0 @@
-local M = {}
-
-M.config = function()
- O.lang.go = {
- formatter = {
- exe = "gofmt",
- args = {},
- stdin = true,
- },
- linters = {
- "golangcilint",
- "revive",
- },
- lsp = {
- path = DATA_PATH .. "/lspinstall/go/gopls",
- },
- }
-end
-
-M.format = function()
- O.formatters.filetype["go"] = {
- function()
- return {
- exe = O.lang.go.formatter.exe,
- args = O.lang.go.formatter.args,
- stdin = O.lang.go.formatter.stdin,
- }
- end,
- }
-
- require("formatter.config").set_defaults {
- logging = false,
- filetype = O.formatters.filetype,
- }
-end
-
-M.lint = function()
- require("lint").linters_by_ft = {
- go = O.lang.go.linters,
- }
-end
-
-M.lsp = function()
- if not require("lv-utils").check_lsp_client_active "gopls" then
- require("lspconfig").gopls.setup {
- cmd = { O.lang.go.lsp.path },
- settings = { gopls = { analyses = { unusedparams = true }, staticcheck = true } },
- root_dir = require("lspconfig").util.root_pattern(".git", "go.mod"),
- init_options = { usePlaceholders = true, completeUnimported = true },
- on_attach = require("lsp").common_on_attach,
- }
- end
-end
-
-M.dap = function()
- -- TODO: implement dap
- return "No DAP configured!"
-end
-
-return M
diff --git a/lua/lang/graphql.lua b/lua/lang/graphql.lua
deleted file mode 100644
index 601541a6..00000000
--- a/lua/lang/graphql.lua
+++ /dev/null
@@ -1,38 +0,0 @@
-local M = {}
-
-M.config = function()
- O.lang.graphql = {
- lsp = {
- path = "graphql-lsp",
- },
- }
-end
-
-M.format = function()
- -- TODO: implement formatter for language
- return "No formatter available!"
-end
-
-M.lint = function()
- -- TODO: implement linters (if applicable)
- return "No linters configured!"
-end
-
-M.lsp = function()
- if require("lv-utils").check_lsp_client_active "graphql" then
- return
- end
-
- -- npm install -g graphql-language-service-cli
- require("lspconfig").graphql.setup {
- cmd = { O.lang.graphql.lsp.path, "server", "-m", "stream" },
- on_attach = require("lsp").common_on_attach,
- }
-end
-
-M.dap = function()
- -- TODO: implement dap
- return "No DAP configured!"
-end
-
-return M
diff --git a/lua/lang/html.lua b/lua/lang/html.lua
deleted file mode 100644
index b14f6e1a..00000000
--- a/lua/lang/html.lua
+++ /dev/null
@@ -1,50 +0,0 @@
-local M = {}
-
-M.config = function()
- O.lang.html = {
- linters = {
- "tidy",
- -- https://docs.errata.ai/vale/scoping#html
- "vale",
- },
- lsp = {
- path = DATA_PATH .. "/lspinstall/html/vscode-html/html-language-features/server/dist/node/htmlServerMain.js",
- },
- }
-end
-
-M.format = function()
- -- TODO: implement formatters (if applicable)
- return "No formatters configured!"
-end
-
-M.lint = function()
- require("lint").linters_by_ft = {
- html = O.lang.html.linters,
- }
-end
-
-M.lsp = function()
- if not require("lv-utils").check_lsp_client_active "html" then
- -- npm install -g vscode-html-languageserver-bin
- local capabilities = vim.lsp.protocol.make_client_capabilities()
- capabilities.textDocument.completion.completionItem.snippetSupport = true
-
- require("lspconfig").html.setup {
- cmd = {
- "node",
- O.lang.html.lsp.path,
- "--stdio",
- },
- on_attach = require("lsp").common_on_attach,
- capabilities = capabilities,
- }
- end
-end
-
-M.dap = function()
- -- TODO: implement dap
- return "No DAP configured!"
-end
-
-return M
diff --git a/lua/lang/java.lua b/lua/lang/java.lua
deleted file mode 100644
index d84c0000..00000000
--- a/lua/lang/java.lua
+++ /dev/null
@@ -1,127 +0,0 @@
-local M = {}
-
-M.config = function()
- O.lang.java = {
- java_tools = {
- active = false,
- },
- formatter = {
- exe = "prettier",
- args = { "--stdin-filepath", vim.api.nvim_buf_get_name(0), "--single-quote" },
- },
- }
-end
-
-M.format = function()
- 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,
- }
-end
-
-M.lint = function()
- -- TODO: implement linters (if applicable)
- return "No linters configured!"
-end
-
-M.lsp = function()
- if require("lv-utils").check_lsp_client_active "jdtls" then
- return
- end
-
- if O.lang.java.java_tools.active then
- -- find_root looks for parent directories relative to the current buffer containing one of the given arguments.
- if vim.fn.has "mac" == 1 then
- WORKSPACE_PATH = "/Users/" .. USER .. "/workspace/"
- elseif vim.fn.has "unix" == 1 then
- WORKSPACE_PATH = "/home/" .. USER .. "/workspace/"
- else
- print "Unsupported system"
- end
-
- JAVA_LS_EXECUTABLE = os.getenv "HOME" .. "/.local/share/lunarvim/lvim/utils/bin/jdtls"
-
- require("jdtls").start_or_attach {
- on_attach = require("lsp").common_on_attach,
- 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 JdtBytecode lua require('jdtls').javap()"
- -- vim.cmd "command! -buffer JdtJshell lua require('jdtls').jshell()"
- else
- local util = require "lspconfig/util"
-
- require("lspconfig").jdtls.setup {
- on_attach = require("lsp").common_on_attach,
- cmd = { DATA_PATH .. "/lspinstall/java/jdtls.sh" },
- filetypes = { "java" },
- root_dir = util.root_pattern { ".git", "build.gradle", "pom.xml" },
- -- init_options = {bundles = bundles}
- -- on_attach = require'lsp'.common_on_attach
- }
- end
-end
-
-M.dap = function()
- -- TODO: implement dap
- return "No DAP configured!"
-end
-
--- local bundles = {
--- vim.fn.glob(
--- CONFIG_PATH.."/.debuggers/java-debug/com.microsoft.java.debug.plugin/target/com.microsoft.java.debug.plugin-*.jar")
--- };
-
--- require('jdtls').start_or_attach({
--- on_attach = on_attach,
--- cmd = {DATA_PATH .. "/lspinstall/java/jdtls.sh"},
--- root_dir = require('jdtls.setup').find_root({'build.gradle', 'pom.xml', '.git'}),
--- init_options = {bundles = bundles}
--- })
-
--- TODO: setup autoformat stuff later
--- _java = {
--- -- {'FileType', 'java', 'luafile '..CONFIG_PATH..'/lua/lsp/java-ls.lua'},
--- {
--- 'FileType', 'java',
--- 'nnoremap ca <Cmd>lua require(\'jdtls\').code_action()<CR>'
--- }
--- }
-
-return M
diff --git a/lua/lang/javascript.lua b/lua/lang/javascript.lua
deleted file mode 100644
index 178c6f54..00000000
--- a/lua/lang/javascript.lua
+++ /dev/null
@@ -1,25 +0,0 @@
-local M = {}
-
-M.config = function()
- -- TODO: implement config for language
- return "No config available!"
-end
-
-M.format = function()
- -- TODO: implement formatter for language
- return "No formatter available!"
-end
-
-M.lint = function()
- -- TODO: implement linters (if applicable)
- return "No linters configured!"
-end
-
-M.lsp = function() end
-
-M.dap = function()
- -- TODO: implement dap
- return "No DAP configured!"
-end
-
-return M
diff --git a/lua/lang/javascriptreact.lua b/lua/lang/javascriptreact.lua
deleted file mode 100644
index 178c6f54..00000000
--- a/lua/lang/javascriptreact.lua
+++ /dev/null
@@ -1,25 +0,0 @@
-local M = {}
-
-M.config = function()
- -- TODO: implement config for language
- return "No config available!"
-end
-
-M.format = function()
- -- TODO: implement formatter for language
- return "No formatter available!"
-end
-
-M.lint = function()
- -- TODO: implement linters (if applicable)
- return "No linters configured!"
-end
-
-M.lsp = function() end
-
-M.dap = function()
- -- TODO: implement dap
- return "No DAP configured!"
-end
-
-return M
diff --git a/lua/lang/json.lua b/lua/lang/json.lua
deleted file mode 100644
index e46f38cb..00000000
--- a/lua/lang/json.lua
+++ /dev/null
@@ -1,72 +0,0 @@
-local M = {}
-
-M.config = function()
- O.lang.json = {
- diagnostics = {
- virtual_text = { spacing = 0, prefix = "ï„‘" },
- signs = true,
- underline = true,
- },
- formatter = {
- exe = "python",
- args = { "-m", "json.tool" },
- stdin = true,
- },
- lsp = {
- path = DATA_PATH .. "/lspinstall/json/vscode-json/json-language-features/server/dist/node/jsonServerMain.js",
- },
- }
-end
-
-M.format = function()
- O.formatters.filetype["json"] = {
- function()
- return {
- exe = O.lang.json.formatter.exe,
- args = O.lang.json.formatter.args,
- stdin = O.lang.json.formatter.stdin,
- }
- end,
- }
-
- require("formatter.config").set_defaults {
- logging = false,
- filetype = O.formatters.filetype,
- }
-end
-
-M.lint = function()
- -- TODO: implement linters (if applicable)
- return "No linters configured!"
-end
-
-M.lsp = function()
- if require("lv-utils").check_lsp_client_active "jsonls" then
- return
- end
-
- -- npm install -g vscode-json-languageserver
- require("lspconfig").jsonls.setup {
- cmd = {
- "node",
- O.lang.json.lsp.path,
- "--stdio",
- },
- on_attach = require("lsp").common_on_attach,
-
- commands = {
- Format = {
- function()
- vim.lsp.buf.range_formatting({}, { 0, 0 }, { vim.fn.line "$", 0 })
- end,
- },
- },
- }
-end
-
-M.dap = function()
- -- TODO: implement dap
- return "No DAP configured!"
-end
-
-return M
diff --git a/lua/lang/julia.lua b/lua/lang/julia.lua
deleted file mode 100644
index a1c0241d..00000000
--- a/lua/lang/julia.lua
+++ /dev/null
@@ -1,53 +0,0 @@
-local M = {}
-
-M.config = function()
- O.lang.julia = {
- lsp = {
- path = CONFIG_PATH .. "/lua/lsp/julia/run.jl",
- },
- }
-end
-
-M.format = function()
- -- todo: implement formatters (if applicable)
- return "no formatters configured!"
-end
-
-M.lint = function()
- -- todo: implement linters (if applicable)
- return "no linters configured!"
-end
-
-M.lsp = function()
- if require("lv-utils").check_lsp_client_active "julials" then
- return
- end
- -- Add the following lines to a new julia file, e.g. install.jl
- -- using Pkg
- -- Pkg.instantiate()
- -- Run the file you created.
- -- julia install.jl
- -- Julia language server will now be installed on your system.
-
- local cmd = {
- "julia",
- "--startup-file=no",
- "--history-file=no",
- -- vim.fn.expand "~/.config/nvim/lua/lsp/julia/run.jl",
- O.lang.julia.lsp.path,
- }
- require("lspconfig").julials.setup {
- cmd = cmd,
- on_new_config = function(new_config, _)
- new_config.cmd = cmd
- end,
- filetypes = { "julia" },
- }
-end
-
-M.dap = function()
- -- TODO: implement dap
- return "No DAP configured!"
-end
-
-return M
diff --git a/lua/lang/kotlin.lua b/lua/lang/kotlin.lua
deleted file mode 100644
index 3979424f..00000000
--- a/lua/lang/kotlin.lua
+++ /dev/null
@@ -1,67 +0,0 @@
-local M = {}
-
-M.config = function()
- O.lang.kotlin = {
- lsp = {
- path = DATA_PATH .. "/lspinstall/kotlin/server/bin/kotlin-language-server",
- },
- }
-end
-
-M.format = function()
- -- TODO: implement formatter for language
- return "No formatter available!"
-end
-
-M.lint = function()
- -- TODO: implement linters (if applicable)
- return "No linters configured!"
-end
-
-M.lsp = function()
- if require("lv-utils").check_lsp_client_active "kotlin_language_server" then
- return
- end
-
- --- default config for gradle-projects of the
- --- kotlin-language-server: https://github.com/fwcd/kotlin-language-server
- ---
- --- This server requires vim to be aware of the kotlin-filetype.
- --- You could refer for this capability to:
- --- https://github.com/udalov/kotlin-vim (recommended)
- --- Note that there is no LICENSE specified yet.
-
- local util = require "lspconfig/util"
-
- local bin_name = O.lang.kotlin.lsp.path
- if vim.fn.has "win32" == 1 then
- bin_name = bin_name .. ".bat"
- end
-
- local root_files = {
- "settings.gradle", -- Gradle (multi-project)
- "settings.gradle.kts", -- Gradle (multi-project)
- "build.xml", -- Ant
- "pom.xml", -- Maven
- }
-
- local fallback_root_files = {
- "build.gradle", -- Gradle
- "build.gradle.kts", -- Gradle
- }
-
- require("lspconfig").kotlin_language_server.setup {
- cmd = { bin_name },
- on_attach = require("lsp").common_on_attach,
- root_dir = function(fname)
- return util.root_pattern(unpack(root_files))(fname) or util.root_pattern(unpack(fallback_root_files))(fname)
- end,
- }
-end
-
-M.dap = function()
- -- TODO: implement dap
- return "No DAP configured!"
-end
-
-return M
diff --git a/lua/lang/less.lua b/lua/lang/less.lua
deleted file mode 100644
index 178c6f54..00000000
--- a/lua/lang/less.lua
+++ /dev/null
@@ -1,25 +0,0 @@
-local M = {}
-
-M.config = function()
- -- TODO: implement config for language
- return "No config available!"
-end
-
-M.format = function()
- -- TODO: implement formatter for language
- return "No formatter available!"
-end
-
-M.lint = function()
- -- TODO: implement linters (if applicable)
- return "No linters configured!"
-end
-
-M.lsp = function() end
-
-M.dap = function()
- -- TODO: implement dap
- return "No DAP configured!"
-end
-
-return M
diff --git a/lua/lang/lua.lua b/lua/lang/lua.lua
deleted file mode 100644
index 6b981479..00000000
--- a/lua/lang/lua.lua
+++ /dev/null
@@ -1,87 +0,0 @@
-local M = {}
-
-M.config = function()
- O.lang.lua = {
- diagnostics = {
- virtual_text = { spacing = 0, prefix = "ï„‘" },
- signs = true,
- underline = true,
- },
- formatter = {
- exe = "stylua",
- args = {},
- stdin = false,
- },
- linters = { "luacheck" },
- lsp = {
- path = DATA_PATH .. "/lspinstall/lua/sumneko-lua-language-server",
- },
- }
-end
-
-M.format = function()
- O.formatters.filetype["lua"] = {
- function()
- return {
- exe = O.lang.lua.formatter.exe,
- args = O.lang.lua.formatter.args,
- stdin = O.lang.lua.formatter.stdin,
- tempfile_prefix = ".formatter",
- }
- end,
- }
-
- require("formatter.config").set_defaults {
- logging = false,
- filetype = O.formatters.filetype,
- }
-end
-
-M.lint = function()
- require("lint").linters_by_ft = {
- lua = O.lang.lua.linters,
- }
-end
-
-M.lsp = function()
- 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_main = string.gsub(O.lang.lua.lsp.path, "sumneko-lua-language-server", "main.lua")
-
- require("lspconfig").sumneko_lua.setup {
- cmd = { O.lang.lua.lsp.path, "-E", sumneko_main },
- on_attach = require("lsp").common_on_attach,
- settings = {
- Lua = {
- runtime = {
- -- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim)
- version = "LuaJIT",
- -- Setup your lua path
- path = vim.split(package.path, ";"),
- },
- diagnostics = {
- -- Get the language server to recognize the `vim` global
- globals = { "vim", "O" },
- },
- workspace = {
- -- Make the server aware of Neovim runtime files
- library = {
- [vim.fn.expand "~/.local/share/lunarvim/lvim/lua"] = true,
- [vim.fn.expand "$VIMRUNTIME/lua"] = true,
- [vim.fn.expand "$VIMRUNTIME/lua/vim/lsp"] = true,
- },
- maxPreload = 100000,
- preloadFileSize = 1000,
- },
- },
- },
- }
- end
-end
-
-M.dap = function()
- -- TODO: implement dap
- return "No DAP configured!"
-end
-
-return M
diff --git a/lua/lang/php.lua b/lua/lang/php.lua
deleted file mode 100644
index 632c4052..00000000
--- a/lua/lang/php.lua
+++ /dev/null
@@ -1,88 +0,0 @@
-local M = {}
-
-M.config = function()
- O.lang.php = {
- format = {
- format = {
- default = "psr12",
- },
- },
- environment = {
- php_version = "7.4",
- },
- diagnostics = {
- virtual_text = { spacing = 0, prefix = "ï„‘" },
- signs = true,
- underline = true,
- },
- filetypes = { "php", "phtml" },
- formatter = {
- exe = "phpcbf",
- args = { "--standard=PSR12", vim.api.nvim_buf_get_name(0) },
- stdin = false,
- },
- lsp = {
- path = DATA_PATH .. "/lspinstall/php/node_modules/.bin/intelephense",
- },
- }
-end
-
-M.format = function()
- O.formatters.filetype["php"] = {
- function()
- return {
- exe = O.lang.php.formatter.exe,
- args = O.lang.php.formatter.args,
- stdin = O.lang.php.formatter.stdin,
- tempfile_prefix = ".formatter",
- }
- end,
- }
-
- require("formatter.config").set_defaults {
- logging = false,
- filetype = O.formatters.filetype,
- }
-end
-
-M.lint = function()
- -- TODO: implement linters (if applicable)
- return "No linters configured!"
-end
-
-M.lsp = function()
- if require("lv-utils").check_lsp_client_active "intelephense" then
- return
- end
-
- require("lspconfig").intelephense.setup {
- cmd = { O.lang.php.lsp.path, "--stdio" },
- on_attach = require("lsp").common_on_attach,
- handlers = {
- ["textDocument/publishDiagnostics"] = vim.lsp.with(vim.lsp.diagnostic.on_publish_diagnostics, {
- virtual_text = O.lang.php.diagnostics.virtual_text,
- signs = O.lang.php.diagnostics.signs,
- underline = O.lang.php.diagnostics.underline,
- update_in_insert = true,
- }),
- },
- filetypes = O.lang.php.filetypes,
- settings = {
- intelephense = {
- format = {
- braces = O.lang.php.format.braces,
- },
- environment = {
- phpVersion = O.lang.php.environment.php_version,
- },
- },
- },
- }
-end
-
-M.dap = function()
- -- TODO: implement dap
- return "No DAP configured!"
-end
-
-return M
diff --git a/lua/lang/python.lua b/lua/lang/python.lua
deleted file mode 100644
index b51ea1c4..00000000
--- a/lua/lang/python.lua
+++ /dev/null
@@ -1,95 +0,0 @@
-local M = {}
-
-M.config = function()
- O.lang.python = {
- -- @usage can be flake8 or yapf
- linter = "",
- isort = false,
- diagnostics = {
- virtual_text = { spacing = 0, prefix = "ï„‘" },
- signs = true,
- underline = true,
- },
- analysis = {
- type_checking = "basic",
- auto_search_paths = true,
- use_library_code_types = true,
- },
- formatter = {
- exe = "yapf",
- args = {},
- stdin = true,
- },
- linters = {
- "flake8",
- "pylint",
- "mypy",
- },
- lsp = {
- path = DATA_PATH .. "/lspinstall/python/node_modules/.bin/pyright-langserver",
- },
- }
-end
-
-M.format = function()
- O.formatters.filetype["python"] = {
- function()
- return {
- exe = O.lang.python.formatter.exe,
- args = O.lang.python.formatter.args,
- stdin = O.lang.python.formatter.stdin,
- }
- end,
- }
-
- require("formatter.config").set_defaults {
- logging = false,
- filetype = O.formatters.filetype,
- }
-end
-
-M.lint = function()
- require("lint").linters_by_ft = {
- python = O.lang.python.linters,
- }
-end
-
-M.lsp = function()
- if require("lv-utils").check_lsp_client_active "pyright" then
- return
- end
- -- npm i -g pyright
- require("lspconfig").pyright.setup {
- cmd = {
- O.lang.python.lsp.path,
- "--stdio",
- },
- on_attach = require("lsp").common_on_attach,
- handlers = {
- ["textDocument/publishDiagnostics"] = vim.lsp.with(vim.lsp.diagnostic.on_publish_diagnostics, {
- virtual_text = O.lang.python.diagnostics.virtual_text,
- signs = O.lang.python.diagnostics.signs,
- underline = O.lang.python.diagnostics.underline,
- update_in_insert = true,
- }),
- },
- settings = {
- python = {
- analysis = {
- typeCheckingMode = O.lang.python.analysis.type_checking,
- autoSearchPaths = O.lang.python.analysis.auto_search_paths,
- useLibraryCodeForTypes = O.lang.python.analysis.use_library_code_types,
- },
- },
- },
- }
-end
-
-M.dap = function()
- if O.plugin.dap.active then
- local dap_install = require "dap-install"
- dap_install.config("python_dbg", {})
- end
-end
-
-return M
diff --git a/lua/lang/r.lua b/lua/lang/r.lua
deleted file mode 100644
index b05e6ee6..00000000
--- a/lua/lang/r.lua
+++ /dev/null
@@ -1,56 +0,0 @@
-local M = {}
-
-M.config = function()
- -- R -e 'install.packages("formatR",repos = "http://cran.us.r-project.org")'
- -- R -e 'install.packages("readr",repos = "http://cran.us.r-project.org")'
- O.lang.r = {
- formatter = {
- exe = "R",
- args = {
- "--slave",
- "--no-restore",
- "--no-save",
- '-e "formatR::tidy_source(text=readr::read_file(file(\\"stdin\\")), arrow=FALSE)"',
- },
- stdin = true,
- },
- }
-end
-
-M.format = function()
- O.formatters.filetype["r"] = {
- function()
- return {
- exe = O.lang.r.formatter.exe,
- args = O.lang.r.formatter.args,
- stdin = O.lang.r.formatter.stdin,
- }
- end,
- }
- O.formatters.filetype["rmd"] = O.formatters.filetype["r"]
-
- require("formatter.config").set_defaults {
- logging = false,
- filetype = O.formatters.filetype,
- }
-end
-
-M.lint = function()
- -- TODO: implement linters (if applicable)
- return "No linters configured!"
-end
-
-M.lsp = function()
- if require("lv-utils").check_lsp_client_active "r_language_server" then
- return
- end
- -- R -e 'install.packages("languageserver",repos = "http://cran.us.r-project.org")'
- require("lspconfig").r_language_server.setup {}
-end
-
-M.dap = function()
- -- TODO: implement dap
- return "No DAP configured!"
-end
-
-return M
diff --git a/lua/lang/ruby.lua b/lua/lang/ruby.lua
deleted file mode 100644
index 1975acfd..00000000
--- a/lua/lang/ruby.lua
+++ /dev/null
@@ -1,77 +0,0 @@
-local M = {}
-
-M.config = function()
- O.lang.ruby = {
- diagnostics = {
- virtualtext = { spacing = 0, prefix = "ï„‘" },
- signs = true,
- underline = true,
- },
- filetypes = { "rb", "erb", "rakefile", "ruby" },
- formatter = {
- exe = "rufo",
- args = { "-x" },
- stdin = true,
- },
- linters = { "ruby" },
- lsp = {
- path = DATA_PATH .. "/lspinstall/ruby/solargraph/solargraph",
- },
- }
-end
-
-M.format = function()
- O.formatters.filetype["ruby"] = {
- function()
- return {
- exe = O.lang.ruby.formatter.exe,
- args = O.lang.ruby.formatter.args,
- stdin = O.lang.ruby.formatter.stdin,
- }
- end,
- }
-
- require("formatter.config").set_defaults {
- logging = false,
- filetype = O.formatters.filetype,
- }
-end
-
-M.lint = function()
- require("lint").linters_by_ft = {
- ruby = O.lang.ruby.linters,
- }
-end
-
-M.lsp = function()
- if not require("lv-utils").check_lsp_client_active "sorbet" then
- require("lspconfig").sorbet.setup {}
- end
-
- if not require("lv-utils").check_lsp_client_active "solargraph" then
- -- If you are using rvm, make sure to change below configuration
- require("lspconfig").solargraph.setup {
- cmd = { O.lang.ruby.lsp.path, "stdio" },
- on_attach = require("lsp").common_on_attach,
- handlers = {
- ["textDocument/publishDiagnostics"] = vim.lsp.with(vim.lsp.diagnostic.on_publish_diagnostics, {
- virtual_text = O.lang.ruby.diagnostics.virtual_text,
- signs = O.lang.ruby.diagnostics.signs,
- underline = O.lang.ruby.diagnostics.underline,
- update_in_insert = true,
- }),
- },
- filetypes = O.lang.ruby.filetypes,
- }
- end
-end
-
-M.dap = function()
- -- gem install readapt ruby-debug-ide
- if O.plugin.dap.active then
- local dap_install = require "dap-install"
- dap_install.config("ruby_vsc_dbg", {})
- end
-end
-
-return M
diff --git a/lua/lang/rust.lua b/lua/lang/rust.lua
deleted file mode 100644
index e3d4ce47..00000000
--- a/lua/lang/rust.lua
+++ /dev/null
@@ -1,155 +0,0 @@
-local M = {}
-
-M.config = function()
- O.lang.rust = {
- rust_tools = {
- active = false,
- parameter_hints_prefix = "<-",
- other_hints_prefix = "=>", -- prefix for all the other hints (type, chaining)
- },
- -- @usage can be clippy
- formatter = {
- exe = "rustfmt",
- args = { "--emit=stdout", "--edition=2018" },
- stdin = true,
- },
- linter = "",
- diagnostics = {
- virtual_text = { spacing = 0, prefix = "ï„‘" },
- signs = true,
- underline = true,
- },
- lsp = {
- path = DATA_PATH .. "/lspinstall/rust/rust-analyzer",
- },
- }
-end
-
-M.format = function()
- O.formatters.filetype["rust"] = {
- function()
- return {
- exe = O.lang.rust.formatter.exe,
- args = O.lang.rust.formatter.args,
- stdin = O.lang.rust.formatter.stdin,
- }
- end,
- }
-
- require("formatter.config").set_defaults {
- logging = false,
- filetype = O.formatters.filetype,
- }
-end
-
-M.lint = function()
- -- TODO: implement linters (if applicable)
- return "No linters configured!"
-end
-
-M.lsp = function()
- if require("lv-utils").check_lsp_client_active "rust_analyzer" then
- return
- end
-
- if O.lang.rust.rust_tools.active then
- local opts = {
- tools = { -- rust-tools options
- -- automatically set inlay hints (type hints)
- -- There is an issue due to which the hints are not applied on the first
- -- opened file. For now, write to the file to trigger a reapplication of
- -- the hints or just run :RustSetInlayHints.
- -- default: true
- autoSetHints = true,
-
- -- whether to show hover actions inside the hover window
- -- this overrides the default hover handler
- -- default: true
- hover_with_actions = true,
-
- runnables = {
- -- whether to use telescope for selection menu or not
- -- default: true
- use_telescope = true,
-
- -- rest of the opts are forwarded to telescope
- },
-
- inlay_hints = {
- -- wheter to show parameter hints with the inlay hints or not
- -- default: true
- show_parameter_hints = true,
-
- -- prefix for parameter hints
- -- default: "<-"
- parameter_hints_prefix = O.lang.rust.rust_tools.parameter_hints_prefix,
-
- -- prefix for all the other hints (type, chaining)
- -- default: "=>"
- other_hints_prefix = O.lang.rust.rust_tools.other_hints_prefix,
-
- -- whether to align to the lenght of the longest line in the file
- max_len_align = false,
-
- -- padding from the left if max_len_align is true
- max_len_align_padding = 1,
-
- -- whether to align to the extreme right or not
- right_align = false,
-
- -- padding from the right if right_align is true
- right_align_padding = 7,
- },
-
- hover_actions = {
- -- the border that is used for the hover window
- -- see vim.api.nvim_open_win()
- border = {
- { "â•­", "FloatBorder" },
- { "─", "FloatBorder" },
- { "â•®", "FloatBorder" },
- { "│", "FloatBorder" },
- { "╯", "FloatBorder" },
- { "─", "FloatBorder" },
- { "â•°", "FloatBorder" },
- { "│", "FloatBorder" },
- },
- },
- },
-
- -- all the opts to send to nvim-lspconfig
- -- these override the defaults set by rust-tools.nvim
- -- see https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#rust_analyzer
- server = {
- cmd = { O.lang.rust.lsp.path },
- on_attach = require("lsp").common_on_attach,
- }, -- rust-analyser options
- }
- require("rust-tools").setup(opts)
- else
- require("lspconfig").rust_analyzer.setup {
- cmd = { O.lang.rust.lsp.path },
- on_attach = require("lsp").common_on_attach,
- filetypes = { "rust" },
- root_dir = require("lspconfig.util").root_pattern("Cargo.toml", "rust-project.json"),
- }
- end
-
- -- TODO: fix these mappings
- vim.api.nvim_exec(
- [[
- autocmd Filetype rust nnoremap <leader>lm <Cmd>RustExpandMacro<CR>
- autocmd Filetype rust nnoremap <leader>lH <Cmd>RustToggleInlayHints<CR>
- autocmd Filetype rust nnoremap <leader>le <Cmd>RustRunnables<CR>
- autocmd Filetype rust nnoremap <leader>lh <Cmd>RustHoverActions<CR>
- ]],
- true
- )
-end
-
-M.dap = function()
- -- TODO: implement dap
- return "No DAP configured!"
-end
-
-return M
diff --git a/lua/lang/scala.lua b/lua/lang/scala.lua
deleted file mode 100644
index 081c74bf..00000000
--- a/lua/lang/scala.lua
+++ /dev/null
@@ -1,80 +0,0 @@
-local M = {}
-
-M.config = function()
- O.lang.scala = {
- metals = {
- active = false,
- server_version = "0.10.5",
- excluded_packages = {},
- show_implicit_arguments = false,
- show_inferred_type = true,
- status_bar_provider = false,
- },
- formatter = {
- exe = "scalafmt",
- args = { "--stdin" },
- stdin = true,
- },
- }
-end
-
-M.format = function()
- O.formatters.filetype["scala"] = {
- function()
- return {
- exe = O.lang.scala.formatter.exe,
- args = O.lang.scala.formatter.args,
- stdin = O.lang.scala.formatter.stdin,
- }
- end,
- }
- O.formatters.filetype["sbt"] = O.formatters.filetype["scala"]
- -- To understand sbt files on stdin, scalafmt needs to assume any old filename
- -- that ends in .sbt. Using a dummy filename instead of the actual one is
- -- required to support buffers of sbt filetype without the extension.
- O.formatters.filetype["sbt"].args = { "--stdin", "--assume-filename", "foo.sbt" }
-
- require("formatter.config").set_defaults {
- logging = false,
- filetype = O.formatters.filetype,
- }
-end
-
-M.lint = function()
- -- TODO: implement linters (if applicable)
- return "No linters configured!"
-end
-
-M.lsp = function()
- -- enable metal server integration
- if O.lang.scala.metals.active then
- vim.g["metals_server_version"] = O.lang.scala.metals.server_version
- -- https://github.com/scalameta/nvim-metals#prerequisites
- vim.opt_global.shortmess:remove("F"):append "c"
- local metals_config = require("metals").bare_config
- metals_config.on_attach = function()
- require("completion").on_attach()
- end
- metals_config.handlers["textDocument/publishDiagnostics"] =
- vim.lsp.with(vim.lsp.diagnostic.on_publish_diagnostics, {
- virtual_text = {
- prefix = "",
- },
- })
- metals_config.settings = {
- showImplicitArguments = O.lang.scala.metals.show_implicit_arguments,
- showInferredType = O.lang.scala.metals.show_inferred_type,
- excludedPackages = O.lang.scala.metals.excluded_packages,
- }
- metals_config.init_options.statusBarProvider = O.lang.scala.metals.status_bar_provider
- require "lsp"
- require("metals").initialize_or_attach(metals_config)
- end
-end
-
-M.dap = function()
- -- TODO: implement dap
- return "No DAP configured!"
-end
-
-return M
diff --git a/lua/lang/sh.lua b/lua/lang/sh.lua
deleted file mode 100644
index 71170e1f..00000000
--- a/lua/lang/sh.lua
+++ /dev/null
@@ -1,65 +0,0 @@
-local M = {}
-
-M.config = function()
- O.lang.sh = {
- -- @usage can be 'shellcheck'
- linter = "",
- -- @usage can be 'shfmt'
- diagnostics = {
- virtual_text = { spacing = 0, prefix = "ï„‘" },
- signs = true,
- underline = true,
- },
- formatter = {
- exe = "shfmt",
- args = { "-w" },
- stdin = false,
- },
- linters = { "shellcheck" },
- lsp = {
- path = DATA_PATH .. "/lspinstall/bash/node_modules/.bin/bash-language-server",
- },
- }
-end
-
-M.format = function()
- O.formatters.filetype["sh"] = {
- function()
- return {
- exe = O.lang.sh.formatter.exe,
- args = O.lang.sh.formatter.args,
- stdin = O.lang.sh.formatter.stdin,
- tempfile_prefix = ".formatter",
- }
- end,
- }
-
- require("formatter.config").set_defaults {
- logging = false,
- filetype = O.formatters.filetype,
- }
-end
-
-M.lint = function()
- require("lint").linters_by_ft = {
- sh = O.lang.sh.linters,
- }
-end
-
-M.lsp = function()
- if not require("lv-utils").check_lsp_client_active "bashls" then
- -- npm i -g bash-language-server
- require("lspconfig").bashls.setup {
- cmd = { O.lang.sh.lsp.path, "start" },
- on_attach = require("lsp").common_on_attach,
- filetypes = { "sh", "zsh" },
- }
- end
-end
-
-M.dap = function()
- -- TODO: implement dap
- return "No DAP configured!"
-end
-
-return M
diff --git a/lua/lang/svelte.lua b/lua/lang/svelte.lua
deleted file mode 100644
index ad6dd094..00000000
--- a/lua/lang/svelte.lua
+++ /dev/null
@@ -1,39 +0,0 @@
-local M = {}
-
-M.config = function()
- O.lang.svelte = {
- lsp = {
- path = DATA_PATH .. "/lspinstall/svelte/node_modules/.bin/svelteserver",
- },
- }
-end
-
-M.format = function()
- -- TODO: implement formatter (if applicable)
- return "No formatter configured!"
-end
-
-M.lint = function()
- -- TODO: implement linters (if applicable)
- return "No linters configured!"
-end
-
-M.lsp = function()
- if require("lv-utils").check_lsp_client_active "svelte" then
- return
- end
-
- require("lspconfig").svelte.setup {
- cmd = { O.lang.svelte.lsp.path, "--stdio" },
- filetypes = { "svelte" },
- root_dir = require("lspconfig.util").root_pattern("package.json", ".git"),
- on_attach = require("lsp").common_on_attach,
- }
-end
-
-M.dap = function()
- -- TODO: implement dap
- return "No DAP configured!"
-end
-
-return M
diff --git a/lua/lang/swift.lua b/lua/lang/swift.lua
deleted file mode 100644
index 845f9a49..00000000
--- a/lua/lang/swift.lua
+++ /dev/null
@@ -1,55 +0,0 @@
-local M = {}
-
-M.config = function()
- O.lang.swift = {
- formatter = {
- exe = "swiftformat",
- args = {},
- stdin = true,
- },
- lsp = {
- path = "sourcekit-lsp",
- },
- }
-end
-
-M.format = function()
- -- TODO: implement formatter (if applicable)
- return "No formatter configured!"
-end
-
-M.lint = function()
- O.formatters.filetype["swift"] = {
- function()
- return {
- exe = O.lang.swift.formatter.exe,
- args = O.lang.swift.formatter.args,
- stdin = O.lang.swift.formatter.stdin,
- }
- end,
- }
-
- require("formatter.config").set_defaults {
- logging = false,
- filetype = O.formatters.filetype,
- }
-end
-
-M.lsp = function()
- if require("lv-utils").check_lsp_client_active "sourcekit" then
- return
- end
-
- require("lspconfig").sourcekit.setup {
- cmd = { "xcrun", O.lang.swift.lsp.path },
- on_attach = require("lsp").common_on_attach,
- filetypes = { "swift" },
- }
-end
-
-M.dap = function()
- -- TODO: implement dap
- return "No DAP configured!"
-end
-
-return M
diff --git a/lua/lang/terraform.lua b/lua/lang/terraform.lua
deleted file mode 100644
index df8ac692..00000000
--- a/lua/lang/terraform.lua
+++ /dev/null
@@ -1,57 +0,0 @@
-local M = {}
-
-M.config = function()
- O.lang.terraform = {
- formatter = {
- exe = "terraform",
- args = { "fmt" },
- stdin = false,
- },
- lsp = {
- path = DATA_PATH .. "/lspinstall/terraform/terraform-ls",
- },
- }
-end
-
-M.format = function()
- O.formatters.filetype["hcl"] = {
- function()
- return {
- exe = O.lang.terraform.formatter.exe,
- args = O.lang.terraform.formatter.args,
- stdin = O.lang.terraform.formatter.stdin,
- tempfile_prefix = ".formatter",
- }
- end,
- }
- O.formatters.filetype["tf"] = O.formatters.filetype["hcl"]
-
- require("formatter.config").set_defaults {
- logging = false,
- filetype = O.formatters.filetype,
- }
-end
-
-M.lint = function()
- -- TODO: implement linters (if applicable)
- return "No linters configured!"
-end
-
-M.lsp = function()
- if require("lv-utils").check_lsp_client_active "terraformls" then
- return
- end
-
- require("lspconfig").terraformls.setup {
- cmd = { O.lang.terraform.lsp.path, "serve" },
- on_attach = require("lsp").common_on_attach,
- filetypes = { "tf", "terraform", "hcl" },
- }
-end
-
-M.dap = function()
- -- TODO: implement dap
- return "No DAP configured!"
-end
-
-return M
diff --git a/lua/lang/tex.lua b/lua/lang/tex.lua
deleted file mode 100644
index a91105ff..00000000
--- a/lua/lang/tex.lua
+++ /dev/null
@@ -1,159 +0,0 @@
-local M = {}
-
-M.config = function()
- O.lang.latex = {
- filetypes = { "tex", "bib" },
- aux_directory = nil,
- bibtex_formatter = "texlab",
- diagnostics_delay = 300,
- formatter_line_length = 80,
- latex_formatter = "latexindent",
- lsp = {
- path = DATA_PATH .. "/lspinstall/latex/texlab",
- },
- build = {
- executable = "latexmk",
- args = { "-pdf", "-interaction=nonstopmode", "-synctex=1", "%f" },
- on_save = false,
- forward_search_after = false,
- },
- chktex = {
- on_open_and_save = false,
- on_edit = false,
- },
- forward_search = {
- executable = nil,
- args = {},
- },
- latexindent = {
- ["local"] = nil,
- modify_line_breaks = false,
- },
- diagnostics = {
- virtual_text = { spacing = 0, prefix = "ï„‘" },
- signs = true,
- underline = true,
- },
- linters = { "chktex" },
- auto_save = false,
- ignore_errors = {},
- }
-end
-
-M.format = function()
- -- TODO: implement formatter for language
- return "No formatter available!"
-end
-
-M.lint = function()
- require("lint").linters_by_ft = {
- tex = O.lang.latex.linters,
- }
-end
-
-M.lsp = function()
- if require("lv-utils").check_lsp_client_active "texlab" then
- return
- end
-
- local preview_settings = {}
-
- local sumatrapdf_args = { "-reuse-instance", "%p", "-forward-search", "%f", "%l" }
- local evince_args = { "-f", "%l", "%p", '"code -g %f:%l"' }
- local okular_args = { "--unique", "file:%p#src:%l%f" }
- local zathura_args = { "--synctex-forward", "%l:1:%f", "%p" }
- local qpdfview_args = { "--unique", "%p#src:%f:%l:1" }
- local skim_args = { "%l", "%p", "%f" }
-
- if O.lang.latex.forward_search.executable == "C:/Users/{User}/AppData/Local/SumatraPDF/SumatraPDF.exe" then
- preview_settings = sumatrapdf_args
- elseif O.lang.latex.forward_search.executable == "evince-synctex" then
- preview_settings = evince_args
- elseif O.lang.latex.forward_search.executable == "okular" then
- preview_settings = okular_args
- elseif O.lang.latex.forward_search.executable == "zathura" then
- preview_settings = zathura_args
- elseif O.lang.latex.forward_search.executable == "qpdfview" then
- preview_settings = qpdfview_args
- elseif O.lang.latex.forward_search.executable == "/Applications/Skim.app/Contents/SharedSupport/displayline" then
- preview_settings = skim_args
- end
-
- require("lspconfig").texlab.setup {
- cmd = { O.lang.latex.lsp.path },
- on_attach = require("lsp").common_on_attach,
- handlers = {
- ["textDocument/publishDiagnostics"] = vim.lsp.with(vim.lsp.diagnostic.on_publish_diagnostics, {
- virtual_text = O.lang.latex.diagnostics.virtual_text,
- signs = O.lang.latex.diagnostics.signs,
- underline = O.lang.latex.diagnostics.underline,
- update_in_insert = true,
- }),
- },
- filetypes = { "tex", "bib" },
- settings = {
- texlab = {
- auxDirectory = O.lang.latex.aux_directory,
- bibtexFormatter = O.lang.latex.bibtex_formatter,
- build = {
- args = O.lang.latex.build.args,
- executable = O.lang.latex.build.executable,
- forwardSearchAfter = O.lang.latex.build.forward_search_after,
- onSave = O.lang.latex.build.on_save,
- },
- chktex = {
- onEdit = O.lang.latex.chktex.on_edit,
- onOpenAndSave = O.lang.latex.chktex.on_open_and_save,
- },
- diagnosticsDelay = O.lang.latex.diagnostics_delay,
- formatterLineLength = O.lang.latex.formatter_line_length,
- forwardSearch = {
- args = preview_settings,
- executable = O.lang.latex.forward_search.executable,
- },
- latexFormatter = O.lang.latex.latex_formatter,
- latexindent = {
- modifyLineBreaks = O.lang.latex.latexindent.modify_line_breaks,
- },
- },
- },
- }
- 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["t"] = {
- 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" },
- b = { "<cmd>TexlabBuild<cr>", "Build with Texlab" },
- p = { "<cmd>TexlabForward<cr>", "Preview with Texlab" },
- }
-
- -- 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
-end
-
-M.dap = function()
- -- TODO: implement dap
- return "No DAP configured!"
-end
-
-return M
diff --git a/lua/lang/typescript.lua b/lua/lang/typescript.lua
deleted file mode 100644
index 178c6f54..00000000
--- a/lua/lang/typescript.lua
+++ /dev/null
@@ -1,25 +0,0 @@
-local M = {}
-
-M.config = function()
- -- TODO: implement config for language
- return "No config available!"
-end
-
-M.format = function()
- -- TODO: implement formatter for language
- return "No formatter available!"
-end
-
-M.lint = function()
- -- TODO: implement linters (if applicable)
- return "No linters configured!"
-end
-
-M.lsp = function() end
-
-M.dap = function()
- -- TODO: implement dap
- return "No DAP configured!"
-end
-
-return M
diff --git a/lua/lang/typescriptreact.lua b/lua/lang/typescriptreact.lua
deleted file mode 100644
index 178c6f54..00000000
--- a/lua/lang/typescriptreact.lua
+++ /dev/null
@@ -1,25 +0,0 @@
-local M = {}
-
-M.config = function()
- -- TODO: implement config for language
- return "No config available!"
-end
-
-M.format = function()
- -- TODO: implement formatter for language
- return "No formatter available!"
-end
-
-M.lint = function()
- -- TODO: implement linters (if applicable)
- return "No linters configured!"
-end
-
-M.lsp = function() end
-
-M.dap = function()
- -- TODO: implement dap
- return "No DAP configured!"
-end
-
-return M
diff --git a/lua/lang/vim.lua b/lua/lang/vim.lua
deleted file mode 100644
index 027538ab..00000000
--- a/lua/lang/vim.lua
+++ /dev/null
@@ -1,40 +0,0 @@
-local M = {}
-
-M.config = function()
- O.lang.vim = {
- linters = { "vint" },
- lsp = {
- path = DATA_PATH .. "/lspinstall/vim/node_modules/.bin/vim-language-server",
- },
- }
-end
-
-M.format = function()
- -- TODO: implement formatter for language
- return "No formatter available!"
-end
-
-M.lint = function()
- require("lint").linters_by_ft = {
- vim = O.lang.vim.linters,
- }
-end
-
-M.lsp = function()
- if require("lv-utils").check_lsp_client_active "vimls" then
- return
- end
-
- -- npm install -g vim-language-server
- require("lspconfig").vimls.setup {
- cmd = { O.lang.vim.lsp.path, "--stdio" },
- on_attach = require("lsp").common_on_attach,
- }
-end
-
-M.dap = function()
- -- TODO: implement dap
- return "No DAP configured!"
-end
-
-return M
diff --git a/lua/lang/vue.lua b/lua/lang/vue.lua
deleted file mode 100644
index 8725bba2..00000000
--- a/lua/lang/vue.lua
+++ /dev/null
@@ -1,71 +0,0 @@
-local M = {}
-
-M.config = function()
- O.lang.vue = {
- formatter = {
- exe = "prettier",
- args = {
- "--stdin-filepath",
- "${FILEPATH}",
- },
- stdin = true,
- },
- auto_import = true,
- lsp = {
- path = DATA_PATH .. "/lspinstall/vue/node_modules/.bin/vls",
- },
- }
-end
-
-M.format = function()
- vim.cmd "let proj = FindRootDirectory()"
- local root_dir = vim.api.nvim_get_var "proj"
-
- -- use the global formatter if you didn't find the local one
- local formatter_instance = root_dir .. "/node_modules/.bin/" .. O.lang.vue.formatter.exe
- if vim.fn.executable(formatter_instance) ~= 1 then
- formatter_instance = O.lang.vue.formatter.exe
- end
-
- local ft = vim.bo.filetype
- O.formatters.filetype[ft] = {
- function()
- local lv_utils = require "lv-utils"
- return {
- exe = formatter_instance,
- args = lv_utils.gsub_args(O.lang.vue.formatter.args),
- stdin = O.lang.vue.formatter.stdin,
- }
- end,
- }
- require("formatter.config").set_defaults {
- logging = false,
- filetype = O.formatters.filetype,
- }
-end
-
-M.lint = function()
- -- TODO: implement linters (if applicable)
- return "No linters configured!"
-end
-
-M.lsp = function()
- if require("lv-utils").check_lsp_client_active "vuels" then
- return
- end
-
- -- Vue language server configuration (vetur)
- require("lspconfig").vuels.setup {
- cmd = { O.lang.vue.lsp.path, "--stdio" },
- on_attach = require("lsp").common_on_attach,
- }
-
- require("lsp.ts-fmt-lint").setup()
-end
-
-M.dap = function()
- -- TODO: implement dap
- return "No DAP configured!"
-end
-
-return M
diff --git a/lua/lang/yaml.lua b/lua/lang/yaml.lua
deleted file mode 100644
index 44366ad2..00000000
--- a/lua/lang/yaml.lua
+++ /dev/null
@@ -1,54 +0,0 @@
-local M = {}
-
-M.config = function()
- O.lang.yaml = {
- formatter = {
- exe = "prettier",
- args = { "--stdin-filepath", vim.api.nvim_buf_get_name(0), "--single-quote" },
- stdin = true,
- },
- lsp = {
- path = DATA_PATH .. "/lspinstall/yaml/node_modules/.bin/yaml-language-server",
- },
- }
-end
-
-M.format = function()
- O.formatters.filetype["yaml"] = {
- function()
- return {
- exe = O.lang.yaml.formatter.exe,
- args = O.lang.yaml.formatter.args,
- stdin = O.lang.yaml.formatter.stdin,
- }
- end,
- }
- require("formatter.config").set_defaults {
- logging = false,
- filetype = O.formatters.filetype,
- }
-end
-
-M.lint = function()
- -- TODO: implement linters (if applicable)
- return "No linters configured!"
-end
-
-M.lsp = function()
- if require("lv-utils").check_lsp_client_active "yamlls" then
- return
- end
-
- -- npm install -g yaml-language-server
- require("lspconfig").yamlls.setup {
- cmd = { O.lang.yaml.lsp.path, "--stdio" },
- on_attach = require("lsp").common_on_attach,
- }
-end
-
-M.dap = function()
- -- TODO: implement dap
- return "No DAP configured!"
-end
-
-return M
diff --git a/lua/lang/zig.lua b/lua/lang/zig.lua
deleted file mode 100644
index 06ae9197..00000000
--- a/lua/lang/zig.lua
+++ /dev/null
@@ -1,58 +0,0 @@
-local M = {}
-
-M.config = function()
- O.lang.zig = {
- formatter = {
- exe = "zig",
- args = { "fmt" },
- stdin = false,
- },
- lsp = {
- path = "zls",
- },
- }
-end
-
-M.format = function()
- O.formatters.filetype["zig"] = {
- function()
- return {
- exe = O.lang.zig.formatter.exe,
- args = O.lang.zig.formatter.args,
- stdin = O.lang.zig.formatter.stdin,
- }
- end,
- }
-
- require("formatter.config").set_defaults {
- logging = false,
- filetype = O.formatters.filetype,
- }
-end
-
-M.lint = function()
- -- TODO: implement linters (if applicable)
- return "No linters configured!"
-end
-
-M.lsp = function()
- if require("lv-utils").check_lsp_client_active "zls" then
- return
- end
- -- Because lspinstall don't support zig yet,
- -- So we need zls preset in global lib
- -- Further custom install zls in
- -- https://github.com/zigtools/zls/wiki/Downloading-and-Building-ZLS
- require("lspconfig").zls.setup {
- cmd = { O.lang.zig.lsp.path },
- root_dir = require("lspconfig").util.root_pattern(".git", "build.zig", "zls.json"),
- on_attach = require("lsp").common_on_attach,
- }
-end
-
-M.dap = function()
- -- TODO: implement dap
- return "No DAP configured!"
-end
-
-return M
diff --git a/lua/lang/zsh.lua b/lua/lang/zsh.lua
deleted file mode 100644
index 44ce35a1..00000000
--- a/lua/lang/zsh.lua
+++ /dev/null
@@ -1,53 +0,0 @@
-local M = {}
-
-M.config = function()
- O.lang.zsh = {
- lsp = {
- path = DATA_PATH .. "/lspinstall/bash/node_modules/.bin/bash-language-server",
- },
- }
-end
-
-M.format = function()
- -- TODO: implement format for language
- return "No format available!"
-end
-
-M.lint = function()
- -- zsh
- local zsh_arguments = {}
-
- if not require("lv-utils").check_lsp_client_active "efm" then
- require("lspconfig").efm.setup {
- -- 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/" },
- languages = {
- zsh = zsh_arguments,
- },
- },
- }
- end
-end
-
-M.lsp = function()
- if not require("lv-utils").check_lsp_client_active "bashls" then
- -- npm i -g bash-language-server
- require("lspconfig").bashls.setup {
- cmd = { O.lang.zsh.lsp.path, "start" },
- on_attach = require("lsp").common_on_attach,
- filetypes = { "sh", "zsh" },
- }
- end
-end
-
-M.dap = function()
- -- TODO: implement dap
- return "No DAP configured!"
-end
-
-return M