Vscode-theme-onedark: إصلاح موضوع النطاق الجديد في VSCode 1.9

تم إنشاؤها على ٣ فبراير ٢٠١٧  ·  17تعليقات  ·  مصدر: akamud/vscode-theme-onedark

غيّر VSCode 1.9 تمامًا الطريقة التي يتعامل بها مع نطاقات tmTheme للتلوين.

الموضوع بأكمله مكسور في الوقت الحالي ويحتاج إلى إعادة تصميمه من الصفر.

مزيد من المعلومات: https://github.com/Microsoft/vscode/issues/18357

new-version-broken

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

لأي شخص ينتظر ، أعتقد أن الإصدار 1.1.0 يحتوي الآن على نفس اللون الذي كان عليه قبل الإصدار 1.9. يمكنك فقط التحديث على VSCode Marketplace.

تم تحسين بعض اللغات باستخدام النطاقات الجديدة ، مثل Ruby و JS / TS ولكن إذا وجدت أي تناقض ، خاصة لغة لم تكن موجودة قبل 1.9 ، فيرجى الإبلاغ.

أعتقد أن اللغات الوحيدة المفقودة الآن هي تلك التي تعتمد على المكونات الإضافية في VSCode التي دعمتها قبل 1.9 ، مثل Rust. سأعمل عليها على مدار الأسبوع وأغلق هذه القضية عندما يتم إطلاق سراحهم.

شكرا على الصبر :)

ال 17 كومينتر

سأعمل على هذا في أسرع وقت ممكن. امسك الجميع واعتذر عن الإزعاج :(

لقد أصدرت للتو إصدارًا 1.0.0 ، وهو يوفر الحد الأدنى من الدعم للإصدار 1.9.

بعض اللغات ليس لديها دعم جيد في VS Code ولن تسمح بالتلوين الجيد (مثل Java).

لا يزال أمامي الكثير من العمل. أعتقد أنني أستطيع الحصول على نفس الدعم الذي كنت أحصل عليه قبل 1.9 ، بعض اللغات (مثل Python) لا تزال سيئة حقًا في الوقت الحالي مقارنة بالإصدار الأخير. أنا آسف لذلك ، أنا أعمل عليه.

سوف أقوم بتحديث هذه المشكلة عندما أحقق تقدمًا.

لأي شخص ينتظر ، أعتقد أن الإصدار 1.1.0 يحتوي الآن على نفس اللون الذي كان عليه قبل الإصدار 1.9. يمكنك فقط التحديث على VSCode Marketplace.

تم تحسين بعض اللغات باستخدام النطاقات الجديدة ، مثل Ruby و JS / TS ولكن إذا وجدت أي تناقض ، خاصة لغة لم تكن موجودة قبل 1.9 ، فيرجى الإبلاغ.

أعتقد أن اللغات الوحيدة المفقودة الآن هي تلك التي تعتمد على المكونات الإضافية في VSCode التي دعمتها قبل 1.9 ، مثل Rust. سأعمل عليها على مدار الأسبوع وأغلق هذه القضية عندما يتم إطلاق سراحهم.

شكرا على الصبر :)

لقد وجدت التناقض التالي.

اللغة: JavaScript

قبل:
screen shot 2017-02-07 at 7 33 48 pm

بعد، بعدما:
screen shot 2017-02-07 at 7 34 08 pm

يبدو أن المشكلة تكمن في وجود الأقواس والتعليمات البرمجية بداخلها.

رمز العينة هو

export default class Definition {
    constructor(def) {
        if (invalidParams(def)) {
            throw new Error('Invalid arguments provided to Lang constructor');
        }

        this.__def = def instanceof Map ? def : new Map(def);
    }

    clone = () => new Definition(new Map(this.__def));

    extend = (def) => {
        if (invalidParams(def)) {
            throw new Error(`extend requires Map`);
        }

        const extendedLang = new Map(this.__def);

        for (const [key, value] of def) {
            extendedLang.set(key, value);
        }

        return new Definition(extendedLang);
    }
}

شكرا على الإبلاغ!

سألقي نظرة على هذا الليلة وأعود إليك.

مثبت. سأحتفظ به حتى تنتهي من العمل المتبقي حتى لا أغرق المستخدمين بإصدار جديد كل يوم (تلقيت بعض الشكاوى حول ذلك في الماضي). سيتم إصدار هذا في الإصدار 1.2.0 .

للمقارنة،

ذرة:
screen shot 2017-02-07 at 23 35 12

كود VSC:
screen shot 2017-02-07 at 23 35 56

للأسف ، لا يمكن تحديد الكلمة الأساسية constructor بدون تغيير ألوان العديد من العناصر الأخرى معًا ... تحتوي إعلانات Const في JS أيضًا على نفس المشكلة ، ولا يوجد مجال فريد لها. إذا تحسنت VSCode سأقوم بتحديث إصلاح هذا.

شكرا مرة أخرى للمساهمة :)

شكرا على التحول السريع!

على الرغم من ذلك ، هناك سؤال واحد: لقد عملت إقرارات const بشكل صحيح قبل 1.9 وأيضًا إذا نظرت ، فإن تعريف const في حلقة for تعمل بشكل صحيح. فلماذا لا يوجد فوقها؟

[key, value] داخل الحلقة for عبارة عن إعلان عن متغيرات الصفيف ، لذلك يوفر VSCode نطاقات فريدة لها ، والتي استخدمتها.

تم اكتشاف extendedLang const كمتغير عادي. كما هو موضح في الصورة أدناه:

screen shot 2017-02-07 at 23 48 59

هذا هو النطاق الأكثر تحديدًا لديه. وكما ترى ، لم يكتشفه أي من النطاقات الأخرى على أنه إعلان const . لذلك إذا قمت بتلوينه الآن ، فسيكون كل متغير باللون الأحمر أيضًا.
عندما أواجه هذه الصراعات ، يجب أن أختار ، لذلك عادة ما يفوز النطاق الأكثر شيوعًا أو اللون الأكثر سهولة على العينين. في هذه الحالة ، تكون المتغيرات أكثر شيوعًا وسيؤدي جعلها باللون الأحمر لمطابقة الثوابت إلى مزيد من الاختلافات عن سمة Atom الأصلية.

حول سبب نجاح ذلك من قبل ، يعرض VSCode الآن نطاقات مختلفة تمامًا عن الإصدارات السابقة ، ربما كان لدي طريقة للتمييز بين إعلان المتغيرات عن consts في هذه الحالة.

يمكنك رؤية الثوابت والمتغيرات الآن لها نفس النطاقات بالضبط:
screen shot 2017-02-07 at 23 56 35

يعرض Atom نطاق constant.other.js لذا يمكنه توفير ألوان مخصصة.

شكرا على الشرح التفصيلي!

هل يمكنك عمل خيار لتلوين جميع أنواع المتغيرات باستمرار؟ (باللون الأحمر على ما أظن)

أحاول اتباع سمة Atom في أقرب وقت ممكن. لا يقوم Atom بتلوين المتغيرات ( var أو let ) ، فهي رمادية. لذلك سأحتفظ بها بهذه الطريقة.

ذرة:
screen shot 2017-02-09 at 00 09 26

يمكنك دائمًا تقسيم المشروع وتخصيصه إذا أردت ، فهو مرخص من معهد ماساتشوستس للتكنولوجيا :)

على أي حال ، هناك خطأ:
image
الشفرة:

import * as styles from './mission.scss';

export default function MissionIcon({ key, title }) {
    return <i class={classnames(
        styles['mission__icon'],
        {
            [styles['mission__icon-letter']]: title.match(A_HEBREW_LETTER),
            [styles['mission__icon-first']]: !key,
        }
    )}>{title}</i>;
}

شكرا لك!

هل يمكنك تقديم المزيد من المعلومات؟ هل هذا ملف JS أو TS؟ هل هذا رد فعل؟

image
أخطاء أخرى:

  • الأقواس وشبه النقطتين باللون الأصفر
  • الديكور @ باللون الرمادي
  • المتغيرات غير متناسقة التلوين (أم أنها مقصودة لأنها "تصبح" مفاتيح؟)
    الشفرة:
@connect(
    ({ artists }) => ({ artists }),
    dispatch => bindActionCreators({ getArtists, getArtist, addArtist, editArtist, removeArtist }, dispatch)
)
export default class AdminArtists extends Component {

    componentWillMount = () => {
        this.props.getArtists();
    }

    render = () => {
        console.log(this.props.artists);
        return <div>

        </div>;
    }
}

akamud إنها JS

سأُنشئ عددًا جديدًا لتتبع مشكلات JS React هذه.

الرجاء استخدام # 36 لمتابعة هذه المناقشة.

الإصدار 1.2.0 لديه الآن نفس الدعم للإضافات كما كان من قبل.

إذا وجدت أي تضارب آخر ، فيرجى إنشاء مشكلة جديدة.

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