123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- 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 = {
- 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
- }
- }
- }
- }
- if O.lang.python.autoformat then
- require('lv-utils').define_augroups({
- _python_autoformat = {
- {
- 'BufWritePre', '*.py',
- 'lua vim.lsp.buf.formatting_sync(nil, 1000)'
- }
- }
- })
- end
|