- that's what we call it when we let users enjoy themselves.
i wish we had a better name for it.
it's hard.
in some ways, you can think of the entire history of computer science
as the challenge of how to give users control
and still work somehow.
I know I'll never have it all.
- i try not to complain -
for perspective, i wish i could configure my hair to stop growing.
but i will just dutifully, over and over, get my haircut until I die.

obligatory emacs joke [1]
first - an abrupt history of text-editors for software development:
vscode is a new-ish text editor, by microsoft.
it's super-weird.
#1. gotta say it:
#2. software tooling matters a lot:
#3. Configuration is a problem:
I'm a long-time Atom user.
it got a lot of heat, if you can remember, for creating a text-editor in CSS+Javascript.
everyone was using sublime, and complained about how javascript was slow,
and how web-developers were all fools.
they were right.
but Atom built an editor that was massively-configurable, using the web-stack.
    some editors had themes.
    some had a preferences page:
    some even had ~50 plugins.
but Atom had many-thousands of weird amateur plugins.
You could drink too-much coffee and find yourself installing dozens, at a time.
there was this chaos of fighting config, and cascading overrides.
it was kind of awesome.
but at the end of the day, the final-truth was this:
that's direct manipulation of the editor using CSS in your config folder.
there was no plugin API here - you could open devtools, poke around, then change a padding somewhere.
that is glorious, IMO.

then users want to change D.
they're told there's not an API for this.
I cringed when i saw this issue.
i would understand if vscode were written in Qt or something,
and they were limited by their framework
but it's a webpage!
you can change it, already, for free.
let people do it!
and everyone will spend less time whining on github.
#4. Some features are amazing:
smart rename:

pull from:

git file history:
    this extension by Rodrigo Pombo is in a new class:
    it transitions the git diffs, so your eye can see how a file changes over each commit.
npm validation:
    the npm extension lints your package versions.
    - hey, update that one -
    at this point it's almost programming for you.
    - which at some point, i'm sure, will be less of a joke.
    there's this weird extension that lets you run custom css on your editor, and it doesn't get wiped-out during an update:
    - here, I color files by name -
    it was made by clever Microsoft developer Belleve Invis.
    you can finally do whatever you want.
    if I wrote vscode, it would be the first thing I'd write.
#5. My wish-list:
right-click menu:
tab management:
per-file theming:
i hope this has been helpful.