Doom-emacs: Wie überprüfe ich mit Eslint .ts / .tsx-Dateien anstelle von tsx-tide?

Erstellt am 21. Jan. 2020  ·  3Kommentare  ·  Quelle: hlissner/doom-emacs

Was versuchst du zu erreichen?
Da TSLint veraltet ist und Eslint jetzt die empfohlene Methode zum Flusen von Typescript- / TSX-Dateien ist, möchte ich meine Typescript-Dateien mit Eslint fusseln.

Ich bin ein wenig ratlos darüber, wie ich die Verwendung von Tide zum Flusen verhindern kann, und verwende stattdessen standardmäßig Eslint wie für .js-Dateien.

Was hast du versucht?
Ich habe meine .eslintrc -Datei so konfiguriert, dass sie Typescript korrekt verarbeitet, indem ich das typescript-eslint -Paket installiert habe.

System Information


((Emacs
(Version. "26.3")
(Funktionen. "ACL GNUTLS LIBXML2 ZLIB TOOLKIT_SCROLL_BARS THREADS NOTIFY")
(Build. "28. Dezember 2019")
(buildopts "--enable-locallisppath = / usr / local / share / emacs / site-lisp --infodir = / usr / local / Keller / emacs-mac / emacs-26.3-z-mac-7.8 / share / info / emacs --prefix = / usr / local / Keller / emacs-mac / emacs-26.3-z-mac-7.8 --mit-mac --enable-mac-app = / usr / lokal / Keller / emacs-mac / emacs -26,3-z-mac-7.8 --mit-gnutls ")
(WindowsSys. Batch)
(Daemonp. Server läuft))
(Untergang
(Version. "2.0.9")
(Build. "HEAD -> Develop 453e20534 2020-01-15 11:19:32 -0500")
(dir. "~ / work / dotfiles / emacs / .doom.d /"))
(System
(Typ Darwin)
(config. "x86_64-apple-darwin18.7.0")
(Shell. "/ usr / local / bin / fish")
(uname. "Darwin 18.7.0 Darwin Kernel Version 18.7.0: Di Aug 20 16:57:14 PDT 2019; root: xnu-4903.271.2 ~ 2 / RELEASE_X86_64 x86_64")
(Pfad "~ / .nvm / version / 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 / Versionen / 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-Datei)
(elc-files. 0)
(Module: Abschlussfirma Efeu: UI Doom Doom-Dashboard Doom-Quit Hl-ToDod Modeline Nav-Flash-Ophints (Popup + Alle + Standardeinstellungen) Treemacs Unicode VC-Rinne Vi-Tilde-Rand Fenster-Auswahl Arbeitsbereiche: Editor (Böse + überall ) Dateivorlagen falten mehrere Cursor, drehen Textausschnitte: emacs (dired + icons) electric vc: term vterm: tools 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 + present) plantuml python rubinrost sh web: config literate (default + bindings + smartparens))
(Pakete "n / a")
(elpa "ox-hugo")))

:checkers syntax :lang javascript question resolved

Hilfreichster Kommentar

@gueorgui Ich musste etwas Ähnliches tun, damit vue funktionierte. Am Ende hatte ich Folgendes

(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))))

Sie können Instanzen von vue durch tsx ersetzen und auch die Unterstützung für stylelint entfernen. Dies verwendet auch lsp , daher müssen Sie möglicherweise auch dies anpassen.

Alle 3 Kommentare

Nach meiner eigenen Frage habe ich herausgefunden, wie man javascript-eslint in typescript-mode ausführt:

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

Das Problem wird dann, dass .tsx -Dateien nicht in typescript-mode geöffnet werden (da dieser Modus JSX / TSX nicht unterstützt), sondern in web-mode , und es scheint, dass javascript-eslint ist kein gültiger Flycheck-Checker für web-mode .

Daher kann ich entweder typescript-mode für TSX-Dateien verwenden, die Feinheiten der Syntaxhervorhebung und -einrückung für den JSX-Teil verlieren oder die Verwendung von Eslint aufgeben.

Jeder Einblick wäre sehr dankbar 😄

@gueorgui Ich musste etwas Ähnliches tun, damit vue funktionierte. Am Ende hatte ich Folgendes

(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))))

Sie können Instanzen von vue durch tsx ersetzen und auch die Unterstützung für stylelint entfernen. Dies verwendet auch lsp , daher müssen Sie möglicherweise auch dies anpassen.

@afontaine Vielen Dank dafür!

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen