I played around with this and have a quick POC. Beware! It causes the cursor to act weirdly, and doesn't particularly work well with list items. I am going to run with it for a week to see if I can make it better, but in case anyone else wants to iterate...
In userchrome.css
{
.cm-s-default .cm-variable-2, .cm-s-default .cm-variable-2 {
padding-left: 16px;
text-indent: -16px;
display: inline-block;
}
.cm-s-default .cm-variable-3 {
padding-left: 32px;
text-indent: -16px;
display: inline-block;
}
.cm-s-default .cm-keyword {
padding-left: 48px;
text-indent: -16px;
display: inline-block;
}
.cm-tab{
display: none
}
}