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")))
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!
Hilfreichster Kommentar
@gueorgui Ich musste etwas Ähnliches tun, damit
vue
funktionierte. Am Ende hatte ich FolgendesSie können Instanzen von
vue
durchtsx
ersetzen und auch die Unterstützung fürstylelint
entfernen. Dies verwendet auchlsp
, daher müssen Sie möglicherweise auch dies anpassen.