firstLine = Math.max(firstLine,firstVisible); lastLine = Math.min(lastLine,lastVisible);
	public void _invalidateLineRange(int firstLine, int lastLine)	{		int firstVisible = textArea.getFirstLine();		int lastVisible = firstVisible + textArea.getVisibleLines();		if(firstLine > lastLine)		{			int tmp = firstLine;			firstLine = lastLine;			lastLine = tmp;		}		if(lastLine < firstVisible || firstLine > lastVisible)			return;		firstLine = Math.max(firstLine,firstVisible);		lastLine = Math.min(lastLine,lastVisible);		if(firstInvalid == -1 && lastInvalid == -1)		{			firstInvalid = firstLine;			lastInvalid = lastLine;		}		else		{			if(firstLine > firstInvalid && lastLine < lastInvalid)				return;			firstInvalid = Math.min(firstInvalid,firstLine);			lastInvalid = Math.max(lastInvalid,lastLine);		}		/* Because the model uses cached text and token lists		 * for the current line, we must invalidate that info		 * if the current line changes.		 */		// This doesn't seem to be necessary, and it causes problems		/*if(currentLineIndex >= firstInvalid &&			currentLineIndex <= lastInvalid)			currentLineIndex = -1;*/	}