Archived link.

I think this is a good read to learn about what tabs and tabstops really are regardless of whether you agree that tabstops should be at different positions per line or with the controversial idea of using proportional fonts (this would work with monospaced fonts too).

  • in2erval@kbin.social
    link
    fedilink
    arrow-up
    3
    ·
    edit-2
    1 year ago

    In some of my personal code I liked to have used it (in very specific circumstances, like having many similar-sized parameter declarations e.g. protobuf), but as you said the lack of support means that a lot of code formatters simply trim unnecessary spaces so they never stick around.

    What’s more, I am still yet to find a consistent rule about when to apply this kind of formatting - the example in the article shows one for method args but it just doesn’t look good at all. Key-value lists (like maps) might be a good place to use it, but if one key ends up being very long you have a ton of unnecessary space, so I would need to “group” together similar-length keys to make it aesthetically pleasing:

    const map = {
      foo:    1,
      bar:    2,
      bazbar: 3,
    
      // I don't want the keys above to be spaced to match this key
      someExtremelyLongKeyname: 4
    }
    
    
    • JackbyDevOP
      link
      fedilink
      arrow-up
      2
      ·
      1 year ago

      Yeah, I personally don’t like aligning key value pairs all the time (maybe rarely I do). The most compelling example is putting a tab before end-of-line comments. Also it would make tab delimited CSV files render more easily.

      • in2erval@kbin.social
        link
        fedilink
        arrow-up
        2
        ·
        1 year ago

        To me it feels like this would work nicely for something that’s more tabular in nature, such as you mentioned, CSVs. But again, not all the time, which makes this formatting hard to use.