aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/haskell/followsymbol.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/haskell/followsymbol.cpp')
-rw-r--r--plugins/haskell/followsymbol.cpp141
1 files changed, 0 insertions, 141 deletions
diff --git a/plugins/haskell/followsymbol.cpp b/plugins/haskell/followsymbol.cpp
deleted file mode 100644
index d75c680..0000000
--- a/plugins/haskell/followsymbol.cpp
+++ /dev/null
@@ -1,141 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 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 "followsymbol.h"
-
-#include "haskelleditorwidget.h"
-#include "haskellmanager.h"
-#include "haskelltokenizer.h"
-
-#include <coreplugin/editormanager/editormanager.h>
-#include <texteditor/codeassist/assistinterface.h>
-#include <texteditor/codeassist/assistproposalitem.h>
-#include <texteditor/codeassist/genericproposal.h>
-#include <texteditor/codeassist/genericproposalmodel.h>
-
-#include <utils/qtcassert.h>
-
-using namespace TextEditor;
-using namespace Utils;
-
-namespace Haskell {
-namespace Internal {
-
-IAssistProvider::RunType FollowSymbolAssistProvider::runType() const
-{
- return AsynchronousWithThread;
-}
-
-IAssistProcessor *FollowSymbolAssistProvider::createProcessor() const
-{
- return new FollowSymbolAssistProcessor(m_inNextSplit);
-}
-
-void FollowSymbolAssistProvider::setOpenInNextSplit(bool inNextSplit)
-{
- m_inNextSplit = inNextSplit;
-}
-
-FollowSymbolAssistProcessor::FollowSymbolAssistProcessor(bool inNextSplit)
- : m_inNextSplit(inNextSplit)
-{
-}
-
-IAssistProposal *FollowSymbolAssistProcessor::immediateProposal(const AssistInterface *interface)
-{
- int line, column;
- const optional<Token> symbol
- = HaskellEditorWidget::symbolAt(interface->textDocument(), interface->position(),
- &line, &column);
- QTC_ASSERT(symbol, return nullptr); // should have been checked before
- const auto filePath = FileName::fromString(interface->fileName());
- m_ghcmod = HaskellManager::ghcModForFile(filePath);
- m_symbolFuture = m_ghcmod->findSymbol(filePath, symbol->text.toString());
-
- auto item = new AssistProposalItem();
- item->setText(HaskellManager::trLookingUp(symbol->text.toString()));
- item->setData(QString());
- item->setOrder(-1000);
-
- const QList<TextEditor::AssistProposalItemInterface *> list = {item};
- auto proposal = new GenericProposal(interface->position(), list);
- proposal->setFragile(true);
- return proposal;
-}
-
-IAssistProposal *FollowSymbolAssistProcessor::perform(const AssistInterface *interface)
-{
- const int position = interface->position();
- delete interface;
- const SymbolInfoOrError info = m_symbolFuture.result();
- auto item = new FollowSymbolAssistProposalItem(m_ghcmod->basePath(), info, m_inNextSplit);
- return new InstantProposal(position, {item});
-}
-
-FollowSymbolAssistProposalItem::FollowSymbolAssistProposalItem(const FileName &basePath,
- const SymbolInfoOrError &info,
- bool inNextSplit)
- : m_basePath(basePath),
- m_inNextSplit(inNextSplit)
-{
- const SymbolInfo *info_p = Utils::get_if<SymbolInfo>(&info);
- if (info_p && !info_p->file.isEmpty()) {
- m_info = info;
- setText(m_basePath.toString() + '/' + info_p->file.toString());
- }
-}
-
-void FollowSymbolAssistProposalItem::apply(TextDocumentManipulatorInterface &, int) const
-{
- const SymbolInfo *info_p = Utils::get_if<SymbolInfo>(&m_info);
- if (info_p)
- Core::EditorManager::openEditorAt(m_basePath.toString() + '/' + info_p->file.toString(),
- info_p->line, info_p->col - 1, Core::Id(),
- m_inNextSplit ? Core::EditorManager::OpenInOtherSplit
- : Core::EditorManager::NoFlags);
-}
-
-void InstantActivationProposalWidget::showProposal(const QString &prefix)
-{
- if (model() && model()->size() == 1) {
- emit proposalItemActivated(model()->proposalItem(0));
- deleteLater();
- return;
- }
- GenericProposalWidget::showProposal(prefix);
-}
-
-InstantProposal::InstantProposal(int cursorPos, const QList<AssistProposalItemInterface *> &items)
- : GenericProposal(cursorPos, items)
-{
-}
-
-IAssistProposalWidget *InstantProposal::createWidget() const
-{
- return new InstantActivationProposalWidget();
-}
-
-} // namespace Internal
-} // namespace Haskell