Class SourceSpan

java.lang.Object
org.commonmark.node.SourceSpan

public class SourceSpan extends Object
A source span references a snippet of text from the source input.

It has a starting position (line and column index) and a length of how many characters it spans.

For example, this CommonMark source text:


 > foo
 
The BlockQuote node would have this source span: line 0, column 0, length 5.

The Paragraph node inside it would have: line 0, column 2, length 3.

If a block has multiple lines, it will have a source span for each line.

Note that the column index and length are measured in Java characters (UTF-16 code units). If you're outputting them to be consumed by another programming language, e.g. one that uses UTF-8 strings, you will need to translate them, otherwise characters such as emojis will result in incorrect positions.

Since:
0.16.0
  • Field Details

    • lineIndex

      private final int lineIndex
    • columnIndex

      private final int columnIndex
    • inputIndex

      private final int inputIndex
    • length

      private final int length
  • Constructor Details

    • SourceSpan

      private SourceSpan(int lineIndex, int columnIndex, int inputIndex, int length)
  • Method Details

    • of

      public static SourceSpan of(int line, int col, int input, int length)
    • of

      @Deprecated public static SourceSpan of(int lineIndex, int columnIndex, int length)
      Deprecated.
      Use {of(int, int, int, int)} instead to also specify input index. Using the deprecated one will set inputIndex to 0.
    • getLineIndex

      public int getLineIndex()
      Returns:
      0-based line index, e.g. 0 for first line, 1 for the second line, etc
    • getColumnIndex

      public int getColumnIndex()
      Returns:
      0-based index of column (character on line) in source, e.g. 0 for the first character of a line, 1 for the second character, etc
    • getInputIndex

      public int getInputIndex()
      Returns:
      0-based index in whole input
      Since:
      0.24.0
    • getLength

      public int getLength()
      Returns:
      length of the span in characters
    • subSpan

      public SourceSpan subSpan(int beginIndex)
    • subSpan

      public SourceSpan subSpan(int beginIndex, int endIndex)
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object