Fabio Zadrozny wrote:

    I notice that Eclipse seems to let you have differing line terminators
    in the same file, but that PySelection seems enforce one and only one
    type of line terminator as per Guido's directions.  (I hope this is what
    you do).


Actually, sort of... In PySelection, when the terminator is requested it will always return the same line terminator from the first line of the document.

I am using:
            offset = selection.getAbsoluteCursorOffset()
            lineno = selection.getLineOfOffset(offset)
            line = selection.getLine(lineno)
to get the line containing the current cursor position. I then march up and down the text grabbing lines until I have acquired the 'paragraph' of text that contains the cursor.

Eventually I replace this paragraph with a reformatted paragraph. In order to do this I need to figure out the offsets to the first character of the original paragraph and to the last character of the delimiter on the last line of the paragraph. Right now I am assuming that I can do the latter by adding len(selection.getDelimiter(document)) to the last character offset but this assumes that the delimiter on the last line is the same size as the document delimiter.

It is possible that this is not true, for example by using a Windows editor to change a document that originated on Linux. However, I believe that CPython gets upset if mixed delimiters are used within the same document so maybe this does not really matter.

In any case, I can use the IDocument method getLineDelimiter() to get the line delimiter for a specific line, but it looks like you intended PySelection to be the main interface for Jython extension scripts so maybe you want add something like this one day.

BTW. I noticed that PySelection does not have a method getStartLineOffset(lineno) that would be a pair with getEndLineOffset(lineno). Not a big deal as it is easy to calculate.

    While I have your attention, is there any significance in PySelection's
    line numbering starting at 0 while the line number displayed by Eclipse
    starts at 1 ?


Actually, where is this? I've checked:

        PySelection sel = new PySelection(new Document("foo\nbla"));
        assertEquals(0, sel.getLineOfOffset(1));

So, it is returning 0 in the PySelection for the offset 1... Do you have an example where this is not the case?

I actually meant the line number shown at the bottom of the screen in Eclipse - this line number always starts at 1, which is apparantly internally known as line 0. So it looks like Eclipse is inconsistent about starting at 0 or 1. No matter.

Thanks,


Don.



-------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
pydev-code mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/pydev-code

Reply via email to