summaryrefslogtreecommitdiff
path: root/src/debug.cc
blob: 9cfa0cd8b56b9bb0ac1fe8ab37978294a1cd5dc8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include "debug.hh"

#include "assert.hh"
#include "buffer_manager.hh"
#include "editor.hh"

namespace Kakoune
{

static Buffer& get_or_create_debug_buffer()
{
    static const String debug_buffer_name("*debug*");
    Buffer* buffer = BufferManager::instance().get_buffer_ifp(debug_buffer_name);

    if (not buffer)
        buffer = new Buffer(debug_buffer_name, Buffer::Flags::NoUndo);

    assert(buffer);
    return *buffer;
}

void write_debug(const String& str)
{
    Buffer& debug_buffer = get_or_create_debug_buffer();
    Editor editor(debug_buffer);
    editor.select(debug_buffer.end()-1);
    editor.insert(str + "\n");
}

}