Doom-emacs: 如何使用Eslint检查.ts / .tsx文件而不是tsx-tide

创建于 2020-01-21  ·  3评论  ·  资料来源: hlissner/doom-emacs

您想达到什么目的?
由于TSLint已被弃用,并且现在推荐

我对如何防止使用Tide进行掉毛并像.js文件一样默认使用Eslint感到有些困惑。

你尝试了什么?
我已经通过安装typescript-eslint软件包.eslintrc文件配置为正确处理Typescript。

系统信息


((emacs
(版本:“ 26.3”)
(功能。“ NOTIFY ACL GNUTLS LIBXML2 ZLIB TOOLKIT_SCROLL_BARS THREADS”)
(版本:“ 2019年12月28日”)
(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 --with-nutls“)
(Windows.s。批处理)
(daemonp。服务器正在运行)
(厄运
(版本:“ 2.0.9”)
(生成。“ HEAD->开发453e20534 2020-01-15 11:19:32 -0500”)
(目录。“〜/ work / dotfiles / emacs / .doom.d /”)
(系统
(类型。达尔文)
(配置。“ x86_64-apple-darwin18.7.0”)
(shell。“ / usr / local / bin / fish”)
(uname。“ Darwin 18.7.0 Darwin内核版本18.7.0:PDT 2019年8月20日星期二16:57:14; root:xnu-4903.271.2〜2 / RELEASE_X86_64 x86_64”)
(路径“〜/ .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 /版本/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“))
(配置
(envfile。envvar文件)
(ELC文件。0)
(模块:完成公司常春藤:ui毁灭-仪表板毁灭-退出hl-todo modeline导航Flash ophints(弹出+所有+默认值)treemacs unicode vc-gutter vi-tilde-fringe窗口选择工作区:editor(邪恶(无处不在) )文件模板折叠多个光标旋转文本片段:emacs(污点+图标)电子vc:term vterm:tools editorconfig eval:checkers语法:tools(lookup + docsets)macos magit pdf:lang common-lisp数据emacs-lisp去javascript乳胶分类帐markdown(org + dragndrop + ipython + pandoc + present)plantuml python ruby​​ rust sh web:config literate(默认+ bindings + smartparens))
(打包为“ n / a”)
(elpa“ ox-hugo”)))

:checkers syntax :lang javascript question resolved

最有用的评论

@gueorgui我必须为vue做类似的事情才能很好地工作,最后得到以下结果

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

您可以将vue实例替换tsx ,并删除对stylelint支持。 这也使用lsp ,因此您可能还需要对此进行调整。

所有3条评论

跟进我自己的问题,我弄清楚了如何在typescript-mode运行javascript-eslint typescript-mode

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

问题就变成了.tsx文件没有在typescript-mode打开(因为该模式不支持JSX / TSX),而是在web-mode打开javascript-eslint不是web-mode的有效Flycheck检查器。

因此,我要么对TSX文件使用typescript-mode ,要么失去了JSX部分语法高亮和缩进的美感,要么不得不放弃使用Eslint。

任何见识将不胜感激😄

@gueorgui我必须为vue做类似的事情才能很好地工作,最后得到以下结果

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

您可以将vue实例替换tsx ,并删除对stylelint支持。 这也使用lsp ,因此您可能还需要对此进行调整。

@afontaine非常感谢您!

此页面是否有帮助?
0 / 5 - 0 等级