quickfix – ¿Cómo corregir automáticamente los errores comunes de formación de pelusa informados a través de Syntastic?

Pregunta:

Comencé a usar el complemento syntastic con vim para informar errores de pelusa en mi código javascript .

También integré eslint con syntastic , y me muestra errores agradables, advertencias en caso de que estén presentes según las reglas escritas en mi archivo .eslintrc .

¿Hay alguna forma en la que pueda corregir algunos errores comunes, por ejemplo, falta de punto y coma, falta de espacio, etc. con una pulsación de tecla?

Editar:

He descubierto que eslint tiene una opción

  --fix Automatically fix problems

que se puede utilizar para tales casos. Necesito ejecutar este comando para permitir que eslint solucione esos problemas

eslint --fix -c myconfig file.js

Quiero saber cómo se puede integrar eso con vim .

Respuesta:

Como se menciona en los comentarios, tenga en cuenta las consecuencias que esta modificación tiene para su entorno de trabajo (sepa exactamente qué reglas de eslint utiliza para "arreglar" las cosas).

Para responder a su pregunta: agregar la opción a la ejecución de eslint con sintáctica es sencillo . Simplemente agregue esto a su .vimrc :

" execute eslint with --fix flag
let g:syntastic_javascript_eslint_args = ['--fix']

Pero como eslint se ejecuta en el archivo después de que vim escribe su búfer en el archivo, vim no conoce las correcciones que hace eslint. Entonces, de alguna manera, vim tiene que cargar el archivo nuevamente (la forma manual sería simplemente escribir :e en modo normal / comando). Para hacer eso, podemos usar la opción de lectura automática junto con checktime :

" enable autoread to reload any files from files when checktime is called and
" the file is changed
set autoread

Para llamar a checktime podemos usar un autocmd que se ejecuta cada vez que se escribe un búfer en un archivo. Pero como sintáctico está usando su propio autocmd en el mismo evento BufWritePost , tenemos que agregar nuestro autocmd después de que syntactic agregue el suyo. Descubrí que este es el caso cuando agregamos nuestro autocmd en VimEnter :

" add an autocmd after vim started to execute checktime for *.js files on write
au VimEnter *.js au BufWritePost *.js checktime

Entonces, después de agregar las tres partes a su .vimrc vim debería comportarse como se esperaba (lint y autocorrección en el archivo guardado :w ).

Leave a Comment

Your email address will not be published. Required fields are marked *

web tasarım