Closed triallax closed 1 year ago
Sounds great. C++ uses single quotes as a separator: 100'000
, but I think I like Python-style underscores better. In Python, you are allowed to put those separators everywhere you want. You can write 230_0_0_000
, if you desire. I was thinking if it would be beneficial to only allow the separators to appear in the "right" spots (1000-separators), as in 23_000_000
?
C++ uses single quotes as a separator: 100'000, but I think I like Python-style underscores better.
I wouldn't mind single quotes too, especially since they don't require two keypresses to type as opposed to an underscore (Shift+- on my layout). This is layout-dependent though. Regardless, I think it would be nice to allow setting the separator from a predetermined list of allowed values (https://github.com/sharkdp/insect/issues/107).
In Python, you are allowed to put those separators everywhere you want. You can write 230_0_0_000, if you desire. I was thinking if it would be beneficial to only allow the separators to appear in the "right" spots (1000-separators), as in 23_000_000?
I can see the advantage of this (the user can know for sure that they didn't put underscores in the wrong places, or added or removed digits by accident), and it's also in line with Insect's philosophy of being strict rather than lax. However, I fear that this may preclude edge use cases (e.g. if somebody wants to separate by the 10 thousands instead of thousands), or negatively affect editing experience (e.g. if a user wants to change 2_123_450
to 2_123_45
, they have to move the separators appropriately, which kind of sucks). I don't know how realistic those concerns are though, so some real usage may be warranted to gauge the impact of these and other issues.
The alternatives to this that come to my mind:
2_0_0
and 2_0000_0000
are okay, but 2_00_0
is not)Also, I just thought of this idea that I think is awesome but admittedly somewhat unorthodox and possibly non-trivial: auto-insert underscores in the input. For instance, if I type 2000
, Insect would automatically show an underscore after the 2, like 2_000
.
This is now supported in Numbat, you can try it here: https://numbat.dev/?q=200_000
Commas as separators was discussed before, but they were ruled out because they cause ambiguity in function arguments (e.g. is
f(1,2)
equivalent tof(1, 2)
or(f12)
?). I think underscores are a suitable alternative instead. Supporting underscores in input is important for me, but supporting them in output too (possibly behind a toggle) would be also nice in my opinion, because it's difficult for me to count the zeros at a glance in e.g.23000000
.