repositories / dotfiles
dotfiles
bugabingas dorkfiles
owned by admin
neovim/lua/std/dbg/init.lua.bak
Rawlocal file = require 'std.dbg.file'
local kinds = require 'std.dbg.kinds'
local format = require 'std.dbg.format'
local user_command = require 'std.user_command'
if vim.g.bugabinga_debug_mode == nil then
vim.g.bugabinga_debug_mode = false
end
local function is_debug_mode()
return vim.g.bugabinga_debug_mode
end
local function toggle_debug_mode()
vim.g.bugabinga_debug_mode = not vim.g.bugabinga_debug_mode
vim.notify( 'Toggled debug mode to ' .. tostring( is_debug_mode() ) )
end
local function print_debug_kind( kind_name, message, ... )
if not is_debug_mode() then
return
end
local now = os.time()
local user_data = { ... }
local filename, function_name, line_number = file.get_context()
local event = {
kind = kind_name,
date = now,
format = message,
data = user_data,
filename = filename,
fn = function_name,
line = line_number,
}
file.write( event )
end
local function print_debug( message, ... )
if not is_debug_mode() then
return
end
print_debug_kind( 'DEBUG', message, ... )
end
local function open_special_debug_buffer()
vim.notify( 'Debug viewer not yet implemented (Stage 2)', vim.log.levels.WARN )
end
local function open_raw_debug_file()
vim.cmd.edit( file.get_path() )
end
user_command.Debug 'Toggle global vim config debug mode.' ( toggle_debug_mode )
user_command.DebugOpen 'Open special buffer with debug events' ( open_special_debug_buffer )
user_command.DebugOpenRaw 'Opens the JSON debug file in normal buffer' ( open_raw_debug_file )
return setmetatable(
{
kind = print_debug_kind,
toggle = toggle_debug_mode,
get = is_debug_mode,
},
{
__call = print_debug,
__newindex = function ( ... )
error( 'Assignments are not supported for std.dbg.\n' .. vim.inspect( ... ), 2 )
end,
}
)