Packages
kino
0.14.2
0.19.0
0.18.0
0.17.0
0.16.1
0.16.0
0.15.3
0.15.2
0.15.1
0.15.0
0.14.2
0.14.1
0.14.0
0.13.2
0.13.1
0.13.0
0.12.3
0.12.2
0.12.1
0.12.0
0.11.3
0.11.2
0.11.1
0.11.0
0.10.0
0.9.4
0.9.3
0.9.2
0.9.1
0.9.0
0.8.1
0.8.0
0.7.0
0.6.2
0.6.1
0.6.0
retired
0.5.2
0.5.1
0.5.0
0.4.1
0.4.0
0.3.1
0.3.0
0.2.3
0.2.2
0.2.1
0.2.0
0.1.3
0.1.2
0.1.1
0.1.0
Interactive widgets for Livebook
Current section
Files
Jump to
Current section
Files
lib/kino/debug/default.ex
defmodule Kino.Debug.Default do
@moduledoc false
use Kino.JS, assets_path: "lib/assets/debug_default/build"
use Kino.JS.Live
def new(source, result, dbg_id, dbg_same_file, dbg_line) do
ui = Kino.JS.Live.new(__MODULE__, {source, dbg_id, dbg_same_file, dbg_line})
Kino.Layout.grid([ui, result], boxed: true, gap: 8)
end
@impl true
def init({source, dbg_id, dbg_same_file, dbg_line}, ctx) do
Kino.Debug.register_dbg_handler!(dbg_id)
{:ok,
assign(ctx,
source: source,
dbg_same_file: dbg_same_file,
dbg_line: dbg_line,
call_count: 1
)}
end
@impl true
def handle_connect(ctx) do
{:ok,
%{
dbg_same_file: ctx.assigns.dbg_same_file,
dbg_line: ctx.assigns.dbg_line,
call_count: ctx.assigns.call_count,
source: ctx.assigns.source
}, ctx}
end
@impl true
def handle_info(:dbg_call, ctx) do
ctx = update(ctx, :call_count, &(&1 + 1))
broadcast_event(ctx, "call_count_updated", %{"call_count" => ctx.assigns.call_count})
{:noreply, ctx}
end
end