I can’t imagine it would be difficult for an IDE to scale the width of spaces found at the start of a line, to emulate this same customization while still preserving my sanity as a fervent space-indenter. I’ve never seen an IDE that does this, but it’d be an interesting compromise.
It’s not difficult at all, and many editors and IDEs already support this, making the entire point moot. Just do whatever the style guide says. I’m into PHP and Python so for me it’s spaces all the way.
All parsers ignore a shitload of whitespace already. Just compare unformatted code, COMPLETELY unformatted code, code without character returns, and it’ll become obvious how any given language is interpreted around whitespace.
Also fun to see just how infrequent a semicolon is ‘actually’ needed to tell when the end of a statement is here.
Maybe alignment more for the righthand side of assignments. If you have a block of variables with different name lengths, or within a constructor / function call.
I guess the indention sizer thing knows how the formater works and adjusts accordingly. I can’t imagine it would be too much of a problem.
Iirc Jetbrain IDEs has a feature called dynamic tabs/space (or something like that) which uses exclusively tabs until it needs to align something and a tab doesn’t fit, so it uses a few spaces instead.
What if instead of having the IDE special case space characters at the start of a line, we had a special character that could represent a variable width space?
Then you use the variable width space for code indentation, then, when you’re at the code indentation level, you’d switch to spaces for alignment. If the IDE special cased all space characters at the start of the line you wouldn’t have that flexibility. You could also easily create a linter that ensured that the variable width space always has the correct indentation level, and ignore the standard space characters after it.
I can’t imagine it would be difficult for an IDE to scale the width of spaces found at the start of a line, to emulate this same customization while still preserving my sanity as a fervent space-indenter. I’ve never seen an IDE that does this, but it’d be an interesting compromise.
It’s not difficult at all, and many editors and IDEs already support this, making the entire point moot. Just do whatever the style guide says. I’m into PHP and Python so for me it’s spaces all the way.
How can it tell the difference between spaces used for indentation and spaces used for alignment, if you use the same character for both?
All parsers ignore a shitload of whitespace already. Just compare unformatted code, COMPLETELY unformatted code, code without character returns, and it’ll become obvious how any given language is interpreted around whitespace.
Also fun to see just how infrequent a semicolon is ‘actually’ needed to tell when the end of a statement is here.
Maybe alignment more for the righthand side of assignments. If you have a block of variables with different name lengths, or within a constructor / function call.
I guess the indention sizer thing knows how the formater works and adjusts accordingly. I can’t imagine it would be too much of a problem.
Iirc Jetbrain IDEs has a feature called dynamic tabs/space (or something like that) which uses exclusively tabs until it needs to align something and a tab doesn’t fit, so it uses a few spaces instead.
What if instead of having the IDE special case space characters at the start of a line, we had a special character that could represent a variable width space?
What if we did that, and then wanted to align something?
Then you use the variable width space for code indentation, then, when you’re at the code indentation level, you’d switch to spaces for alignment. If the IDE special cased all space characters at the start of the line you wouldn’t have that flexibility. You could also easily create a linter that ensured that the variable width space always has the correct indentation level, and ignore the standard space characters after it.
You’re entirely correct. Plus, I hate the idea of changing the width of spaces for any reason lol.