Vscode-theme-onedark: Исправить тему для новой области видимости в VSCode 1.9

Созданный на 3 февр. 2017  ·  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

VSCode:
screen shot 2017-02-07 at 23 35 56

Ключевое слово constructor к сожалению, не может быть выбрано без изменения цветов многих других элементов вместе ... Объявления констант в 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 теперь предоставляет области, которые полностью отличаются от предыдущих версий, вероятно, у меня был способ отличить объявление переменных от констант в этом случае.

Вы можете видеть, что константы и переменные теперь имеют одинаковые области видимости:
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

Вы всегда можете форкнуть проект и настроить его, если хотите, он под лицензией MIT :)

В любом случае вот ошибка:
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? Это React?

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 React

Я создам новую задачу, чтобы отслеживать проблемы с JS React.

Пожалуйста, используйте # 36, чтобы следить за этим обсуждением.

Версия 1.2.0 теперь имеет ту же поддержку плагинов, что и раньше.

Если вы обнаружите какие-либо другие несоответствия, создайте новую проблему.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги