summaryrefslogtreecommitdiff
path: root/src/filter.hh
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2012-11-23 13:40:20 +0100
committerMaxime Coste <frrrwww@gmail.com>2012-11-23 13:40:20 +0100
commitd2f811a8d5ef527eb98da7acdee93fa8f00131f2 (patch)
tree151b9e0b9c2dbc5c952f329b919d2aa772ce0a25 /src/filter.hh
parent11e885e5a5e31f75cfb18dd02907b86e3c40b8da (diff)
Refactor filter and highlighter registry into a common template
Diffstat (limited to 'src/filter.hh')
-rw-r--r--src/filter.hh13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/filter.hh b/src/filter.hh
index 6f54d496..28fa0202 100644
--- a/src/filter.hh
+++ b/src/filter.hh
@@ -1,9 +1,13 @@
#ifndef filter_hh_INCLUDED
#define filter_hh_INCLUDED
+#include <functional>
+
#include "string.hh"
+#include "utils.hh"
+#include "memoryview.hh"
#include "selection.hh"
-#include <functional>
+#include "function_registry.hh"
namespace Kakoune
{
@@ -18,6 +22,13 @@ class BufferIterator;
using FilterFunc = std::function<void (Buffer& buffer, Selection& selection, String& content)>;
using FilterAndId = std::pair<String, FilterFunc>;
+using FilterParameters = memoryview<String>;
+using FilterFactory = std::function<FilterAndId (const FilterParameters& params)>;
+
+struct FilterRegistry : FunctionRegistry<FilterFactory>,
+ Singleton<FilterRegistry>
+{};
+
}
#endif // filter_hh_INCLUDED