# Interface ILineTrackerExtension

All Known Implementing Classes:
  `AbstractLineTracker, ConfigurableLineTracker, DefaultLineTracker`

public interface ILineTrackerExtension
Extension interface for `ILineTracker`. Adds the concept of rewrite sessions. A rewrite session is a sequence of replace operations that form a semantic unit.

Since:
  3.1

## Method Summary

Modifier and Type
Method
Description
`void`
`startRewriteSession(DocumentRewriteSession session)`
Tells the line tracker that a rewrite session started.
`void`
`stopRewriteSession(DocumentRewriteSession session, String text)`
Tells the line tracker that the rewrite session has finished.

## Method Details

### startRewriteSession

void startRewriteSession(DocumentRewriteSession session) throws IllegalStateException
Tells the line tracker that a rewrite session started. A rewrite session is a sequence of replace operations that form a semantic unit. The line tracker is allowed to use that information for internal optimization.

Parameters:
  `session` - the rewrite session
Throws:
  `IllegalStateException` - in case there is already an active rewrite session

### stopRewriteSession

void stopRewriteSession(DocumentRewriteSession session, String text)
Tells the line tracker that the rewrite session has finished. This method is only called when `startRewriteSession` has been called before. The text resulting from the rewrite session is passed to the line tracker.

Parameters:
  `session` - the rewrite session
  `text` - the text with which to re-initialize the line tracker