From a0900923cf4307f43b0cf003d7b378f0f59ee619 Mon Sep 17 00:00:00 2001 From: christianchiarulli Date: Wed, 14 Jul 2021 16:27:08 -0400 Subject: more refactor --- ftplugin/python.lua | 8 ++--- lua/lang/c.lua | 28 ++++++++++++++++ lua/lang/python.lua | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++++ lua/lsp/c.lua | 28 ---------------- lua/lsp/python.lua | 96 ----------------------------------------------------- 5 files changed, 128 insertions(+), 128 deletions(-) create mode 100644 lua/lang/c.lua create mode 100644 lua/lang/python.lua delete mode 100644 lua/lsp/c.lua delete mode 100644 lua/lsp/python.lua diff --git a/ftplugin/python.lua b/ftplugin/python.lua index c7b5f6d1..85f08beb 100644 --- a/ftplugin/python.lua +++ b/ftplugin/python.lua @@ -1,4 +1,4 @@ -require("lsp.python").format() -require("lsp.python").lint() -require("lsp.python").lsp() -require("lsp.python").dap() +require("lang.python").format() +require("lang.python").lint() +require("lang.python").lsp() +require("lang.python").dap() diff --git a/lua/lang/c.lua b/lua/lang/c.lua new file mode 100644 index 00000000..e797c185 --- /dev/null +++ b/lua/lang/c.lua @@ -0,0 +1,28 @@ +local M = {} + +M.config = function() + -- TODO: implement config for language + return "No config available!" +end + +M.format = function() + -- TODO: implement linters (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/python.lua b/lua/lang/python.lua new file mode 100644 index 00000000..f1168fb9 --- /dev/null +++ b/lua/lang/python.lua @@ -0,0 +1,96 @@ +local M = {} + +M.format = function() + 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, + } +end + +M.lint = function() + if require("lv-utils").check_lsp_client_active "efm" then + return + end + local python_arguments = {} + + local flake8 = { + LintCommand = "flake8 --ignore=E501 --stdin-display-name ${INPUT} -", + lintStdin = true, + lintFormats = { "%f:%l:%c: %m" }, + } + + local isort = { formatCommand = "isort --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 not require("lv-utils").check_lsp_client_active "efm" then + require("lspconfig").efm.setup { + 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" }, + languages = { + python = python_arguments, + }, + }, + } + end +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 = { + DATA_PATH .. "/lspinstall/python/node_modules/.bin/pyright-langserver", + "--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/lsp/c.lua b/lua/lsp/c.lua deleted file mode 100644 index e797c185..00000000 --- a/lua/lsp/c.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 linters (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/lsp/python.lua b/lua/lsp/python.lua deleted file mode 100644 index f1168fb9..00000000 --- a/lua/lsp/python.lua +++ /dev/null @@ -1,96 +0,0 @@ -local M = {} - -M.format = function() - 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, - } -end - -M.lint = function() - if require("lv-utils").check_lsp_client_active "efm" then - return - end - local python_arguments = {} - - local flake8 = { - LintCommand = "flake8 --ignore=E501 --stdin-display-name ${INPUT} -", - lintStdin = true, - lintFormats = { "%f:%l:%c: %m" }, - } - - local isort = { formatCommand = "isort --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 not require("lv-utils").check_lsp_client_active "efm" then - require("lspconfig").efm.setup { - 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" }, - languages = { - python = python_arguments, - }, - }, - } - end -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 = { - DATA_PATH .. "/lspinstall/python/node_modules/.bin/pyright-langserver", - "--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 -- cgit v1.2.3