क्या मैं js2- मोड के लिए सिंटैक्स चेकर को बंद या स्विच कर सकता हूं?


13

मेरे पास एक डिफ़ॉल्ट सेटअप है js2-mode। यह अच्छा सिंटैक्स हाइलाइटिंग और जाँच प्रदान करता है, लेकिन मैं अब एक परियोजना पर शैलियों के एक अलग सेट के साथ काम कर रहा हूं (विशेषकर यह नई परियोजना अर्धविराम का उपयोग नहीं करती है)।

यह js2-modeचेतावनी के साथ कोड की हर एक पंक्ति को रेखांकित करता है :missing ; after statement

क्या कोई ऐसा तरीका है जिससे मैं वाक्य रचना की जाँच को निष्क्रिय कर सकता हूँ js2-mode?

या, और भी बेहतर, क्या एक अलग सिंटैक्स चेकर का उपयोग करने का एक तरीका है?

मेरे पास मेरी .jsफ़ाइलों के लिए स्थापित और चलाने वाली फ्लाईकैच मोड है, लेकिन मेरे पास कोई सिंटैक्स चेकर्स सक्षम नहीं है (यानी सभी चेकर्स सेट हैं nilऔर not found)। यह जानना बहुत अच्छा होगा कि इनमें से किसी को कैसे सक्षम किया जाए और बिल्ट को js2एक में अक्षम किया जाए ।

मुझे पता है कि अर्धविराम सम्मिलन पर विचार भिन्न हैं लेकिन यह परियोजना इस प्रकार है "standard style"जिसके लिए फ्लाईकैच में एक सिंटैक्स चेकर है और मुझे बस दिलचस्पी है कि क्या मैं चेकर को स्विच कर सकता हूं।

जवाबों:


17

चेतावनी JS2 मोड से आती है जो जावास्क्रिप्ट के लिए अपने स्वयं के पार्सर को लागू करती है और कुछ मुद्दों के बारे में चेतावनी देती है। जैसा कि अन्य उत्तर में उल्लेख किया गया है कि आपके द्वारा देखी गई विशेष चेतावनी को उपयोगकर्ता विकल्प द्वारा नियंत्रित किया जाता है js2-strict-missing-semi-warningजिसे आप nilअपनी init फ़ाइल में या M-x customizeचेतावनी को बंद करने के लिए सेट कर सकते हैं ।

JS2 मोड एक साथ उपयोग करते समय Flycheck साथ हम आम तौर पर चर सेट करके JS2 मोड के सभी चेतावनियों को बंद करने की सलाह देते js2-mode-show-parse-errorsहैं और js2-mode-show-strict-warningsकरने के लिए nilके रूप में लगभग सभी मामलों में Flycheck की वाक्य रचना की जाँच बेहतर त्रुटि रिपोर्टिंग प्रदान करता है।


javascript-standardवर्तमान बफ़र उपयोग के लिए सिंटैक्स चेकर का चयन करने के लिए C-c ! s javascript-standard। आप .dir-locals.elनिम्न सामग्री के साथ परियोजना के शीर्ष स्तर निर्देशिका में एक फ़ाइल बनाकर अपने विशिष्ट प्रोजेक्ट के लिए इस वाक्यविन्यास चेकर को स्थायी रूप से सक्षम कर सकते हैं:

((js2-mode
  (flycheck-checker . javascript-standard)))

Emacs स्वचालित रूप से निर्देशिका के नीचे एक फ़ाइल पर जाकर इन निर्देशिका चर को लोड करता है , और इस प्रकार स्वचालित रूप से आपकी परियोजना के लिए मानक वाक्यविन्यास परीक्षक चुनता है।


किसी कारण के लिए, यहां तक ​​कि जब js2-mode-show-parse-errorsभी सेट किया जाता है nil, मैं अभी भी त्रुटियों को देखता हूं: C-h v js2-mode-show-parse-errorsरिटर्न js2-mode-show-parse-errors is a variable defined in js2-mode.el'. Its value is nil. Original value was t लेकिन मैं अभी भी अंडर लाइनों को देखता हूं। क्या आप जानते हैं कि ऐसा क्यों हो सकता है?
स्टार्टअप

आह, आपके उत्तर में एक छोटा प्रकार है, मेरा मानना ​​है कि आपका मतलब है js2-mode-show-strict-warnings nil। मैंने इसे एडिट के रूप में जोड़ा।
स्टार्टेक

@Startec ओह मेरी गलती को ठीक करने के लिए धन्यवाद।
चंद्रग्रहण

2

आप js2-strict-missing-semi-warningचर को अनुकूलित कर सकते हैं nilताकि यह आपको इस विशेष समस्या के लिए चेतावनी न दे, या आप js-modeइसके बजाय उपयोग कर सकें js2-mode

दो विकल्पों में से, मैं आपके स्टाइल गाइड को बदलने की सलाह देता हूं; जेएस में स्वचालित अर्धविराम सम्मिलन एक जाल है। फिर भी, मैं मानता हूं कि यह हमेशा संभव नहीं हो सकता है।


4
-1: कृपया अंतिम पैराग्राफ हटा दें, यह ऑफ टॉपिक है। जावास्क्रिप्ट शैलियों की चर्चा इस साइट के लिए नहीं है।
चंद्रग्रहण

3
नहीं धन्यवाद। मैं जावास्क्रिप्ट के साथ 20 साल के अनुभव के साथ एक इंजीनियर के रूप में यह सलाह देता हूं। निश्चित रूप से स्थानीय सम्मेलनों को फिट करने के लिए emacs को जोड़ना उचित है (और यह emacs सबसे अच्छा है), लेकिन कुछ चीजें उनके लायक होने की तुलना में अधिक परेशानी होती हैं, और स्वचालित अर्धविराम प्रविष्टि उस सूची में सबसे ऊपर है। इसे अलग रखते हुए, js2- मोड का व्यवहार ट्विक करना आपका सबसे अच्छा विकल्प है, क्योंकि यह सबसे सरल है। मैं वास्तव में फ्लाईमेक के बारे में कुछ नहीं जानता, लेकिन मैं वहां आपकी मदद नहीं कर सकता।
db48x
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.