summaryrefslogtreecommitdiff
path: root/src/debug.cc
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2011-10-07 14:16:38 +0000
committerMaxime Coste <frrrwww@gmail.com>2011-10-07 14:16:38 +0000
commita19f4f059d3e76210cfefdbb2881255d7fbc7879 (patch)
treea7c8740ec1308c6855d781f191c635323ce41ce4 /src/debug.cc
parent9db4aa96917184aab8d28436bec37b12ae6a4448 (diff)
Debug: add a write_debug function
write_debug writes in a Scratch buffer named '*debug*', so that debug messages are accessibles from within kakoune
Diffstat (limited to 'src/debug.cc')
-rw-r--r--src/debug.cc27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/debug.cc b/src/debug.cc
new file mode 100644
index 00000000..2aa7b179
--- /dev/null
+++ b/src/debug.cc
@@ -0,0 +1,27 @@
+#include "debug.hh"
+
+#include "assert.hh"
+#include "buffer_manager.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();
+ debug_buffer.insert(debug_buffer.end(), str);
+}
+
+}