Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
weixin_41695661
jadx
提交
4cd4746f
J
jadx
项目概览
weixin_41695661
/
jadx
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
J
jadx
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
4cd4746f
编写于
5月 22, 2022
作者:
S
Skylot
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix(gui): save variable name to show in tooltip (#1487)
上级
6448f0e3
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
35 addition
and
4 deletion
+35
-4
jadx-core/src/main/java/jadx/api/JavaVariable.java
jadx-core/src/main/java/jadx/api/JavaVariable.java
+5
-0
jadx-core/src/main/java/jadx/core/codegen/InsnGen.java
jadx-core/src/main/java/jadx/core/codegen/InsnGen.java
+2
-1
jadx-gui/src/main/java/jadx/gui/treemodel/JField.java
jadx-gui/src/main/java/jadx/gui/treemodel/JField.java
+6
-0
jadx-gui/src/main/java/jadx/gui/treemodel/JVariable.java
jadx-gui/src/main/java/jadx/gui/treemodel/JVariable.java
+13
-0
jadx-gui/src/main/java/jadx/gui/utils/UiUtils.java
jadx-gui/src/main/java/jadx/gui/utils/UiUtils.java
+9
-3
未找到文件。
jadx-core/src/main/java/jadx/api/JavaVariable.java
浏览文件 @
4cd4746f
...
...
@@ -6,6 +6,7 @@ import java.util.List;
import
org.jetbrains.annotations.ApiStatus
;
import
jadx.api.metadata.annotations.VarNode
;
import
jadx.core.dex.instructions.args.ArgType
;
public
class
JavaVariable
implements
JavaNode
{
private
final
JavaMethod
mth
;
...
...
@@ -43,6 +44,10 @@ public class JavaVariable implements JavaNode {
return
varNode
.
getType
()
+
" "
+
varNode
.
getName
()
+
" (r"
+
varNode
.
getReg
()
+
"v"
+
varNode
.
getSsa
()
+
")"
;
}
public
ArgType
getType
()
{
return
ArgType
.
tryToResolveClassAlias
(
mth
.
getMethodNode
().
root
(),
varNode
.
getType
());
}
@Override
public
JavaClass
getDeclaringClass
()
{
return
mth
.
getDeclaringClass
();
...
...
jadx-core/src/main/java/jadx/core/codegen/InsnGen.java
浏览文件 @
4cd4746f
...
...
@@ -168,10 +168,11 @@ public class InsnGen {
* Variable definition without type, only var name
*/
private
void
defVar
(
ICodeWriter
code
,
CodeVar
codeVar
)
{
String
varName
=
mgen
.
getNameGen
().
assignArg
(
codeVar
);
if
(
code
.
isMetadataSupported
())
{
code
.
attachDefinition
(
VarNode
.
get
(
mth
,
codeVar
));
}
code
.
add
(
mgen
.
getNameGen
().
assignArg
(
codeVar
)
);
code
.
add
(
varName
);
}
private
String
lit
(
LiteralArg
arg
)
{
...
...
jadx-gui/src/main/java/jadx/gui/treemodel/JField.java
浏览文件 @
4cd4746f
...
...
@@ -86,6 +86,12 @@ public class JField extends JNode {
return
UiUtils
.
typeFormatHtml
(
field
.
getFullName
(),
field
.
getType
());
}
@Override
public
String
getTooltip
()
{
String
fullType
=
UiUtils
.
escapeHtml
(
field
.
getType
().
toString
());
return
UiUtils
.
wrapHtml
(
fullType
+
' '
+
UiUtils
.
escapeHtml
(
field
.
getName
()));
}
@Override
public
String
makeDescString
()
{
return
UiUtils
.
typeStr
(
field
.
getType
())
+
" "
+
field
.
getName
();
...
...
jadx-gui/src/main/java/jadx/gui/treemodel/JVariable.java
浏览文件 @
4cd4746f
...
...
@@ -4,6 +4,7 @@ import javax.swing.Icon;
import
jadx.api.JavaNode
;
import
jadx.api.JavaVariable
;
import
jadx.gui.utils.UiUtils
;
public
class
JVariable
extends
JNode
{
private
static
final
long
serialVersionUID
=
-
3002100457834453783L
;
...
...
@@ -55,6 +56,18 @@ public class JVariable extends JNode {
return
var
.
getFullName
();
}
@Override
public
String
makeLongStringHtml
()
{
return
UiUtils
.
typeFormatHtml
(
var
.
getName
(),
var
.
getType
());
}
@Override
public
String
getTooltip
()
{
String
name
=
var
.
getName
()
+
" (r"
+
var
.
getReg
()
+
"v"
+
var
.
getSsa
()
+
")"
;
String
fullType
=
UiUtils
.
escapeHtml
(
var
.
getType
().
toString
());
return
UiUtils
.
wrapHtml
(
fullType
+
' '
+
UiUtils
.
escapeHtml
(
name
));
}
@Override
public
boolean
canRename
()
{
return
true
;
...
...
jadx-gui/src/main/java/jadx/gui/utils/UiUtils.java
浏览文件 @
4cd4746f
...
...
@@ -120,9 +120,15 @@ public class UiUtils {
}
public
static
String
typeFormatHtml
(
String
name
,
ArgType
type
)
{
return
"<html><body><nobr>"
+
escapeHtml
(
name
)
+
"<span style='color:#888888;'> "
+
escapeHtml
(
typeStr
(
type
))
+
"</span>"
+
"</nobr></body></html>"
;
return
wrapHtml
(
escapeHtml
(
name
)
+
' '
+
fadeHtml
(
escapeHtml
(
typeStr
(
type
))));
}
public
static
String
fadeHtml
(
String
htmlStr
)
{
return
"<span style='color:#888888;'>"
+
htmlStr
+
"</span>"
;
// TODO: get color from theme
}
public
static
String
wrapHtml
(
String
htmlStr
)
{
return
"<html><body><nobr>"
+
htmlStr
+
"</nobr></body></html>"
;
}
public
static
String
escapeHtml
(
String
str
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录