RE: https://mamot.fr/@Khrys/116226030767910474
As predicted, humans are being turned into accountability sinks for #AI. AI code doesn’t work? You're fired!
"After outages, Amazon to make senior engineers sign off on AI-assisted changes"
RE: https://mamot.fr/@Khrys/116226030767910474
As predicted, humans are being turned into accountability sinks for #AI. AI code doesn’t work? You're fired!
"After outages, Amazon to make senior engineers sign off on AI-assisted changes"
@tknarr Because this *isn't* a structural construct (like if/for/etc) I indent up to the level of indentation of that block, then if I *really* need to make things align I fill in the remaining space with spaces. (tabs, if I don't)
This ensures that the block as a whole still indents/unindents correctly with tabs. I am never, ever going to adjust the level of indent of *part* of an expression in this way, so the use of spaces for intra-block expression alignment padding doesn't matter.
@tknarr if this expression by the unholy machinations of mathematics DOES become so gnarly that heavy use of brackets becomes mandatory...
...then I've just invented a new code block surrounded by a different kind of bracket, put the complete expression on a new line inside them, indent with tabs like it's a regular code block, and continue to apply the rules recursively as normal.
@tknarr @pdcawley This is pretty irrelevant.
If I'm writing code for myself, then it's a complete non issue. If I really had to deal with someone adding in spaces randomly, I'd just write a simple linter that turns spaces into tabs. If the rest of the office mandated spaces as a condition of my employment I'd tack on a reverse linter that converts tabs to spaces before I check code in.
@developing_agent @tknarr, the point here is that tab width should not matter; I find it reasonable to expect alignment to be maintained within multi-line statements.
Your example, formatted with only tabs for indentation and only spaces alignment. Tab widths are, respectively, 4 and 8.
I may choose to set the tab width to 2. Or 5. Or even 1. (I may do so to see if anything's broken by changing that.) But normally I'll leave it at 8.
(Your option no. 3 is definitely the least bad of the options which you present and is, perhaps, useful; I'd probably choose to replace the last tab with spaces as the purpose looks closer to alignment than to indentation. There is, however, consistency to consider regarding others' code.)
@developing_agent, me, for one. I'll normally use a tab width of 8 but sometimes choose to change it to 4 (or, rarely, 2) for reasons of line length and available screen space (which isn't always the full width of the display). I'll also change it if I need to for specific source code (the editor will detect whether to use spaces or tabs and how many, but it won't detect the tab width).
More generally…
Tab width is exactly why you'll find some people insisting on consistent use of either tabs or spaces for indentation and only spaces for alignment.
It's also exactly why others insist on spaces only, or tabs only and a fixed tab width (which becomes important when you have 80-column limits).
There have been many discussions / arguments / holy wars about tabs versus spaces, and I don't doubt that there will be many more.
@lp0_on_fire for me, the tab with is oh-so-loadbearing for alignment. so tab width stays at 4.
If I need wider spaces? I can use two tabs and it's still 4x fewer characters to wrangle. If line width becomes an issue then there's linebreaking or there's probably a design issue.
@tknarr it really doesn't matter. Most lists of items in expressions aren't of uniform size anyway, so it's a loosing battle trying to align the first elements because none of the others will align. At a certain point you have to ditch purity for getting the job done.
If it becomes a massive multi-line behemoth I reach for #3: https://mastodon.social/@developing_agent/116229171234207326