You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
For python users it would probably best if -r acts somewhat like the python syntax...
So for negative numbers it could count from backwards, so "tail -n 5" would be "bat -r -5:" or so and then one could display the first and last portion of a file like "bat -r :5 -r -5:"
The text was updated successfully, but these errors were encountered:
I would also welcome such a feature and would be happy to contribute a PR for it.
But I think it's not a trivial change and would likely have performance implications that may not be desired.
I see two options:
Doing a first quick pass on the input to determine the max line count, then calculating the absolute values for LineRange from the negative relative line number accordingly. A second pass would handle lines just as today. No buffering needed.
Buffering the input for multiple lines in Controller::print_file_ranges instead of the single-line line_buffer. The buffer size would need to be equivalent to how far from the end of the input the user wants the output (which could be very large of course - resulting in potentially unexpected memory usage). LineRange would also need adapting to represent the relative negative value somehow and this would most likely be a breaking change.
Also, today a range with a relative negative value such as 10:-3 is already valid and translated into an absolute line range of 7:10. With the feature discussed here, new users may expect this to translate to "from line 10 to the 3rd to last line" instead.
Alternatively, to not break the existing logic, relative negative numbers may only occur in an open-ended range, i.e. -3: or :-3.
For python users it would probably best if -r acts somewhat like the python syntax...
So for negative numbers it could count from backwards, so "tail -n 5" would be "bat -r -5:" or so and then one could display the first and last portion of a file like "bat -r :5 -r -5:"
The text was updated successfully, but these errors were encountered: