Loading...
Searching...
No Matches
juce::CodeDocument::Position Class Reference

## Detailed Description

A position in a code document.

Using this class you can find a position in a code document and quickly get its character position, line, and index. By calling setPositionMaintained (true), the position is automatically updated when text is inserted or deleted in the document, so that it maintains its original place in the text.

The documentation for this class was generated from the following file:

- juce_gui_extra/code_editor/juce_CodeDocument.h

## Public Member Functions

| Position () noexcept
| Creates an uninitialised position.
| Position (const CodeDocument &ownerDocument, int line, int indexInLine) noexcept
| Creates a position based on a line and index in a document.
| Position (const CodeDocument &ownerDocument, int charactersFromStartOfDocument) noexcept
| Creates a position based on a character index in a document.
| Position (const Position &) noexcept
| Creates a copy of another position.
| ~Position ()
| Destructor.
Position & | operator= (const Position &)
bool | operator== (const Position &) const noexcept
bool | operator!= (const Position &) const noexcept
void | setPosition (int charactersFromStartOfDocument)
| Points this object at a new position within the document.
int | getPosition () const noexcept
| Returns the position as the number of characters from the start of the document.
void | setLineAndIndex (int newLineNumber, int newIndexInLine)
| Moves the position to a new line and index within the line.
int | getLineNumber () const noexcept
| Returns the line number of this position.
int | getIndexInLine () const noexcept
| Returns the number of characters from the start of the line.
void | setPositionMaintained (bool isMaintained)
| Allows the position to be automatically updated when the document changes.
void | moveBy (int characterDelta)
| Moves the position forwards or backwards by the specified number of characters.
Position | movedBy (int characterDelta) const
| Returns a position which is the same as this one, moved by the specified number of characters.
Position | movedByLines (int deltaLines) const
| Returns a position which is the same as this one, moved up or down by the specified number of lines.
juce_wchar | getCharacter () const
| Returns the character in the document at this position.
String | getLineText () const
| Returns the line from the document that this position is within.

## Constructors and Destructors

## Position() [1/4]

juce::CodeDocument::Position::Position | ( |  | ) |

noexcept

Creates an uninitialised position.

Don't attempt to call any methods on this until you've given it an owner document to refer to!

Referenced by movedBy(), movedByLines(), operator!=(), operator=(), operator==(), Position(), Position(), Position(), and ~Position().

## Position() [2/4]

juce::CodeDocument::Position::Position | ( | const CodeDocument & | ownerDocument,
|  | int | line,
|  | int | indexInLine )

noexcept

Creates a position based on a line and index in a document.

Note that this index is NOT the column number, it's the number of characters from the start of the line. The "column" number isn't quite the same, because if the line contains any tab characters, the relationship of the index to its visual column depends on the number of spaces per tab being used!

Lines are numbered from zero, and if the line or index are beyond the bounds of the document, they will be adjusted to keep them within its limits.

References CodeDocument, and Position().

## Position() [3/4]

juce::CodeDocument::Position::Position | ( | const CodeDocument & | ownerDocument,
|  | int | charactersFromStartOfDocument )

noexcept

Creates a position based on a character index in a document.

This position is placed at the specified number of characters from the start of the document. The line and column are auto-calculated.

If the position is beyond the range of the document, it'll be adjusted to keep it inside.

References CodeDocument, and Position().

## Position() [4/4]

juce::CodeDocument::Position::Position | ( | const Position & |  | ) |

noexcept

Creates a copy of another position.

This will copy the position, but the new object will not be set to maintain its position, even if the source object was set to do so.

References Position().

## ~Position()

juce::CodeDocument::Position::~Position | ( |  | ) |

Destructor.

References Position().

## Member Functions

## operator=()

Position & juce::CodeDocument::Position::operator= | ( | const Position & |  | ) |

References Position().

## operator==()

bool juce::CodeDocument::Position::operator== | ( | const Position & |  | ) | const

noexcept

References Position().

## operator!=()

bool juce::CodeDocument::Position::operator!= | ( | const Position & |  | ) | const

noexcept

References Position().

## setPosition()

void juce::CodeDocument::Position::setPosition | ( | int | charactersFromStartOfDocument | ) |

Points this object at a new position within the document.

If the position is beyond the range of the document, it'll be adjusted to keep it inside.

See also
  getPosition, setLineAndIndex

References setPosition().

Referenced by setPosition().

## getPosition()

int juce::CodeDocument::Position::getPosition | ( |  | ) | const

inline noexcept

Returns the position as the number of characters from the start of the document.

See also
  setPosition, getLineNumber, getIndexInLine

References getPosition().

Referenced by getPosition().

## setLineAndIndex()

void juce::CodeDocument::Position::setLineAndIndex | ( | int | newLineNumber,
|  | int | newIndexInLine )

Moves the position to a new line and index within the line.

Note that the index is NOT the column at which the position appears in an editor. If the line contains any tab characters, the relationship of the index to its visual position depends on the number of spaces per tab being used!

Lines are numbered from zero, and if the line or index are beyond the bounds of the document, they will be adjusted to keep them within its limits.

## getLineNumber()

int juce::CodeDocument::Position::getLineNumber | ( |  | ) | const

inline noexcept

Returns the line number of this position.

The first line in the document is numbered zero, not one!

## getIndexInLine()

int juce::CodeDocument::Position::getIndexInLine | ( |  | ) | const

inline noexcept

Returns the number of characters from the start of the line.

Note that this value is NOT the column at which the position appears in an editor. If the line contains any tab characters, the relationship of the index to its visual position depends on the number of spaces per tab being used!

## setPositionMaintained()

void juce::CodeDocument::Position::setPositionMaintained | ( | bool | isMaintained | ) |

Allows the position to be automatically updated when the document changes.

If this is set to true, the position will register with its document so that when the document has text inserted or deleted, this position will be automatically moved to keep it at the same position in the text.

## moveBy()

void juce::CodeDocument::Position::moveBy | ( | int | characterDelta | ) |

Moves the position forwards or backwards by the specified number of characters.

See also
  movedBy

## movedBy()

Position juce::CodeDocument::Position::movedBy | ( | int | characterDelta | ) | const

Returns a position which is the same as this one, moved by the specified number of characters.

See also
  moveBy

References Position().

## movedByLines()

Position juce::CodeDocument::Position::movedByLines | ( | int | deltaLines | ) | const

Returns a position which is the same as this one, moved up or down by the specified number of lines.

See also
  movedBy

References Position().

## getCharacter()

juce_wchar juce::CodeDocument::Position::getCharacter | ( |  | ) | const

Returns the character in the document at this position.

See also
  getLineText

## getLineText()

String juce::CodeDocument::Position::getLineText | ( |  | ) | const

Returns the line from the document that this position is within.

See also
  getCharacter, getLineNumber

References CodeDocument.

### Purchase

Get JUCE

### Discover

What's New in JUCE Features

### Learn

Documentaion Tutorials Made with JUCE Resources

### Support

JUCE Forum Newsletter Archive

### About

Contact Us JUCE Legal JUCE Licensing FAQ

### Events

Audio Developer Conference
© Raw Material Software Limited