diff options
Diffstat (limited to 'lua/lang')
-rw-r--r-- | lua/lang/r.lua | 56 | ||||
-rw-r--r-- | lua/lang/svelte.lua | 35 | ||||
-rw-r--r-- | lua/lang/swift.lua | 52 |
3 files changed, 143 insertions, 0 deletions
diff --git a/lua/lang/r.lua b/lua/lang/r.lua new file mode 100644 index 00000000..b05e6ee6 --- /dev/null +++ b/lua/lang/r.lua @@ -0,0 +1,56 @@ +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/svelte.lua b/lua/lang/svelte.lua new file mode 100644 index 00000000..220c2c18 --- /dev/null +++ b/lua/lang/svelte.lua @@ -0,0 +1,35 @@ +local M = {} + +M.config = function() + O.lang.svelte = {} +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 = { DATA_PATH .. "/lspinstall/svelte/node_modules/.bin/svelteserver", "--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 new file mode 100644 index 00000000..69254caa --- /dev/null +++ b/lua/lang/swift.lua @@ -0,0 +1,52 @@ +local M = {} + +M.config = function() + O.lang.swift = { + formatter = { + exe = "swiftformat", + args = {}, + stdin = true, + }, + } +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", "sourcekit-lsp" }, + on_attach = require("lsp").common_on_attach, + filetypes = { "swift" }, + } +end + +M.dap = function() + -- TODO: implement dap + return "No DAP configured!" +end + +return M |