diff --git a/src/plugins/texteditor/CMakeLists.txt b/src/plugins/texteditor/CMakeLists.txt index 010fa53b0e5..314522012e6 100644 --- a/src/plugins/texteditor/CMakeLists.txt +++ b/src/plugins/texteditor/CMakeLists.txt @@ -100,14 +100,15 @@ add_qtc_plugin(TextEditor texteditor.cpp texteditor.h texteditor.qrc texteditor_global.h - texteditortr.h texteditorconstants.cpp texteditorconstants.h texteditoroverlay.cpp texteditoroverlay.h texteditorplugin.cpp texteditorsettings.cpp texteditorsettings.h + texteditortr.h textindenter.cpp textindenter.h textmark.cpp textmark.h textstyles.h + textsuggestion.h textsuggestion.cpp typehierarchy.cpp typehierarchy.h typingsettings.cpp typingsettings.h ) diff --git a/src/plugins/texteditor/textdocumentlayout.cpp b/src/plugins/texteditor/textdocumentlayout.cpp index 27c2a059ac5..adff010cc44 100644 --- a/src/plugins/texteditor/textdocumentlayout.cpp +++ b/src/plugins/texteditor/textdocumentlayout.cpp @@ -877,14 +877,6 @@ void insertSorted(Parentheses &list, const Parenthesis &elem) list.insert(it, elem); } -TextSuggestion::TextSuggestion() -{ - m_replacementDocument.setDocumentLayout(new TextDocumentLayout(&m_replacementDocument)); - m_replacementDocument.setDocumentMargin(0); -} - -TextSuggestion::~TextSuggestion() = default; - } // TextEditor diff --git a/src/plugins/texteditor/textdocumentlayout.h b/src/plugins/texteditor/textdocumentlayout.h index 3ce9d660d0e..05e815a3ff3 100644 --- a/src/plugins/texteditor/textdocumentlayout.h +++ b/src/plugins/texteditor/textdocumentlayout.h @@ -5,15 +5,16 @@ #include "texteditor_global.h" -#include "textmark.h" #include "textdocument.h" +#include "textmark.h" +#include "textsuggestion.h" #include #include -#include #include +#include namespace TextEditor { @@ -43,29 +44,6 @@ public: virtual ~CodeFormatterData(); }; -class TEXTEDITOR_EXPORT TextSuggestion -{ -public: - TextSuggestion(); - virtual ~TextSuggestion(); - // Returns true if the suggestion was applied completely, false if it was only partially applied. - virtual bool apply() = 0; - // Returns true if the suggestion was applied completely, false if it was only partially applied. - virtual bool applyWord(TextEditorWidget *widget) = 0; - virtual bool applyLine(TextEditorWidget *widget) = 0; - virtual void reset() = 0; - virtual int position() = 0; - - int currentPosition() const { return m_currentPosition; } - void setCurrentPosition(int position) { m_currentPosition = position; } - - QTextDocument *document() { return &m_replacementDocument; } - -private: - QTextDocument m_replacementDocument; - int m_currentPosition = -1; -}; - class TEXTEDITOR_EXPORT TextBlockUserData : public QTextBlockUserData { public: diff --git a/src/plugins/texteditor/texteditor.qbs b/src/plugins/texteditor/texteditor.qbs index d0d0a020799..97458910a09 100644 --- a/src/plugins/texteditor/texteditor.qbs +++ b/src/plugins/texteditor/texteditor.qbs @@ -136,7 +136,6 @@ QtcPlugin { "texteditor.h", "texteditor.qrc", "texteditor_global.h", - "texteditortr.h", "texteditorconstants.cpp", "texteditorconstants.h", "texteditoroverlay.cpp", @@ -144,6 +143,9 @@ QtcPlugin { "texteditorplugin.cpp", "texteditorsettings.cpp", "texteditorsettings.h", + "texteditortr.h", + "textesuggestion.cpp", + "textesuggestion.h", "textindenter.cpp", "textindenter.h", "textmark.cpp", diff --git a/src/plugins/texteditor/textsuggestion.cpp b/src/plugins/texteditor/textsuggestion.cpp new file mode 100644 index 00000000000..78c58a6bacc --- /dev/null +++ b/src/plugins/texteditor/textsuggestion.cpp @@ -0,0 +1,18 @@ +// Copyright (C) 2024 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "textsuggestion.h" + +#include "textdocumentlayout.h" + +namespace TextEditor { + +TextSuggestion::TextSuggestion() +{ + m_replacementDocument.setDocumentLayout(new TextDocumentLayout(&m_replacementDocument)); + m_replacementDocument.setDocumentMargin(0); +} + +TextSuggestion::~TextSuggestion() = default; + +} // namespace TextEditor diff --git a/src/plugins/texteditor/textsuggestion.h b/src/plugins/texteditor/textsuggestion.h new file mode 100644 index 00000000000..5774fb41072 --- /dev/null +++ b/src/plugins/texteditor/textsuggestion.h @@ -0,0 +1,37 @@ +// Copyright (C) 2024 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#pragma once + +#include "texteditor_global.h" + +#include + +namespace TextEditor { + +class TextEditorWidget; + +class TEXTEDITOR_EXPORT TextSuggestion +{ +public: + TextSuggestion(); + virtual ~TextSuggestion(); + // Returns true if the suggestion was applied completely, false if it was only partially applied. + virtual bool apply() = 0; + // Returns true if the suggestion was applied completely, false if it was only partially applied. + virtual bool applyWord(TextEditorWidget *widget) = 0; + virtual bool applyLine(TextEditorWidget *widget) = 0; + virtual void reset() = 0; + virtual int position() = 0; + + int currentPosition() const { return m_currentPosition; } + void setCurrentPosition(int position) { m_currentPosition = position; } + + QTextDocument *document() { return &m_replacementDocument; } + +private: + QTextDocument m_replacementDocument; + int m_currentPosition = -1; +}; + +} // namespace TextEditor