Skip to content

Commit e55066c

Browse files
committed
style fix
1 parent 25ccaa6 commit e55066c

1 file changed

Lines changed: 14 additions & 18 deletions

File tree

src/main/java/org/comroid/commands/impl/CommandUsage.java

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -57,33 +57,29 @@ boolean findNext() {
5757
}
5858

5959
if (lastCallable == null) return false;
60-
6160
var params = lastCallable.nodes().flatMap(Streams.cast(Parameter.class)).toList();
62-
node = params.getFirst();
61+
if (!(node instanceof Parameter)) node = params.getFirst();
62+
6363
if (node instanceof Parameter param) {
6464
// store argString
6565
var argString = new StringBuilder(fullCommand[fullCommandIndex]);
66-
switch (param.getAttribute().stringMode()) {
67-
case NORMAL, GREEDY -> {
68-
if (!argString.toString().startsWith("\"")) break;
69-
// immediately consume greedy argument
70-
argString = new StringBuilder(argString.substring(1));
71-
String next;
72-
do {
73-
argString.append(next = fullCommand[++fullCommandIndex]);
74-
} while (!next.endsWith("\"") && fullCommandIndex + 1 < fullCommand.length);
75-
if (next.endsWith("\"")) argString.deleteCharAt(argString.length() - 1);
76-
}
66+
if (Objects.requireNonNull(param.getAttribute().stringMode()) == StringMode.GREEDY) {
67+
// immediately consume greedy argument
68+
if (!argString.isEmpty() && argString.charAt(0) == '"') argString.deleteCharAt(0);
69+
String read = "";
70+
while (!read.endsWith("\"") && fullCommandIndex + 1 < fullCommand.length) argString.append(' ')
71+
.append(read = fullCommand[++fullCommandIndex]);
72+
if (read.endsWith("\"")) argString.deleteCharAt(argString.length() - 1);
7773
}
7874
if (!argString.toString().isBlank()) argumentStrings.put(param, argString.toString());
7975

8076
// advance parameter if possible
8177
var nextIndex = params.indexOf(param) + 1;
82-
if (nextIndex == -1) return false;
83-
if (nextIndex >= params.size() && param.getAttribute()
84-
.stringMode() == StringMode.SINGLE_WORD || nextIndex + 1 >= params.size())
85-
return false;
86-
this.node = params.get(nextIndex + 1);
78+
if (nextIndex >= params.size() || params.get(nextIndex)
79+
.getAttribute()
80+
.stringMode() == StringMode.SINGLE_WORD) return false;
81+
82+
this.node = params.get(nextIndex);
8783
this.fullCommandIndex += 1;
8884
return true;
8985
}

0 commit comments

Comments
 (0)