Coc.nvim: Adicione Text Linter Support como Alex e Proselint for Writers

Criado em 4 jun. 2020  ·  3Comentários  ·  Fonte: neoclide/coc.nvim

Sua solicitação de recurso está relacionada a um problema?
Eu tenho usado alex e proselint para verificar minha escrita por um tempo, mas sempre fico desencorajado a fazer isso porque tenho que sair do vim e executar o executável no arquivo por si só, que é realmente ineficiente ao escrever um texto longo. Eu pensei sobre ALE ou sintaxe que o README para alex e proselint diz que pode ser usado para usá-los dentro do vim, mas não quero instalar outro plugin de linting apenas para texto, pois adoro coc mais para outras coisas.

Descreva a solução que você gostaria
Eu acho que seria bom se alguém pudesse descobrir uma configuração de servidor de idioma coc-settings.json para o executável alex ou proselint . Melhor ainda, uma extensão para linting de texto como coc-clangd usa clangd .

Descreva as alternativas que você considerou
Como eu disse, pensei em ALE e sintática que o README para alex e proselint disse ter suporte. Mas não consegui encontrar nenhuma documentação relevante no github para fazer isso e, novamente, não quero outro programa de linting apenas para textos que tornam meu vim lento.

Contexto adicional
Além de alex e proselint , também existem coisas como GNU style e diction que funcionariam bem, mas eu pessoalmente acho que alex e proselint is (Editar: são ... veja é por isso que preciso de linting de texto) mais preciso e detalhado.

help wanted

Comentários muito úteis

Fiz esta configuração para alex . Você pode ter que alterar o comando dependendo de como você o instalou.

"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"
    }
}

Você pode adicionar isso ao seu diagnostic-languageserver.linters para usá-lo com coc-diagnostic .
Espero que ajude!

Todos 3 comentários

Obrigado @chemzqm por esse link.
Consegui fazer proselint funcionar usando coc-diagnostic com esta configuração:

"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"
        }
    }
}

Ainda estou trabalhando no GNU diction , style e alex . Vou postar as soluções aqui quando terminar.

Fiz esta configuração para alex . Você pode ter que alterar o comando dependendo de como você o instalou.

"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"
    }
}

Você pode adicionar isso ao seu diagnostic-languageserver.linters para usá-lo com coc-diagnostic .
Espero que ajude!

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

npearson72 picture npearson72  ·  3Comentários

LinArcX picture LinArcX  ·  4Comentários

albertorestifo picture albertorestifo  ·  4Comentários

chemzqm picture chemzqm  ·  3Comentários

cvlmtg picture cvlmtg  ·  3Comentários