Skip to content

Commit 7717b1e

Browse files
committed
fix: symbol definition save error in large repos
1 parent 949cbe1 commit 7717b1e

File tree

2 files changed

+28
-28
lines changed

2 files changed

+28
-28
lines changed

internal/service/indexer_test.go

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -746,12 +746,12 @@ func TestIndexer_QueryCallGraph_BySymbolName(t *testing.T) {
746746
defer memFile.Close()
747747
defer pprof.WriteHeapProfile(memFile)
748748

749-
// env.workspaceDir = "/home/kcx/codeWorkspace/testProjects/java/hadoop"
750-
env.workspaceDir = "/home/kcx/codeWorkspace/testProjects/cpp/grpc"
749+
env.workspaceDir = "/home/kcx/codeWorkspace/testProjects/java/hadoop"
750+
// env.workspaceDir = "/home/kcx/codeWorkspace/testProjects/cpp/grpc"
751751
err = initWorkspaceModel(env)
752752
assert.NoError(t, err)
753-
// testVisitPattern.IncludeExts = []string{".java"}
754-
testVisitPattern.IncludeExts = []string{".cpp", ".cc", ".cxx", ".hpp", ".h"}
753+
testVisitPattern.IncludeExts = []string{".java"}
754+
// testVisitPattern.IncludeExts = []string{".cpp", ".cc", ".cxx", ".hpp", ".h"}
755755
// 创建测试索引器
756756
testIndexer := createTestIndexer(env, testVisitPattern)
757757

@@ -784,14 +784,14 @@ func TestIndexer_QueryCallGraph_BySymbolName(t *testing.T) {
784784
// desc: "查询IndexWorkspace方法的调用链",
785785
// project: "codebase-indexer",
786786
// },
787-
// {
788-
// name: "authenticate方法调用链",
789-
// filePath: "hadoop-common-project/hadoop-auth/src/main/java/org/apache/hadoop/security/authentication/client/KerberosAuthenticator.java",
790-
// symbolName: "authenticate",
791-
// maxLayer: 5,
792-
// desc: "查询authenticate方法的调用链",
793-
// project: "hadoop",
794-
// },
787+
{
788+
name: "authenticate方法调用链",
789+
filePath: "hadoop-common-project/hadoop-auth/src/main/java/org/apache/hadoop/security/authentication/client/KerberosAuthenticator.java",
790+
symbolName: "authenticate",
791+
maxLayer: 5,
792+
desc: "查询authenticate方法的调用链",
793+
project: "hadoop",
794+
},
795795
// {
796796
// name: "Get方法调用链",
797797
// filePath: "staging/src/k8s.io/component-base/version/version.go",
@@ -801,14 +801,14 @@ func TestIndexer_QueryCallGraph_BySymbolName(t *testing.T) {
801801
// project: "kubernetes",
802802
// },
803803

804-
{
805-
name:"RunServer",
806-
filePath: "examples/cpp/generic_api/greeter_server.cc",
807-
symbolName: "RunServer",
808-
maxLayer: 20,
809-
desc: "查询greeter_server.cc文件的调用链",
810-
project: "grpc",
811-
},
804+
// {
805+
// name:"RunServer",
806+
// filePath: "examples/cpp/generic_api/greeter_server.cc",
807+
// symbolName: "RunServer",
808+
// maxLayer: 20,
809+
// desc: "查询greeter_server.cc文件的调用链",
810+
// project: "grpc",
811+
// },
812812
}
813813

814814
for _, tc := range testCases {

pkg/codegraph/analyzer/dependency.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -89,13 +89,14 @@ func (da *DependencyAnalyzer) SaveSymbolOccurrences(ctx context.Context, project
8989
case *resolver.Class, *resolver.Function, *resolver.Method, *resolver.Interface, *resolver.Variable:
9090
if element.GetType() == types.ElementTypeVariable {
9191
totalVariables++
92+
// 定义位置
93+
// 有些变量是函数类型(ts),只处理全局/包级变量
94+
if da.shouldSkipVariable(totalFiles, element) {
95+
totalVariablesFiltered++
96+
continue
97+
}
9298
}
93-
// 定义位置
94-
// 有些变量是函数类型(ts),只处理全局/包级变量
95-
if da.shouldSkipVariable(totalFiles, element) {
96-
totalVariablesFiltered++
97-
continue
98-
}
99+
99100
symbol, load := da.loadSymbolOccurrenceByStrategy(ctx, projectUuid, totalFiles, element, symbolCache, fileTable)
100101
if load {
101102
totalLoad++
@@ -235,7 +236,6 @@ func (da *DependencyAnalyzer) CalculateSymbolMatchScore(callerImports []*codegra
235236

236237
// 4、路径相似性匹配
237238
similarity := strsim.Compare(callerFilePath, calleeFilePath, strsim.Cosine())
238-
score := int(5 * similarity) * 0
239+
score := int(5*similarity) * 0
239240
return score
240241
}
241-

0 commit comments

Comments
 (0)