• Linus Torvalds added hidden tabs to Kconfig to challenge parsers that can’t handle them.
  • Tabs were intentionally added to the common Kconfig file for page sizes to expose faulty parsers.
  • Torvalds believes parsers unable to handle tabs shouldn’t be parsing kernel Kconfig files, aiming to force fixes.
  • Eight space indentation should be crime, I’m not made out screen width over here.

    If you want to be strict with indentation, use tabs as your standard instead of forcing others to use your preferred visual width.

    • @barsoap@lemm.ee
      link
      fedilink
      1
      edit-2
      7 months ago

      Eight is still the default tab width and will be as long as VT100 continues to be a thing, i.e. forever. Haskell could’ve chosen another static value but that would have caused even more trouble.

      With Haskell’s syntax you really want to align at single-space resolution, not necessarily just on the left but also further to the right, within the lines. The gold standard is pretty much lhs2tex “poly” style (section 8, page 19), and not just because it allows lhs2tex to spit out beautiful code, it’s also highly readable in ASCII form. In that style 2+ spaces mean “align this with the 2+ space stuff above and below”.

      So there’s no way around spaces and as tabs+spaces are a bad idea tabs get the boot. That argument is specific to Haskell but in general I’d argue that tabs are more trouble than they’re worth – if you have trouble editing space-only indentation, get a proper editor. If I want my Rust indented by a different amount I can just tell rustfmt to change everything, no biggie.