summaryrefslogtreecommitdiff
path: root/src/register_manager.hh
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2012-06-29 18:37:17 +0200
committerMaxime Coste <frrrwww@gmail.com>2012-06-29 18:37:17 +0200
commitdfbda951d38386d992c5ecd005fdf78ae93cb3d3 (patch)
treee38684974e32b639550e93e522ce18befadd1d63 /src/register_manager.hh
parent5b2ef1da6aecb82cf549e4b17e246149e4ad9968 (diff)
support static and dynamic registers, add '%' (filename) and '.' (selection) registers
Diffstat (limited to 'src/register_manager.hh')
-rw-r--r--src/register_manager.hh10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/register_manager.hh b/src/register_manager.hh
index d37ed2dd..9f125b9f 100644
--- a/src/register_manager.hh
+++ b/src/register_manager.hh
@@ -2,20 +2,26 @@
#define register_manager_hh_INCLUDED
#include "register.hh"
+
#include "utils.hh"
#include <unordered_map>
+#include <vector>
+#include <functional>
namespace Kakoune
{
+typedef std::function<std::vector<String> ()> RegisterRetriever;
+
class RegisterManager : public Singleton<RegisterManager>
{
public:
- Register& operator[](char reg) { return m_registers[reg]; }
+ Register& operator[](char reg);
+ void register_dynamic_register(char reg, RegisterRetriever function);
protected:
- std::unordered_map<char, Register> m_registers;
+ std::unordered_map<char, std::unique_ptr<Register>> m_registers;
};
}