From 7102e532f22caf4ab1f95a3871e06f729d230989 Mon Sep 17 00:00:00 2001 From: Dmitry Vasilev Date: Mon, 19 Jun 2023 06:33:57 +0300 Subject: [PATCH] index+lenght for value_explorer --- src/calltree.js | 6 ++++-- src/cmd.js | 8 ++++++-- src/editor/editor.js | 2 +- test/test.js | 6 +++++- 4 files changed, 16 insertions(+), 6 deletions(-) diff --git a/src/calltree.js b/src/calltree.js index d66da32..c4bcdac 100644 --- a/src/calltree.js +++ b/src/calltree.js @@ -722,7 +722,8 @@ const select_return_value = state => { node, }, value_explorer: { - index: node.index + node.length, + index: node.index, + length: node.length, result: result_node.result, }, }, @@ -766,7 +767,8 @@ const select_arguments = (state, with_focus = true) => { node, }, value_explorer: { - index: node.index + node.length, + index: node.index, + length: node.length, result, }, }, diff --git a/src/cmd.js b/src/cmd.js index ecf58fc..e789e06 100644 --- a/src/cmd.js +++ b/src/cmd.js @@ -515,7 +515,8 @@ const eval_selection = (state, index, is_expand) => { selection_state, value_explorer: selection_state.ok ? { - index: selection_state.node.index + selection_state.node.length, + index: selection_state.node.index, + length: selection_state.node.length, result, } : null @@ -660,6 +661,7 @@ const get_value_explorer = (state, index) => { // cursor in args, show args return { index: frame.children[0].index, + length: frame.children[0].length, result: frame.children[0].result, } } @@ -669,6 +671,7 @@ const get_value_explorer = (state, index) => { const result = frame.children[1].result return { index: frame.children[1].index, + length: frame.children[1].length, result: result.ok ? result : find_error_origin_node(frame.children[1]).result @@ -729,6 +732,7 @@ const get_value_explorer = (state, index) => { } else if(stmt.type == 'let') { return { index: stmt.index, + length: stmt.length, result: { ok: true, @@ -755,7 +759,7 @@ const get_value_explorer = (state, index) => { result = find_error_origin_node(stmt).result } - return {index: stmt.index, result} + return {index: stmt.index, length: stmt.length, result} } const do_move_cursor = (state, index) => { diff --git a/src/editor/editor.js b/src/editor/editor.js index b2a0fc5..5b93143 100644 --- a/src/editor/editor.js +++ b/src/editor/editor.js @@ -199,7 +199,7 @@ export class Editor { } } - embed_value_explorer({index, result: {ok, value, error}}) { + embed_value_explorer({index, length, result: {ok, value, error}}) { this.unembed_value_explorer() const session = this.ace_editor.getSession() diff --git a/test/test.js b/test/test.js index 350853c..381f99b 100644 --- a/test/test.js +++ b/test/test.js @@ -2262,8 +2262,10 @@ const y = x()` // expand call const s3 = COMMANDS.calltree.arrow_right(s2) const s4 = COMMANDS.move_cursor(s3, code.indexOf('a')) + const selected = '(a, b)' assert_equal(s4.value_explorer, { - index: code.indexOf('(a, b)'), + index: code.indexOf(selected), + length: selected.length, result: {ok: true, value: {a: 1, b: 2}}, }) }), @@ -2277,6 +2279,7 @@ const y = x()` const s2 = COMMANDS.move_cursor(s1, code.indexOf('2')) assert_equal(s2.value_explorer, { index: code.indexOf('y*2'), + length: 3, result: {ok: true, value: 4}, }) }), @@ -2290,6 +2293,7 @@ const y = x()` const s2 = COMMANDS.move_cursor(s1, code.indexOf('x')) assert_equal(s2.value_explorer, { index: code.indexOf('let x'), + length: 5, result: {ok: true, value: {x: 1}}, }) }),