1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
|
/*
SPDX-FileCopyrightText: 2007 Andreas Pakulat <apaku@gmx.de>
SPDX-FileCopyrightText: 2007 Piyush verma <piyush.verma@gmail.com>
SPDX-FileCopyrightText: 2010-2012 Sven Brauch <svenbrauch@googlemail.com>
SPDX-License-Identifier: GPL-2.0-or-later
*/
#ifndef PYTHON_PARSEJOB_H
#define PYTHON_PARSEJOB_H
#include "ast.h"
#include <QStringList>
#include <QExplicitlySharedDataPointer>
#include <ktexteditor/range.h>
#include <astdefaultvisitor.h>
#include <language/backgroundparser/parsejob.h>
#include <language/duchain/duchainpointer.h>
#include <language/duchain/topducontext.h>
using namespace KDevelop;
namespace Python
{
class ParseSession;
class LanguageSupport;
class ParseJob : public KDevelop::ParseJob
{
Q_OBJECT
public:
enum {
Rescheduled = (KDevelop::TopDUContext::LastFeature << 1),
PEP8Checking = (KDevelop::TopDUContext::LastFeature << 2)
};
ParseJob(const IndexedString& url, ILanguageSupport* languageSupport );
~ParseJob() override;
virtual CodeAst* ast() const;
bool wasReadFromDisk() const;
void eventuallyDoPEP8Checking(TopDUContext* topContext);
ControlFlowGraph* controlFlowGraph() override;
DataAccessRepository* dataAccessInformation() override;
protected:
void run(ThreadWeaver::JobPointer self, ThreadWeaver::Thread* thread) override;
private:
QVector<QUrl> m_cachedCustomIncludes;
CodeAst::Ptr m_ast;
bool m_readFromDisk;
KDevelop::ReferencedTopDUContext m_duContext;
KTextEditor::Range m_textRangeToParse;
QExplicitlySharedDataPointer<ParseSession> m_currentSession;
};
}
#endif
// kate: space-indent on; indent-width 4; tab-width 4; replace-tabs on; auto-insert-doxygen on
|