Doom-emacs: كيف يمكنني استخدام Eslint لفحص ملفات .ts / .tsx بدلاً من tsx-tide

تم إنشاؤها على ٢١ يناير ٢٠٢٠  ·  3تعليقات  ·  مصدر: hlissner/doom-emacs

ما الذي تحاول تحقيقه؟
نظرًا لأنه تم إهمال TSLint وأصبح Eslint الآن الطريقة الموصى بها لفحص ملفات Typescript / TSX ، أود فحص ملفات Typescript الخاصة بي باستخدام Eslint.

أنا في حيرة من أمري بشأن كيفية منع استخدام Tide في الفحص والإعداد الافتراضي لـ Eslint بدلاً من ملفات .js.

ماذا حاولت؟
لقد قمت بتكوين ملف .eslintrc للتعامل مع الأنواع بشكل صحيح عن طريق تثبيت حزمة typescript-eslint .

معلومات النظام


((إيماكس
(الإصدار "26.3")
(الميزات. "إخطار ACL GNUTLS LIBXML2 ZLIB TOOLKIT_SCROLL_BARS THREADS")
(النسخة "28 ديسمبر 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 - with-gnutls ")
(windowsys. دفعة)
(daemonp. تشغيل الخادم))
(الموت
(الإصدار "2.0.9")
(الإصدار. "HEAD -> تطوير 453e20534 2020-01-15 11:19:32 -0500")
(dir. "~ / work / dotfiles / emacs / .doom.d /"))
(النظام
(نوع. داروين)
(التكوين "x86_64-apple-darwin18.7.0")
(shell. "/ usr / local / bin / fish")
(uname. "Darwin 18.7.0 Darwin Kernel Version 18.7.0: الثلاثاء 20 أغسطس 16:57:14 PDT 2019 ؛ الجذر: xnu-4903.271.2 ~ 2 / RELEASE_X86_64 x86_64")
(المسار "~ / .nvm / الإصدارات / العقدة / 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 "))
(config
(envfile. envvar-file)
(ملفات elc. 0)
(الوحدات: شركة الإكمال لبلاب: ui doom doom-dashboard doom-quit hl-todo modeline nav-flash ophints (popup + all + defaults) treemacs unicode vc-gutter vi-tilde-fringe window-select مساحات العمل: محرر (شر + في كل مكان ) طي قوالب الملفات عدة مؤشرات استدارة نص مقتطفات: emacs (dired + icons) electric vc: term vterm: tools editorconfig EVVal: 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 القراءة والكتابة (افتراضي + روابط + smartparens))
(الحزم "غير متوفر")
(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 كومينتر

متابعة لسؤالي الخاص ، لقد اكتشفت كيفية تشغيل 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 ليس مدقق Flycheck صالحًا لـ web-mode .

لذلك أنا عالق إما باستخدام typescript-mode لملفات TSX ، أو أفقد التفاصيل الدقيقة لإبراز بناء الجملة والمسافة البادئة لجزء 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 التقييمات