summaryrefslogtreecommitdiff
path: root/src/buffer.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/buffer.hh')
-rw-r--r--src/buffer.hh18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/buffer.hh b/src/buffer.hh
index 5a336f23..0221e46a 100644
--- a/src/buffer.hh
+++ b/src/buffer.hh
@@ -7,6 +7,10 @@
#include <memory>
#include "line_and_column.hh"
+#include "filter.hh"
+#include "exception.hh"
+#include "completion.hh"
+#include "idvaluemap.hh"
namespace Kakoune
{
@@ -149,6 +153,18 @@ public:
void register_modification_listener(BufferModificationListener* listener);
void unregister_modification_listener(BufferModificationListener* listener);
+ struct filter_id_not_unique : public runtime_error
+ {
+ filter_id_not_unique(const std::string& id)
+ : runtime_error("filter id not unique: " + id) {}
+ };
+
+ void add_filter(FilterAndId&& filter);
+ void remove_filter(const std::string& id);
+
+ CandidateList complete_filterid(const std::string& prefix,
+ size_t cursor_pos = std::string::npos);
+
// returns an iterator pointing to the first character of the line
// iterator is on
BufferIterator iterator_at_line_begin(const BufferIterator& iterator) const;
@@ -190,6 +206,8 @@ private:
size_t m_last_save_undo_index;
std::vector<BufferModificationListener*> m_modification_listeners;
+
+ idvaluemap<std::string, FilterFunc> m_filters;
};
}