ما الذي تحاول تحقيقه؟
نظرًا لأنه تم إهمال 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")))
متابعة لسؤالي الخاص ، لقد اكتشفت كيفية تشغيل 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 شكرا جزيلا لك على هذا!
التعليق الأكثر فائدة
gueorgui اضطررت إلى القيام بشيء مماثل مقابل
vue
للعمل بشكل جيد ، انتهى بي الأمر بما يلييمكنك استبدال مثيلات
vue
بـtsx
، وإزالة دعمstylelint
أيضًا. يستخدم هذا أيضًاlsp
، لذلك قد تحتاج إلى تعديل ذلك أيضًا.