Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
概述
有时,我们会发现在使用 IntelliJ-EmmyLua 来 Debug 时,一些字符串信息会显示不全。
具体的显示不全的情况有:字符串截断,ASCII控制字符被替换为固定字符,等等。
显示不全,导致调试过程中不方便,无法准确得知字符串的内容。
为了解决这个问题,本PR为 IntelliJ-EmmyLua 增加特性,可以使得 EmmyLua 在必要时增加显示字符串的Hex及ASCII码。
需要注意的是,本PR依赖EmmyLuaDebugger的PR,见EmmyLua/EmmyLuaDebugger#50。
结合示例说明本PR
测试用例
假设正在断点调试以下代码:
原版EmmyLua
当前最新官方版本:1.4.9-IDEA231,发布日期:Nov 15, 2023,
断点,能看到以下内容:
分析:
本PR版本
对同样的Lua代码进行断点,查看字符串的内容,有:
分析:
实现细节
修改EmmyLuaDebug
核心修改为:zhangjiequan/EmmyLuaDebugger@38946d6。
见EmmyLuaDebugger的PR:EmmyLua/EmmyLuaDebugger#50。
主要是增加string类型,使得可以由后续的IntelliJ-EmmyLua中的emmyHelper.lua控制显示的内容。
修改IntelliJ-EmmyLua
核心修改为:88fb70a。
增加内容的条件
只在必要时,才去追加内容,避免不必要时追加了内容,造成干扰。
需要追加内容的条件是:
(什么是可打印:根据实验,得到定义printableChars的字符是会被rider转义的,所以是可打印的;同时,按ascii规定,32~126的字符也是可打印的。)
输出模式
为了方便控制,我还提供了输出模式选项。
待办
插件面板中增加输出模式的选择
类似架构选择,可以选择x64、x86,
这里增加对应的RadioButton,选择后会自动修改下方代码中的Mode。
需要修改的文件有: