#region License
// Copyright 2005-2019 Paul Kohler (https://github.com/paulkohler/minisqlquery). All rights reserved.
// This source code is made available under the terms of the GNU Lesser General Public License v3.0
// https://github.com/paulkohler/minisqlquery/blob/master/LICENSE
#endregion
namespace MiniSqlQuery.Core
{
///
/// An interface for a "document" that can be navigated with a cursor, e.g. position at line 1, column 4 etc.
///
public interface INavigatableDocument : ISupportCursorOffset
{
///
/// Gets the current column the cursor is in.
///
/// The cursor column.
int CursorColumn { get; }
///
/// Gets the current line the cursor is on.
///
/// The cursor line.
int CursorLine { get; }
///
/// Gets the the total number of lines in the editor.
///
/// The total lines.
int TotalLines { get; }
///
/// Sets the cursor by and .
///
/// The line number.
/// The column number.
/// The set cursor by location.
bool SetCursorByLocation(int line, int column);
///
/// Sets the cursor position by offset.
///
/// The offset for the cursor.
/// The set cursor by offset.
bool SetCursorByOffset(int offset);
}
}