[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [akonadi-next/feature/new_cli] akonadi2_cli: move Syntax out of SyntraxTree
From: Aaron Seigo <aseigo () kde ! org>
Date: 2015-12-23 19:38:31
Message-ID: E1aBpF1-0003ky-Os () scm ! kde ! org
[Download RAW message or body]
Git commit 5e9c1172ca196bdc8bcdc842e54efc5a74908fff by Aaron Seigo.
Committed on 23/12/2015 at 19:31.
Pushed by aseigo into branch 'feature/new_cli'.
move Syntax out of SyntraxTree
M +1 -1 akonadi2_cli/repl/replStates.cpp
M +1 -1 akonadi2_cli/syntax_modules/akonadi_list.cpp
M +7 -7 akonadi2_cli/syntax_modules/core_syntax.cpp
M +2 -2 akonadi2_cli/syntaxtree.cpp
M +23 -21 akonadi2_cli/syntaxtree.h
http://commits.kde.org/akonadi-next/5e9c1172ca196bdc8bcdc842e54efc5a74908fff
diff --git a/akonadi2_cli/repl/replStates.cpp b/akonadi2_cli/repl/replStates.cpp
index 0273aa2..0179779 100644
--- a/akonadi2_cli/repl/replStates.cpp
+++ b/akonadi2_cli/repl/replStates.cpp
@@ -149,7 +149,7 @@ static char **akonadi2_cli_tab_completion(const char *text, int \
start, int end)
static char *akonadi2_cli_next_tab_complete_match(const char *text, int state)
{
- QVector<SyntaxTree::Syntax> nearest = \
SyntaxTree::self()->nearestSyntax(tab_completion_full_state, QString(text)); + \
SyntaxTree::SyntaxList nearest = \
SyntaxTree::self()->nearestSyntax(tab_completion_full_state, QString(text));
if (nearest.size() > state) {
return qstrdup(nearest[state].keyword.toUtf8());
diff --git a/akonadi2_cli/syntax_modules/akonadi_list.cpp \
b/akonadi2_cli/syntax_modules/akonadi_list.cpp index 26b1f1e..62824ee 100644
--- a/akonadi2_cli/syntax_modules/akonadi_list.cpp
+++ b/akonadi2_cli/syntax_modules/akonadi_list.cpp
@@ -42,7 +42,7 @@ namespace AkonadiList
SyntaxTree::SyntaxList syntax()
{
SyntaxTree::SyntaxList syntax;
- syntax << SyntaxTree::Syntax("list", QObject::tr("List all resources, or the \
contents of one or more resources"), &AkonadiList::list, \
SyntaxTree::Syntax::EventDriven); + syntax << Syntax("list", QObject::tr("List all \
resources, or the contents of one or more resources"), &AkonadiList::list, \
Syntax::EventDriven);
return syntax;
}
diff --git a/akonadi2_cli/syntax_modules/core_syntax.cpp \
b/akonadi2_cli/syntax_modules/core_syntax.cpp index f9cd622..1231e29 100644
--- a/akonadi2_cli/syntax_modules/core_syntax.cpp
+++ b/akonadi2_cli/syntax_modules/core_syntax.cpp
@@ -30,15 +30,15 @@ namespace CoreSyntax
SyntaxTree::SyntaxList syntax()
{
SyntaxTree::SyntaxList syntax;
- syntax << SyntaxTree::Syntax("exit", QObject::tr("Exits the application. Ctrl-d \
also works!"), &CoreSyntax::exit);
- syntax << SyntaxTree::Syntax(QObject::tr("help"), QObject::tr("Print command \
information: help [command]"), &CoreSyntax::showHelp); + syntax << Syntax("exit", \
QObject::tr("Exits the application. Ctrl-d also works!"), &CoreSyntax::exit); + \
syntax << Syntax(QObject::tr("help"), QObject::tr("Print command information: help \
[command]"), &CoreSyntax::showHelp);
- SyntaxTree::Syntax set(QObject::tr("set"), QObject::tr("Sets settings for the \
session"));
- set.children << SyntaxTree::Syntax(QObject::tr("debug"), QObject::tr("Set the \
debug level from 0 to 6"), &CoreSyntax::setDebugLevel); + Syntax \
set(QObject::tr("set"), QObject::tr("Sets settings for the session")); + \
set.children << Syntax(QObject::tr("debug"), QObject::tr("Set the debug level from 0 \
to 6"), &CoreSyntax::setDebugLevel); syntax << set;
- SyntaxTree::Syntax get(QObject::tr("get"), QObject::tr("Gets settings for the \
session"));
- get.children << SyntaxTree::Syntax(QObject::tr("debug"), QObject::tr("Set the \
debug level from 0 to 6"), &CoreSyntax::printDebugLevel); + Syntax \
get(QObject::tr("get"), QObject::tr("Gets settings for the session")); + \
get.children << Syntax(QObject::tr("debug"), QObject::tr("Set the debug level from 0 \
to 6"), &CoreSyntax::printDebugLevel); syntax << get;
return syntax;
@@ -65,7 +65,7 @@ bool showHelp(const QStringList &commands, State &state)
for (auto keyword: sorted) {
state.printLine(keyword, 1);
}
- } else if (const SyntaxTree::Syntax *syntax = command.first) {
+ } else if (const Syntax *syntax = command.first) {
//TODO: get parent!
state.print(QObject::tr("Command `%1`").arg(syntax->keyword));
diff --git a/akonadi2_cli/syntaxtree.cpp b/akonadi2_cli/syntaxtree.cpp
index 5dd4c54..a4f5d40 100644
--- a/akonadi2_cli/syntaxtree.cpp
+++ b/akonadi2_cli/syntaxtree.cpp
@@ -29,11 +29,11 @@
SyntaxTree *SyntaxTree::s_module = 0;
-SyntaxTree::Syntax::Syntax()
+Syntax::Syntax()
{
}
-SyntaxTree::Syntax::Syntax(const QString &k, const QString &helpText, \
std::function<bool(const QStringList &, State &)> l, Interactivity inter) \
+Syntax::Syntax(const QString &k, const QString &helpText, std::function<bool(const \
QStringList &, State &)> l, Interactivity inter) : keyword(k),
help(helpText),
interactivity(inter),
diff --git a/akonadi2_cli/syntaxtree.h b/akonadi2_cli/syntaxtree.h
index 54b867f..7282955 100644
--- a/akonadi2_cli/syntaxtree.h
+++ b/akonadi2_cli/syntaxtree.h
@@ -24,32 +24,34 @@
#include <QStringList>
#include <QVector>
-class SyntaxTree
+class Syntax
{
public:
- struct Syntax
- {
- enum Interactivity {
- NotInteractive = 0,
- EventDriven
- };
-
- Syntax();
- Syntax(const QString &keyword,
- const QString &helpText = QString(),
- std::function<bool(const QStringList &, State &)> lambda = \
std::function<bool(const QStringList &, State &)>(),
- Interactivity interactivity = NotInteractive);
-
- QString keyword;
- QString help;
- Interactivity interactivity;
- std::function<bool(const QStringList &, State &)> lambda;
-
- QVector<Syntax> children;
+ enum Interactivity {
+ NotInteractive = 0,
+ EventDriven
};
+ Syntax();
+ Syntax(const QString &keyword,
+ const QString &helpText = QString(),
+ std::function<bool(const QStringList &, State &)> lambda = \
std::function<bool(const QStringList &, State &)>(), + Interactivity \
interactivity = NotInteractive); +
+ QString keyword;
+ QString help;
+ Interactivity interactivity;
+ std::function<bool(const QStringList &, State &)> lambda;
+
+ QVector<Syntax> children;
+};
+
+class SyntaxTree
+{
+public:
+
typedef std::pair<const Syntax *, QStringList> Command;
- typedef QVector<SyntaxTree::Syntax> SyntaxList;
+ typedef QVector<Syntax> SyntaxList;
static SyntaxTree *self();
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic