diff --git a/Fastedit/Extensibility/CustomSyntaxHighlightLanguage.cs b/Fastedit/Extensibility/CustomSyntaxHighlightLanguage.cs
new file mode 100644
index 0000000..0a0c449
--- /dev/null
+++ b/Fastedit/Extensibility/CustomSyntaxHighlightLanguage.cs
@@ -0,0 +1,25 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using TextControlBoxNS;
+
+namespace Fastedit.Extensibility;
+
+///
+/// Create a constructor without parameters and set values for all properties.
+///
+public class CustomSyntaxHighlightLanguage : SyntaxHighlightLanguage, IExtensionInterface
+{
+ public CustomSyntaxHighlightLanguage() { }
+}
+
+public class CustomSyntaxHighlights : SyntaxHighlights
+{
+ public CustomSyntaxHighlights
+ (string pattern, string colorLight, string colorDark, bool bold = false, bool italic = false, bool underlined = false)
+ : base(pattern, colorLight, colorDark, bold, italic, underlined)
+ {
+ }
+}
\ No newline at end of file
diff --git a/Fastedit/Extensibility/IAboutPlugin.cs b/Fastedit/Extensibility/IAboutPlugin.cs
new file mode 100644
index 0000000..67ae543
--- /dev/null
+++ b/Fastedit/Extensibility/IAboutPlugin.cs
@@ -0,0 +1,34 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Fastedit.Extensibility;
+
+///
+/// Implement this interface to give Ease Pass some information about your plugin. It is highly recommended to implement this interface a single time in every plugin.
+///
+public interface IAboutPlugin : IExtensionInterface
+{
+ ///
+ /// Name of your plugin
+ ///
+ string PluginName { get; }
+ ///
+ /// Description of your plugin
+ ///
+ string PluginDescription { get; }
+ ///
+ /// Author of your plugin
+ ///
+ string PluginAuthor { get; }
+ ///
+ /// URL to the authors webpage
+ ///
+ string PluginAuthorURL { get; }
+ ///
+ /// URI to the icon of the plugin
+ ///
+ Uri PluginIcon { get; }
+}
\ No newline at end of file
diff --git a/Fastedit/Extensibility/IExtensionInterface.cs b/Fastedit/Extensibility/IExtensionInterface.cs
new file mode 100644
index 0000000..65008d8
--- /dev/null
+++ b/Fastedit/Extensibility/IExtensionInterface.cs
@@ -0,0 +1,11 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Fastedit.Extensibility;
+
+public interface IExtensionInterface
+{
+}
\ No newline at end of file
diff --git a/Fastedit/Extensibility/IExtensionSource.cs b/Fastedit/Extensibility/IExtensionSource.cs
new file mode 100644
index 0000000..d427dec
--- /dev/null
+++ b/Fastedit/Extensibility/IExtensionSource.cs
@@ -0,0 +1,20 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Fastedit.Extensibility;
+
+public interface IExtensionSource : IExtensionInterface
+{
+ ///
+ /// Name of the extension source.
+ ///
+ string SourceName { get; }
+ ///
+ /// Ease Pass will call this function to get the extension sources.
+ ///
+ /// The extension source and name.
+ (Uri Source, string Name)[] GetExtensionSources();
+}
\ No newline at end of file
diff --git a/Fastedit/Fastedit.csproj b/Fastedit/Fastedit.csproj
index 6dc70e5..84d9cc6 100644
--- a/Fastedit/Fastedit.csproj
+++ b/Fastedit/Fastedit.csproj
@@ -64,6 +64,9 @@
MSBuild:Compile
+
+
+