名图客
名图客
  • 发布:2021-02-27 23:24
  • 更新:2021-02-28 06:02
  • 阅读:402

【报Bug】选择文本加大中小括号,撤销后的bug

分类:HBuilderX

产品分类: HbuilderX

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: windows 10 20H2

HBuilderX版本号: 3.1.3

操作步骤:

选择文本,按大/中/小括号半边,按ctrl+Z撤销

预期结果:

一步恢复选择文本状态

实际结果:

分三步恢复到之前的选择文本状态,这三步中途偶尔导致代码无法高亮,甚至编辑器性能大降。

bug描述:

在编辑器选择文本后,按大/中/小括号或引号时,会自动嵌套于文本外,但,当需要撤销这个操作,按ctrl+Z,会按照编辑器内部加嵌套的逻辑分三步撤销,这是不符合用户使用逻辑的,撤销操作频率非常高的情况下,还要再X3,极大影响用户体验,望能改善,特意试了试VSCode,没有这个分步撤销问题。
而且,这个bug,在vue文件代码行数较多时,html,js,css都很多的情况下,在分步骤撤销时,比如引号或大括号,撤销到只保留半边后,会导致编辑器识别代码错误,也就是无法高亮识别,导致大半块代码为白色,而且三步都撤销完成后,无法恢复原始状态,这应当是影响到了编辑器的性能。不常发生,但一天偶尔有次吧,通常只得全选剪切后再粘贴才能解决。

2021-02-27 23:24 负责人:无 分享
已邀请:
DCloud_heavensoft

DCloud_heavensoft

HBuilder的所有智能处理,在撤销后,第一次撤销均是撤销智能处理,第二次撤销才是还原开始状态。
当然撤销3次确实是bug。应该是撤销两次。
比如,选中abc,按下[,变成[abc]。
第一步撤销,是变成[,应该本来原始操作,比如记事本中,就是会把abc变成[。
第二步撤销,才是还原为abc。当然目前确实有bug,第二步撤销变成什么都没有,第三步才还原为abc。

  • 名图客 (作者)

    多谢回复。

    一、经过你的论述,我大概了解了HX的undo堆栈。

    二、既然是智能处理,添加是智能包裹,撤销是不是也应该智能撤销,直接去包裹。要达到这个目的,是不是应该直接回溯两步,或者把智能操作封装为一步undo堆栈,恢复到选择文本时的状态(目前是撤销三步,还取消了选择状态),对用户来说,无感中间这个智能步骤会比较好。

    三、智能编辑器与记事本对比欠妥,应该是与各大IDE的编辑器在原子功能和用户体验上做横向对比,除非你们认为撤销两步对用户来说是更好的体验。

    2021-02-28 09:24

  • 名图客 (作者)

    不要小看了撤销回溯操作细节,这个与智能输入代码,解析代码,处理代码同样重要,也是编辑器功能的一部分,很重要的一部分。第一次使用HX就发现了这个问题,一直没有来提交bug,使用一年多了还是一直这样,显然这个问题在内部没引起重视,外部用户也没提过。

    还有个问题顺便一起提了,就不单独提交bug了,格式化问题。

    在编辑器中,当改动代码,如果涉及到行数变化,增加,或减少,使用shift+alt+F格式化代码,编辑器会滚动到顶部,尽管文本焦点还保留在最后编辑的位置,这是一个很烦人的bug,也是一直存在。代码一多,编辑器随意滚动到顶部,经常找不到刚才的位置,然后只能alt+Left来查找,但是又可能会跳到上一个编辑的文件,然后各种错误来回缠绕。这些问题的原因起点,就是格式化智能操作有小瑕疵造成的。

    2021-02-28 09:40

该问题目前已经被锁定, 无法添加新回复