Doom-emacs: ¿Cómo uso Eslint para verificar archivos .ts / .tsx en lugar de tsx-tide?

Creado en 21 ene. 2020  ·  3Comentarios  ·  Fuente: hlissner/doom-emacs

¿Qué estás intentando lograr?
Dado que TSLint ha quedado obsoleto y Eslint es ahora la forma recomendada de liar archivos Typecript / TSX, me gustaría lint mis archivos Typescript usando Eslint.

Estoy un poco perdido sobre cómo evitar el uso de Tide para pelusa y predeterminado a Eslint en lugar de archivos .js.

¿Qué has probado?
He configurado mi archivo .eslintrc para manejar correctamente Typescript instalando el paquete typescript-eslint .

Información del sistema


((emacs
(versión. "26.3")
(características. "NOTIFICAR ACL GNUTLS LIBXML2 ZLIB TOOLKIT_SCROLL_BARS THREADS")
(compilación "28 de diciembre de 2019")
(buildopts "--enable-locallisppath = / usr / local / share / emacs / site-lisp --infodir = / usr / local / Cellar / emacs-mac / emacs-26.3-z-mac-7.8 / share / info / emacs --prefix = / usr / local / Cellar / emacs-mac / emacs-26.3-z-mac-7.8 --with-mac --enable-mac-app = / usr / local / Cellar / emacs-mac / emacs -26.3-z-mac-7.8 --con-nueces ")
(lote de windowsys.)
(daemonp. servidor en ejecución))
(condenar
(versión. "2.0.9")
(compilar "HEAD -> desarrollar 453e20534 2020-01-15 11:19:32 -0500")
(dir. "~ / work / dotfiles / emacs / .doom.d /"))
(sistema
(tipo. darwin)
(configuración "x86_64-apple-darwin18.7.0")
(shell. "/ usr / local / bin / fish")
(uname. "Darwin 18.7.0 Darwin Kernel Versión 18.7.0: martes 20 de agosto de 2019 a las 16:57:14 PDT; raíz: xnu-4903.271.2 ~ 2 / RELEASE_X86_64 x86_64")
(ruta "~ / .nvm / versions / node / v12.13.0 / bin" "~ / go / bin" "~ / .bin" "~ / .yarn / bin" "~ / .config / yarn / global / node_modules /.bin "" ~ / .rbenv / bin "" ~ / .rbenv / shims "" / usr / local / bin "" / usr / bin "" / bin "" / usr / sbin "" / sbin "" / usr / local / go / bin "" / usr / local / MacGPG2 / bin "" /Library/Frameworks/Mono.framework/Versions/Current/Commands "" / Library / TeX / texbin "" ~ / go / bin "" ~ / .bin "" ~ / .yarn / bin "" ~ / .config / yarn / global / node_modules / .bin "" ~ / .rbenv / bin "" ~ / .rbenv / shims "" ~ / .rbenv / versiones / 2.6.3 / bin "" /usr/local/Cellar/rbenv/1.1.2/libexec "" /usr/local/Cellar/emacs-mac/emacs-26.3-z-mac-7.8/libexec/emacs/ 26.3 / x86_64-apple-darwin18.7.0 "))
(config
(envfile. envvar-archivo)
(archivos elc. 0)
(módulos: empresa de finalización ivy: ui doom doom-dashboard doom-quit hl-todo modeline nav-flash ophints (emergente + todos + valores predeterminados) treemacs unicode vc-gutter vi-tilde-fringe ventana-seleccionar espacios de trabajo: editor (mal + en todas partes ) file-templates fold multiple-cursors rotar-text snippets: emacs (dired + icons) electric vc: term vterm: herramientas editorconfig eval: checkers syntax: tools (lookup + docsets) macos magit pdf: lang common-lisp data emacs-lisp go javascript latex ledger markdown (org + dragndrop + ipython + pandoc + presente) plantuml python ruby ​​rust sh web: config literate (predeterminado + enlaces + smartparens))
(paquetes "n / a")
(elpa "buey-hugo")))

:checkers syntax :lang javascript question resolved

Comentario más útil

@gueorgui Tuve que hacer algo similar para que vue funcionara bien, terminé con lo siguiente

(define-derived-mode vue-mode web-mode "Vue mode")
(add-to-list 'auto-mode-alist '("\\.vue\\'" . vue-mode))
(after! flycheck
  (flycheck-add-mode 'javascript-eslint 'vue-mode)
  (flycheck-add-mode 'css-stylelint 'vue-mode)
  (add-hook 'vue-mode-hook (lambda () (flycheck-add-next-checker 'lsp-ui 'javascript-eslint)))
  (add-hook 'vue-mode-hook (lambda () (flycheck-add-next-checker 'javascript-eslint 'css-stylelint))))

Puede reemplazar instancias de vue con tsx y eliminar también el soporte de stylelint . Esto también usa lsp , por lo que es posible que también deba ajustarlo.

Todos 3 comentarios

Siguiendo con mi propia pregunta, he descubierto cómo ejecutar javascript-eslint en typescript-mode :

(defun typescript-mode-setup ()
  "Custom setup for Typescript mode"
  (setq flycheck-checker 'javascript-eslint)
  )
(add-hook 'typescript-mode-hook 'typescript-mode-setup)

El problema es que los archivos .tsx no se abren en typescript-mode (ya que ese modo no es compatible con JSX / TSX) sino en web-mode , y parece que javascript-eslint no es un verificador Flycheck válido para web-mode .

Por lo tanto, estoy atascado con el uso de typescript-mode para archivos TSX, perdiendo las sutilezas del resaltado de sintaxis y la sangría para la parte JSX, o tengo que dejar de usar Eslint.

Cualquier idea sería muy apreciada 😄

@gueorgui Tuve que hacer algo similar para que vue funcionara bien, terminé con lo siguiente

(define-derived-mode vue-mode web-mode "Vue mode")
(add-to-list 'auto-mode-alist '("\\.vue\\'" . vue-mode))
(after! flycheck
  (flycheck-add-mode 'javascript-eslint 'vue-mode)
  (flycheck-add-mode 'css-stylelint 'vue-mode)
  (add-hook 'vue-mode-hook (lambda () (flycheck-add-next-checker 'lsp-ui 'javascript-eslint)))
  (add-hook 'vue-mode-hook (lambda () (flycheck-add-next-checker 'javascript-eslint 'css-stylelint))))

Puede reemplazar instancias de vue con tsx y eliminar también el soporte de stylelint . Esto también usa lsp , por lo que es posible que también deba ajustarlo.

@afontaine ¡ Muchas gracias por esto!

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

governorgoat picture governorgoat  ·  3Comentarios

ashiklom picture ashiklom  ·  3Comentarios

nasoundead picture nasoundead  ·  3Comentarios

driftcrow picture driftcrow  ·  3Comentarios

luisenrike picture luisenrike  ·  3Comentarios