Skip to content

lint: Transition to gjs' object spacing rule

Florian Müllner requested to merge fmuellner/gnome-shell:lint-legacy into main

When gjs overhauled its coding style, it opted for disallowing spaces around braces in object literals: {foo: 42}.

We opted out of that particular rule in commit 09b8e8f, primarily because it would have been a very intrusive change with the old style of object literals:

   let oldStyle = { foo: 42,
                    bar: 23 };

Alas, all multi-line object literals have been transitioned to the new style where braces go on separate lines, so they are no longer subject to the rule one way or the other.

Nowadays the rule mostly affects destructuring, and there it is a bit odd to apply different spacing rules to arrays and objects:

    const [foo, bar] = someArray;
    const { baz, quz } = someObject;

This is now the main divergence from the canonical gnome style, and the only one where we directly contradict it.

It would be good to transition away from that, and as the rule now only affect destructuring and single-line object literals, we can do that on a case-by-case bases by moving the override to the legacy configuration.

As desctructuring imports makes up a fair share of the affected code, and those will change when moving to ES6 modules, this seems like a good moment to start that transition.

Merge request reports