Code2Graph icon indicating copy to clipboard operation
Code2Graph copied to clipboard

bug: project.rename返回的rename pair中部分oldURI实际并不存在

Open TsukimiRini opened this issue 3 years ago • 1 comments

遇到一个挺迷的bug,推测与auto有关

image

如上图,第一条用红框框出的uri实际并不存在于uriTree,它的真身应该是第二个红框内的uri。 输入的oldURI和newURI为:

def://app/src/main/res/layout/toolbar.xml[language=FILE]//LinearLayout/android.support.v7.widget.Toolbar/android:id[language=XML]//@+id\\/toolbar[language=ANY]
def://app/src/main/res/layout/toolbar.xml[language=FILE]//LinearLayout/android.support.v7.widget.Toolbar/android:id[language=XML]//@+id\\/tool_bar[language=ANY]

这种情况发生在我使用如下的rule时:

r-id:
  use:
    lang: JAVA
    file: '(&javaFile).java'
    identifier: R.id.(name)
  def:
    lang: XML
    file: (&layoutName).xml
    identifier: android:id
    inline:
      identifier: '@+id\/(name)'

如果给name加上modifier就不会出现:

r-id:
  use:
    lang: JAVA
    file: '(&javaFile).java'
    identifier: R.id.(name:snake)
  def:
    lang: XML
    file: (&layoutName).xml
    identifier: android:id
    inline:
      identifier: '@+id\/(name:snake)'

TsukimiRini avatar May 19 '22 07:05 TsukimiRini

如果对应的 XML 部分是 tool_bar 的话,按照现有的 auto 逻辑应该无法匹配才对?(实测如此)

如果两个 oldUri 一致的话,说明这个 uri 被 rename 了两次,本身也是一件不正常的事情。

shigma avatar May 19 '22 21:05 shigma

@shigma image

输入是:

use://app/src/main/java/de/robv/android/xposed/installer/WelcomeActivity.java[language=FILE]//WelcomeActivity/onCreate/findViewById/R.id.toolbar[language=JAVA]
use://app/src/main/java/de/robv/android/xposed/installer/WelcomeActivity.java[language=FILE]//WelcomeActivity/onCreate/findViewById/R.id.aaa_toolBar[language=JAVA]

TsukimiRini avatar Aug 09 '22 09:08 TsukimiRini