Debug: add a write_debug function

write_debug writes in a Scratch buffer named '*debug*', so that debug
messages are accessibles from within kakoune
This commit is contained in:
Maxime Coste 2011-10-07 14:16:38 +00:00
parent 9db4aa9691
commit a19f4f059d
3 changed files with 42 additions and 0 deletions

27
src/debug.cc Normal file
View File

@ -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);
}
}

13
src/debug.hh Normal file
View File

@ -0,0 +1,13 @@
#ifndef debug_hh_INCLUDED
#define debug_hh_INCLUDED
#include <string>
namespace Kakoune
{
void write_debug(const std::string& str);
}
#endif // debug_hh_INCLUDED

View File

@ -7,6 +7,7 @@
#include "register_manager.hh"
#include "selectors.hh"
#include "assert.hh"
#include "debug.hh"
#include <unordered_map>
#include <map>
@ -568,6 +569,7 @@ int main(int argc, char* argv[])
try
{
char c = getch();
write_debug(std::string("key ") + c + '\n');
if (isdigit(c))
count = count * 10 + c - '0';