Skip to content

Commit 579d998

Browse files
committed
liteeditor golangcode fix prefix min setup
1 parent 524e5e3 commit 579d998

File tree

8 files changed

+24
-11
lines changed

8 files changed

+24
-11
lines changed

liteidex/src/api/liteeditorapi/liteeditorapi.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,8 @@ class ICompleter : public QObject
123123
virtual void updateCompleterModel() = 0;
124124
virtual void updateCompleteInfo(QModelIndex index) = 0;
125125
virtual void setImportList(const QStringList &importList) = 0;
126+
virtual void setPrefixMin(int min) = 0;
127+
virtual int prefixMin() const = 0;
126128
signals:
127129
void prefixChanged(QTextCursor,QString,bool force);
128130
void wordCompleted(const QString &func, const QString &kind, const QString &info);

liteidex/src/plugins/golangcode/golangcode.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -453,7 +453,7 @@ void GolangCode::prefixChanged(QTextCursor cur,QString pre,bool force)
453453
if (pre.endsWith('.')) {
454454
m_preWord = pre;
455455
offset = 0;
456-
} else if (pre.length() == 1) {
456+
} else if (pre.length() == m_completer->prefixMin()) {
457457
m_preWord.clear();
458458
} else {
459459
if (!force) {

liteidex/src/plugins/liteeditor/codecompleter.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -474,6 +474,7 @@ int CodeCompleterProxyModel::filter(const QString &filter, int cs, LiteApi::Comp
474474
if (!m_model) {
475475
return 0;
476476
}
477+
477478
clearItems();
478479
if (ctx == LiteApi::CompleterImportContext) {
479480
QIcon icon("icon:liteeditor/images/keyword.png");

liteidex/src/plugins/liteeditor/litecompleter.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ LiteCompleter::LiteCompleter(QObject *parent) :
8585
m_completer->setCaseSensitivity(Qt::CaseSensitive);
8686
m_completer->setSeparator(".");
8787
m_stop = '(';
88+
m_prefixMin = 1;
8889
QObject::connect(m_completer, SIGNAL(activated(QModelIndex)),
8990
this, SLOT(insertCompletion(QModelIndex)));
9091
}
@@ -343,6 +344,16 @@ void LiteCompleter::setImportList(const QStringList &importList)
343344
this->m_completer->setImportList(importList);
344345
}
345346

347+
void LiteCompleter::setPrefixMin(int min)
348+
{
349+
m_prefixMin = min;
350+
}
351+
352+
int LiteCompleter::prefixMin() const
353+
{
354+
return m_prefixMin;
355+
}
356+
346357
void LiteCompleter::setSearchSeparator(bool b)
347358
{
348359
m_bSearchSeparator = b;

liteidex/src/plugins/liteeditor/litecompleter.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,8 @@ class LiteCompleter : public LiteApi::ICompleter
7373
virtual bool startCompleter(const QString &completionPrefix);
7474
virtual void updateCompleterModel();
7575
virtual void setImportList(const QStringList &importList);
76+
virtual void setPrefixMin(int min);
77+
virtual int prefixMin() const;
7678
public slots:
7779
virtual void completionPrefixChanged(QString,bool force);
7880
virtual void insertCompletion(QModelIndex);
@@ -87,6 +89,7 @@ public slots:
8789
QChar m_stop;
8890
bool m_bSearchSeparator;
8991
bool m_bExternalMode;
92+
int m_prefixMin;
9093
};
9194

9295
#endif // LITECOMPLETER_H

liteidex/src/plugins/liteeditor/liteeditor.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1003,7 +1003,6 @@ void LiteEditor::applyOption(QString id)
10031003
bool visualizeWhitespace = m_liteApp->settings()->value(EDITOR_VISUALIZEWHITESPACE,false).toBool();
10041004
int rightLineWidth = m_liteApp->settings()->value(EDITOR_RIGHTLINEWIDTH,80).toInt();
10051005
int min = m_liteApp->settings()->value(EDITOR_PREFIXLENGTH,1).toInt();
1006-
m_editorWidget->setPrefixMin(min);
10071006

10081007
m_cleanCompleterCache = m_liteApp->settings()->value(EDITOR_CLEAN_COMPLETERCACHE_SAVE,false).toBool();
10091008
m_cleanWhiteSpace = m_liteApp->settings()->value(EDITOR_CLEANWHITESPACEONSAVE,false).toBool();
@@ -1029,6 +1028,7 @@ void LiteEditor::applyOption(QString id)
10291028
if (m_completer) {
10301029
m_completer->setCaseSensitivity(caseSensitive ? Qt::CaseSensitive : Qt::CaseInsensitive);
10311030
m_completer->setFuzzy(fuzzyCompleter);
1031+
m_completer->setPrefixMin(min);
10321032
}
10331033

10341034
updateFont();

liteidex/src/plugins/liteeditor/liteeditorwidget.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,6 @@ LiteEditorWidget::LiteEditorWidget(LiteApi::IApplication *app, QWidget *parent)
5252
LiteEditorWidgetBase(app,parent),
5353
m_completer(0),
5454
m_contextMenu(0),
55-
m_completionPrefixMin(3),
5655
m_scrollWheelZooming(true),
5756
m_bSpellCheckZoneDontComplete(false)
5857
{
@@ -258,9 +257,10 @@ void LiteEditorWidget::keyPressEvent(QKeyEvent *e)
258257
completionPrefix.insert(0,'@');
259258
}
260259

261-
if (hasModifier || e->text().isEmpty()||
262-
( completionPrefix.length() < m_completionPrefixMin && completionPrefix.right(1) != ".")
263-
|| eow.contains(e->text().right(1))) {
260+
if (hasModifier ||
261+
e->text().isEmpty() ||
262+
( (completionPrefix.length() < m_completer->prefixMin()) && (completionPrefix.right(1) != ".") ) ||
263+
eow.contains(e->text().right(1))) {
264264
if (m_completer->popup()->isVisible()) {
265265
m_completer->popup()->hide();
266266
//fmt.Print( -> Print
@@ -282,6 +282,7 @@ void LiteEditorWidget::keyPressEvent(QKeyEvent *e)
282282
}
283283
return;
284284
}
285+
285286
m_completer->setCompletionContext(LiteApi::CompleterCodeContext);
286287
emit completionPrefixChanged(completionPrefix,false);
287288
m_completer->startCompleter(completionPrefix);

liteidex/src/plugins/liteeditor/liteeditorwidget.h

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,7 @@ class LiteEditorWidget : public LiteEditorWidgetBase
3333
explicit LiteEditorWidget(LiteApi::IApplication *app, QWidget *parent = 0);
3434
void setContextMenu(QMenu *contextMenu);
3535
void setCompleter(LiteApi::ICompleter *completer);
36-
void setPrefixMin(int min) {m_completionPrefixMin = min; }
3736
void setSpellCheckZoneDontComplete(bool b) {m_bSpellCheckZoneDontComplete = b; }
38-
int prefixMin() const{
39-
return m_completionPrefixMin;
40-
}
4137
void setScrollWheelZooming(bool b) {
4238
m_scrollWheelZooming = b;
4339
}
@@ -69,7 +65,6 @@ public slots:
6965
protected:
7066
LiteApi::ICompleter *m_completer;
7167
QMenu *m_contextMenu;
72-
int m_completionPrefixMin;
7368
bool m_scrollWheelZooming;
7469
bool m_bSpellCheckZoneDontComplete;
7570
};

0 commit comments

Comments
 (0)