-
Notifications
You must be signed in to change notification settings - Fork 238
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
stringx.expandtabs doesn't align to tabstops #8
Comments
Yes, I was wondering about the exact behavior of the Python function, since stringx is so obviously a clone ;) The reference I found merely said that it turns tabs into spaces. The meaning you propose is certainly useful; perhaps an extra boolean argument to allow this to happen, and keeping the dumb functionality as the default? |
Thanks for replying - yup, the Python docstring I checked is a bit unclear (the current manual is better). But anyway, this is how it behaves when you call it... Adding a flag does avoid breaking old code; OTOH it also adds complexity (in particular, BTW, thank you for your work on penlight: it's an extremely convenient (and well-organised and well-documented) set of tools. :-) |
Thanks for your kind words! I am busy reorganizing things so that there are less inter-module dependencies. For instance, pl.data now only depends on pl.utils, and that dependency is only because the original design was that the rows would have the List metatable. (Actual loading of pl.List is done on a lazy on-demand basis). Generally things become clearer once I stopped trying to write Python ;) Any other things which you would like to see in the library? Currently I'm contemplating adding pl.date for general data and time manipulation and parsing. |
A date-time library sounds good. What else? Hmm, JSON has made it into the Python standard library recently, which I think is a good thing - it's a widespread portable serial data format. Several languages include a basic general-purpose logging facility in their standard libraries, too, which might be useful here (especially if it fitted comfortably with lapp). Both of those would be natural enough in pure lua. |
Gah, I apparently clicked the "Comment and close" button by mistake - not intentional, but I don't think I can re-open the issue myself... :-/ |
Well, I shall mentally consider it still open (I don't see any way to re-open it here either) As for JSON and logging, there's already a few Lua libraries that do that - JSON feels a little specialized for a general-purpose library. As for date-time, I'm looking for a good model; I already know that the Java Date class is not that model ;) |
Apparently there's a drop-down menu for project owners etc... I guess it'd be nice for any new date-time stuff to interact reasonably cleanly with Lua's small set of existing built-in functions for this ( |
stringx.expandtabs
might be more useful if it matched the behaviour of terminals and text editors by aligning tabs to tabstops - that is, for each tab character, insert just the number of spaces needed to reach the next integer multiple of the tab size. Currently it replaces each tab with the specified number of spaces, regardless of where in the string it occurs.Here's a quick go at implementing this:
And some tests that it behaves the same way as a terminal/editor:
I believe this matches the behaviour of
str.expandtabs
in Python.The text was updated successfully, but these errors were encountered: