Doom-emacs: Bagaimana cara menggunakan Eslint untuk memeriksa file .ts / .tsx daripada tsx-tide

Dibuat pada 21 Jan 2020  ·  3Komentar  ·  Sumber: hlissner/doom-emacs

Apa yang ingin Anda capai?
Karena TSLint sudah tidak digunakan lagi dan Eslint sekarang menjadi cara yang direkomendasikan untuk menyaring file Typecript / TSX, saya ingin menyaring file Typecript saya menggunakan Eslint.

Saya sedikit bingung tentang cara mencegah penggunaan Tide untuk linting dan default ke Eslint, bukan untuk file .js.

Apa yang sudah kamu coba?
Saya telah mengkonfigurasi file .eslintrc untuk menangani Skrip Ketikan dengan benar dengan menginstal paket typescript-eslint .

Sistem Informasi


((emacs
(versi. "26.3")
(fitur. "PEMBERITAHUAN ACL GNUTLS LIBXML2 ZLIB TOOLKIT_SCROLL_BARS THREADS")
(build "28 Des 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 --dengan-gnutls ")
(windowsys. batch)
(daemonp. server-running))
(malapetaka
(versi. "2.0.9")
(build. "HEAD -> kembangkan 453e20534 2020-01-15 11:19:32 -0500")
(dir. "~ / work / dotfiles / emacs / .doom.d /"))
(sistem
(tipe. darwin)
(config. "x86_64-apple-darwin18.7.0")
(shell. "/ usr / local / bin / fish")
(uname. "Darwin 18.7.0 Versi Kernel Darwin 18.7.0: Sel 20 Agustus 16:57:14 PDT 2019; root: xnu-4903.271.2 ~ 2 / RELEASE_X86_64 x86_64")
(jalur "~ / .nvm / versi / 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 / versi / 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-file)
(file-elc. 0)
(modul: perusahaan penyelesaian ivy: ui doom doom-dashboard doom-exit hl-todo modeline nav-flash ophints (popup + all + defaults) treemacs unicode vc-gutter vi-tilde-fringe jendela-pilih ruang kerja: editor (jahat + di mana-mana ) file-templates melipat beberapa kursor rotate-text snippet: 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 ruby ​​rust sh web: config literate (default + binding + smartparens))
(paket "n / a")
(elpa "ox-hugo")))

:checkers syntax :lang javascript question resolved

Komentar yang paling membantu

@gueorgui Saya harus melakukan sesuatu yang serupa untuk vue untuk bekerja dengan baik, berakhir dengan yang berikut ini

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

Anda dapat mengganti contoh vue dengan tsx , dan menghapus dukungan stylelint juga. Ini juga menggunakan lsp , jadi Anda mungkin perlu menyesuaikannya juga.

Semua 3 komentar

Menindaklanjuti pertanyaan saya sendiri, saya telah menemukan cara menjalankan javascript-eslint dalam typescript-mode :

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

Masalahnya kemudian menjadi bahwa .tsx file tidak dibuka di typescript-mode (karena mode itu tidak mendukung JSX / TSX) melainkan di web-mode , dan tampaknya javascript-eslint bukan pemeriksa Flycheck yang valid untuk web-mode .

Jadi saya terjebak dengan menggunakan typescript-mode untuk file TSX, kehilangan kesederhanaan penyorotan sintaks dan indentasi untuk bagian JSX, atau saya harus berhenti menggunakan Eslint.

Wawasan apa pun akan sangat dihargai 😄

@gueorgui Saya harus melakukan sesuatu yang serupa untuk vue untuk bekerja dengan baik, berakhir dengan yang berikut ini

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

Anda dapat mengganti contoh vue dengan tsx , dan menghapus dukungan stylelint juga. Ini juga menggunakan lsp , jadi Anda mungkin perlu menyesuaikannya juga.

@afontaine Terima kasih banyak untuk ini!

Apakah halaman ini membantu?
0 / 5 - 0 peringkat