Doom-emacs: Comment utiliser Eslint pour vérifier les fichiers .ts / .tsx au lieu de tsx-tide

Créé le 21 janv. 2020  ·  3Commentaires  ·  Source: hlissner/doom-emacs

Qu'essayez-vous d'accomplir?
Étant donné que TSLint est obsolète et qu'Eslint est maintenant le moyen recommandé de lint des fichiers Typescript / TSX, je voudrais lint mes fichiers Typescript en utilisant Eslint.

Je ne sais pas trop comment empêcher l'utilisation de Tide pour le peluchage et utiliser par défaut Eslint, comme pour les fichiers .js.

Qu'avez-vous essayé?
J'ai configuré mon fichier .eslintrc pour gérer correctement Typescript en installant le package typescript-eslint .

Informations système


((emacs
(version. "26.3")
(caractéristiques. "NOTIFY ACL GNUTLS LIBXML2 ZLIB TOOLKIT_SCROLL_BARS THREADS")
(build. "28 décembre 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 - avec-gnutls ")
(windowsys. batch)
(daemonp. serveur en cours d'exécution))
(perte
(version. "2.0.9")
(build. "HEAD -> develop 453e20534 2020-01-15 11:19:32 -0500")
(dir. "~ / work / dotfiles / emacs / .doom.d /"))
(système
(tapez. darwin)
(config. "x86_64-apple-darwin18.7.0")
(shell. "/ usr / local / bin / fish")
(uname. "Darwin 18.7.0 Darwin Kernel Version 18.7.0: Tue août 20 16:57:14 PDT 2019; root: xnu-4903.271.2 ~ 2 / RELEASE_X86_64 x86_64")
(chemin "~ / .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 / versions / 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)
(fichiers elc. 0)
(modules: société d'achèvement ivy: ui doom doom-dashboard doom-quit hl-todo modeline nav-flash ophints (popup + all + defaults) treemacs unicode vc-gutter vi-tilde-fringe window-select workspaces: editor (evil + partout ) fichier-templates plier plusieurs-curseurs rotate-text snippets: emacs (dired + icons) electric vc: term vterm: tools editorconfig eval: checkers syntaxe: 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 + bindings + smartparens))
(packages "n / a")
(elpa "boeuf-hugo")))

:checkers syntax :lang javascript question resolved

Commentaire le plus utile

@gueorgui J'ai dû faire quelque chose de similaire pour que vue fonctionne bien, j'ai fini avec ce qui suit

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

Vous pouvez remplacer les instances de vue par tsx , et supprimer également le support stylelint . Cela utilise également lsp , donc vous devrez peut-être vous ajuster pour cela également.

Tous les 3 commentaires

Suite à ma propre question, j'ai trouvé comment exécuter javascript-eslint dans typescript-mode :

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

Le problème devient alors que les fichiers .tsx ne sont pas ouverts dans typescript-mode (car ce mode ne prend pas en charge JSX / TSX) mais plutôt dans web-mode , et il semble que javascript-eslint n'est pas un vérificateur Flycheck valide pour web-mode .

Je suis donc bloqué soit en utilisant typescript-mode pour les fichiers TSX, en perdant les subtilités de la coloration syntaxique et de l'indentation pour la partie JSX, soit je dois renoncer à utiliser Eslint.

Toute idée serait grandement appréciée 😄

@gueorgui J'ai dû faire quelque chose de similaire pour que vue fonctionne bien, j'ai fini avec ce qui suit

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

Vous pouvez remplacer les instances de vue par tsx , et supprimer également le support stylelint . Cela utilise également lsp , donc vous devrez peut-être vous ajuster pour cela également.

@afontaine Merci beaucoup pour ça!

Cette page vous a été utile?
0 / 5 - 0 notes