Added a code completion outline thingy which does not work · scummos/kdevelop-python@d757199 · GitHub
Skip to content

Commit d757199

Browse files
committed
Added a code completion outline thingy which does not work
1 parent c0cdeb2 commit d757199

15 files changed

Lines changed: 180 additions & 34 deletions

‎.kdev_include_paths‎

Lines changed: 4 additions & 2 deletions

‎CMakeLists.txt‎

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${kdevpython_SOURCE_DIR}/cmake/)
77
#complain about the FindKDevelop-PG.cmake file not findable.
88
find_package(KDE4 REQUIRED)
99

10-
find_package(KDevPlatform 0.9.80 REQUIRED)
10+
find_package(KDevPlatform 1.0.0 REQUIRED)
1111

1212
include_directories(
1313
${KDEVPLATFORM_INCLUDE_DIR}
@@ -30,6 +30,7 @@ include_directories(
3030

3131
add_subdirectory(parser)
3232
add_subdirectory(duchain)
33+
add_subdirectory(codecompletion)
3334

3435
set(kdevpythonlanguagesupport_PART_SRCS
3536
pythonlanguagesupport.cpp
@@ -47,11 +48,9 @@ target_link_libraries(kdevpythonlanguagesupport
4748
${KDE4_KTEXTEDITOR_LIBS}
4849
kdev4pythonparser
4950
kdev4pythonduchain
51+
kdev4phpcompletion
5052
)
5153

5254
install(TARGETS kdevpythonlanguagesupport DESTINATION ${PLUGIN_INSTALL_DIR})
5355

5456
install(FILES kdevpythonsupport.desktop DESTINATION ${SERVICES_INSTALL_DIR})
55-
56-
57-

‎codecompletion/CMakeLists.txt‎

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
include_directories(
2+
${CMAKE_CURRENT_BINRAY_DIR}
3+
${CMAKE_CURRENT_SOURCE_DIR}
4+
)
5+
6+
set(completion_SRCS
7+
pythoncodecompletioncontext.cpp
8+
pythoncodecompletionmodel.cpp
9+
pythoncodecompletionworker.cpp
10+
)
11+
12+
kde4_add_library(kdev4pythoncompletion SHARED ${completion_SRCS})
13+
14+
target_link_libraries(kdev4pythoncompletion
15+
${KDE4_KDECORE_LIBS}
16+
${KDEVPLATFORM_LANGUAGE_LIBRARIES}
17+
)
18+
19+
install(TARGETS ${kdev4pythoncompletion} DESTINATION ${INSTALL_TARGETS_DEFAULT_ARGS})
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
#include "pythoncodecompletioncontext.h"
2+
#include <language/codecompletion/codecompletionitem.h>
3+
#include <language/duchain/duchainpointer.h>
4+
#include <language/codecompletion/normaldeclarationcompletionitem.h>
5+
#include <language/util/includeitem.h>
6+
7+
using namespace KDevelop;
8+
9+
QList<CompletionTreeItemPointer> PythonCodeCompletionContext::completionItems(bool& abort, bool fullCompletion)
10+
{
11+
QList<CompletionTreeItemPointer> items;
12+
13+
CompletionTreeItem* item = new CompletionTreeItem();
14+
items << CompletionTreeItemPointer( item );
15+
16+
return items;
17+
}
18+
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#ifndef PYTHONCODECOMPLETIONCONTEXT_H
2+
#define PYTHONCODECOMPLETIONCONTEXT_H
3+
4+
#include <language/codecompletion/codecompletioncontext.h>
5+
6+
7+
class PythonCodeCompletionContext : public KDevelop::CodeCompletionContext
8+
{
9+
10+
public:
11+
virtual QList< KDevelop::CompletionTreeItemPointer > completionItems(bool& abort, bool fullCompletion = true);
12+
};
13+
14+
#endif // PYTHONCODECOMPLETIONCONTEXT_H
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#include "pythoncodecompletionmodel.h"
2+
#include "pythoncodecompletionworker.h"
3+
#include "ktexteditor/view.h"
4+
5+
PythonCodeCompletionModel::PythonCodeCompletionModel(QObject* parent)
6+
: CodeCompletionModel(parent)
7+
{
8+
9+
}
10+
11+
PythonCodeCompletionModel::~PythonCodeCompletionModel() { }
12+
13+
14+
KTextEditor::Range PythonCodeCompletionModel::completionRange(KTextEditor::View* view, const KTextEditor::Cursor& position)
15+
{
16+
return KTextEditor::CodeCompletionModelControllerInterface3::completionRange(view, position);
17+
}
18+
19+
KDevelop::CodeCompletionWorker* PythonCodeCompletionModel::createCompletionWorker()
20+
{
21+
return new PythonCodeCompletionWorker(this);
22+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#ifndef PYTHONCODECOMPLETIONMODEL_H
2+
#define PYTHONCODECOMPLETIONMODEL_H
3+
4+
#include <language/codecompletion/codecompletionmodel.h>
5+
#include <language/duchain/duchainpointer.h>
6+
#include "pythoncompletionexport.h"
7+
8+
class KDEVPYTHONCOMPLETION_EXPORT PythonCodeCompletionModel : public KDevelop::CodeCompletionModel
9+
{
10+
11+
public:
12+
PythonCodeCompletionModel(QObject* parent);
13+
virtual ~PythonCodeCompletionModel();
14+
15+
virtual KDevelop::CodeCompletionWorker* createCompletionWorker();
16+
KTextEditor::Range completionRange(KTextEditor::View* view, const KTextEditor::Cursor &position);
17+
};
18+
19+
#endif // PYTHONCODECOMPLETIONMODEL_H
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#include "pythoncodecompletionworker.h"
2+
#include "pythoncodecompletionmodel.h"
3+
4+
PythonCodeCompletionWorker::PythonCodeCompletionWorker(PythonCodeCompletionModel *parent)
5+
: KDevelop::CodeCompletionWorker(parent)
6+
{
7+
8+
}
9+
10+
KDevelop::CodeCompletionContext* PythonCodeCompletionWorker::createCompletionContext(KDevelop::DUContextPointer context, const QString& contextText, const QString& followingText, const KDevelop::CursorInRevision& position) const
11+
{
12+
return KDevelop::CodeCompletionWorker::createCompletionContext(context, contextText, followingText, position);
13+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
#ifndef PYTHONCODECOMPLETIONWORKER_H
2+
#define PYTHONCODECOMPLETIONWORKER_H
3+
4+
#include "pythoncodecompletionmodel.h"
5+
#include <language/codecompletion/codecompletionworker.h>
6+
#include <language/codecompletion/codecompletionitem.h>
7+
8+
class PythonCodeCompletionWorker : public KDevelop::CodeCompletionWorker
9+
{
10+
11+
public:
12+
PythonCodeCompletionWorker(PythonCodeCompletionModel *parent);
13+
virtual KDevelop::CodeCompletionContext* createCompletionContext(KDevelop::DUContextPointer context, const QString& contextText, const QString& followingText, const KDevelop::CursorInRevision& position) const;
14+
};
15+
16+
#endif // PYTHONCODECOMPLETIONWORKER_H
Lines changed: 16 additions & 0 deletions

0 commit comments

Comments
 (0)