forked from qt-creator/qt-creator
Qml: Make import classification in Bind less verbose.
This commit is contained in:
@@ -579,15 +579,7 @@ AST::Node *SemanticInfo::nodeUnderCursor(int pos) const
|
||||
|
||||
const unsigned cursorPosition = pos;
|
||||
|
||||
foreach (const Bind::ImportInfo &import, document->bind()->fileImports()) {
|
||||
if (importContainsCursor(import.ast, cursorPosition))
|
||||
return import.ast;
|
||||
}
|
||||
foreach (const Bind::ImportInfo &import, document->bind()->directoryImports()) {
|
||||
if (importContainsCursor(import.ast, cursorPosition))
|
||||
return import.ast;
|
||||
}
|
||||
foreach (const Bind::ImportInfo &import, document->bind()->libraryImports()) {
|
||||
foreach (const Bind::ImportInfo &import, document->bind()->imports()) {
|
||||
if (importContainsCursor(import.ast, cursorPosition))
|
||||
return import.ast;
|
||||
}
|
||||
@@ -1389,8 +1381,8 @@ TextEditor::BaseTextEditor::Link QmlJSTextEditor::findLinkAt(const QTextCursor &
|
||||
|
||||
if (AST::UiImport *importAst = cast<AST::UiImport *>(node)) {
|
||||
// if it's a file import, link to the file
|
||||
foreach (const Bind::ImportInfo &import, semanticInfo.document->bind()->fileImports()) {
|
||||
if (import.ast == importAst) {
|
||||
foreach (const Bind::ImportInfo &import, semanticInfo.document->bind()->imports()) {
|
||||
if (import.ast == importAst && import.type == Bind::ImportInfo::FileImport) {
|
||||
BaseTextEditor::Link link(import.name);
|
||||
link.begin = importAst->firstSourceLocation().begin();
|
||||
link.end = importAst->lastSourceLocation().end();
|
||||
|
||||
@@ -276,15 +276,16 @@ static void findNewFileImports(const Document::Ptr &doc, const Snapshot &snapsho
|
||||
QStringList *importedFiles, QSet<QString> *scannedPaths)
|
||||
{
|
||||
// scan files and directories that are explicitly imported
|
||||
foreach (const Bind::ImportInfo &fileImport, doc->bind()->fileImports()) {
|
||||
if (! snapshot.document(fileImport.name))
|
||||
*importedFiles += fileImport.name;
|
||||
}
|
||||
foreach (const Bind::ImportInfo &directoryImport, doc->bind()->directoryImports()) {
|
||||
if (snapshot.documentsInDirectory(directoryImport.name).isEmpty()) {
|
||||
if (! scannedPaths->contains(directoryImport.name)) {
|
||||
*importedFiles += qmlFilesInDirectory(directoryImport.name);
|
||||
scannedPaths->insert(directoryImport.name);
|
||||
foreach (const Bind::ImportInfo &import, doc->bind()->imports()) {
|
||||
if (import.type == Bind::ImportInfo::FileImport) {
|
||||
if (! snapshot.document(import.name))
|
||||
*importedFiles += import.name;
|
||||
} else if (import.type == Bind::ImportInfo::DirectoryImport) {
|
||||
if (snapshot.documentsInDirectory(import.name).isEmpty()) {
|
||||
if (! scannedPaths->contains(import.name)) {
|
||||
*importedFiles += qmlFilesInDirectory(import.name);
|
||||
scannedPaths->insert(import.name);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -296,10 +297,12 @@ static void findNewLibraryImports(const Document::Ptr &doc, const Snapshot &snap
|
||||
{
|
||||
// scan library imports
|
||||
const QStringList importPaths = modelManager->importPaths();
|
||||
foreach (const Bind::ImportInfo &libraryImport, doc->bind()->libraryImports()) {
|
||||
foreach (const Bind::ImportInfo &import, doc->bind()->imports()) {
|
||||
if (import.type != Bind::ImportInfo::LibraryImport)
|
||||
continue;
|
||||
foreach (const QString &importPath, importPaths) {
|
||||
QDir dir(importPath);
|
||||
dir.cd(libraryImport.name);
|
||||
dir.cd(import.name);
|
||||
const QString targetPath = dir.absolutePath();
|
||||
|
||||
// if we know there is a library, done
|
||||
|
||||
Reference in New Issue
Block a user