κΈ°λ₯ μμ²μ΄ λ¬Έμ μ κ΄λ ¨μ΄ μμ΅λκΉ?
λλ alex
λ° proselint
λ₯Ό μ¬μ©νμ¬ νλμ λ΄ κΈμ νμΈνμ§λ§ vimμ μ’
λ£νκ³ νμΌμμ μ€ν νμΌμ μ€νν΄μΌνλ―λ‘ νμ κΆμ₯νμ§ μμ΅λλ€. κΈ΄ ν
μ€νΈλ₯Ό μμ±ν λ λΉν¨μ¨μ μ
λλ€. alex
λ° proselint
λν READMEλ₯Ό μ¬μ©νμ¬ vim λ΄μμ μ¬μ©ν μ μλ€κ³ λ§νλ ALE λλ syntasticμ λν΄ μκ°νμ§λ§ ν
μ€νΈ μ©μΌλ‘ λ§ λ€λ₯Έ linting νλ¬κ·ΈμΈμ μ€μΉνκ³ μΆμ§λ μμ΅λλ€. λ€λ₯Έ κ²λ€μ λν΄ λ λ§μ΄ coc.
μνλ μ루μ
μ μ€λͺ
νμμμ€.
λκ΅°κ°κ° alex
λλ proselint
μ€ν νμΌμ λν coc-settings.json μΈμ΄ μλ² μ€μ μ μμλΌ μ μλ€λ©΄ μ’μ κ² κ°μ΅λλ€. coc-clangd
clangd
μ¬μ©νλ κ²κ³Ό κ°μ ν
μ€νΈ linting νμ₯μ΄ λ μ’μ΅λλ€.
κ³ λ €ν λμ μ€λͺ
λ΄κ° λ§νλ―μ΄ λλ alex
λ° proselint
λν READMEκ° μ§μνλ€κ³ λ§ν ALE λ° syntasticμ μκ°νμ΅λλ€. κ·Έλ¬λ λλ κ·Έκ²μ λ¬μ±νκΈ° μν΄ githubμμ κ΄λ ¨ λ¬Έμλ₯Ό μ°Ύμ μ μμκ³ λ€μ λλ λ΄ vimμ λλ¦¬κ² λ§λλ ν
μ€νΈμ λν λ€λ₯Έ linting νλ‘κ·Έλ¨μ μνμ§ μμ΅λλ€.
μΆκ° 컨ν
μ€νΈ
alex
λ° proselint
μ΄μΈμλ GNU style
λ° diction
κ°μ κ²λ μμ§λ§ κ°μΈμ μΌλ‘ alex
λ° proselint
λ (νΈμ§ : are ... μ΄κ²μ λ΄κ° ν
μ€νΈ lintingμ΄ νμν μ΄μ μ°Έμ‘°) λ μ ννκ³ μμΈν©λλ€.
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"
}
}
μ΄κ²μ diagnostic-languageserver.linters
μ μΆκ°νμ¬ coc-diagnostic
μ ν¨κ» μ¬μ©ν μ μμ΅λλ€.
λμμ΄ λμκΈ°λ₯Ό λ°λλλ€.
κ°μ₯ μ μ©ν λκΈ
μ΄ κ΅¬μ±μ
alex
λν΄ κ΅¬μ±νμ΅λλ€. μ€μΉ λ°©λ²μ λ°λΌ λͺ λ Ήμ λ³κ²½ν΄μΌ ν μλ μμ΅λλ€.μ΄κ²μ
diagnostic-languageserver.linters
μ μΆκ°νμ¬coc-diagnostic
μ ν¨κ» μ¬μ©ν μ μμ΅λλ€.λμμ΄ λμκΈ°λ₯Ό λ°λλλ€.