Vscode-theme-onedark: Corrigir tema para novo escopo no VSCode 1.9

Criado em 3 fev. 2017  ·  17Comentários  ·  Fonte: akamud/vscode-theme-onedark

O VSCode 1.9 mudou completamente a maneira como lida com os escopos tmTheme para colorir.

Todo o tema está quebrado no momento e precisa ser refeito do zero.

Mais informações: https://github.com/Microsoft/vscode/issues/18357

new-version-broken

Comentários muito úteis

Para quem está esperando, acredito que a versão 1.1.0 agora tem a mesma cor que tinha antes da versão 1.9. Você pode apenas atualizar no VSCode Marketplace.

Algumas linguagens foram aprimoradas com os novos escopos, como Ruby e JS / TS, mas se você encontrar alguma inconsistência, especialmente uma que não existia antes do 1.9, por favor informe.

Acredito que as únicas linguagens que faltam agora são aquelas que dependem de plug-ins em VSCode que eu suportava antes de 1.9, como Rust. Trabalharei neles durante a semana e encerrarei esta edição quando forem lançados.

Obrigado pela paciência :)

Todos 17 comentários

Estarei trabalhando nisso o mais rápido possível. Aguentem todos e desculpem o transtorno :(

Acabei de lançar a versão 1.0.0, que traz suporte mínimo para a versão 1.9.

Algumas linguagens simplesmente não têm um bom suporte no VS Code e não permitem uma boa coloração (por exemplo, Java).

Ainda tenho muito trabalho pela frente. Acredito que posso conseguir o mesmo suporte que tinha antes da 1.9, algumas linguagens (por exemplo, Python) ainda estão muito ruins no momento em comparação com a última versão. Sinto muito por isso, estou trabalhando nisso.

Vou atualizar este problema à medida que progredir.

Para quem está esperando, acredito que a versão 1.1.0 agora tem a mesma cor que tinha antes da versão 1.9. Você pode apenas atualizar no VSCode Marketplace.

Algumas linguagens foram aprimoradas com os novos escopos, como Ruby e JS / TS, mas se você encontrar alguma inconsistência, especialmente uma que não existia antes do 1.9, por favor informe.

Acredito que as únicas linguagens que faltam agora são aquelas que dependem de plug-ins em VSCode que eu suportava antes de 1.9, como Rust. Trabalharei neles durante a semana e encerrarei esta edição quando forem lançados.

Obrigado pela paciência :)

Eu encontrei a seguinte inconsistência.

Linguagem: JavaScript

Antes:
screen shot 2017-02-07 at 7 33 48 pm

Depois de:
screen shot 2017-02-07 at 7 34 08 pm

O problema parece ser com colchetes e código dentro deles.

O código de amostra é

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);
    }
}

Obrigado por relatar!

Vou dar uma olhada nisso esta noite e voltar para você.

Fixo. Vou esperar até terminar o trabalho restante, para não inundar os usuários com uma nova versão todos os dias (recebo algumas reclamações sobre isso no passado). Isso será lançado na versão 1.2.0 .

Para comparação,

Átomo:
screen shot 2017-02-07 at 23 35 12

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

A palavra-chave constructor infelizmente não pode ser selecionada sem alterar as cores de muitos outros itens juntos ... Declarações Const em JS também têm o mesmo problema, sem escopo exclusivo para eles. Se o VSCode melhorar, irei atualizar e corrigir isso.

Obrigado novamente por contribuir :)

Obrigado pelo retorno rápido!

Porém, uma pergunta: as declarações const funcionaram corretamente antes de 1.9 e também se você observar, a declaração const no loop for está funcionando corretamente. Então, por que não o que está acima?

O [key, value] dentro do loop for são declarações de variáveis ​​de array , portanto, o VSCode fornece escopos exclusivos para eles, que usei.

No entanto, extendedLang const é detectado como uma variável regular. Conforme mostrado na imagem abaixo:

screen shot 2017-02-07 at 23 48 59

Esse é o escopo mais específico que possui. E como você pode ver, nenhum dos outros escopos o detecta como uma declaração const . Então, se eu colorir agora, todas as variáveis ​​serão vermelhas também.
Quando eu encontro esses conflitos eu tenho que fazer uma escolha, então geralmente vence o escopo mais comum ou a cor que é mais agradável aos olhos. Nesse caso, as variáveis ​​são muito mais comuns e torná-las vermelhas para corresponder às constantes causaria muito mais diferenças em relação ao tema original do Atom.

Por que isso funcionou antes, o VSCode agora expõe escopos que são totalmente diferentes das versões anteriores, provavelmente eu tinha uma maneira de diferenciar a declaração de variáveis ​​de consts neste caso.

Você pode ver que consts e variáveis ​​agora têm exatamente os mesmos escopos:
screen shot 2017-02-07 at 23 56 35

O Atom expõe um escopo constant.other.js para que possa fornecer cores personalizadas.

Obrigado pela explicação detalhada!

Você pode fazer uma opção para colorir todos os tipos de variáveis ​​de forma consistente? (em vermelho eu acho)

Tento seguir o tema Atom o mais próximo que posso. O Atom não colore variáveis ​​( var ou let ), elas são cinza. Então, vou manter assim.

Átomo:
screen shot 2017-02-09 at 00 09 26

Você sempre pode bifurcar o projeto e personalizá-lo se quiser, é licenciado pelo MIT :)

Enfim, aqui está um bug:
image
código:

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>;
}

Obrigado!

Você pode fornecer um pouco mais de informações? Este é um arquivo JS ou TS? Isso é React?

image
Outros bugs:

  • chaves e ponto e vírgula em amarelo
  • decorador @ em cinza
  • Coloração inconsistente das variáveis ​​(ou será porque "se tornam" chaves?)
    código:
@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 It's JS React

Vou criar um novo problema para rastrear os problemas do JS React.

Use # 36 para acompanhar esta discussão.

A versão 1.2.0 agora tem o mesmo suporte para plug-ins de antes.

Se você encontrar qualquer outra inconsistência, crie um novo problema.

Esta página foi útil?
0 / 5 - 0 avaliações