aboutsummaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/sqlitestudiocli/clicompleter.h
diff options
context:
space:
mode:
Diffstat (limited to 'SQLiteStudio3/sqlitestudiocli/clicompleter.h')
-rw-r--r--SQLiteStudio3/sqlitestudiocli/clicompleter.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/SQLiteStudio3/sqlitestudiocli/clicompleter.h b/SQLiteStudio3/sqlitestudiocli/clicompleter.h
new file mode 100644
index 0000000..a43a98d
--- /dev/null
+++ b/SQLiteStudio3/sqlitestudiocli/clicompleter.h
@@ -0,0 +1,30 @@
+#ifndef CLICOMPLETER_H
+#define CLICOMPLETER_H
+
+#include <QStringList>
+
+class CLI;
+
+class CliCompleter
+{
+ public:
+ static CliCompleter* getInstance();
+ static char** complete(const char* text, int start, int end);
+
+ void init(CLI* value);
+
+ private:
+ CliCompleter();
+ QStringList completeInternal(const QString& toBeReplaced, const QString& text, int curPos);
+ QStringList completeCommand(const QString& str, int curPos);
+ QStringList completeQuery(const QString& toBeReplaced, const QString& str, int curPos);
+ bool doKeepOriginalStr(const QString& str, int curPos);
+
+ static char** toCharArray(const QStringList& list);
+
+ static CliCompleter* instance;
+
+ CLI* cli = nullptr;
+};
+
+#endif // CLICOMPLETER_H