diff --git a/minisqlquery-master/src/MiniSqlQuery.Core/IEditor.cs b/minisqlquery-master/src/MiniSqlQuery.Core/IEditor.cs
new file mode 100644
index 0000000..62c9281
--- /dev/null
+++ b/minisqlquery-master/src/MiniSqlQuery.Core/IEditor.cs
@@ -0,0 +1,81 @@
+#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
+{
+ /// <summary>
+ /// The editor interface. Defines the core behaviours for interacting with the core application.
+ /// </summary>
+ public interface IEditor
+ {
+ /// <summary>
+ /// Gets or sets the contetnts of the editor.
+ /// </summary>
+ /// <value>All the text in the window.</value>
+ string AllText { get; set; }
+
+ /// <summary>
+ /// Gets the file filter for this editor (e.g. "SQL Files (*.sql)|*.sql|All Files (*.*)|*.*").
+ /// </summary>
+ /// <value>The file filter.</value>
+ string FileFilter { get; }
+
+ /// <summary>
+ /// Gets or sets the filename of the docuemnt being edited (can be null, as in not saved yet).
+ /// </summary>
+ /// <value>The file name.</value>
+ string FileName { get; set; }
+
+ /// <summary>
+ /// Gets a value indicating whether this instance is dirty or not.
+ /// </summary>
+ /// <value>The value of <c>true</c> if this instance is dirty; otherwise, <c>false</c>.</value>
+ bool IsDirty { get; }
+
+ /// <summary>
+ /// Gets the currently selected text (if any) in the editor.
+ /// </summary>
+ /// <value>The selected text.</value>
+ string SelectedText { get; }
+
+ /// <summary>
+ /// Clears the selection (deletes selected text if any).
+ /// </summary>
+ void ClearSelection();
+
+ /// <summary>
+ /// Highlights the string starting at <paramref name = "offset" /> for <paramref name = "length" /> characters.
+ /// </summary>
+ /// <param name = "offset">The offset to start at.</param>
+ /// <param name = "length">The length.</param>
+ void HighlightString(int offset, int length);
+
+ /// <summary>
+ /// Inserts <paramref name = "text" /> at the current cursor position (selected text is overwritten).
+ /// </summary>
+ /// <param name = "text">The text to insert at the current position.</param>
+ void InsertText(string text);
+
+ /// <summary>
+ /// Loads the file by the path in <see cref = "FileName" />.
+ /// </summary>
+ void LoadFile();
+
+ /// <summary>
+ /// Saves the file by the path in <see cref = "FileName" />.
+ /// </summary>
+ void SaveFile();
+
+ /// <summary>
+ /// Sets the syntax mode off the editor.
+ /// </summary>
+ /// <param name = "syntaxName">The mode, e.g. "sql", "cs", "txt" etc.</param>
+ void SetSyntax(string syntaxName);
+ }
+}
\ No newline at end of file