diff --git a/java_indexer/src/main/java/com/sourcetrail/AstVisitor.java b/java_indexer/src/main/java/com/sourcetrail/AstVisitor.java index c0eeda39..107e722b 100644 --- a/java_indexer/src/main/java/com/sourcetrail/AstVisitor.java +++ b/java_indexer/src/main/java/com/sourcetrail/AstVisitor.java @@ -30,9 +30,11 @@ import org.eclipse.jdt.core.dom.Javadoc; import org.eclipse.jdt.core.dom.LineComment; import org.eclipse.jdt.core.dom.MethodDeclaration; import org.eclipse.jdt.core.dom.MethodInvocation; +import org.eclipse.jdt.core.dom.Name; import org.eclipse.jdt.core.dom.NameQualifiedType; import org.eclipse.jdt.core.dom.PackageDeclaration; import org.eclipse.jdt.core.dom.PrimitiveType; +import org.eclipse.jdt.core.dom.QualifiedName; import org.eclipse.jdt.core.dom.QualifiedType; import org.eclipse.jdt.core.dom.SimpleName; import org.eclipse.jdt.core.dom.SimpleType; @@ -82,12 +84,24 @@ public abstract class AstVisitor extends ASTVisitor @Override public boolean visit(PackageDeclaration node) { + Name name = node.getName(); m_client.recordSymbolWithLocation( - DeclNameResolver.getQualifiedName(node.getName()).toNameHierarchy(), + DeclNameResolver.getQualifiedName(name).toNameHierarchy(), SymbolKind.PACKAGE, getRange(node.getName()), AccessKind.NONE, DefinitionKind.EXPLICIT); + + while (name instanceof QualifiedName) + { + name = ((QualifiedName) name).getQualifier(); + m_client.recordSymbol( + DeclNameResolver.getQualifiedName(name).toNameHierarchy(), + SymbolKind.PACKAGE, + AccessKind.NONE, + DefinitionKind.EXPLICIT); + } + return true; } diff --git a/src/lib/data/search/SearchIndex.cpp b/src/lib/data/search/SearchIndex.cpp index 75b27a50..943829cf 100644 --- a/src/lib/data/search/SearchIndex.cpp +++ b/src/lib/data/search/SearchIndex.cpp @@ -110,7 +110,7 @@ std::vector SearchIndex::search( searchRecursive(startPath, utility::toLowerCase(query), filter, &paths); // create scored search results - std::multiset searchResults = createScoredResults(paths, filter, maxResultCount * 2); + std::multiset searchResults = createScoredResults(paths, filter, maxResultCount * 3); // find best scores std::map scoresCache; diff --git a/src/lib/data/storage/PersistentStorage.cpp b/src/lib/data/storage/PersistentStorage.cpp index ee8c8e70..cad67e41 100644 --- a/src/lib/data/storage/PersistentStorage.cpp +++ b/src/lib/data/storage/PersistentStorage.cpp @@ -716,7 +716,7 @@ std::vector PersistentStorage::getAutocompletionSymbolMatches( std::vector PersistentStorage::getAutocompletionFileMatches(const std::string& query, size_t maxResultsCount) const { - std::vector results = m_fileIndex.search(query, Node::NODE_FILE, maxResultsCount, 150); + std::vector results = m_fileIndex.search(query, Node::NODE_FILE, maxResultsCount, 100); // create SearchMatches std::vector matches;