mirror of
https://github.com/leporello-js/leporello-js
synced 2026-01-13 13:04:30 -08:00
do not rerender logs on async calls
This commit is contained in:
@@ -40,40 +40,44 @@ export class Logs {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
rerender_logs(logs) {
|
||||||
|
this.el.innerHTML = ''
|
||||||
|
this.render_logs(null, logs)
|
||||||
|
}
|
||||||
|
|
||||||
render_logs(prev_logs, logs) {
|
render_logs(prev_logs, logs) {
|
||||||
|
for(
|
||||||
if(prev_logs?.logs != logs.logs) {
|
let i = prev_logs == null ? 0 : prev_logs.logs.length ;
|
||||||
|
i < logs.logs.length;
|
||||||
this.el.innerHTML = ''
|
i++
|
||||||
for(let i = 0; i < logs.logs.length; i++) {
|
)
|
||||||
const log = logs.logs[i]
|
{
|
||||||
this.el.appendChild(
|
const log = logs.logs[i]
|
||||||
el('div',
|
this.el.appendChild(
|
||||||
'log call_header '
|
el('div',
|
||||||
+ (log.log_fn_name == 'error' ? 'error' : '')
|
'log call_header '
|
||||||
// Currently console.log calls from native fns (like Array::map)
|
+ (log.log_fn_name == 'error' ? 'error' : '')
|
||||||
// are not recorded, so next line is dead code
|
// Currently console.log calls from native fns (like Array::map)
|
||||||
+ (log.module == null ? ' native' : '')
|
// are not recorded, so next line is dead code
|
||||||
,
|
+ (log.module == null ? ' native' : '')
|
||||||
el('a', {
|
,
|
||||||
href: 'javascript: void(0)',
|
el('a', {
|
||||||
click: () => exec('calltree.navigate_logs_position', i),
|
href: 'javascript: void(0)',
|
||||||
},
|
click: () => exec('calltree.navigate_logs_position', i),
|
||||||
(log.module == '' ? '*scratch*' : log.module)
|
},
|
||||||
+ ': '
|
(log.module == '' ? '*scratch*' : log.module)
|
||||||
+ (
|
+ ': '
|
||||||
log.toplevel
|
+ (
|
||||||
? 'toplevel'
|
log.toplevel
|
||||||
: 'fn ' + (log.parent_name == '' ? 'anonymous' : log.parent_name)
|
? 'toplevel'
|
||||||
)
|
: 'fn ' + (log.parent_name == '' ? 'anonymous' : log.parent_name)
|
||||||
+ ':'
|
)
|
||||||
),
|
+ ':'
|
||||||
' ',
|
),
|
||||||
log.args.map(a => header(a)).join(', ')
|
' ',
|
||||||
)
|
log.args.map(a => header(a)).join(', ')
|
||||||
)
|
)
|
||||||
}
|
)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(prev_logs?.log_position != logs.log_position) {
|
if(prev_logs?.log_position != logs.log_position) {
|
||||||
|
|||||||
10
src/effects.js
vendored
10
src/effects.js
vendored
@@ -182,18 +182,14 @@ export const render_common_side_effects = (prev, next, command, ui) => {
|
|||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
if(
|
if(prev.calltree_changed_token != next.calltree_changed_token) {
|
||||||
// TODO refactor this condition
|
|
||||||
prev.current_calltree_node == null
|
|
||||||
||
|
|
||||||
prev.calltree_changed_token != next.calltree_changed_token
|
|
||||||
) {
|
|
||||||
// Rerender entire calltree
|
// Rerender entire calltree
|
||||||
ui.render_debugger(next)
|
ui.render_debugger(next)
|
||||||
ui.eval.clear_value_or_error()
|
ui.eval.clear_value_or_error()
|
||||||
ui.editor.for_each_session(f => clear_coloring(ui, f))
|
ui.editor.for_each_session(f => clear_coloring(ui, f))
|
||||||
render_coloring(ui, next)
|
render_coloring(ui, next)
|
||||||
ui.editor.unembed_value_explorer()
|
ui.editor.unembed_value_explorer()
|
||||||
|
ui.logs.rerender_logs(next.logs)
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
if(get_async_calls(prev) == null && get_async_calls(next) != null) {
|
if(get_async_calls(prev) == null && get_async_calls(next) != null) {
|
||||||
@@ -225,9 +221,7 @@ export const render_common_side_effects = (prev, next, command, ui) => {
|
|||||||
if(prev.calltree_node_by_loc != next.calltree_node_by_loc) {
|
if(prev.calltree_node_by_loc != next.calltree_node_by_loc) {
|
||||||
render_coloring(ui, next)
|
render_coloring(ui, next)
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if(prev.logs != next.logs) {
|
|
||||||
ui.logs.render_logs(prev.logs, next.logs)
|
ui.logs.render_logs(prev.logs, next.logs)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user