summaryrefslogtreecommitdiff
path: root/src/debug.cc
blob: d170f8431768499f3db01349ca1a3fed39be5570 (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 std::string debug_buffer_name("*debug*");
    Buffer* buffer = BufferManager::instance().get_buffer(debug_buffer_name);

    if (not buffer)
        buffer = new Buffer(debug_buffer_name, Buffer::Type::Scratch, "");

    assert(buffer);
    return *buffer;
}

void write_debug(const std::string& str)
{
    Buffer& debug_buffer = get_or_create_debug_buffer();
    Editor editor(debug_buffer);
    editor.select(debug_buffer.end());
    editor.insert(str);
}

}