diff options
| author | Maxime Coste <frrrwww@gmail.com> | 2012-06-29 13:25:34 +0200 |
|---|---|---|
| committer | Maxime Coste <frrrwww@gmail.com> | 2012-06-29 13:25:34 +0200 |
| commit | 7aa533c04904a8be36354e5896891f672ba3a40f (patch) | |
| tree | 999170bdcf6573a5039d295ab776bc2435558dd6 /src | |
| parent | 49e1d918043c656dde9500ba7e09de173c8fef4a (diff) | |
simplify Register interface
Diffstat (limited to 'src')
| -rw-r--r-- | src/commands.cc | 8 | ||||
| -rw-r--r-- | src/main.cc | 8 | ||||
| -rw-r--r-- | src/ncurses.cc | 2 | ||||
| -rw-r--r-- | src/register.cc | 17 | ||||
| -rw-r--r-- | src/register.hh | 6 |
5 files changed, 12 insertions, 29 deletions
diff --git a/src/commands.cc b/src/commands.cc index 0d42b060..fc3afe5f 100644 --- a/src/commands.cc +++ b/src/commands.cc @@ -659,9 +659,11 @@ class RegisterRestorer { public: RegisterRestorer(char name) - : m_name(name), - m_save(RegisterManager::instance()[name].content()) - {} + : m_name(name) + { + memoryview<String> save = RegisterManager::instance()[name]; + m_save = std::vector<String>(save.begin(), save.end()); + } ~RegisterRestorer() { RegisterManager::instance()[m_name] = m_save; } diff --git a/src/main.cc b/src/main.cc index 9a9c2008..ba6eaccc 100644 --- a/src/main.cc +++ b/src/main.cc @@ -210,7 +210,7 @@ void do_search(Editor& editor) { String ex = prompt("/"); if (ex.empty()) - ex = RegisterManager::instance()['/'].get(); + ex = RegisterManager::instance()['/'][0]; else RegisterManager::instance()['/'] = ex; @@ -222,7 +222,7 @@ void do_search(Editor& editor) template<bool append> void do_search_next(Editor& editor) { - const String& ex = RegisterManager::instance()['/'].get(); + const String& ex = RegisterManager::instance()['/'][0]; if (not ex.empty()) editor.select(std::bind(select_next_match, _1, ex), append); else @@ -260,9 +260,9 @@ void do_paste(Editor& editor, int count) else { if (append) - editor.append(reg.get(count-1)); + editor.append(reg[count-1]); else - editor.insert(reg.get(count-1)); + editor.insert(reg[count-1]); } } diff --git a/src/ncurses.cc b/src/ncurses.cc index 0daaabe9..adf2a8f5 100644 --- a/src/ncurses.cc +++ b/src/ncurses.cc @@ -265,7 +265,7 @@ String NCursesClient::prompt(const String& text, Completer completer) case CTRL('r'): { c = getch(); - String reg = RegisterManager::instance()[c].get(); + String reg = RegisterManager::instance()[c][0]; current_completion = -1; result = result.substr(0, cursor_pos) + reg + result.substr(cursor_pos, String::npos); cursor_pos += reg.length(); diff --git a/src/register.cc b/src/register.cc index d8c48704..af0852ea 100644 --- a/src/register.cc +++ b/src/register.cc @@ -5,28 +5,13 @@ namespace Kakoune const String Register::ms_empty; -Register& Register::operator=(const String& value) -{ - m_content.clear(); - m_content.push_back(value); - return *this; -} - Register& Register::operator=(const memoryview<String>& values) { m_content = std::vector<String>(values.begin(), values.end()); return *this; } -const String& Register::get() const -{ - if (m_content.size() != 0) - return m_content.front(); - else - return ms_empty; -} - -const String& Register::get(size_t index) const +const String& Register::operator[](size_t index) const { if (m_content.size() > index) return m_content[index]; diff --git a/src/register.hh b/src/register.hh index 0dc072f7..fc50e44f 100644 --- a/src/register.hh +++ b/src/register.hh @@ -12,16 +12,12 @@ namespace Kakoune class Register { public: - Register& operator=(const String& value); Register& operator=(const memoryview<String>& values); - const String& get() const; - const String& get(size_t index) const; + const String& operator[](size_t index) const; operator memoryview<String>() const { return memoryview<String>(m_content); } - - const std::vector<String>& content() const { return m_content; } private: std::vector<String> m_content; |
