рдХреНрдпрд╛ рдЖрдкрдХреА рд╕реБрд╡рд┐рдзрд╛ рдЕрдиреБрд░реЛрдз рд╕рдорд╕реНрдпрд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ?
рдореИрдВ рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд▓реЗрдЦрди рдХреЛ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП alex
рдФрд░ proselint
рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрд╢рд╛ рд╣рддреЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдЕрдкрдиреЗ рдЖрдк рд╕реЗ рдлрд╝рд╛рдЗрд▓ рдкрд░ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдФрд░ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдЪрд▓рд╛рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣реИ рдПрдХ рд▓рдВрдмрд╛ рдкрд╛рда рд▓рд┐рдЦрддреЗ рд╕рдордп рдЕрдХреНрд╖рдоред рдореИрдВрдиреЗ ALE рдпрд╛ рд╕рд┐рдВрдереИрдЯрд┐рдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрд╛ рд╣реИ, рдЬреЛ README alex
рдФрд░ proselint
рдХрд╣рддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ vim рдХреЗ рднреАрддрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рд╕рд┐рд░реНрдл рдкрд╛рда рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рд▓рд┐рдиреЗрдЯрд┐рдВрдЧ рдкреНрд▓рдЧрдЗрди рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдмрд╣реБрдд рдкрд╕рдВрдж рд╣реИ рдЕрдиреНрдп рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ cocред
рдЙрд╕ рд╕рдорд╛рдзрд╛рди рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ рдЬреЛ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ alex
рдпрд╛ proselint
рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП coc-settings.json рднрд╛рд╖рд╛ рд╕рд░реНрд╡рд░ рд╕реЗрдЯрдЕрдк рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХреЗред рдкрд╛рда рд▓рд╛рдЗрдирд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдФрд░ рднреА рдмреЗрд╣рддрд░ рдЬреИрд╕реЗ coc-clangd
clangd
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЪреБрдиреЗ рдЧрдП рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ
рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдХрд╣рд╛ рдХрд┐ рдореИрдВрдиреЗ ALE рдФрд░ рд╕рд┐рдВрдЯреИрд╕реНрдЯрд┐рдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрд╛ рд╣реИ рдЬреЛ README рдиреЗ alex
рдФрд░ proselint
рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕реЗ рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧрд┐рддреБрдм рдкрд░ рдХреЛрдИ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдирд╣реАрдВ рдкрд╛ рд╕рдХрд╛, рдФрд░ рдлрд┐рд░ рд╕реЗ рдореИрдВ рдЕрдкрдиреЗ рд▓рд┐рдо рдХреЛ рдзреАрдорд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЧреНрд░рдВрдереЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рд▓рд┐рдирд┐рдВрдЧ рдХрд╛рд░реНрдпрдХреНрд░рдо рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ред
рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрджрд░реНрдн
alex
рдФрд░ proselint
рдЕрд▓рд╛рд╡рд╛ рднреА рдХреБрдЫ рдЪреАрдЬреЗрдВ рд╣реИрдВ рдЬреИрд╕реЗ GNU style
рдФрд░ diction
рдЬреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ alex
proselint
рд╣реИ (рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рд╣реИрдВ ... рдпрд╣ рджреЗрдЦреЗрдВ рдХрд┐ рдореБрдЭреЗ рдЯреЗрдХреНрд╕реНрдЯ рд▓рд╛рдЗрдирд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ) рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рдФрд░ рд╡рд┐рд╕реНрддреГрддред
рд╢рд╛рдпрдж https://www.npmjs.com/package/coc-diagnostic рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдЙрд╕ рд▓рд┐рдВрдХ рдХреЗ рд▓рд┐рдП @chemzqm рдзрдиреНрдпрд╡рд╛рджред
рдореИрдВ рдЗрд╕ рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рд╕рд╛рде coc-diagnostic
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ proselint
рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛:
"diagnostic-languageserver.filetypes": {
"text": ["proselint"]
},
"diagnostic-languageserver.linters": {
"proselint": {
"command": "proselint",
"isStdout": true,
"isStderr": false,
"debounce": 100,
"args": ["-"],
"offsetLine": 0,
"offsetColumn": 0,
"sourceName": "proselint",
"formatLines": 1,
"formatPattern": [
"^[^:]+:(\\d+):(\\d+):(\\s)(.*)$",
{
"line": 1,
"column": 2,
"security": 3,
"message": 4
}
],
"securities": {
" ": "info"
}
}
}
рдореИрдВ рдЕрднреА рднреА GNU diction
, style
, рдФрд░ alex
рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдБред рдЬрдм рдореИрдВ рдХрд░реВрдБрдЧрд╛ рддреЛ рдореИрдВ рдпрд╣рд╛рдБ рд╕рдорд╛рдзрд╛рди рдкреЛрд╕реНрдЯ рдХрд░реВрдБрдЧрд╛ред
рдореИрдВрдиреЗ рдЗрд╕ рдХреЙрдиреНтАНрдлрд╝тАНрд┐рдЧрд░ рдХреЛ alex
рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЖрдкрдиреЗ рдЗрд╕реЗ рдХреИрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛, рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЖрдкрдХреЛ рдХрдорд╛рдВрдб рдХреЛ рдмрджрд▓рдирд╛ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИред
"alex": {
"command": "alexjs",
"debounce": 200,
"isStderr": true,
"args": ["--stdin"],
"offsetLine": 0,
"offsetColumn": 0,
"sourceName": "alex.js",
"formatLines": 1,
"formatPattern": [
"^\\s*(\\d+):(\\d+)-(\\d+):(\\d+)\\s{2}([a-z]+)\\s{2}(.*?)\\s{2,}([a-z-]+)\\s{2,}([a-z-]+)$",
{
"line": 1,
"column": 2,
"endLine": 3,
"endColumn": 4,
"security" : 5,
"message": 6
}
],
"securities" : {
"warning": "warning",
"error": "error"
}
}
рдЖрдк рдЗрд╕реЗ coc-diagnostic
рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ diagnostic-languageserver.linters
рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред
рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЗрд╕рд╕реЗ рд╕рд╣рд╛рдпрддрд╛ рдорд┐рд▓реЗрдЧреА!
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдореИрдВрдиреЗ рдЗрд╕ рдХреЙрдиреНтАНрдлрд╝тАНрд┐рдЧрд░ рдХреЛ
alex
рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЖрдкрдиреЗ рдЗрд╕реЗ рдХреИрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛, рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЖрдкрдХреЛ рдХрдорд╛рдВрдб рдХреЛ рдмрджрд▓рдирд╛ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИредрдЖрдк рдЗрд╕реЗ
coc-diagnostic
рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗdiagnostic-languageserver.linters
рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВредрдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЗрд╕рд╕реЗ рд╕рд╣рд╛рдпрддрд╛ рдорд┐рд▓реЗрдЧреА!