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 + + +