-
-
Notifications
You must be signed in to change notification settings - Fork 15
Description
Although this is maybe the wrong repo, hopefully that's OK because this is more of a quick question? Depending on answer I can close or move to drracket
.
Could we:
- Add some methods like
beginning-of-line
andend-of-line
that areposition -> position
. - Document that
drracket:indentation
/drracket:range-indentation
functions should use those. - Document a text-like will not necessarily implement the "paragraph" methods (or if that's too drastic, document that they will always be available... but might be quite slow).
?
Why I ask:
-
The "paragraphs" terminology has always been confusing to me. AFAICT in practice this actually means "lines".
-
position-paragraph
is a performance bottleneck. Effectively it's "give me a line number" -- which is inherently slow -- but AFAICT indenters only need it to give toparagraph-{start end}-position
. -
If indenters have a position, they could give that to a
{beginning end}-of-line
which could efficiently just look backward/forward for a newline. No need to count "paragraph" numbers from the beginning to N, no need to maintain and smartly update some auxiliary data structure to make that less horribly slow. -
Some existing indenters might compare "paragraph numbers", but AFAICT they're really asking "are these two positions within the same line". Instead you could answer that comparing
beginning-of-line
for two positions. -
I'm thinking of this because in my "like
like-text%
" so far I've punted on attempting an update of "paragraphs" to be as smart/fast as that for the tokens. Although "dread" is too strong, I have a hunch this will be non-trivial -- probably a lot of effort/bugs vs. giving indenters line methods that directly answer what they want to ask?