summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/cppcompletionassistprovider.cpp
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2021-08-30 10:58:08 +0200
committerChristian Kandeler <christian.kandeler@qt.io>2021-09-01 14:53:58 +0000
commit284817fae6514701902ccdb834c2faa46462f2e8 (patch)
tree44a8c7d9813dc110b61c4639036366c7696bd7e9 /src/plugins/cpptools/cppcompletionassistprovider.cpp
parent3e1fa0f170d523971d2c3c12da15a6e291f56511 (diff)
downloadqt-creator-284817fae6514701902ccdb834c2faa46462f2e8.tar.gz
Merge CppTools into CppEditor
There was no proper separation of responsibilities between these plugins. In particular, CppTools had lots of editor-related functionality, so it's not clear why it was separated out in the first place. In fact, for a lot of code, it seemed quite arbitrary where it was put (just one example: switchHeaderSource() was in CppTools, wheras switchDeclarationDefinition() was in CppEditor). Merging the plugins will enable us to get rid of various convoluted pseudo-abstractions that were only introduced to keep up the artificial separation. Change-Id: Iafc3bce625b4794f6d4aa03df6cddc7f2d26716a Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Diffstat (limited to 'src/plugins/cpptools/cppcompletionassistprovider.cpp')
-rw-r--r--src/plugins/cpptools/cppcompletionassistprovider.cpp144
1 files changed, 0 insertions, 144 deletions
diff --git a/src/plugins/cpptools/cppcompletionassistprovider.cpp b/src/plugins/cpptools/cppcompletionassistprovider.cpp
deleted file mode 100644
index 08100dba44..0000000000
--- a/src/plugins/cpptools/cppcompletionassistprovider.cpp
+++ /dev/null
@@ -1,144 +0,0 @@
-/****************************************************************************
-**
-** 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 "cppcompletionassistprovider.h"
-
-#include "cpptoolsreuse.h"
-
-#include <cppeditor/cppeditorconstants.h>
-
-#include <cplusplus/Token.h>
-
-using namespace CPlusPlus;
-using namespace CppTools;
-
-// ---------------------------
-// CppCompletionAssistProvider
-// ---------------------------
-CppCompletionAssistProvider::CppCompletionAssistProvider(QObject *parent)
- : TextEditor::CompletionAssistProvider(parent)
-{}
-
-int CppCompletionAssistProvider::activationCharSequenceLength() const
-{
- return 3;
-}
-
-bool CppCompletionAssistProvider::isActivationCharSequence(const QString &sequence) const
-{
- const QChar &ch = sequence.at(2);
- const QChar &ch2 = sequence.at(1);
- const QChar &ch3 = sequence.at(0);
- return activationSequenceChar(ch, ch2, ch3, nullptr, true, false);
-}
-
-bool CppCompletionAssistProvider::isContinuationChar(const QChar &c) const
-{
- return isValidIdentifierChar(c);
-}
-
-int CppCompletionAssistProvider::activationSequenceChar(const QChar &ch,
- const QChar &ch2,
- const QChar &ch3,
- unsigned *kind,
- bool wantFunctionCall,
- bool wantQt5SignalSlots)
-{
- int referencePosition = 0;
- int completionKind = T_EOF_SYMBOL;
- switch (ch.toLatin1()) {
- case '.':
- if (ch2 != QLatin1Char('.')) {
- completionKind = T_DOT;
- referencePosition = 1;
- }
- break;
- case ',':
- completionKind = T_COMMA;
- referencePosition = 1;
- break;
- case '(':
- if (wantFunctionCall) {
- completionKind = T_LPAREN;
- referencePosition = 1;
- }
- break;
- case ':':
- if (ch3 != QLatin1Char(':') && ch2 == QLatin1Char(':')) {
- completionKind = T_COLON_COLON;
- referencePosition = 2;
- }
- break;
- case '>':
- if (ch2 == QLatin1Char('-')) {
- completionKind = T_ARROW;
- referencePosition = 2;
- }
- break;
- case '*':
- if (ch2 == QLatin1Char('.')) {
- completionKind = T_DOT_STAR;
- referencePosition = 2;
- } else if (ch3 == QLatin1Char('-') && ch2 == QLatin1Char('>')) {
- completionKind = T_ARROW_STAR;
- referencePosition = 3;
- }
- break;
- case '\\':
- case '@':
- if (ch2.isNull() || ch2.isSpace()) {
- completionKind = T_DOXY_COMMENT;
- referencePosition = 1;
- }
- break;
- case '<':
- completionKind = T_ANGLE_STRING_LITERAL;
- referencePosition = 1;
- break;
- case '"':
- completionKind = T_STRING_LITERAL;
- referencePosition = 1;
- break;
- case '/':
- completionKind = T_SLASH;
- referencePosition = 1;
- break;
- case '#':
- completionKind = T_POUND;
- referencePosition = 1;
- break;
- case '&':
- if (wantQt5SignalSlots) {
- completionKind = T_AMPER;
- referencePosition = 1;
- }
- break;
- }
-
- if (kind)
- *kind = completionKind;
-
- return referencePosition;
-}