Vscode-theme-onedark: Corregir el tema para el nuevo alcance en VSCode 1.9

Creado en 3 feb. 2017  ·  17Comentarios  ·  Fuente: akamud/vscode-theme-onedark

VSCode 1.9 cambió por completo la forma en que maneja los ámbitos tmTheme para colorear.

Todo el tema está roto en este momento y debe rehacerse prácticamente desde cero.

Más información: https://github.com/Microsoft/vscode/issues/18357

new-version-broken

Comentario más útil

Para cualquiera que esté esperando, creo que la versión 1.1.0 ahora tiene el mismo color que tenía antes de la versión 1.9. Simplemente puede actualizar en VSCode Marketplace.

Algunos lenguajes mejoraron con los nuevos ámbitos, como Ruby y JS / TS, pero si encuentra alguna inconsistencia, especialmente una que no existía antes de 1.9, por favor infórmelo.

Creo que los únicos idiomas que faltan ahora son los que dependen de complementos en VSCode que admití antes de 1.9, como Rust. Trabajaré en ellos durante la semana y cerraré este problema cuando se publiquen.

Gracias por la paciencia :)

Todos 17 comentarios

Trabajaré en esto lo antes posible. Agárrense a todos y disculpen las molestias :(

Acabo de lanzar una versión 1.0.0, tiene un soporte mínimo para la versión 1.9.

Algunos lenguajes simplemente no tienen un buen soporte en VS Code y no permiten una buena coloración (por ejemplo, Java).

Todavía tengo mucho trabajo por delante. Creo que puedo lograr el mismo soporte que tenía antes de la 1.9, algunos lenguajes (por ejemplo, Python) todavía son realmente malos en este momento en comparación con la última versión. Lo siento, estoy trabajando en ello.

Actualizaré este problema a medida que avance.

Para cualquiera que esté esperando, creo que la versión 1.1.0 ahora tiene el mismo color que tenía antes de la versión 1.9. Simplemente puede actualizar en VSCode Marketplace.

Algunos lenguajes mejoraron con los nuevos ámbitos, como Ruby y JS / TS, pero si encuentra alguna inconsistencia, especialmente una que no existía antes de 1.9, por favor infórmelo.

Creo que los únicos idiomas que faltan ahora son los que dependen de complementos en VSCode que admití antes de 1.9, como Rust. Trabajaré en ellos durante la semana y cerraré este problema cuando se publiquen.

Gracias por la paciencia :)

Encontré la siguiente inconsistencia.

Idioma: JavaScript

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

Después:
screen shot 2017-02-07 at 7 34 08 pm

El problema parece estar en los corchetes y el código dentro de ellos.

El código de muestra es

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

¡Gracias por informarnos!

Veré esto esta noche y me pondré en contacto contigo.

Reparado. Esperaré hasta que termine el trabajo restante para no inundar a los usuarios con una nueva versión todos los días (recibí algunas quejas sobre eso en el pasado). Esto se lanzará en la versión 1.2.0 .

Para comparacion,

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

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

Desafortunadamente, la palabra clave constructor no se puede seleccionar sin cambiar los colores de muchos otros elementos juntos ... Las declaraciones de const en JS también tienen este mismo problema, sin un alcance único para ellas. Si VSCode alguna vez mejora, lo actualizaré arreglando esto.

Gracias de nuevo por contribuir :)

¡Gracias por la respuesta rápida!

Sin embargo, una pregunta: las declaraciones const funcionaban correctamente antes de 1.9 y también, si miras, la declaración const en el bucle for está funcionando correctamente. Entonces, ¿por qué no el de arriba?

Los [key, value] dentro del bucle for son declaraciones de variables de matriz , por lo que VSCode proporciona ámbitos únicos para ellos, que utilicé.

Sin embargo, extendedLang const se detecta como una variable regular. Como se muestra en la siguiente imagen:

screen shot 2017-02-07 at 23 48 59

Ese es el alcance más específico que tiene. Y como puede ver, ninguno de los otros ámbitos lo detecta como una declaración const . Entonces, si lo coloreo ahora, todas las variables también serán rojas.
Cuando me enfrento a estos conflictos, tengo que tomar una decisión, por lo que generalmente gana el alcance más común o el color que es más agradable para los ojos. En este caso, las variables son mucho más comunes y hacerlas rojas para que coincidan con los contrastes causaría muchas más diferencias con el tema original de Atom.

En cuanto a por qué esto funcionaba antes, VSCode ahora expone ámbitos que son totalmente diferentes de las versiones anteriores, probablemente tuve una forma de diferenciar la declaración de variables de las constantes en este caso.

Puede ver que las constantes y las variables ahora tienen exactamente los mismos alcances:
screen shot 2017-02-07 at 23 56 35

Atom expone un alcance constant.other.js para que pueda proporcionar colores personalizados.

¡Gracias por una explicación detallada!

¿Puede hacer una opción para colorear todos los tipos de variables de forma coherente? (en rojo, supongo)

Intento seguir el tema de Atom lo más cerca que puedo. Atom no colorea las variables ( var o let ), son grises. Así que lo mantendré así.

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

Siempre puede bifurcar el proyecto y personalizarlo si lo desea, tiene licencia del MIT :)

De todos modos aquí hay un error:
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>;
}

¡Gracias!

¿Puede proporcionarnos un poco más de información? ¿Es este un archivo JS o TS? ¿Es esto React?

image
Otros errores:

  • tirantes y punto y coma en amarillo
  • decorador @ en gris
  • Variables de coloración inconsistente (¿o se pretende que se "conviertan" en claves?)
    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 Es JS React

Crearé un nuevo problema para rastrear estos problemas de JS React.

Utilice el número 36 para seguir esta discusión.

La versión 1.2.0 ahora tiene el mismo soporte para complementos que antes.

Si encuentra alguna otra inconsistencia, cree un nuevo problema.

¿Fue útil esta página
0 / 5 - 0 calificaciones