198 lines
6.8 KiB
Lua
198 lines
6.8 KiB
Lua
-- For more info see:
|
|
-- https://github.com/iamcco/diagnostic-languageserver
|
|
|
|
-- More examples at:
|
|
-- https://github.com/iamcco/coc-diagnostic/blob/master/src/config.ts
|
|
|
|
return {
|
|
enabled = true,
|
|
dependencies = {
|
|
"npm",
|
|
},
|
|
lspconfig = {
|
|
filetypes = {
|
|
"python",
|
|
"sh",
|
|
"bash",
|
|
"zsh",
|
|
"php",
|
|
},
|
|
cmd = { "diagnostic-languageserver", "--stdio", },
|
|
single_file_support = true,
|
|
init_options = {
|
|
filetypes = {
|
|
python = "flake8",
|
|
php = "phpcs",
|
|
},
|
|
linters = {
|
|
-- some help from this:
|
|
-- https://github.com/creativenull/diagnosticls-configs-nvim/blob/main/lua/diagnosticls-configs/linters/flake8.lua
|
|
flake8 = {
|
|
command = "flake8",
|
|
args = {
|
|
"--format",
|
|
"%(row)d,%(col)d,%(code).1s,%(code)s: %(text)s",
|
|
"-",
|
|
},
|
|
rootPatterns = { "Pipfile", ".git", "tox.ini", },
|
|
isStdout = true,
|
|
isStderr = false,
|
|
debounce = 100,
|
|
offsetLine = 0,
|
|
offsetColumn = 0,
|
|
sourceName = "flake8",
|
|
formatLines = 1,
|
|
formatPattern = {
|
|
[[^(\d+),(\d+),([A-Z]),(.*): (.*)]],
|
|
{ line = 1, column = 2, security = 3, message = { 5, }, },
|
|
},
|
|
securities = {
|
|
-- Available securities are { 'error', 'warning', 'hin', 'info' }
|
|
E = "error",
|
|
W = "warning",
|
|
B = "hint",
|
|
F = "hint",
|
|
D = "info",
|
|
},
|
|
},
|
|
phpcs = {
|
|
command = "./vendor/bin/phpcs",
|
|
args = {
|
|
"--report=json",
|
|
"-s",
|
|
"-",
|
|
},
|
|
rootPatterns = {
|
|
"composer.json",
|
|
"composer.lock",
|
|
"vendor",
|
|
".git",
|
|
},
|
|
isStdout = true,
|
|
isStderr = false,
|
|
debounce = 100,
|
|
offsetLine = 0,
|
|
offsetColumn = 0,
|
|
sourceName = "phpcs",
|
|
|
|
-- Alternative to JSON parsing,
|
|
-- requires --report=emacs
|
|
-- formatLines = 1,
|
|
-- formatPattern = {
|
|
-- [[^.*:(\d+):(\d+): (.*) [-] (.*)$]],
|
|
-- {
|
|
-- line = 1,
|
|
-- column = 2,
|
|
-- security = 3,
|
|
-- message = { 4, },
|
|
-- },
|
|
-- },
|
|
-- securities = {
|
|
-- error = "error",
|
|
-- warning = "warning",
|
|
-- },
|
|
|
|
parseJson = {
|
|
errorsRoot = "files.STDIN.messages",
|
|
line = "line",
|
|
column = "column",
|
|
security = "type",
|
|
message = "${message} (${source})",
|
|
},
|
|
securities = {
|
|
ERROR = "error",
|
|
WARNING = "warning",
|
|
},
|
|
},
|
|
},
|
|
formatFiletypes = {
|
|
python = { "black", "isort", },
|
|
sh = { "shfmt", },
|
|
bash = { "shfmt", },
|
|
zsh = { "shfmt", },
|
|
php = { "php_cs_fixer", },
|
|
},
|
|
formatters = {
|
|
autopep8 = {
|
|
command = "autopep8",
|
|
args = {
|
|
"--aggressive",
|
|
"-"
|
|
},
|
|
rootPatterns = {"Pipfile", "tox.ini", ".git"},
|
|
isStdout = true,
|
|
isStderr = false,
|
|
ignoreExitCode = false,
|
|
},
|
|
black = {
|
|
command = "black",
|
|
args = {
|
|
"--line-length", "80",
|
|
"--stdin-filename",
|
|
"%filename",
|
|
"--quiet",
|
|
"-",
|
|
},
|
|
rootPatterns = { "Pipfile", ".git", "tox.ini", },
|
|
isStdout = true,
|
|
isStderr = false,
|
|
ignoreExitCode = false,
|
|
},
|
|
isort = {
|
|
command = "isort",
|
|
args = { "--quiet", "-", },
|
|
rootPatterns = { "Pipfile", ".git", "tox.ini", },
|
|
isStdout = true,
|
|
isStderr = false,
|
|
ignoreExitCode = false,
|
|
},
|
|
shfmt = {
|
|
command = "shfmt",
|
|
args = { "-s", "-i", "4", "-ci", },
|
|
rootPatterns = { "Pipfile", ".git", "tox.ini", },
|
|
isStdout = true,
|
|
isStderr = false,
|
|
ignoreExitCode = false,
|
|
},
|
|
phpcbf = {
|
|
command = "./vendor/bin/phpcbf",
|
|
args = {
|
|
"--standard=PSR12",
|
|
"-",
|
|
},
|
|
rootPatterns = {
|
|
"composer.json",
|
|
"composer.lock",
|
|
"vendor",
|
|
".git",
|
|
},
|
|
isStdout = true,
|
|
isStderr = false,
|
|
ignoreExitCode = true,
|
|
},
|
|
php_cs_fixer = {
|
|
command = "./vendor/bin/php-cs-fixer",
|
|
args = {
|
|
"fix",
|
|
"--no-ansi",
|
|
"--using-cache=no",
|
|
"--quiet",
|
|
"--no-interaction",
|
|
"%file",
|
|
},
|
|
isStdout = false,
|
|
isStderr = false,
|
|
doesWriteToFile = true,
|
|
ignoreExitCode = true,
|
|
rootPatterns = {
|
|
"composer.json",
|
|
"composer.lock",
|
|
"vendor",
|
|
".git",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
}
|