>> split-string aliased as string-split
>> downcase aliased as string-downcase
>> upcase aliased as string-upcase
>> format aliased as string-format
>> concat aliased as string-concat
>Don't do this. Just learn these 5 names, or use apropos, as
> has been suggested.
Just curious, if these were to be introduced today, would you also name them that way? What possible genericity is there about downcase/upcase? Okay they work on strings and on chars, but it's pretty clear their topic is "characters" (string) no?
Yes, that'd be very useful and it's more or less what we are asking to be able to do. Again curious, do you think they made a mistake when they named it `string-downcase` there and not `downcase`?
>> s-truncate (len s)
> truncate-string-to-width (I got there with apropos truncate.*string btw).
Okay then let's alias that to string-truncate.
>> s-left (len s)
>subseq
>> s-right (len s)
> Add an "from-end" arg to subseq?
Why is there substring if there is subseq then?
>> s-repeat (num s)
> (cl-loop repeat num concat s)
What if I don't know cl (like I a significant number of package authors) ?
>> s-capitalize (s)
> capitalize, also works for chars.
Alias it to string-capitalize :-)
>> s-reverse (s)
> reverse, also works for sequences
Ah, this one I didn't think worked on strings. Thought you have to split, reverse then join. I agree this can be left as a generic algorithm.
>> s-contains-p (needle s &optional ignore-case)
> string-match-p
That can work, tho the mental path of having to do a regexp match while regexp-quoting the string just to do a plain text search feels very inneficient.
>> s-blank-p (s)
> ugh. nil is a string?
"is the string blank?" is a concept in many languages, but I understand it can be surprising at first. The idea is that very often when validating user input you filter for nil, empy string or trimmed string.