Coc.nvim: μž‘κ°€λ₯Όμœ„ν•œ Alex 및 Proselint와 같은 Text Linter 지원 μΆ”κ°€

에 λ§Œλ“  2020λ…„ 06μ›” 04일  Β·  3μ½”λ©˜νŠΈ  Β·  좜처: neoclide/coc.nvim

κΈ°λŠ₯ μš”μ²­μ΄ λ¬Έμ œμ™€ 관련이 μžˆμŠ΅λ‹ˆκΉŒ?
λ‚˜λŠ” 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이 ν•„μš”ν•œ 이유 μ°Έμ‘°) 더 μ •ν™•ν•˜κ³  μžμ„Έν•©λ‹ˆλ‹€.

help wanted

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

이 ꡬ성을 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 와 ν•¨κ»˜ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
도움이 λ˜μ—ˆκΈ°λ₯Ό λ°”λžλ‹ˆλ‹€.

λͺ¨λ“  3 λŒ“κΈ€

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 와 ν•¨κ»˜ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
도움이 λ˜μ—ˆκΈ°λ₯Ό λ°”λžλ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰