Skip to content
Permalink
Browse files

Fix bug with spaces at end of suggestions.

  • Loading branch information...
kenzierocks committed Aug 8, 2019
1 parent 0e25839 commit f83de2a7032cd52035aac64b469ddbba8822487b
@@ -70,14 +70,18 @@ private static String clean(String input) {
);
return suggestions.stream()
// Re-map suggestions to only operate on the last non-quoted word
.map(CommandUtil::onlyOnLastQuotedWord)
.map(suggestion -> CommandUtil.suggestLast(lastArg, suggestion))
.map(suggestion -> onlyOnLastQuotedWord(lastArg, suggestion))
.map(suggestion -> suggestLast(lastArg, suggestion))
.filter(Optional::isPresent)
.map(Optional::get)
.collect(toList());
}

private static Substring onlyOnLastQuotedWord(Substring suggestion) {
private static Substring onlyOnLastQuotedWord(Substring lastArg, Substring suggestion) {
if (suggestion.getSubstring().startsWith(lastArg.getSubstring())) {
// This is already fine.
return suggestion;
}
String substr = suggestion.getSubstring();
int sp = substr.lastIndexOf(' ');
if (sp < 0) {
@@ -21,6 +21,8 @@

import java.util.Objects;

import static com.google.common.base.Preconditions.checkArgument;

/**
* An explicit substring. Provides the range from which it was taken.
*/
@@ -31,21 +33,23 @@
* a Substring.
*/
public static Substring from(String original, int start) {
return wrap(original.substring(start), start, original.length());
return new Substring(original.substring(start), start, original.length());
}

/**
* Take a substring from {@code original}, and {@link #wrap(String, int, int)} it into
* a Substring.
*/
public static Substring from(String original, int start, int end) {
return wrap(original.substring(start, end), start, end);
return new Substring(original.substring(start, end), start, end);
}

/**
* Wrap the given parameters into a Substring instance.
*/
public static Substring wrap(String substring, int start, int end) {
checkArgument(0 <= start, "Start must be greater than or equal to zero");
checkArgument(start <= end, "End must be greater than or equal to start");
return new Substring(substring, start, end);
}

0 comments on commit f83de2a

Please sign in to comment.
You can’t perform that action at this time.