177 lines
9.4 KiB
Lua
177 lines
9.4 KiB
Lua
--[[
|
|
Copyright 2023 Oscar Wallberg
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
https://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
]]
|
|
|
|
return {
|
|
cmd = { 'diagnostic-languageserver', '--stdio' },
|
|
single_file_support = true,
|
|
-- For more info see https://github.com/iamcco/diagnostic-languageserver
|
|
init_options = {
|
|
filetypes = { python = 'flake8', lua = 'luaFormatter' },
|
|
linters = {
|
|
-- some help from this:
|
|
-- https://github.com/creativenull/diagnosticls-configs-nvim/blob/main/lua/diagnosticls-configs/linters/flake8.lua
|
|
flake8 = {
|
|
command = 'flake8',
|
|
args = {
|
|
'--config',
|
|
'tox.ini',
|
|
'--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]),(.*)(\r|\n)*$]],
|
|
{ line = 1, column = 2, security = 3, message = { 4 } }
|
|
},
|
|
securities = {
|
|
-- Available securities are { 'error', 'warning', 'hint', 'info' }
|
|
E = 'error',
|
|
W = 'warning',
|
|
B = 'hint',
|
|
F = 'error',
|
|
D = 'info'
|
|
}
|
|
}
|
|
},
|
|
formatFiletypes = {
|
|
python = { 'black', 'isort' },
|
|
lua = { 'luaFormatter' },
|
|
sh = { 'shfmt' }
|
|
},
|
|
formatters = {
|
|
black = {
|
|
sourceName = 'black',
|
|
command = 'black',
|
|
args = {
|
|
'--stdin-filename',
|
|
'%filename',
|
|
'-t',
|
|
'py39',
|
|
'--quiet',
|
|
'-'
|
|
},
|
|
rootPatterns = { 'Pipfile', '.git', 'tox.ini' },
|
|
isStdout = true,
|
|
isStderr = false,
|
|
ignoreExitCode = false
|
|
},
|
|
isort = {
|
|
sourceName = 'isort',
|
|
command = 'isort',
|
|
args = { '--quiet', '-' },
|
|
rootPatterns = { 'Pipfile', '.git', 'tox.ini' },
|
|
isStdout = true,
|
|
isStderr = false,
|
|
ignoreExitCode = false
|
|
},
|
|
luaFormatter = {
|
|
sourceName = 'luaFormatter',
|
|
command = 'lua-format',
|
|
isStdout = true,
|
|
isStderr = false,
|
|
ignoreExitCode = false,
|
|
args = {
|
|
'--column-limit',
|
|
'80', -- Column limit of one line
|
|
'--indent-width',
|
|
'4', -- Number of spaces used for indentation
|
|
-- '--use-tab', -- Use tab for indentation
|
|
'--no-use-tab', -- Do not use tab for indentation
|
|
'--tab-width',
|
|
'4', -- Number of spaces used per tab
|
|
'--continuation-indent-width',
|
|
'4', -- Indent width for continuations line
|
|
'--spaces-before-call',
|
|
'1', -- Space on function calls
|
|
'--keep-simple-control-block-one-line', -- Keep block in one line
|
|
-- '--no-keep-simple-control-block-one-line', -- Do not keep block in one line
|
|
'--keep-simple-function-one-line', -- Keep function in one line
|
|
-- '--no-keep-simple-function-one-line', -- Do not keep function in one line
|
|
'--align-args', -- Align the arguments
|
|
-- '--no-align-args', -- Do not align the arguments
|
|
'--break-after-functioncall-lp', -- Break after '(' of function call
|
|
-- '--no-break-after-functioncall-lp', -- Do not break after '(' of function call
|
|
'--break-before-functioncall-rp', -- Break before ')' of function call
|
|
-- '--no-break-before-functioncall-rp', -- Do not break before ')' of function call
|
|
-- '--spaces-inside-functioncall-parens', -- Put spaces on the inside of parens in function calls
|
|
'--no-spaces-inside-functioncall-parens', -- Do not put spaces on the inside of parens in function calls
|
|
-- '--spaces-inside-functiondef-parens', -- Put spaces on the inside of parens in function headers
|
|
'--no-spaces-inside-functiondef-parens', -- Do not put spaces on the inside of parens in function headers
|
|
'--align-parameter', -- Align the parameters
|
|
-- '--no-align-parameter', -- Do not align the parameters
|
|
'--chop-down-parameter', -- Chop down all parameters
|
|
-- '--no-chop-down-parameter', -- Do not chop down all parameters
|
|
'--break-after-functiondef-lp', -- Break after '(' of function def
|
|
-- '--no-break-after-functiondef-lp', -- Do not break after '(' of function def
|
|
'--break-before-functiondef-rp', -- Break before ')' of function def
|
|
-- '--no-break-before-functiondef-rp', -- Do not break before ')' of function def
|
|
'--align-table-field', -- Align fields of table
|
|
-- '--no-align-table-field', -- Do not align fields of table
|
|
'--break-after-table-lb', -- Break after '{' of table
|
|
-- '--no-break-after-table-lb', -- Do not break after '{' of table
|
|
'--break-before-table-rb', -- Break before '}' of table
|
|
-- '--no-break-before-table-rb', -- Do not break before '}' of table
|
|
'--chop-down-table', -- Chop down any table
|
|
-- '--no-chop-down-table', -- Do not chop down any table
|
|
'--chop-down-kv-table', -- Chop down table if table contains key
|
|
-- '--no-chop-down-kv-table', -- Do not chop down table if table contains key
|
|
'--table-sep',
|
|
',', -- Character to separate table fields
|
|
'--column-table-limit',
|
|
'80', -- Column limit of each line of a table
|
|
-- '--extra-sep-at-table-end', -- Add a extra field separator
|
|
'--no-extra-sep-at-table-end', -- Do not add a extra field separator
|
|
'--spaces-inside-table-braces', -- Put spaces on the inside of braces in table constructors
|
|
-- '--no-spaces-inside-table-braces', -- Do not put spaces on the inside of braces in table constructors
|
|
'--break-after-operator', -- Put break after operators
|
|
-- '--no-break-after-operator', -- Do not put break after operators
|
|
'--double-quote-to-single-quote', -- Transform string literals to use single quote
|
|
-- '--no-double-quote-to-single-quote', -- Do not transform string literals to use single quote
|
|
-- '--single-quote-to-double-quote', -- Transform string literals to use double
|
|
'--no-single-quote-to-double-quote', -- Do not transform string literals to use double
|
|
'--spaces-around-equals-in-field', -- Put spaces around the equal sign in key/value fields
|
|
-- '--no-spaces-around-equals-in-field', -- Do not put spaces around the equal sign in key/value fields
|
|
'--line-breaks-after-function-body',
|
|
'1', -- Line brakes after function body
|
|
'--line-separator',
|
|
'input' -- input(determined by the input content),
|
|
-- os(Use line ending of the current Operating system),
|
|
-- lf(Unix style "\n"),
|
|
-- crlf(Windows style "\r\n"),
|
|
-- cr(classic Max style "\r")
|
|
}
|
|
},
|
|
shfmt = {
|
|
sourceName = 'shfmt',
|
|
command = 'shfmt',
|
|
args = { '-s', '-i', '4', '-ci' },
|
|
rootPatterns = { 'Pipfile', '.git', 'tox.ini' },
|
|
isStdout = true,
|
|
isStderr = false,
|
|
ignoreExitCode = false
|
|
}
|
|
}
|
|
}
|
|
}
|