Vscode-theme-onedark: Fix Theme für neuen Scoping in VSCode 1.9

Erstellt am 3. Feb. 2017  ·  17Kommentare  ·  Quelle: akamud/vscode-theme-onedark

VSCode 1.9 hat die Art und Weise, wie tmTheme-Bereiche für die Farbgebung behandelt werden, vollständig geändert.

Das ganze Thema ist im Moment kaputt und muss so ziemlich von Null neu gemacht werden.

Weitere Informationen: https://github.com/Microsoft/vscode/issues/18357

new-version-broken

Hilfreichster Kommentar

An alle die warten, ich glaube, dass Version 1.1.0 jetzt die gleiche Farbgebung hat wie vor Version 1.9. Sie können einfach auf dem VSCode Marketplace aktualisieren.

Einige Sprachen wurden mit den neuen Scopes verbessert, wie Ruby und JS/TS, aber wenn Sie eine Inkonsistenz finden, insbesondere eine, die vor 1.9 nicht existierte, melden Sie sich bitte.

Ich glaube, die einzigen Sprachen, die jetzt fehlen, sind diejenigen, die von Plugins auf VSCode abhängen, die ich vor 1.9 unterstützt habe, wie Rust. Ich werde im Laufe der Woche daran arbeiten und dieses Thema schließen, wenn sie veröffentlicht werden.

Danke für die Geduld :)

Alle 17 Kommentare

Ich werde so schnell wie möglich daran arbeiten. Halten Sie alle fest und entschuldigen Sie die Unannehmlichkeiten :(

Ich habe gerade eine Version 1.0.0 veröffentlicht, die nur minimale Unterstützung für Version 1.9 bietet.

Einige Sprachen haben einfach keine gute Unterstützung in VS Code und erlauben keine gute Farbgebung (zB Java).

Ich habe noch viel Arbeit vor mir. Ich glaube, dass ich die gleiche Unterstützung erreichen kann, die ich vor 1.9 hatte, einige Sprachen (zB Python) sind im Vergleich zur letzten Version derzeit noch wirklich schlecht. Das tut mir leid, ich arbeite daran.

Ich werde dieses Problem aktualisieren, wenn ich Fortschritte mache.

An alle die warten, ich glaube, dass Version 1.1.0 jetzt die gleiche Farbgebung hat wie vor Version 1.9. Sie können einfach auf dem VSCode Marketplace aktualisieren.

Einige Sprachen wurden mit den neuen Scopes verbessert, wie Ruby und JS/TS, aber wenn Sie eine Inkonsistenz finden, insbesondere eine, die vor 1.9 nicht existierte, melden Sie sich bitte.

Ich glaube, die einzigen Sprachen, die jetzt fehlen, sind diejenigen, die von Plugins auf VSCode abhängen, die ich vor 1.9 unterstützt habe, wie Rust. Ich werde im Laufe der Woche daran arbeiten und dieses Thema schließen, wenn sie veröffentlicht werden.

Danke für die Geduld :)

Ich habe folgende Inkonsistenz festgestellt.

Sprache: JavaScript

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

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

Das Problem scheint mit Klammern und Code darin zu liegen.

Der Beispielcode ist

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

Danke fürs Melden!

Ich schaue mir das heute Abend an und melde mich wieder.

Fest. Ich warte, bis ich die restliche Arbeit erledigt habe, damit ich die Benutzer nicht jeden Tag mit einer neuen Version überschwemme (habe in der Vergangenheit einige Beschwerden darüber erhalten). Dies wird in Version 1.2.0 veröffentlicht .

Zum Vergleich,

Atom:
screen shot 2017-02-07 at 23 35 12

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

Das Schlüsselwort constructor kann leider nicht ausgewählt werden, ohne die Farben vieler anderer Elemente zusammen zu ändern... Auch Const-Deklarationen in JS haben das gleiche Problem, keinen eindeutigen Geltungsbereich für sie. Wenn VSCode das jemals verbessert, werde ich dies aktualisieren.

Danke nochmal fürs Mitmachen :)

Danke für die schnelle Abwicklung!

Eine Frage jedoch: Die const-Deklarationen funktionierten vor 1.9 korrekt und auch wenn Sie sich ansehen, funktioniert die const-Deklaration in der for Schleife korrekt. Warum also nicht die darüber?

Die [key, value] innerhalb der for-Schleife sind Array- Variablen-Deklarationen, daher bietet VSCode eindeutige Bereiche für sie, die ich verwendet habe.

Die extendedLang const wird jedoch als reguläre Variable erkannt. Wie im Bild unten gezeigt:

screen shot 2017-02-07 at 23 48 59

Das ist der spezifischste Anwendungsbereich, den es hat. Und wie Sie sehen, erkennt keiner der anderen Bereiche es als const Deklaration. Wenn ich es jetzt einfärbe, wird auch jede Variable rot.
Wenn ich auf diese Konflikte treffe, muss ich eine Wahl treffen, also gewinnt normalerweise der gebräuchlichste Bereich oder die Farbe, die für die Augen verträglicher ist. In diesem Fall sind Variablen viel häufiger, und sie rot zu machen, um mit consts übereinzustimmen, würde viel mehr Unterschiede zum ursprünglichen Thema von Atom verursachen.

Warum dies zuvor funktioniert hat, VSCode macht jetzt Bereiche verfügbar, die sich von früheren Versionen völlig unterscheiden. Wahrscheinlich hatte ich in diesem Fall eine Möglichkeit, die Variablendeklaration von consts zu unterscheiden.

Sie können sehen, dass consts und Variablen jetzt genau die gleichen Gültigkeitsbereiche haben:
screen shot 2017-02-07 at 23 56 35

Atom macht einen constant.other.js verfügbar, damit er benutzerdefinierte Farben bereitstellen kann.

Danke für ausführliche Erklärung!

Können Sie eine Option zum einheitlichen Einfärben aller Variablentypen festlegen? (in rot denke ich)

Ich versuche, dem Atom-Thema so nah wie möglich zu folgen. Atom färbt Variablen nicht ein ( var oder let ), sie sind grau. Also bleibe ich dabei.

Atom:
screen shot 2017-02-09 at 00 09 26

Sie können das Projekt jederzeit abspalten und anpassen, wenn Sie möchten, es ist MIT-lizenziert :)

Hier ist jedenfalls ein Bug:
image
Code:

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

Dankeschön!

Können Sie ein wenig mehr Informationen geben? Ist das eine JS- oder TS-Datei? Ist das eine Reaktion?

image
Noch ein Fehler:

  • geschweifte Klammern und Semikolons in Gelb
  • Dekorateur @ in grau
  • Variablen inkonsistente Farbgebung (oder ist es beabsichtigt, weil sie zu Schlüsseln "werden"?)
    Code:
@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 ist JS React

Ich werde ein neues Problem erstellen, um diese JS React-Probleme zu verfolgen.

Bitte verwenden Sie #36, um dieser Diskussion zu folgen.

Version 1.2.0 bietet jetzt die gleiche Unterstützung für Plugins wie zuvor.

Wenn Sie andere Inkonsistenzen feststellen, erstellen Sie bitte eine neue Ausgabe.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen