Interface ILineTracker

  • All Known Implementing Classes:
    AbstractLineTracker, ConfigurableLineTracker, DefaultLineTracker

    public interface ILineTracker
    A line tracker maps character positions to line numbers and vice versa. Initially the line tracker is informed about its underlying text in order to initialize the mapping information. After that, the line tracker is informed about all changes of the underlying text allowing for incremental updates of the mapping information. It is the client's responsibility to actively inform the line tacker about text changes. For example, when using a line tracker in combination with a document the document controls the line tracker.

    In order to provide backward compatibility for clients of ILineTracker, extension interfaces are used to provide a means of evolution. The following extension interfaces exist:

    Clients may implement this interface or use the standard implementation

    DefaultLineTrackeror ConfigurableLineTracker.
    • Method Detail

      • getLegalLineDelimiters

        String[] getLegalLineDelimiters()
        Returns the strings this tracker considers as legal line delimiters.
        Returns:
        the legal line delimiters
      • getLineDelimiter

        String getLineDelimiter​(int line)
                         throws BadLocationException
        Returns the line delimiter of the specified line. Returns null if the line is not closed with a line delimiter.
        Parameters:
        line - the line whose line delimiter is queried
        Returns:
        the line's delimiter or null if line does not have a delimiter
        Throws:
        BadLocationException - if the line number is invalid in this tracker's line structure
      • computeNumberOfLines

        int computeNumberOfLines​(String text)
        Computes the number of lines in the given text.
        Parameters:
        text - the text whose number of lines should be computed
        Returns:
        the number of lines in the given text
      • getNumberOfLines

        int getNumberOfLines()
        Returns the number of lines.

        Note that a document always has at least one line.

        Returns:
        the number of lines in this tracker's line structure
      • getNumberOfLines

        int getNumberOfLines​(int offset,
                             int length)
                      throws BadLocationException
        Returns the number of lines which are occupied by a given text range.
        Parameters:
        offset - the offset of the specified text range
        length - the length of the specified text range
        Returns:
        the number of lines occupied by the specified range
        Throws:
        BadLocationException - if specified range is unknown to this tracker
      • getLineOffset

        int getLineOffset​(int line)
                   throws BadLocationException
        Returns the position of the first character of the specified line.
        Parameters:
        line - the line of interest
        Returns:
        offset of the first character of the line
        Throws:
        BadLocationException - if the line is unknown to this tracker
      • getLineLength

        int getLineLength​(int line)
                   throws BadLocationException
        Returns length of the specified line including the line's delimiter.
        Parameters:
        line - the line of interest
        Returns:
        the length of the line
        Throws:
        BadLocationException - if line is unknown to this tracker
      • getLineNumberOfOffset

        int getLineNumberOfOffset​(int offset)
                           throws BadLocationException
        Returns the line number the character at the given offset belongs to.
        Parameters:
        offset - the offset whose line number to be determined
        Returns:
        the number of the line the offset is on
        Throws:
        BadLocationException - if the offset is invalid in this tracker
      • getLineInformationOfOffset

        IRegion getLineInformationOfOffset​(int offset)
                                    throws BadLocationException
        Returns a line description of the line at the given offset. The description contains the start offset and the length of the line excluding the line's delimiter.
        Parameters:
        offset - the offset whose line should be described
        Returns:
        a region describing the line
        Throws:
        BadLocationException - if offset is invalid in this tracker
      • getLineInformation

        IRegion getLineInformation​(int line)
                            throws BadLocationException
        Returns a line description of the given line. The description contains the start offset and the length of the line excluding the line's delimiter.
        Parameters:
        line - the line that should be described
        Returns:
        a region describing the line
        Throws:
        BadLocationException - if line is unknown to this tracker
      • replace

        void replace​(int offset,
                     int length,
                     String text)
              throws BadLocationException
        Informs the line tracker about the specified change in the tracked text.
        Parameters:
        offset - the offset of the replaced text
        length - the length of the replaced text
        text - the substitution text
        Throws:
        BadLocationException - if specified range is unknown to this tracker
      • set

        void set​(String text)
        Sets the tracked text to the specified text.
        Parameters:
        text - the new tracked text