forked from qt-creator/qt-creator
C++: Use file size limit also for included files
We can't stop the clangbackend from processing huge files, but at least our built-in parser. Fixes: QTCREATORBUG-21590 Change-Id: I506024495ba0632692f2845c6c204360f4c61b33 Reviewed-by: Marco Bubke <marco.bubke@qt.io>
This commit is contained in:
@@ -50,8 +50,10 @@ static QByteArray overwrittenToolchainDefines(const ProjectPart &projectPart)
|
||||
return defines;
|
||||
}
|
||||
|
||||
BuiltinEditorDocumentParser::BuiltinEditorDocumentParser(const QString &filePath)
|
||||
BuiltinEditorDocumentParser::BuiltinEditorDocumentParser(const QString &filePath,
|
||||
int fileSizeLimitInMb)
|
||||
: BaseEditorDocumentParser(filePath)
|
||||
, m_fileSizeLimitInMb(fileSizeLimitInMb)
|
||||
{
|
||||
qRegisterMetaType<CPlusPlus::Snapshot>("CPlusPlus::Snapshot");
|
||||
}
|
||||
@@ -191,6 +193,7 @@ void BuiltinEditorDocumentParser::updateImpl(const QFutureInterface<void> &futur
|
||||
if (releaseSourceAndAST_)
|
||||
doc->releaseSourceAndAST();
|
||||
});
|
||||
sourceProcessor.setFileSizeLimitInMb(m_fileSizeLimitInMb);
|
||||
sourceProcessor.setCancelChecker([future]() {
|
||||
return future.isCanceled();
|
||||
});
|
||||
|
||||
@@ -39,7 +39,7 @@ class CPPTOOLS_EXPORT BuiltinEditorDocumentParser : public BaseEditorDocumentPar
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
BuiltinEditorDocumentParser(const QString &filePath);
|
||||
BuiltinEditorDocumentParser(const QString &filePath, int fileSizeLimitInMb = -1);
|
||||
|
||||
bool releaseSourceAndAST() const;
|
||||
void setReleaseSourceAndAST(bool release);
|
||||
@@ -79,6 +79,8 @@ private:
|
||||
|
||||
bool m_releaseSourceAndAST = true;
|
||||
ExtraState m_extraState;
|
||||
|
||||
const int m_fileSizeLimitInMb = -1;
|
||||
};
|
||||
|
||||
} // namespace CppTools
|
||||
|
||||
@@ -163,7 +163,8 @@ BuiltinEditorDocumentProcessor::BuiltinEditorDocumentProcessor(
|
||||
TextEditor::TextDocument *document,
|
||||
bool enableSemanticHighlighter)
|
||||
: BaseEditorDocumentProcessor(document->document(), document->filePath().toString())
|
||||
, m_parser(new BuiltinEditorDocumentParser(document->filePath().toString()))
|
||||
, m_parser(new BuiltinEditorDocumentParser(document->filePath().toString(),
|
||||
indexerFileSizeLimitInMb()))
|
||||
, m_codeWarningsUpdated(false)
|
||||
, m_semanticHighlighter(enableSemanticHighlighter
|
||||
? new CppTools::SemanticHighlighter(document)
|
||||
|
||||
Reference in New Issue
Block a user