Ace: [JavaScript Linting] دعم ESNext (غير متزامن / انتظار ، خصائص الفئة ، إلخ)

تم إنشاؤها على ٦ ديسمبر ٢٠١٦  ·  11تعليقات  ·  مصدر: ajaxorg/ace

أقترح تغيير تلميح جافا سكريبت لاستخدام ESLint لدعم أفضل لميزات ES6 +.

أود أن أكون قادرًا على استخدام خصائص الفصل وعدم التزامن / في انتظار أكثر من غيره ، ولكن هناك أيضًا الكثير من قواعد الفحص الأخرى التي تعمل بشكل أفضل بكثير من jshint.

class Foo {
    bar = 'baz';
}
async function foo () {
    const bar = await baz();
}

لم أبحث في مدى صعوبة استبدال جافا سكريبت لينتر ، لذلك لا أعرف مدى واقعية هذا الطلب.

linters

التعليق الأكثر فائدة

العمل Pleaaaase على هذه المسألة.

ال 11 كومينتر

هذه فكرة جيدة ومطلوبة أيضًا لـ # 3180.
يمكننا أن نبنيها على ملفات الويب التجريبية الخاصة بـ ESLint.

العمل Pleaaaase على هذه المسألة.

تم إصدار إصدار JSHint الجديد 2.10.0 مع دعم الميزات الجديدة.

كحل مؤقت مؤقت - لقد استخدمت نص مكتوب بلغة ACE ، فقد تم انتظاره بالفعل / غير متزامن.

لا يظهر الخط المطبوع خطأ .. ولكنه بعد ذلك يفتقد الكثير من الأخطاء الأخرى.

إنه ليس فقط غير متزامن / ينتظر كل بناء جملة es6 بما في ذلك عوامل الرياضيات الجديدة مثل 8**2

اعتبارًا من اليوم ، هذه المشكلة عمرها 3 سنوات . لقد تم إيقاف React منذ فترة ، لذا من المؤكد أن الطلب يتزايد على هذا الأمر. لا يزال المشروع نشطًا إلى حد كبير ، ولكن لا يوجد ما يشير إلى وجود هذا في أي خريطة طريق رسمية ويبدو أنه مجرد ، "نعم هذا ما نحتاج إلى القيام به ، وسنفعله على الأرجح."

هل يمكننا _please_ الحصول على نوع من التحديث هنا؟ nightwing ؟ تضمين التغريدة

لقد وجدت هذا أثناء محاولتي العثور على linter لملفات CSS ، وتلاعبت هيئة المحلفين بشيء خاص بي ، _ / mode / javascript_worker.js_ 🔗

يبدو أن هذا التكوين يشير إلى أنه تم إعداده بالفعل لدعم ESNext ، على الأقل عند العمل في وضع عامل Javascript لعامل جافا سكريبت. شخصيا لم يلقي هذا أي ضوء ، ولكن ربما هذا يمكن أن يساعد واحد منكم

حاولت إعادة بناء ace بعد استبدال ملف jshint.js بأحدث. هذا يمنع ظهور خطأ غير متزامن / انتظار. ومع ذلك ، فإنه يوقف أيضًا عرض الأخطاء لسيناريوهات أخرى (الأقواس المفقودة ، والسلاسل غير المغلقة ، وما إلى ذلك). محبط للغاية ، أفترض أن مشروع الآس قد مات.

لقد كنت أتعامل مع هذا أيضًا وتمكنت من إنجاحه. يمكن تحديث التوثيق ، وكان من المؤلم معرفة كيفية عمل النظام البيئي بأكمله (استغرق عدة ساعات) ثم تعلم أن كل التغيير المطلوب هو سطر واحد ...: /

يوجد خيارين:
1) إذا قمت للتو باستيراد الإصدار المحزم / المصغر - يلزم استبدال: "esnext:! 0" بـ "esversion: 9"
https://raw.githubusercontent.com/ajaxorg/ace-builds/master/src-min/worker-javascript.js
2) يمكنك التحقق من الريبو وبناء نفسك. (يستغرق الأمر حوالي دقيقة واحدة ، لذلك هذا أيضًا سهل إلى حد ما)

git clone [email protected]:ajaxorg/ace.git
npm install
nano +82 lib/ace/mode/javascript_worker.js // replace "esnext: true," with "esversion: 9"
node Makefile.dryice.js full --target ../ace-builds

تحديث : منذ أن وجدت تعليقي الأخير طريقة أخرى:

var editor = ace.edit("editor");
editor.session.on('changeMode', function(e, session){
    if ("ace/mode/javascript" === session.getMode().$id) {
        if (!!session.$worker) {
            session.$worker.send("setOptions", [{
                "esversion": 9,
                "esnext": false,
            }]);
        }
    }
});
editor.session.setMode("ace/mode/javascript");

مدهش!! هل هناك ما يشير إلى ما إذا كان بإمكانك تحديد إصدارات أخرى ، مثل 6 لـ ES6 وما إلى ذلك؟

سأضيف أيضًا ، في حال كان الآخرون جددًا على git أو لم يقوموا بإعداد SSH الخاص بهم مع Github ، يمكنك أيضًا استنساخه باستخدام: git clone https://github.com/ajaxorg/ace.git/ . _ تعثرت في ذلك مرة أكثر مما أود أن أعترف به_

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات