Copilot: Various coverity warning fixes

Change-Id: I5d86606611369f4bc11f9f21e308139bba700eb0
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
Marcus Tillmanns
2023-02-27 11:11:02 +01:00
parent 3e73fe302e
commit 4c251486e1
3 changed files with 23 additions and 17 deletions

View File

@@ -14,12 +14,22 @@ using namespace Utils;
namespace Copilot {
namespace Internal {
CopilotPlugin::~CopilotPlugin()
{
if (m_client)
m_client->shutdown();
m_client = nullptr;
}
void CopilotPlugin::initialize()
{
CopilotSettings::instance().readSettings(Core::ICore::settings());
m_client = new CopilotClient();
connect(m_client, &CopilotClient::finished, this, [this]() { m_client = nullptr; });
connect(&CopilotSettings::instance(), &CopilotSettings::applied, this, [this]() {
if (m_client)
m_client->shutdown();

View File

@@ -16,14 +16,13 @@ class CopilotPlugin : public ExtensionSystem::IPlugin
Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "Copilot.json")
public:
CopilotPlugin() {}
~CopilotPlugin() override {}
~CopilotPlugin();
void initialize() override;
void extensionsInitialized() override;
private:
CopilotClient *m_client;
CopilotClient *m_client{nullptr};
};
} // namespace Internal

View File

@@ -37,12 +37,16 @@ DocumentWatcher::DocumentWatcher(CopilotClient *client, TextDocument *textDocume
void DocumentWatcher::getSuggestion()
{
auto editor = Core::EditorManager::instance()->activateEditorForDocument(m_textDocument);
auto textEditorWidget = qobject_cast<TextEditor::TextEditorWidget *>(editor->widget());
if (!editor || !textEditorWidget)
Core::IEditor *editor = Core::EditorManager::instance()->activateEditorForDocument(
m_textDocument);
if (!editor)
return;
TextEditor::TextEditorWidget *textEditorWidget = qobject_cast<TextEditor::TextEditorWidget *>(
editor->widget());
if (!textEditorWidget)
return;
auto cursor = textEditorWidget->multiTextCursor();
Utils::MultiTextCursor cursor = textEditorWidget->multiTextCursor();
if (cursor.hasMultipleCursors() || cursor.hasSelection())
return;
@@ -61,31 +65,24 @@ void DocumentWatcher::getSuggestion()
const std::optional<GetCompletionResponse> result = response.result();
QTC_ASSERT(result, return);
const auto list = result->completions().toList();
const QList<Completion> list = result->completions().toList();
if (list.isEmpty())
return;
auto cursor = textEditorWidget->multiTextCursor();
Utils::MultiTextCursor cursor = textEditorWidget->multiTextCursor();
if (cursor.hasMultipleCursors() || cursor.hasSelection())
return;
if (cursor.cursors().first().position() != currentCursorPos)
return;
const auto firstCompletion = list.first();
const Completion firstCompletion = list.first();
const QString content = firstCompletion.text().mid(
firstCompletion.position().character());
m_isEditing = true;
textEditorWidget->insertSuggestion(content);
m_isEditing = false;
/*
m_isEditing = true;
const auto &block = m_textDocument->document()->findBlockByLineNumber(
firstCompletion.position().line());
m_textDocument->insertSuggestion(content, block);
m_isEditing = false;
*/
});
}