Posso desligar ou alternar o verificador de sintaxe para o modo js2?

13

Eu tenho uma configuração padrão de js2-mode. Isso fornece uma sintaxe agradável, destacando e verificando, mas agora estou trabalhando em um projeto com um conjunto diferente de estilos (especificamente este novo projeto não usa ponto e vírgula).

Isso faz com que cada linha de código seja sublinhada js2-modecom o aviso:missing ; after statement

Existe uma maneira de desativar a verificação de sintaxe js2-mode?

Ou, melhor ainda, existe uma maneira de usar um verificador de sintaxe diferente?

Eu tenho o modo Flycheck instalado e em execução para meus .jsarquivos, mas simplesmente não tenho nenhum verificador de sintaxe ativado (ou seja, todos os verificadores estão definidos como nile not found). Seria ótimo saber como habilitar um desses e desativar o construído em js2um.

Sei que as visualizações na inserção de ponto e vírgula variam, mas este projeto segue o "standard style"para o qual existe um verificador de sintaxe no Flycheck e estou interessado apenas em saber se posso alternar o verificador.

Startec
fonte

Respostas:

17

O aviso vem do JS2 Mode, que implementa seu próprio analisador de Javascript e alerta sobre alguns problemas. Conforme observado na outra resposta, o aviso específico que você observou é controlado pela opção do usuário js2-strict-missing-semi-warningque você pode definir nilno seu arquivo init ou via M-x customizepara desativar o aviso.

Ao usar o Modo JS2 juntamente com Flycheck geralmente recomendamos para desligar todos os avisos de modo JS2, definindo as variáveis js2-mode-show-parse-errorse js2-mode-show-strict-warningspara nilcomo em quase todos os casos verificação de sintaxe de Flycheck fornece relatórios de erro superior.


Para selecionar o javascript-standardverificador de sintaxe para o uso atual do buffer C-c ! s javascript-standard. Você pode ativar permanentemente esse verificador de sintaxe para seu projeto específico, criando um .dir-locals.elarquivo no diretório de nível superior do projeto com o seguinte conteúdo:

((js2-mode
  (flycheck-checker . javascript-standard)))

O Emacs carrega automaticamente essas variáveis ​​de diretório ao visitar um arquivo abaixo do diretório e, portanto, escolhe automaticamente o verificador de sintaxe padrão para o seu projeto.

lunaryorn
fonte
Por alguma razão, mesmo quando js2-mode-show-parse-errorsdefinido como nil, ainda vejo os erros: C-h v js2-mode-show-parse-errorsretorna, js2-mode-show-parse-errors is a variable defined in js2-mode.el'. Its value is nil. Original value was t mas ainda vejo as linhas abaixo. Você sabe por que isso pode ser?
Startec
Ah, há um pequeno tipo na sua resposta, acredito que você quis dizer js2-mode-show-strict-warnings nil. Eu adicionei isso como uma edição.
Startec
@Startec Oh, desculpe, obrigado por corrigir meu erro.
lunaryorn 18/09/16
2

Você pode personalizar a js2-strict-missing-semi-warningvariável para nilque ela não o avise sobre esse problema específico ou usar em js-modevez de js2-mode.

Das duas opções, recomendo alterar seu guia de estilo; A inserção automática de ponto e vírgula no JS é uma armadilha. Ainda assim, reconheço que isso nem sempre é possível.

db48x
fonte
4
-1: remova o último parágrafo, está fora de tópico. Discussão sobre estilos Javascript não é para este site.
lunaryorn 9/09/16
3
Não, obrigado. Ofereço este conselho como engenheiro com 20 anos de experiência em Javascript. Certamente, a adaptação do emacs para se adequar às convenções locais é possível (e é nisso que o emacs é melhor), mas algumas coisas são mais problemáticas do que valem, e a inserção automática de ponto e vírgula está no topo dessa lista. Deixando isso de lado, ajustar o comportamento do modo js2 é a melhor opção, pois é a mais simples. Na verdade, eu não sei nada sobre flymake, então não posso ajudá-lo lá.
db48x 9/09/16