Skip to content

Commit f7c4caa

Browse files
committed
Add all FIM actions to the Tools > llama.cpp menu
Fixes: cristianadam#6
1 parent f368c3c commit f7c4caa

2 files changed

Lines changed: 34 additions & 28 deletions

File tree

llamaplugin.cpp

Lines changed: 31 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -125,37 +125,36 @@ void LlamaPlugin::initialize()
125125
c.id.toUtf8(),
126126
c.id);
127127
});
128-
ActionManager::actionContainer(Constants::LLAMACPP_MENU_ID)->addAction(newConversationCmd);
129128

130-
ActionBuilder requestAction(this, Constants::LLAMACPP_REQUEST_SUGGESTION);
131-
requestAction.setText(Tr::tr("Request llama.cpp Suggestion"));
132-
requestAction.setToolTip(
129+
Core::Command *requestCmd
130+
= ActionManager::registerAction(&m_requestAction, Constants::LLAMACPP_REQUEST_SUGGESTION);
131+
m_requestAction.setToolTip(
133132
Tr::tr("Request llama.cpp suggestion at the current editor's cursor position."));
134-
requestAction.addOnTriggered(this, [this] {
133+
connect(&m_requestAction, &QAction::triggered, this, [this] {
135134
if (auto editor = TextEditor::TextEditorWidget::currentTextEditorWidget()) {
136135
QTextCursor cursor = editor->textCursor();
137136
int pos_x = cursor.positionInBlock();
138137
int pos_y = cursor.blockNumber() + 1;
139138
fim(pos_x, pos_y, false);
140139
}
141140
});
142-
requestAction.setDefaultKeySequence(Tr::tr("Ctrl+G"));
143-
144-
ActionBuilder toggleAction(this, Constants::LLAMACPP_TOGGLE_ENABLE_DISABLE);
145-
toggleAction.setText(Tr::tr("Toggle enable/disable llama.cpp"));
146-
toggleAction.setCheckable(true);
147-
toggleAction.setChecked(settings().enableLlamaCpp());
148-
toggleAction.setIcon(LLAMACPP_ICON.icon());
149-
toggleAction.addOnTriggered(this, [](bool checked) {
141+
requestCmd->setDefaultKeySequence(Tr::tr("Ctrl+G"));
142+
143+
Core::Command *toggleCmd
144+
= ActionManager::registerAction(&m_toggleAction, Constants::LLAMACPP_TOGGLE_ENABLE_DISABLE);
145+
m_toggleAction.setCheckable(true);
146+
m_toggleAction.setChecked(settings().enableLlamaCpp());
147+
m_toggleAction.setIcon(LLAMACPP_ICON.icon());
148+
connect(&m_toggleAction, &QAction::triggered, this, [this](bool checked) {
150149
settings().enableLlamaCpp.setValue(checked);
151150
settings().apply();
152151
});
153152

154-
ActionBuilder toggleAutoFimAction(this, Constants::LLAMACPP_TOGGLE_AUTOFIM);
155-
toggleAutoFimAction.setText(Tr::tr("Toggle Auto FIM"));
156-
toggleAutoFimAction.setCheckable(true);
157-
toggleAutoFimAction.setChecked(settings().autoFim());
158-
toggleAutoFimAction.addOnTriggered(this, [this](bool checked) {
153+
Core::Command *toggleAutoFimCmd
154+
= ActionManager::registerAction(&m_toogleAutoFimAction, Constants::LLAMACPP_TOGGLE_AUTOFIM);
155+
m_toogleAutoFimAction.setCheckable(true);
156+
m_toogleAutoFimAction.setChecked(settings().autoFim());
157+
connect(&m_toogleAutoFimAction, &QAction::triggered, this, [this](bool checked) {
159158
qCInfo(llamaLog) << "Toggle Auto FIM" << checked;
160159

161160
settings().autoFim.setValue(checked);
@@ -168,25 +167,29 @@ void LlamaPlugin::initialize()
168167
hideCompletionHint();
169168
}
170169
});
171-
toggleAutoFimAction.setDefaultKeySequence(Tr::tr("Ctrl+Shift+G"));
170+
toggleAutoFimCmd->setDefaultKeySequence(Tr::tr("Ctrl+Shift+G"));
172171

173-
QAction *toggleAct = toggleAction.contextAction();
174-
QAction *requestAct = requestAction.contextAction();
175-
QAction *toogleAutoFimAct = toggleAutoFimAction.contextAction();
176-
auto updateActions = [toggleAct, requestAct, toogleAutoFimAct] {
172+
auto menuContainer = ActionManager::actionContainer(Constants::LLAMACPP_MENU_ID);
173+
menuContainer->addAction(newConversationCmd);
174+
menuContainer->addSeparator();
175+
menuContainer->addAction(requestCmd);
176+
menuContainer->addAction(toggleCmd);
177+
menuContainer->addAction(toggleAutoFimCmd);
178+
179+
auto updateActions = [this] {
177180
const bool enabled = settings().enableLlamaCpp();
178-
toggleAct->setToolTip(enabled ? Tr::tr("Disable llama.cpp.") : Tr::tr("Enable llama.cpp."));
179-
toggleAct->setChecked(enabled);
180-
requestAct->setEnabled(enabled);
181-
toogleAutoFimAct->setEnabled(enabled);
181+
m_toggleAction.setToolTip(enabled ? Tr::tr("Disable llama.cpp.") : Tr::tr("Enable llama.cpp."));
182+
m_toggleAction.setChecked(enabled);
183+
m_requestAction.setEnabled(enabled);
184+
m_toogleAutoFimAction.setEnabled(enabled);
182185
};
183186

184187
settings().enableLlamaCpp.addOnChanged(this, updateActions);
185188

186189
updateActions();
187190

188191
auto toggleButton = new QToolButton;
189-
toggleButton->setDefaultAction(toggleAction.contextAction());
192+
toggleButton->setDefaultAction(&m_toggleAction);
190193
StatusBarManager::addStatusBarWidget(toggleButton, StatusBarManager::RightCorner);
191194

192195
setupLlamaCppProjectPanel();

llamaplugin.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,9 @@ private slots:
116116
static QRegularExpression s_whitespace_regex;
117117

118118
QAction m_newConversation{Tr::tr("New Conversation")};
119+
QAction m_toggleAction{Tr::tr("Toggle enable/disable llama.cpp")};
120+
QAction m_requestAction{Tr::tr("Request llama.cpp Suggestion")};
121+
QAction m_toogleAutoFimAction{Tr::tr("Toggle Auto FIM")};
119122
};
120123

121124
} // namespace LlamaCpp

0 commit comments

Comments
 (0)