From 1e2467b3f30241e713c83175dc6b44ae1f4b1853 Mon Sep 17 00:00:00 2001 From: Matt Tolton Date: Tue, 8 Jul 2008 19:59:59 +0200 Subject: [PATCH] Add versioning to the plugin architecture The plugin architecture version can be retrieved by a plugin from the app mediator by calling the majorVersion and minorVersion methods. --- src/MacVim/PlugInImpl.m | 13 +++++++++++++ src/MacVim/PlugInInterface.h | 6 ++++++ 2 files changed, 19 insertions(+) diff --git a/src/MacVim/PlugInImpl.m b/src/MacVim/PlugInImpl.m index ef13dc536a..066a7ac540 100644 --- a/src/MacVim/PlugInImpl.m +++ b/src/MacVim/PlugInImpl.m @@ -26,6 +26,9 @@ #ifdef MM_ENABLE_PLUGINS +static int MMPlugInArchMajorVersion = 1; +static int MMPlugInArchMinorVersion = 0; + #import "PlugInImpl.h" #import "PlugInGUI.h" #import "MMPlugInManager.h" @@ -219,6 +222,16 @@ MMPlugInAppMediator *sharedAppMediator = nil; return nil; } +- (int)majorVersion +{ + return MMPlugInArchMajorVersion; +} + +- (int)minorVersion +{ + return MMPlugInArchMinorVersion; +} + @end #endif diff --git a/src/MacVim/PlugInInterface.h b/src/MacVim/PlugInInterface.h index 490d619cab..dbbf4b64f8 100644 --- a/src/MacVim/PlugInInterface.h +++ b/src/MacVim/PlugInInterface.h @@ -39,6 +39,12 @@ // If there are no instances with the specified class, returns nil. - (id)keyPlugInInstanceWithClass:(Class)class; +// Plugin architecture version. Major versions indicate API incompatibilities. +// Minor versions may include additions, but nothing that should break current +// plugins. +- (int)majorVersion; +- (int)minorVersion; + @end @protocol PlugInInstanceMediator