Commit b1390a07 authored by David Schulz's avatar David Schulz
Browse files

Android: Simplify code assist by using KeywordsCompletionProvider



Change-Id: I566e54e8cb539227019fd9cf94113924d1ac9822
Reviewed-by: Eike Ziller's avatarEike Ziller <eike.ziller@qt.io>
Reviewed-by: Vikas Pachdha's avatarVikas Pachdha <vikas.pachdha@qt.io>
parent 9205bc7a
......@@ -41,7 +41,6 @@ HEADERS += \
androidsignaloperation.h \
javaeditor.h \
javaindenter.h \
javacompletionassistprovider.h \
avddialog.h \
android_global.h \
androidbuildapkstep.h \
......@@ -86,7 +85,6 @@ SOURCES += \
androidsignaloperation.cpp \
javaeditor.cpp \
javaindenter.cpp \
javacompletionassistprovider.cpp \
avddialog.cpp \
androidbuildapkstep.cpp \
androidbuildapkwidget.cpp \
......
......@@ -107,8 +107,6 @@ Project {
"avddialog.h",
"certificatesmodel.cpp",
"certificatesmodel.h",
"javacompletionassistprovider.cpp",
"javacompletionassistprovider.h",
"javaeditor.cpp",
"javaeditor.h",
"javaindenter.cpp",
......
......@@ -42,7 +42,6 @@
#include "androidruncontrol.h"
#include "androidsettingspage.h"
#include "androidtoolchain.h"
#include "javacompletionassistprovider.h"
#include "javaeditor.h"
#ifdef HAVE_QBS
......
/****************************************************************************
**
** Copyright (C) 2016 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qt Creator.
**
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3 as published by the Free Software
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
** included in the packaging of this file. Please review the following
** information to ensure the GNU General Public License requirements will
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
**
****************************************************************************/
#include "javacompletionassistprovider.h"
#include "androidconstants.h"
#include <texteditor/codeassist/assistinterface.h>
#include <texteditor/codeassist/keywordscompletionassist.h>
#include <coreplugin/id.h>
using namespace Android;
using namespace Android::Internal;
static const char *const keywords[] = {
"abstract",
"continue",
"for",
"new",
"switch",
"assert",
"default",
"goto",
"package",
"synchronized",
"boolean",
"do",
"if",
"private",
"this",
"break",
"double",
"implements",
"protected",
"throw",
"byte",
"else",
"import",
"public",
"throws",
"case",
"enum",
"instanceof",
"return",
"transient",
"catch",
"extends",
"int",
"short",
"try",
"char",
"final",
"interface",
"static",
"void",
"class",
"finally",
"long",
"strictfp",
"volatile",
"const",
"float",
"native",
"super",
"while",
0
};
JavaCompletionAssistProvider::JavaCompletionAssistProvider()
{
}
JavaCompletionAssistProvider::~JavaCompletionAssistProvider()
{
}
void JavaCompletionAssistProvider::init() const
{
for (uint i = 0; i < sizeof keywords / sizeof keywords[0] - 1; i++)
m_keywords.append(QLatin1String(keywords[i]));
}
TextEditor::IAssistProcessor *JavaCompletionAssistProvider::createProcessor() const
{
if (m_keywords.isEmpty())
init();
TextEditor::Keywords keywords = TextEditor::Keywords(m_keywords,
QStringList(),
QMap<QString, QStringList>());
return new TextEditor::KeywordsCompletionAssistProcessor(keywords);
}
/****************************************************************************
**
** Copyright (C) 2016 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qt Creator.
**
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3 as published by the Free Software
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
** included in the packaging of this file. Please review the following
** information to ensure the GNU General Public License requirements will
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
**
****************************************************************************/
#pragma once
#include <texteditor/codeassist/completionassistprovider.h>
#include <QStringList>
namespace Android {
namespace Internal {
class JavaCompletionAssistProvider : public TextEditor::CompletionAssistProvider
{
Q_OBJECT
public:
JavaCompletionAssistProvider();
~JavaCompletionAssistProvider();
void init() const;
TextEditor::IAssistProcessor *createProcessor() const;
private:
mutable QStringList m_keywords;
};
} // namespace Internal
} // namespace Android
......@@ -26,8 +26,8 @@
#include "javaeditor.h"
#include "javaindenter.h"
#include "androidconstants.h"
#include "javacompletionassistprovider.h"
#include <texteditor/codeassist/keywordscompletionassist.h>
#include <coreplugin/editormanager/ieditorfactory.h>
#include <texteditor/normalindenter.h>
#include <texteditor/textdocument.h>
......@@ -59,6 +59,14 @@ static TextEditor::TextDocument *createJavaDocument()
JavaEditorFactory::JavaEditorFactory()
{
static QStringList keywords = {
"abstract", "assert", "boolean", "break", "byte", "case", "catch", "char", "class", "const",
"continue", "default", "do", "double", "else", "enum", "extends", "final", "finally",
"float", "for", "goto", "if", "implements", "import", "instanceof", "int", "interface",
"long", "native", "new", "package", "private", "protected", "public", "return", "short",
"static", "strictfp", "super", "switch", "synchronized", "this", "throw", "throws",
"transient", "try", "void", "volatile", "while"
};
setId(Constants::JAVA_EDITOR_ID);
setDisplayName(tr("Java Editor"));
addMimeType(Constants::JAVA_MIMETYPE);
......@@ -67,8 +75,8 @@ JavaEditorFactory::JavaEditorFactory()
setUseGenericHighlighter(true);
setCommentDefinition(Utils::CommentDefinition::CppStyle);
setEditorActionHandlers(TextEditor::TextEditorActionHandler::UnCommentSelection);
setCompletionAssistProvider(new JavaCompletionAssistProvider);
setMarksVisible(true);
setCompletionAssistProvider(new TextEditor::KeywordsCompletionAssistProvider(keywords));
}
} // namespace Internal
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment