Andy, while implementing the conversion from TextPos to offset, I encountered 
the following issue.

Paragraph lines do not include line separators (\n or \r\n) at the end. 
However, in order to correctly
calculate the offset, I need to account for the size of the line separator, 
which can be either 1 or 2
characters long.

In RichTextFX, as far as I know, only \n is used (i.e., \r\n is replaced with 
\n). But what about the JavaFX CodeArea?
How can I determine the size of the line separator there? Or is it always 1 
byte as well?

Best regards, Pavel

On 5/7/25 20:04, Andy Goryachev wrote:

There is no dedicated method to do that.  The application can iterate over 
paragraphs to compute the text position, just keep in mind that the model can 
be quite large and it a) will take a lot of iterations and b) the result may 
exceed 2^31 (i.e. need to be 'long').

The same is true for the reverse operation, TextPos -> offset.

-andy

*From: *openjfx-dev <openjfx-dev-r...@openjdk.org> on behalf of PavelTurk 
<pavelturk2...@gmail.com>
*Date: *Wednesday, May 7, 2025 at 09:29
*To: *openjfx-dev@openjdk.org <openjfx-dev@openjdk.org>
*Subject: *CodeArea: how to convert offset to TextPos?

Could anyone say how to convert offset to TextPos in CodeArea?

For example, in RTFX CodeArea we have:

var pos = codeArea.offsetToPosition(offset, Bias.Backward);
var paragraph = pos.getMajor();

Best regards, Pavel

Reply via email to