@jsprismarine/brigadier 0.2.1 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +29 -0
- package/LICENSE +21 -21
- package/README.md +85 -81
- package/dist/CommandSyntaxException-BKBHJvxr.cjs +173 -0
- package/dist/CommandSyntaxException-Dz8Qlq9d.js +168 -0
- package/dist/LiteralArgumentBuilder-2hpX2C86.js +121 -0
- package/dist/LiteralArgumentBuilder-s6PUMmST.cjs +125 -0
- package/dist/RequiredArgumentBuilder-D105occO.js +144 -0
- package/dist/RequiredArgumentBuilder-DMJ4kl0u.cjs +148 -0
- package/dist/index.cjs.js +63 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.es.js +31 -0
- package/dist/lib/AmbiguityConsumer.cjs.js +3 -0
- package/dist/lib/AmbiguityConsumer.d.ts +6 -0
- package/dist/lib/AmbiguityConsumer.d.ts.map +1 -0
- package/dist/lib/AmbiguityConsumer.es.js +2 -0
- package/dist/lib/Command.cjs.js +3 -0
- package/dist/lib/Command.d.ts +6 -0
- package/dist/lib/Command.d.ts.map +1 -0
- package/dist/lib/Command.es.js +2 -0
- package/dist/lib/CommandDispatcher.cjs.js +369 -0
- package/dist/lib/CommandDispatcher.d.ts +31 -0
- package/dist/lib/CommandDispatcher.d.ts.map +1 -0
- package/dist/lib/CommandDispatcher.es.js +365 -0
- package/dist/lib/ImmutableStringReader.cjs.js +3 -0
- package/dist/lib/ImmutableStringReader.d.ts +13 -0
- package/dist/lib/ImmutableStringReader.d.ts.map +1 -0
- package/dist/lib/ImmutableStringReader.es.js +2 -0
- package/dist/lib/LiteralMessage.cjs.js +19 -0
- package/dist/lib/LiteralMessage.d.ts +9 -0
- package/dist/lib/LiteralMessage.d.ts.map +1 -0
- package/dist/lib/LiteralMessage.es.js +15 -0
- package/dist/lib/Message.cjs.js +3 -0
- package/dist/lib/Message.d.ts +4 -0
- package/dist/lib/Message.d.ts.map +1 -0
- package/dist/lib/Message.es.js +2 -0
- package/dist/lib/ParseResults.cjs.js +30 -0
- package/dist/lib/ParseResults.d.ts +15 -0
- package/dist/lib/ParseResults.d.ts.map +1 -0
- package/dist/lib/ParseResults.es.js +26 -0
- package/dist/lib/Predicate.cjs.js +3 -0
- package/dist/lib/Predicate.d.ts +4 -0
- package/dist/lib/Predicate.d.ts.map +1 -0
- package/dist/lib/Predicate.es.js +2 -0
- package/dist/lib/RedirectModifier.cjs.js +3 -0
- package/dist/lib/RedirectModifier.d.ts +6 -0
- package/dist/lib/RedirectModifier.d.ts.map +1 -0
- package/dist/lib/RedirectModifier.es.js +2 -0
- package/dist/lib/ResultConsumer.cjs.js +3 -0
- package/dist/lib/ResultConsumer.d.ts +6 -0
- package/dist/lib/ResultConsumer.d.ts.map +1 -0
- package/dist/lib/ResultConsumer.es.js +2 -0
- package/dist/lib/SingleRedirectModifier.cjs.js +3 -0
- package/dist/lib/SingleRedirectModifier.d.ts +6 -0
- package/dist/lib/SingleRedirectModifier.d.ts.map +1 -0
- package/dist/lib/SingleRedirectModifier.es.js +2 -0
- package/dist/lib/StringReader.cjs.js +164 -0
- package/dist/lib/StringReader.d.ts +29 -0
- package/dist/lib/StringReader.d.ts.map +1 -0
- package/dist/lib/StringReader.es.js +160 -0
- package/dist/lib/arguments/ArgumentType.cjs.js +23 -0
- package/dist/lib/arguments/ArgumentType.d.ts +23 -0
- package/dist/lib/arguments/ArgumentType.d.ts.map +1 -0
- package/dist/lib/arguments/ArgumentType.es.js +19 -0
- package/dist/lib/arguments/BoolArgumentType.cjs.js +33 -0
- package/dist/lib/arguments/BoolArgumentType.d.ts +15 -0
- package/dist/lib/arguments/BoolArgumentType.d.ts.map +1 -0
- package/dist/lib/arguments/BoolArgumentType.es.js +29 -0
- package/dist/lib/arguments/FloatArgumentType.cjs.js +71 -0
- package/dist/lib/arguments/FloatArgumentType.d.ts +18 -0
- package/dist/lib/arguments/FloatArgumentType.d.ts.map +1 -0
- package/dist/lib/arguments/FloatArgumentType.es.js +67 -0
- package/dist/lib/arguments/IntegerArgumentType.cjs.js +71 -0
- package/dist/lib/arguments/IntegerArgumentType.d.ts +18 -0
- package/dist/lib/arguments/IntegerArgumentType.d.ts.map +1 -0
- package/dist/lib/arguments/IntegerArgumentType.es.js +67 -0
- package/dist/lib/arguments/StringArgumentType.cjs.js +73 -0
- package/dist/lib/arguments/StringArgumentType.d.ts +23 -0
- package/dist/lib/arguments/StringArgumentType.d.ts.map +1 -0
- package/dist/lib/arguments/StringArgumentType.es.js +68 -0
- package/dist/lib/builder/ArgumentBuilder.cjs.js +72 -0
- package/dist/lib/builder/ArgumentBuilder.d.ts +30 -0
- package/dist/lib/builder/ArgumentBuilder.d.ts.map +1 -0
- package/dist/lib/builder/ArgumentBuilder.es.js +68 -0
- package/dist/lib/builder/LiteralArgumentBuilder.cjs.js +20 -0
- package/dist/lib/builder/LiteralArgumentBuilder.d.ts +13 -0
- package/dist/lib/builder/LiteralArgumentBuilder.d.ts.map +1 -0
- package/dist/lib/builder/LiteralArgumentBuilder.es.js +11 -0
- package/dist/lib/builder/RequiredArgumentBuilder.cjs.js +21 -0
- package/dist/lib/builder/RequiredArgumentBuilder.d.ts +20 -0
- package/dist/lib/builder/RequiredArgumentBuilder.d.ts.map +1 -0
- package/dist/lib/builder/RequiredArgumentBuilder.es.js +12 -0
- package/dist/lib/context/CommandContext.cjs.js +117 -0
- package/dist/lib/context/CommandContext.d.ts +35 -0
- package/dist/lib/context/CommandContext.d.ts.map +1 -0
- package/dist/lib/context/CommandContext.es.js +113 -0
- package/dist/lib/context/CommandContextBuilder.cjs.js +142 -0
- package/dist/lib/context/CommandContextBuilder.d.ts +40 -0
- package/dist/lib/context/CommandContextBuilder.d.ts.map +1 -0
- package/dist/lib/context/CommandContextBuilder.es.js +138 -0
- package/dist/lib/context/ParsedArgument.cjs.js +30 -0
- package/dist/lib/context/ParsedArgument.d.ts +11 -0
- package/dist/lib/context/ParsedArgument.d.ts.map +1 -0
- package/dist/lib/context/ParsedArgument.es.js +26 -0
- package/dist/lib/context/ParsedCommandNode.cjs.js +32 -0
- package/dist/lib/context/ParsedCommandNode.d.ts +13 -0
- package/dist/lib/context/ParsedCommandNode.d.ts.map +1 -0
- package/dist/lib/context/ParsedCommandNode.es.js +28 -0
- package/dist/lib/context/StringRange.cjs.js +52 -0
- package/dist/lib/context/StringRange.d.ts +18 -0
- package/dist/lib/context/StringRange.d.ts.map +1 -0
- package/dist/lib/context/StringRange.es.js +48 -0
- package/dist/lib/context/SuggestionContext.cjs.js +15 -0
- package/dist/lib/context/SuggestionContext.d.ts +8 -0
- package/dist/lib/context/SuggestionContext.d.ts.map +1 -0
- package/dist/lib/context/SuggestionContext.es.js +11 -0
- package/dist/lib/exceptions/BuiltInExceptionProvider.cjs.js +3 -0
- package/dist/lib/exceptions/BuiltInExceptionProvider.d.ts +25 -0
- package/dist/lib/exceptions/BuiltInExceptionProvider.d.ts.map +1 -0
- package/dist/lib/exceptions/BuiltInExceptionProvider.es.js +2 -0
- package/dist/lib/exceptions/BuiltInExceptions.cjs.js +11 -0
- package/dist/lib/exceptions/BuiltInExceptions.d.ts +45 -0
- package/dist/lib/exceptions/BuiltInExceptions.d.ts.map +1 -0
- package/dist/lib/exceptions/BuiltInExceptions.es.js +3 -0
- package/dist/lib/exceptions/CommandExceptionType.cjs.js +3 -0
- package/dist/lib/exceptions/CommandExceptionType.d.ts +3 -0
- package/dist/lib/exceptions/CommandExceptionType.d.ts.map +1 -0
- package/dist/lib/exceptions/CommandExceptionType.es.js +2 -0
- package/dist/lib/exceptions/CommandSyntaxException.cjs.js +11 -0
- package/dist/lib/exceptions/CommandSyntaxException.d.ts +21 -0
- package/dist/lib/exceptions/CommandSyntaxException.d.ts.map +1 -0
- package/dist/lib/exceptions/CommandSyntaxException.es.js +3 -0
- package/dist/lib/exceptions/DynamicCommandExceptionType.cjs.js +11 -0
- package/dist/lib/exceptions/DynamicCommandExceptionType.d.ts +12 -0
- package/dist/lib/exceptions/DynamicCommandExceptionType.d.ts.map +1 -0
- package/dist/lib/exceptions/DynamicCommandExceptionType.es.js +3 -0
- package/dist/lib/exceptions/SimpleCommandExceptionType.cjs.js +11 -0
- package/dist/lib/exceptions/SimpleCommandExceptionType.d.ts +13 -0
- package/dist/lib/exceptions/SimpleCommandExceptionType.d.ts.map +1 -0
- package/dist/lib/exceptions/SimpleCommandExceptionType.es.js +3 -0
- package/dist/lib/suggestion/IntegerSuggestion.cjs.js +39 -0
- package/dist/lib/suggestion/IntegerSuggestion.d.ts +14 -0
- package/dist/lib/suggestion/IntegerSuggestion.d.ts.map +1 -0
- package/dist/lib/suggestion/IntegerSuggestion.es.js +35 -0
- package/dist/lib/suggestion/Suggestion.cjs.js +72 -0
- package/dist/lib/suggestion/Suggestion.d.ts +19 -0
- package/dist/lib/suggestion/Suggestion.d.ts.map +1 -0
- package/dist/lib/suggestion/Suggestion.es.js +68 -0
- package/dist/lib/suggestion/SuggestionProvider.cjs.js +3 -0
- package/dist/lib/suggestion/SuggestionProvider.d.ts +8 -0
- package/dist/lib/suggestion/SuggestionProvider.d.ts.map +1 -0
- package/dist/lib/suggestion/SuggestionProvider.es.js +2 -0
- package/dist/lib/suggestion/Suggestions.cjs.js +71 -0
- package/dist/lib/suggestion/Suggestions.d.ts +18 -0
- package/dist/lib/suggestion/Suggestions.d.ts.map +1 -0
- package/dist/lib/suggestion/Suggestions.es.js +67 -0
- package/dist/lib/suggestion/SuggestionsBuilder.cjs.js +59 -0
- package/dist/lib/suggestion/SuggestionsBuilder.d.ts +20 -0
- package/dist/lib/suggestion/SuggestionsBuilder.d.ts.map +1 -0
- package/dist/lib/suggestion/SuggestionsBuilder.es.js +55 -0
- package/dist/lib/tree/ArgumentCommandNode.cjs.js +20 -0
- package/dist/lib/tree/ArgumentCommandNode.d.ts +33 -0
- package/dist/lib/tree/ArgumentCommandNode.d.ts.map +1 -0
- package/dist/lib/tree/ArgumentCommandNode.es.js +12 -0
- package/dist/lib/tree/CommandNode.cjs.js +133 -0
- package/dist/lib/tree/CommandNode.d.ts +47 -0
- package/dist/lib/tree/CommandNode.d.ts.map +1 -0
- package/dist/lib/tree/CommandNode.es.js +129 -0
- package/dist/lib/tree/LiteralCommandNode.cjs.js +19 -0
- package/dist/lib/tree/LiteralCommandNode.d.ts +29 -0
- package/dist/lib/tree/LiteralCommandNode.d.ts.map +1 -0
- package/dist/lib/tree/LiteralCommandNode.es.js +11 -0
- package/dist/lib/tree/RootCommandNode.cjs.js +59 -0
- package/dist/lib/tree/RootCommandNode.d.ts +23 -0
- package/dist/lib/tree/RootCommandNode.d.ts.map +1 -0
- package/dist/lib/tree/RootCommandNode.es.js +55 -0
- package/dist/lib/util/isEqual.cjs.js +59 -0
- package/dist/lib/util/isEqual.d.ts +2 -0
- package/dist/lib/util/isEqual.d.ts.map +1 -0
- package/dist/lib/util/isEqual.es.js +55 -0
- package/package.json +40 -41
- package/dist/index.js +0 -82
- package/dist/index.js.map +0 -1
- package/dist/lib/AmbiguityConsumer.js +0 -3
- package/dist/lib/AmbiguityConsumer.js.map +0 -1
- package/dist/lib/Command.js +0 -3
- package/dist/lib/Command.js.map +0 -1
- package/dist/lib/CommandDispatcher.js +0 -360
- package/dist/lib/CommandDispatcher.js.map +0 -1
- package/dist/lib/ImmutableStringReader.js +0 -3
- package/dist/lib/ImmutableStringReader.js.map +0 -1
- package/dist/lib/LiteralMessage.js +0 -15
- package/dist/lib/LiteralMessage.js.map +0 -1
- package/dist/lib/Message.js +0 -3
- package/dist/lib/Message.js.map +0 -1
- package/dist/lib/ParseResults.js +0 -24
- package/dist/lib/ParseResults.js.map +0 -1
- package/dist/lib/Predicate.js +0 -3
- package/dist/lib/Predicate.js.map +0 -1
- package/dist/lib/RedirectModifier.js +0 -3
- package/dist/lib/RedirectModifier.js.map +0 -1
- package/dist/lib/ResultConsumer.js +0 -3
- package/dist/lib/ResultConsumer.js.map +0 -1
- package/dist/lib/SingleRedirectModifier.js +0 -3
- package/dist/lib/SingleRedirectModifier.js.map +0 -1
- package/dist/lib/StringReader.js +0 -176
- package/dist/lib/StringReader.js.map +0 -1
- package/dist/lib/arguments/ArgumentType.js +0 -19
- package/dist/lib/arguments/ArgumentType.js.map +0 -1
- package/dist/lib/arguments/BoolArgumentType.js +0 -30
- package/dist/lib/arguments/BoolArgumentType.js.map +0 -1
- package/dist/lib/arguments/FloatArgumentType.js +0 -61
- package/dist/lib/arguments/FloatArgumentType.js.map +0 -1
- package/dist/lib/arguments/IntegerArgumentType.js +0 -61
- package/dist/lib/arguments/IntegerArgumentType.js.map +0 -1
- package/dist/lib/arguments/StringArgumentType.js +0 -71
- package/dist/lib/arguments/StringArgumentType.js.map +0 -1
- package/dist/lib/builder/ArgumentBuilder.js +0 -66
- package/dist/lib/builder/ArgumentBuilder.js.map +0 -1
- package/dist/lib/builder/LiteralArgumentBuilder.js +0 -33
- package/dist/lib/builder/LiteralArgumentBuilder.js.map +0 -1
- package/dist/lib/builder/RequiredArgumentBuilder.js +0 -44
- package/dist/lib/builder/RequiredArgumentBuilder.js.map +0 -1
- package/dist/lib/context/CommandContext.js +0 -96
- package/dist/lib/context/CommandContext.js.map +0 -1
- package/dist/lib/context/CommandContextBuilder.js +0 -120
- package/dist/lib/context/CommandContextBuilder.js.map +0 -1
- package/dist/lib/context/ParsedArgument.js +0 -27
- package/dist/lib/context/ParsedArgument.js.map +0 -1
- package/dist/lib/context/ParsedCommandNode.js +0 -27
- package/dist/lib/context/ParsedCommandNode.js.map +0 -1
- package/dist/lib/context/StringRange.js +0 -47
- package/dist/lib/context/StringRange.js.map +0 -1
- package/dist/lib/context/SuggestionContext.js +0 -10
- package/dist/lib/context/SuggestionContext.js.map +0 -1
- package/dist/lib/exceptions/BuiltInExceptionProvider.js +0 -3
- package/dist/lib/exceptions/BuiltInExceptionProvider.js.map +0 -1
- package/dist/lib/exceptions/BuiltInExceptions.js +0 -88
- package/dist/lib/exceptions/BuiltInExceptions.js.map +0 -1
- package/dist/lib/exceptions/CommandExceptionType.js +0 -3
- package/dist/lib/exceptions/CommandExceptionType.js.map +0 -1
- package/dist/lib/exceptions/CommandSyntaxException.js +0 -57
- package/dist/lib/exceptions/CommandSyntaxException.js.map +0 -1
- package/dist/lib/exceptions/DynamicCommandExceptionType.js +0 -20
- package/dist/lib/exceptions/DynamicCommandExceptionType.js.map +0 -1
- package/dist/lib/exceptions/SimpleCommandExceptionType.js +0 -23
- package/dist/lib/exceptions/SimpleCommandExceptionType.js.map +0 -1
- package/dist/lib/suggestion/IntegerSuggestion.js +0 -41
- package/dist/lib/suggestion/IntegerSuggestion.js.map +0 -1
- package/dist/lib/suggestion/Suggestion.js +0 -72
- package/dist/lib/suggestion/Suggestion.js.map +0 -1
- package/dist/lib/suggestion/SuggestionProvider.js +0 -3
- package/dist/lib/suggestion/SuggestionProvider.js.map +0 -1
- package/dist/lib/suggestion/Suggestions.js +0 -71
- package/dist/lib/suggestion/Suggestions.js.map +0 -1
- package/dist/lib/suggestion/SuggestionsBuilder.js +0 -54
- package/dist/lib/suggestion/SuggestionsBuilder.js.map +0 -1
- package/dist/lib/tree/ArgumentCommandNode.js +0 -97
- package/dist/lib/tree/ArgumentCommandNode.js.map +0 -1
- package/dist/lib/tree/CommandNode.js +0 -134
- package/dist/lib/tree/CommandNode.js.map +0 -1
- package/dist/lib/tree/LiteralCommandNode.js +0 -93
- package/dist/lib/tree/LiteralCommandNode.js.map +0 -1
- package/dist/lib/tree/RootCommandNode.js +0 -50
- package/dist/lib/tree/RootCommandNode.js.map +0 -1
- package/dist/lib/util/isEqual.js +0 -57
- package/dist/lib/util/isEqual.js.map +0 -1
- package/index.js +0 -1
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import isEqual from '../util/isEqual.es.js';
|
|
2
|
+
|
|
3
|
+
class Suggestion {
|
|
4
|
+
range;
|
|
5
|
+
text;
|
|
6
|
+
tooltip = null;
|
|
7
|
+
constructor(range, text, tooltip = null) {
|
|
8
|
+
this.range = range;
|
|
9
|
+
this.text = text;
|
|
10
|
+
this.tooltip = tooltip;
|
|
11
|
+
}
|
|
12
|
+
getRange() {
|
|
13
|
+
return this.range;
|
|
14
|
+
}
|
|
15
|
+
getText() {
|
|
16
|
+
return this.text;
|
|
17
|
+
}
|
|
18
|
+
getTooltip() {
|
|
19
|
+
return this.tooltip;
|
|
20
|
+
}
|
|
21
|
+
apply(input) {
|
|
22
|
+
if (this.range.getStart() === 0 && this.range.getEnd() == input.length) {
|
|
23
|
+
return this.text;
|
|
24
|
+
}
|
|
25
|
+
let result = "";
|
|
26
|
+
if (this.range.getStart() > 0) {
|
|
27
|
+
result += input.substring(0, this.range.getStart());
|
|
28
|
+
}
|
|
29
|
+
result += this.text;
|
|
30
|
+
if (this.range.getEnd() < input.length) {
|
|
31
|
+
result += input.substring(this.range.getEnd());
|
|
32
|
+
}
|
|
33
|
+
return result;
|
|
34
|
+
}
|
|
35
|
+
equals(o) {
|
|
36
|
+
if (this === o)
|
|
37
|
+
return true;
|
|
38
|
+
if (!(o instanceof Suggestion))
|
|
39
|
+
return false;
|
|
40
|
+
return isEqual(this.range, o.range) && this.text === o.text && isEqual(this.tooltip, o.tooltip);
|
|
41
|
+
}
|
|
42
|
+
toString() {
|
|
43
|
+
return "Suggestion{range=" + this.range + ", text='" + this.text + "', tooltip='" + this.tooltip + "'}";
|
|
44
|
+
}
|
|
45
|
+
compareTo(o) {
|
|
46
|
+
return this.text < o.text ? 1 : -1;
|
|
47
|
+
}
|
|
48
|
+
compareToIgnoreCase(b) {
|
|
49
|
+
return this.text.toLowerCase() < b.text.toLowerCase() ? 1 : -1;
|
|
50
|
+
}
|
|
51
|
+
expand(command, range) {
|
|
52
|
+
if (range.equals(this.range)) {
|
|
53
|
+
return this;
|
|
54
|
+
}
|
|
55
|
+
let result = "";
|
|
56
|
+
if (range.getStart() < this.range.getStart()) {
|
|
57
|
+
result += command.substring(range.getStart(), this.range.getStart());
|
|
58
|
+
}
|
|
59
|
+
result += this.text;
|
|
60
|
+
if (range.getEnd() > this.range.getEnd()) {
|
|
61
|
+
result += command.substring(this.range.getEnd(), range.getEnd());
|
|
62
|
+
}
|
|
63
|
+
return new Suggestion(range, result, this.tooltip);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export { Suggestion as default };
|
|
68
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3VnZ2VzdGlvbi5lcy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9zdWdnZXN0aW9uL1N1Z2dlc3Rpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGlzRXF1YWwgZnJvbSAnLi4vdXRpbC9pc0VxdWFsJztcbmltcG9ydCB0eXBlIE1lc3NhZ2UgZnJvbSAnLi4vTWVzc2FnZSc7XG5pbXBvcnQgdHlwZSBTdHJpbmdSYW5nZSBmcm9tICcuLi9jb250ZXh0L1N0cmluZ1JhbmdlJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU3VnZ2VzdGlvbiB7XG4gICAgcHJpdmF0ZSByYW5nZTogU3RyaW5nUmFuZ2U7XG4gICAgcHJpdmF0ZSB0ZXh0OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSB0b29sdGlwOiBNZXNzYWdlIHwgbnVsbCA9IG51bGw7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocmFuZ2U6IFN0cmluZ1JhbmdlLCB0ZXh0OiBzdHJpbmcsIHRvb2x0aXA6IE1lc3NhZ2UgfCBudWxsID0gbnVsbCkge1xuICAgICAgICB0aGlzLnJhbmdlID0gcmFuZ2U7XG4gICAgICAgIHRoaXMudGV4dCA9IHRleHQ7XG4gICAgICAgIHRoaXMudG9vbHRpcCA9IHRvb2x0aXA7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFJhbmdlKCk6IFN0cmluZ1JhbmdlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmFuZ2U7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFRleHQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGV4dDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0VG9vbHRpcCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9vbHRpcDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXBwbHkoaW5wdXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGlmICh0aGlzLnJhbmdlLmdldFN0YXJ0KCkgPT09IDAgJiYgdGhpcy5yYW5nZS5nZXRFbmQoKSA9PSBpbnB1dC5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgcmVzdWx0ID0gJyc7XG4gICAgICAgIGlmICh0aGlzLnJhbmdlLmdldFN0YXJ0KCkgPiAwKSB7XG4gICAgICAgICAgICByZXN1bHQgKz0gaW5wdXQuc3Vic3RyaW5nKDAsIHRoaXMucmFuZ2UuZ2V0U3RhcnQoKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXN1bHQgKz0gdGhpcy50ZXh0O1xuICAgICAgICBpZiAodGhpcy5yYW5nZS5nZXRFbmQoKSA8IGlucHV0Lmxlbmd0aCkge1xuICAgICAgICAgICAgcmVzdWx0ICs9IGlucHV0LnN1YnN0cmluZyh0aGlzLnJhbmdlLmdldEVuZCgpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgcHVibGljIGVxdWFscyhvOiBvYmplY3QpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMgPT09IG8pIHJldHVybiB0cnVlO1xuICAgICAgICBpZiAoIShvIGluc3RhbmNlb2YgU3VnZ2VzdGlvbikpIHJldHVybiBmYWxzZTtcblxuICAgICAgICByZXR1cm4gaXNFcXVhbCh0aGlzLnJhbmdlLCBvLnJhbmdlKSAmJiB0aGlzLnRleHQgPT09IG8udGV4dCAmJiBpc0VxdWFsKHRoaXMudG9vbHRpcCwgby50b29sdGlwKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdG9TdHJpbmcoKTogU3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICdTdWdnZXN0aW9ueycgK1xuICAgICAgICAgICAgJ3JhbmdlPScgK1xuICAgICAgICAgICAgdGhpcy5yYW5nZSArXG4gICAgICAgICAgICBcIiwgdGV4dD0nXCIgK1xuICAgICAgICAgICAgdGhpcy50ZXh0ICtcbiAgICAgICAgICAgIFwiJ1wiICtcbiAgICAgICAgICAgIFwiLCB0b29sdGlwPSdcIiArXG4gICAgICAgICAgICB0aGlzLnRvb2x0aXAgK1xuICAgICAgICAgICAgXCInXCIgK1xuICAgICAgICAgICAgJ30nXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGNvbXBhcmVUbyhvOiBTdWdnZXN0aW9uKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGV4dCA8IG8udGV4dCA/IDEgOiAtMTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY29tcGFyZVRvSWdub3JlQ2FzZShiOiBTdWdnZXN0aW9uKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGV4dC50b0xvd2VyQ2FzZSgpIDwgYi50ZXh0LnRvTG93ZXJDYXNlKCkgPyAxIDogLTE7XG4gICAgfVxuXG4gICAgcHVibGljIGV4cGFuZChjb21tYW5kOiBzdHJpbmcsIHJhbmdlOiBTdHJpbmdSYW5nZSk6IFN1Z2dlc3Rpb24ge1xuICAgICAgICBpZiAocmFuZ2UuZXF1YWxzKHRoaXMucmFuZ2UpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCByZXN1bHQgPSAnJztcbiAgICAgICAgaWYgKHJhbmdlLmdldFN0YXJ0KCkgPCB0aGlzLnJhbmdlLmdldFN0YXJ0KCkpIHtcbiAgICAgICAgICAgIHJlc3VsdCArPSBjb21tYW5kLnN1YnN0cmluZyhyYW5nZS5nZXRTdGFydCgpLCB0aGlzLnJhbmdlLmdldFN0YXJ0KCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmVzdWx0ICs9IHRoaXMudGV4dDtcbiAgICAgICAgaWYgKHJhbmdlLmdldEVuZCgpID4gdGhpcy5yYW5nZS5nZXRFbmQoKSkge1xuICAgICAgICAgICAgcmVzdWx0ICs9IGNvbW1hbmQuc3Vic3RyaW5nKHRoaXMucmFuZ2UuZ2V0RW5kKCksIHJhbmdlLmdldEVuZCgpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBuZXcgU3VnZ2VzdGlvbihyYW5nZSwgcmVzdWx0LCB0aGlzLnRvb2x0aXApO1xuICAgIH1cbn1cbiJdLCJuYW1lcyI6W10s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
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { default as CommandContext } from '../context/CommandContext';
|
|
2
|
+
import { default as SuggestionsBuilder } from './SuggestionsBuilder';
|
|
3
|
+
import { default as Suggestions } from './Suggestions';
|
|
4
|
+
|
|
5
|
+
export default interface SuggestionProvider<S> {
|
|
6
|
+
getSuggestions(context: CommandContext<S>, builder: SuggestionsBuilder): Promise<Suggestions>;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=SuggestionProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SuggestionProvider.d.ts","sourceRoot":"","sources":["../../../src/lib/suggestion/SuggestionProvider.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,eAAe,CAAA;AACvC,OAAO,kBAAkB,MAAM,sBAAsB,CAAA;AACrD,OAAO,cAAc,MAAM,2BAA2B,CAAA;AAEtD,MAAM,CAAC,OAAO,WAAW,kBAAkB,CAAC,CAAC;IACzC,cAAc,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CACjG"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
4
|
+
|
|
5
|
+
const lib_util_isEqual = require('../util/isEqual.cjs.js');
|
|
6
|
+
const lib_context_StringRange = require('../context/StringRange.cjs.js');
|
|
7
|
+
|
|
8
|
+
class Suggestions {
|
|
9
|
+
static EMPTY = new Suggestions(lib_context_StringRange.default.at(0), []);
|
|
10
|
+
range;
|
|
11
|
+
suggestions;
|
|
12
|
+
constructor(range, suggestions) {
|
|
13
|
+
this.range = range;
|
|
14
|
+
this.suggestions = suggestions;
|
|
15
|
+
}
|
|
16
|
+
getRange() {
|
|
17
|
+
return this.range;
|
|
18
|
+
}
|
|
19
|
+
getList() {
|
|
20
|
+
return this.suggestions;
|
|
21
|
+
}
|
|
22
|
+
isEmpty() {
|
|
23
|
+
return this.suggestions.length === 0;
|
|
24
|
+
}
|
|
25
|
+
equals(o) {
|
|
26
|
+
if (this === o)
|
|
27
|
+
return true;
|
|
28
|
+
if (!(o instanceof Suggestions))
|
|
29
|
+
return false;
|
|
30
|
+
return this.range.equals(o.range) && lib_util_isEqual.default(this.suggestions, o.suggestions);
|
|
31
|
+
}
|
|
32
|
+
toString() {
|
|
33
|
+
return "Suggestions{range=" + this.range + ", suggestions=" + this.suggestions + "}";
|
|
34
|
+
}
|
|
35
|
+
static empty() {
|
|
36
|
+
return Promise.resolve(this.EMPTY);
|
|
37
|
+
}
|
|
38
|
+
static merge(command, input) {
|
|
39
|
+
if (input.length === 0) {
|
|
40
|
+
return this.EMPTY;
|
|
41
|
+
} else if (input.length === 1) {
|
|
42
|
+
return input[0];
|
|
43
|
+
}
|
|
44
|
+
const texts = [];
|
|
45
|
+
for (let suggestions of input) {
|
|
46
|
+
texts.push(...suggestions.getList());
|
|
47
|
+
}
|
|
48
|
+
return Suggestions.create(command, texts);
|
|
49
|
+
}
|
|
50
|
+
static create(command, suggestions) {
|
|
51
|
+
if (suggestions.length === 0) {
|
|
52
|
+
return this.EMPTY;
|
|
53
|
+
}
|
|
54
|
+
let start = Infinity;
|
|
55
|
+
let end = -Infinity;
|
|
56
|
+
for (let suggestion of suggestions) {
|
|
57
|
+
start = Math.min(suggestion.getRange().getStart(), start);
|
|
58
|
+
end = Math.max(suggestion.getRange().getEnd(), end);
|
|
59
|
+
}
|
|
60
|
+
let range = new lib_context_StringRange.default(start, end);
|
|
61
|
+
const texts = [];
|
|
62
|
+
for (let suggestion of suggestions) {
|
|
63
|
+
texts.push(suggestion.expand(command, range));
|
|
64
|
+
}
|
|
65
|
+
const sorted = texts.sort((a, b) => a.compareToIgnoreCase(b));
|
|
66
|
+
return new Suggestions(range, sorted);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
exports.default = Suggestions;
|
|
71
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3VnZ2VzdGlvbnMuY2pzLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3N1Z2dlc3Rpb24vU3VnZ2VzdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGlzRXF1YWwgZnJvbSAnLi4vdXRpbC9pc0VxdWFsJztcbmltcG9ydCBTdHJpbmdSYW5nZSBmcm9tICcuLi9jb250ZXh0L1N0cmluZ1JhbmdlJztcbmltcG9ydCB0eXBlIFN1Z2dlc3Rpb24gZnJvbSAnLi9TdWdnZXN0aW9uJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU3VnZ2VzdGlvbnMge1xuICAgIHByaXZhdGUgc3RhdGljIEVNUFRZID0gbmV3IFN1Z2dlc3Rpb25zKFN0cmluZ1JhbmdlLmF0KDApLCBbXSk7XG5cbiAgICBwcml2YXRlIHJhbmdlOiBTdHJpbmdSYW5nZTtcblxuICAgIHByaXZhdGUgc3VnZ2VzdGlvbnM6IEFycmF5PFN1Z2dlc3Rpb24+O1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHJhbmdlOiBTdHJpbmdSYW5nZSwgc3VnZ2VzdGlvbnM6IEFycmF5PFN1Z2dlc3Rpb24+KSB7XG4gICAgICAgIHRoaXMucmFuZ2UgPSByYW5nZTtcbiAgICAgICAgdGhpcy5zdWdnZXN0aW9ucyA9IHN1Z2dlc3Rpb25zO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRSYW5nZSgpOiBTdHJpbmdSYW5nZSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJhbmdlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRMaXN0KCk6IEFycmF5PFN1Z2dlc3Rpb24+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3VnZ2VzdGlvbnM7XG4gICAgfVxuXG4gICAgcHVibGljIGlzRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnN1Z2dlc3Rpb25zLmxlbmd0aCA9PT0gMDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZXF1YWxzKG86IG9iamVjdCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcyA9PT0gbykgcmV0dXJuIHRydWU7XG5cbiAgICAgICAgaWYgKCEobyBpbnN0YW5jZW9mIFN1Z2dlc3Rpb25zKSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgICAgIHJldHVybiB0aGlzLnJhbmdlLmVxdWFscyhvLnJhbmdlKSAmJiBpc0VxdWFsKHRoaXMuc3VnZ2VzdGlvbnMsIG8uc3VnZ2VzdGlvbnMpO1xuICAgIH1cblxuICAgIHB1YmxpYyB0b1N0cmluZygpOiBTdHJpbmcge1xuICAgICAgICByZXR1cm4gJ1N1Z2dlc3Rpb25zeycgKyAncmFuZ2U9JyArIHRoaXMucmFuZ2UgKyAnLCBzdWdnZXN0aW9ucz0nICsgdGhpcy5zdWdnZXN0aW9ucyArICd9JztcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGVtcHR5KCk6IFByb21pc2U8U3VnZ2VzdGlvbnM+IHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLkVNUFRZKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIG1lcmdlKGNvbW1hbmQ6IHN0cmluZywgaW5wdXQ6IEFycmF5PFN1Z2dlc3Rpb25zPikge1xuICAgICAgICBpZiAoaW5wdXQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5FTVBUWTtcbiAgICAgICAgfSBlbHNlIGlmIChpbnB1dC5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgIHJldHVybiBpbnB1dFswXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRleHRzID0gW107XG4gICAgICAgIGZvciAobGV0IHN1Z2dlc3Rpb25zIG9mIGlucHV0KSB7XG4gICAgICAgICAgICB0ZXh0cy5wdXNoKC4uLnN1Z2dlc3Rpb25zLmdldExpc3QoKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gU3VnZ2VzdGlvbnMuY3JlYXRlKGNvbW1hbmQsIHRleHRzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGNyZWF0ZShjb21tYW5kOiBzdHJpbmcsIHN1Z2dlc3Rpb25zOiBBcnJheTxTdWdnZXN0aW9uPik6IFN1Z2dlc3Rpb25zIHtcbiAgICAgICAgaWYgKHN1Z2dlc3Rpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuRU1QVFk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgc3RhcnQgPSBJbmZpbml0eTtcbiAgICAgICAgbGV0IGVuZCA9IC1JbmZpbml0eTtcbiAgICAgICAgZm9yIChsZXQgc3VnZ2VzdGlvbiBvZiBzdWdnZXN0aW9ucykge1xuICAgICAgICAgICAgc3RhcnQgPSBNYXRoLm1pbihzdWdnZXN0aW9uLmdldFJhbmdlKCkuZ2V0U3RhcnQoKSwgc3RhcnQpO1xuICAgICAgICAgICAgZW5kID0gTWF0aC5tYXgoc3VnZ2VzdGlvbi5nZXRSYW5nZSgpLmdldEVuZCgpLCBlbmQpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHJhbmdlID0gbmV3IFN0cmluZ1JhbmdlKHN0YXJ0LCBlbmQpO1xuICAgICAgICBjb25zdCB0ZXh0cyA9IFtdO1xuICAgICAgICBmb3IgKGxldCBzdWdnZXN0aW9uIG9mIHN1Z2dlc3Rpb25zKSB7XG4gICAgICAgICAgICB0ZXh0cy5wdXNoKHN1Z2dlc3Rpb24uZXhwYW5kKGNvbW1hbmQsIHJhbmdlKSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzb3J0ZWQgPSB0ZXh0cy5zb3J0KChhLCBiKSA9PiBhLmNvbXBhcmVUb0lnbm9yZUNhc2UoYikpO1xuICAgICAgICByZXR1cm4gbmV3IFN1Z2dlc3Rpb25zKHJhbmdlLCBzb3J0ZWQpO1xuICAgIH1cbn1cbiJdLCJuYW1lcyI6WyJTdHJpbmdSYW5nZSIsImlzRXF1YWwiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSxNQUFxQixXQUFZLENBQUE7QUFBQSxFQUM3QixPQUFlLFFBQVEsSUFBSSxXQUFBLENBQVlBLGdDQUFZLEVBQUcsQ0FBQSxDQUFDLENBQUcsRUFBQSxFQUFFLENBQUEsQ0FBQTtBQUFBLEVBRXBELEtBQUEsQ0FBQTtBQUFBLEVB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
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { default as Suggestion } from './Suggestion';
|
|
2
|
+
import { default as StringRange } from '../context/StringRange';
|
|
3
|
+
|
|
4
|
+
export default class Suggestions {
|
|
5
|
+
private static EMPTY;
|
|
6
|
+
private range;
|
|
7
|
+
private suggestions;
|
|
8
|
+
constructor(range: StringRange, suggestions: Array<Suggestion>);
|
|
9
|
+
getRange(): StringRange;
|
|
10
|
+
getList(): Array<Suggestion>;
|
|
11
|
+
isEmpty(): boolean;
|
|
12
|
+
equals(o: object): boolean;
|
|
13
|
+
toString(): String;
|
|
14
|
+
static empty(): Promise<Suggestions>;
|
|
15
|
+
static merge(command: string, input: Array<Suggestions>): Suggestions | undefined;
|
|
16
|
+
static create(command: string, suggestions: Array<Suggestion>): Suggestions;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=Suggestions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Suggestions.d.ts","sourceRoot":"","sources":["../../../src/lib/suggestion/Suggestions.ts"],"names":[],"mappings":"AACA,OAAO,WAAW,MAAM,wBAAwB,CAAC;AACjD,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAE3C,MAAM,CAAC,OAAO,OAAO,WAAW;IAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAA0C;IAE9D,OAAO,CAAC,KAAK,CAAc;IAE3B,OAAO,CAAC,WAAW,CAAoB;gBAEpB,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,CAAC,UAAU,CAAC;IAK9D,QAAQ,IAAI,WAAW;IAIvB,OAAO,IAAI,KAAK,CAAC,UAAU,CAAC;IAI5B,OAAO,IAAI,OAAO;IAIlB,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO;IAQ1B,QAAQ,IAAI,MAAM;WAIX,KAAK,IAAI,OAAO,CAAC,WAAW,CAAC;WAI7B,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC;WAehD,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG,WAAW;CAqBrF"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import isEqual from '../util/isEqual.es.js';
|
|
2
|
+
import StringRange from '../context/StringRange.es.js';
|
|
3
|
+
|
|
4
|
+
class Suggestions {
|
|
5
|
+
static EMPTY = new Suggestions(StringRange.at(0), []);
|
|
6
|
+
range;
|
|
7
|
+
suggestions;
|
|
8
|
+
constructor(range, suggestions) {
|
|
9
|
+
this.range = range;
|
|
10
|
+
this.suggestions = suggestions;
|
|
11
|
+
}
|
|
12
|
+
getRange() {
|
|
13
|
+
return this.range;
|
|
14
|
+
}
|
|
15
|
+
getList() {
|
|
16
|
+
return this.suggestions;
|
|
17
|
+
}
|
|
18
|
+
isEmpty() {
|
|
19
|
+
return this.suggestions.length === 0;
|
|
20
|
+
}
|
|
21
|
+
equals(o) {
|
|
22
|
+
if (this === o)
|
|
23
|
+
return true;
|
|
24
|
+
if (!(o instanceof Suggestions))
|
|
25
|
+
return false;
|
|
26
|
+
return this.range.equals(o.range) && isEqual(this.suggestions, o.suggestions);
|
|
27
|
+
}
|
|
28
|
+
toString() {
|
|
29
|
+
return "Suggestions{range=" + this.range + ", suggestions=" + this.suggestions + "}";
|
|
30
|
+
}
|
|
31
|
+
static empty() {
|
|
32
|
+
return Promise.resolve(this.EMPTY);
|
|
33
|
+
}
|
|
34
|
+
static merge(command, input) {
|
|
35
|
+
if (input.length === 0) {
|
|
36
|
+
return this.EMPTY;
|
|
37
|
+
} else if (input.length === 1) {
|
|
38
|
+
return input[0];
|
|
39
|
+
}
|
|
40
|
+
const texts = [];
|
|
41
|
+
for (let suggestions of input) {
|
|
42
|
+
texts.push(...suggestions.getList());
|
|
43
|
+
}
|
|
44
|
+
return Suggestions.create(command, texts);
|
|
45
|
+
}
|
|
46
|
+
static create(command, suggestions) {
|
|
47
|
+
if (suggestions.length === 0) {
|
|
48
|
+
return this.EMPTY;
|
|
49
|
+
}
|
|
50
|
+
let start = Infinity;
|
|
51
|
+
let end = -Infinity;
|
|
52
|
+
for (let suggestion of suggestions) {
|
|
53
|
+
start = Math.min(suggestion.getRange().getStart(), start);
|
|
54
|
+
end = Math.max(suggestion.getRange().getEnd(), end);
|
|
55
|
+
}
|
|
56
|
+
let range = new StringRange(start, end);
|
|
57
|
+
const texts = [];
|
|
58
|
+
for (let suggestion of suggestions) {
|
|
59
|
+
texts.push(suggestion.expand(command, range));
|
|
60
|
+
}
|
|
61
|
+
const sorted = texts.sort((a, b) => a.compareToIgnoreCase(b));
|
|
62
|
+
return new Suggestions(range, sorted);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
export { Suggestions as default };
|
|
67
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3VnZ2VzdGlvbnMuZXMuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvc3VnZ2VzdGlvbi9TdWdnZXN0aW9ucy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgaXNFcXVhbCBmcm9tICcuLi91dGlsL2lzRXF1YWwnO1xuaW1wb3J0IFN0cmluZ1JhbmdlIGZyb20gJy4uL2NvbnRleHQvU3RyaW5nUmFuZ2UnO1xuaW1wb3J0IHR5cGUgU3VnZ2VzdGlvbiBmcm9tICcuL1N1Z2dlc3Rpb24nO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTdWdnZXN0aW9ucyB7XG4gICAgcHJpdmF0ZSBzdGF0aWMgRU1QVFkgPSBuZXcgU3VnZ2VzdGlvbnMoU3RyaW5nUmFuZ2UuYXQoMCksIFtdKTtcblxuICAgIHByaXZhdGUgcmFuZ2U6IFN0cmluZ1JhbmdlO1xuXG4gICAgcHJpdmF0ZSBzdWdnZXN0aW9uczogQXJyYXk8U3VnZ2VzdGlvbj47XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocmFuZ2U6IFN0cmluZ1JhbmdlLCBzdWdnZXN0aW9uczogQXJyYXk8U3VnZ2VzdGlvbj4pIHtcbiAgICAgICAgdGhpcy5yYW5nZSA9IHJhbmdlO1xuICAgICAgICB0aGlzLnN1Z2dlc3Rpb25zID0gc3VnZ2VzdGlvbnM7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFJhbmdlKCk6IFN0cmluZ1JhbmdlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmFuZ2U7XG4gICAgfVxuXG4gICAgcHVibGljIGdldExpc3QoKTogQXJyYXk8U3VnZ2VzdGlvbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zdWdnZXN0aW9ucztcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNFbXB0eSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3VnZ2VzdGlvbnMubGVuZ3RoID09PSAwO1xuICAgIH1cblxuICAgIHB1YmxpYyBlcXVhbHMobzogb2JqZWN0KTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzID09PSBvKSByZXR1cm4gdHJ1ZTtcblxuICAgICAgICBpZiAoIShvIGluc3RhbmNlb2YgU3VnZ2VzdGlvbnMpKSByZXR1cm4gZmFsc2U7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMucmFuZ2UuZXF1YWxzKG8ucmFuZ2UpICYmIGlzRXF1YWwodGhpcy5zdWdnZXN0aW9ucywgby5zdWdnZXN0aW9ucyk7XG4gICAgfVxuXG4gICAgcHVibGljIHRvU3RyaW5nKCk6IFN0cmluZyB7XG4gICAgICAgIHJldHVybiAnU3VnZ2VzdGlvbnN7JyArICdyYW5nZT0nICsgdGhpcy5yYW5nZSArICcsIHN1Z2dlc3Rpb25zPScgKyB0aGlzLnN1Z2dlc3Rpb25zICsgJ30nO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZW1wdHkoKTogUHJvbWlzZTxTdWdnZXN0aW9ucz4ge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuRU1QVFkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgbWVyZ2UoY29tbWFuZDogc3RyaW5nLCBpbnB1dDogQXJyYXk8U3VnZ2VzdGlvbnM+KSB7XG4gICAgICAgIGlmIChpbnB1dC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLkVNUFRZO1xuICAgICAgICB9IGVsc2UgaWYgKGlucHV0Lmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgcmV0dXJuIGlucHV0WzBdO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdGV4dHMgPSBbXTtcbiAgICAgICAgZm9yIChsZXQgc3VnZ2VzdGlvbnMgb2YgaW5wdXQpIHtcbiAgICAgICAgICAgIHRleHRzLnB1c2goLi4uc3VnZ2VzdGlvbnMuZ2V0TGlzdCgpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBTdWdnZXN0aW9ucy5jcmVhdGUoY29tbWFuZCwgdGV4dHMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlKGNvbW1hbmQ6IHN0cmluZywgc3VnZ2VzdGlvbnM6IEFycmF5PFN1Z2dlc3Rpb24+KTogU3VnZ2VzdGlvbnMge1xuICAgICAgICBpZiAoc3VnZ2VzdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5FTVBUWTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBzdGFydCA9IEluZmluaXR5O1xuICAgICAgICBsZXQgZW5kID0gLUluZmluaXR5O1xuICAgICAgICBmb3IgKGxldCBzdWdnZXN0aW9uIG9mIHN1Z2dlc3Rpb25zKSB7XG4gICAgICAgICAgICBzdGFydCA9IE1hdGgubWluKHN1Z2dlc3Rpb24uZ2V0UmFuZ2UoKS5nZXRTdGFydCgpLCBzdGFydCk7XG4gICAgICAgICAgICBlbmQgPSBNYXRoLm1heChzdWdnZXN0aW9uLmdldFJhbmdlKCkuZ2V0RW5kKCksIGVuZCk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgcmFuZ2UgPSBuZXcgU3RyaW5nUmFuZ2Uoc3RhcnQsIGVuZCk7XG4gICAgICAgIGNvbnN0IHRleHRzID0gW107XG4gICAgICAgIGZvciAobGV0IHN1Z2dlc3Rpb24gb2Ygc3VnZ2VzdGlvbnMpIHtcbiAgICAgICAgICAgIHRleHRzLnB1c2goc3VnZ2VzdGlvbi5leHBhbmQoY29tbWFuZCwgcmFuZ2UpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHNvcnRlZCA9IHRleHRzLnNvcnQoKGEsIGIpID0+IGEuY29tcGFyZVRvSWdub3JlQ2FzZShiKSk7XG4gICAgICAgIHJldHVybiBuZXcgU3VnZ2VzdGlvbnMocmFuZ2UsIHNvcnRlZCk7XG4gICAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUlBLE1BQXFCLFdBQVksQ0FBQTtBQUFBLEVBQzdCLE9BQWUsUUFBUSxJQUFJLFdBQUEsQ0FBWSxZQUFZLEVBQUcsQ0FBQSxDQUFDLENBQUcsRUFBQSxFQUFFLENBQUEsQ0FBQTtBQUFBLEVBRXBELEtBQUEsQ0FBQTtBQUFBLEVBRUEsV0FBQSxDQUFBO0FBQUEsRUFFRCxXQUFBLENB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
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
4
|
+
|
|
5
|
+
const lib_context_StringRange = require('../context/StringRange.cjs.js');
|
|
6
|
+
const lib_suggestion_Suggestion = require('./Suggestion.cjs.js');
|
|
7
|
+
const lib_suggestion_Suggestions = require('./Suggestions.cjs.js');
|
|
8
|
+
const lib_suggestion_IntegerSuggestion = require('./IntegerSuggestion.cjs.js');
|
|
9
|
+
require('../util/isEqual.cjs.js');
|
|
10
|
+
|
|
11
|
+
class SuggestionsBuilder {
|
|
12
|
+
input;
|
|
13
|
+
start;
|
|
14
|
+
remaining;
|
|
15
|
+
result = [];
|
|
16
|
+
constructor(input, start) {
|
|
17
|
+
this.input = input;
|
|
18
|
+
this.start = start;
|
|
19
|
+
this.remaining = input.substring(start);
|
|
20
|
+
}
|
|
21
|
+
getInput() {
|
|
22
|
+
return this.input;
|
|
23
|
+
}
|
|
24
|
+
getStart() {
|
|
25
|
+
return this.start;
|
|
26
|
+
}
|
|
27
|
+
getRemaining() {
|
|
28
|
+
return this.remaining;
|
|
29
|
+
}
|
|
30
|
+
build() {
|
|
31
|
+
return lib_suggestion_Suggestions.default.create(this.input, this.result);
|
|
32
|
+
}
|
|
33
|
+
buildPromise() {
|
|
34
|
+
return Promise.resolve(this.build());
|
|
35
|
+
}
|
|
36
|
+
suggest(text, tooltip = null) {
|
|
37
|
+
if (typeof text === "number") {
|
|
38
|
+
this.result.push(new lib_suggestion_IntegerSuggestion.default(lib_context_StringRange.default.between(this.start, this.input.length), text, tooltip));
|
|
39
|
+
return this;
|
|
40
|
+
}
|
|
41
|
+
if (text === this.remaining)
|
|
42
|
+
return this;
|
|
43
|
+
this.result.push(new lib_suggestion_Suggestion.default(lib_context_StringRange.default.between(this.start, this.input.length), text, tooltip));
|
|
44
|
+
return this;
|
|
45
|
+
}
|
|
46
|
+
add(other) {
|
|
47
|
+
this.result.push(...other.result);
|
|
48
|
+
return this;
|
|
49
|
+
}
|
|
50
|
+
createOffset(start = this.start) {
|
|
51
|
+
return new SuggestionsBuilder(this.input, start);
|
|
52
|
+
}
|
|
53
|
+
restart() {
|
|
54
|
+
return new SuggestionsBuilder(this.input, this.start);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
exports.default = SuggestionsBuilder;
|
|
59
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3VnZ2VzdGlvbnNCdWlsZGVyLmNqcy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9zdWdnZXN0aW9uL1N1Z2dlc3Rpb25zQnVpbGRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSBNZXNzYWdlIGZyb20gJy4uL01lc3NhZ2UnO1xuaW1wb3J0IFN0cmluZ1JhbmdlIGZyb20gJy4uL2NvbnRleHQvU3RyaW5nUmFuZ2UnO1xuaW1wb3J0IFN1Z2dlc3Rpb24gZnJvbSAnLi9TdWdnZXN0aW9uJztcbmltcG9ydCBTdWdnZXN0aW9ucyBmcm9tICcuL1N1Z2dlc3Rpb25zJztcbmltcG9ydCBJbnRlZ2VyU3VnZ2VzdGlvbiBmcm9tICcuL0ludGVnZXJTdWdnZXN0aW9uJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU3VnZ2VzdGlvbnNCdWlsZGVyIHtcbiAgICBwcml2YXRlIGlucHV0OiBzdHJpbmc7XG5cbiAgICBwcml2YXRlIHN0YXJ0OiBudW1iZXI7XG5cbiAgICBwcml2YXRlIHJlbWFpbmluZzogc3RyaW5nO1xuXG4gICAgcHJpdmF0ZSByZXN1bHQ6IEFycmF5PFN1Z2dlc3Rpb24+ID0gW107XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoaW5wdXQ6IHN0cmluZywgc3RhcnQ6IG51bWJlcikge1xuICAgICAgICB0aGlzLmlucHV0ID0gaW5wdXQ7XG4gICAgICAgIHRoaXMuc3RhcnQgPSBzdGFydDtcbiAgICAgICAgdGhpcy5yZW1haW5pbmcgPSBpbnB1dC5zdWJzdHJpbmcoc3RhcnQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRJbnB1dCgpOiBTdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5pbnB1dDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0U3RhcnQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhcnQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFJlbWFpbmluZygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5yZW1haW5pbmc7XG4gICAgfVxuXG4gICAgcHVibGljIGJ1aWxkKCk6IFN1Z2dlc3Rpb25zIHtcbiAgICAgICAgcmV0dXJuIFN1Z2dlc3Rpb25zLmNyZWF0ZSh0aGlzLmlucHV0LCB0aGlzLnJlc3VsdCk7XG4gICAgfVxuXG4gICAgcHVibGljIGJ1aWxkUHJvbWlzZSgpOiBQcm9taXNlPFN1Z2dlc3Rpb25zPiB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5idWlsZCgpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3VnZ2VzdCh0ZXh0OiBzdHJpbmcgfCBudW1iZXIsIHRvb2x0aXA6IE1lc3NhZ2UgfCBudWxsID0gbnVsbCk6IFN1Z2dlc3Rpb25zQnVpbGRlciB7XG4gICAgICAgIGlmICh0eXBlb2YgdGV4dCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgIHRoaXMucmVzdWx0LnB1c2gobmV3IEludGVnZXJTdWdnZXN0aW9uKFN0cmluZ1JhbmdlLmJldHdlZW4odGhpcy5zdGFydCwgdGhpcy5pbnB1dC5sZW5ndGgpLCB0ZXh0LCB0b29sdGlwKSk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0ZXh0ID09PSB0aGlzLnJlbWFpbmluZykgcmV0dXJuIHRoaXM7XG5cbiAgICAgICAgdGhpcy5yZXN1bHQucHVzaChuZXcgU3VnZ2VzdGlvbihTdHJpbmdSYW5nZS5iZXR3ZWVuKHRoaXMuc3RhcnQsIHRoaXMuaW5wdXQubGVuZ3RoKSwgdGV4dCwgdG9vbHRpcCkpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkKG90aGVyOiBTdWdnZXN0aW9uc0J1aWxkZXIpOiBTdWdnZXN0aW9uc0J1aWxkZXIge1xuICAgICAgICB0aGlzLnJlc3VsdC5wdXNoKC4uLm90aGVyLnJlc3VsdCk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyBjcmVhdGVPZmZzZXQoc3RhcnQ6IG51bWJlciA9IHRoaXMuc3RhcnQpOiBTdWdnZXN0aW9uc0J1aWxkZXIge1xuICAgICAgICByZXR1cm4gbmV3IFN1Z2dlc3Rpb25zQnVpbGRlcih0aGlzLmlucHV0LCBzdGFydCk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlc3RhcnQoKTogU3VnZ2VzdGlvbnNCdWlsZGVyIHtcbiAgICAgICAgcmV0dXJuIG5ldyBTdWdnZXN0aW9uc0J1aWxkZXIodGhpcy5pbnB1dCwgdGhpcy5zdGFydCk7XG4gICAgfVxufVxuIl0sIm5hbWVzIjpbIlN1Z2dlc3Rpb25zIiwiSW50ZWdlclN1Z2dlc3Rpb24iLCJTdHJpbmdSYW5nZSIsIlN1Z2dlc3Rpb24iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFNQSxNQUFxQixrQkFBbUIsQ0FBQTtBQUFBLEVBQzVCLEtBQUEsQ0FBQTtBQUFBLEVBRUEsS0FBQSxDQUFBO0FBQUEsRUFFQSxTQUFBLENBQUE7QUFBQSxFQUVBLFNBQTRCLEVBQUMsQ0FBQTtBQUFBLEVBRTlCLFdBQUEsQ0FBWSxPQUFlLEtBQWUsRUFBQTtBQUM3QyxJQUFBLElBQUEsQ0FBSyxLQUFRLEdBQUEsS0FBQSxDQUFBO0FBQ2IsSUFBQSxJQUFBLENBQUssS0FBUSxHQUFBLEtBQUEsQ0FBQTtBQUNiLElBQUssSUFBQSxDQUFBLFNBQUEsR0FBWSxLQUFNLENBQUEsU0FBQSxDQUFVLEtBQUssQ0FBQSxDQUFBO0FBQUEsR0FDMUM7QUFBQSxFQUVPLFFBQW1CLEdBQUE7QUFDdEIsSUFBQSxPQUFPLElBQUssQ0FBQSxLQUFBLENBQUE7QUFBQSxHQUNoQjtBQUFBLEVBRU8sUUFBbUIsR0FBQTtBQUN0QixJQUFBLE9BQU8sSUFBSyxDQUFBLEtBQUEsQ0FBQTtBQUFBLEdBQ2hCO0FBQUEsRUFFTyxZQUF1QixHQUFBO0FBQzFCLElBQUEsT0FBTyxJQUFLLENBQUEsU0FBQSxDQUFBO0FBQUEsR0FDaEI7QUFBQSxFQUVPLEtBQXFCLEdBQUE7QUFDeEIsSUFBQSxPQUFPQSxrQ0FBWSxDQUFBLE1BQUEsQ0FBTyxJQUFLLENBQUEsS0FBQSxFQUFPLEtBQUssTUFBTSxDQUFBLENBQUE7QUFBQSxHQUNyRDtBQUFBLEVBRU8sWUFBcUMsR0FBQTtBQUN4QyxJQUFBLE9BQU8sT0FBUSxDQUFBLE9BQUEsQ0FBUSxJQUFLLENBQUEsS0FBQSxFQUFPLENBQUEsQ0FBQTtBQUFBLEdBQ3ZDO0FBQUEsRUFFTyxPQUFBLENBQVEsSUFBdUIsRUFBQSxPQUFBLEdBQTBCLElBQTBCLEVBQUE7QUFDdEYsSUFBSSxJQUFBLE9BQU8sU0FBUyxRQUFVLEVBQUE7QUFDMUIsTUFBQSxJQUFBLENBQUssTUFBTyxDQUFBLElBQUEsQ0FBSyxJQUFJQyx3Q0FBQSxDQUFrQkMsZ0NBQVksT0FBUSxDQUFBLElBQUEsQ0FBSyxLQUFPLEVBQUEsSUFBQSxDQUFLLEtBQU0sQ0FBQSxNQUFNLENBQUcsRUFBQSxJQUFBLEVBQU0sT0FBTyxDQUFDLENBQUEsQ0FBQTtBQUN6RyxNQUFPLE9BQUEsSUFBQSxDQUFBO0FBQUEsS0FDWDtBQUVBLElBQUEsSUFBSSxTQUFTLElBQUssQ0FBQSxTQUFBO0FBQVcsTUFBTyxPQUFBLElBQUEsQ0FBQTtBQUVwQyxJQUFBLElBQUEsQ0FBSyxNQUFPLENBQUEsSUFBQSxDQUFLLElBQUlDLGlDQUFBLENBQVdELGdDQUFZLE9BQVEsQ0FBQSxJQUFBLENBQUssS0FBTyxFQUFBLElBQUEsQ0FBSyxLQUFNLENBQUEsTUFBTSxDQUFHLEVBQUEsSUFBQSxFQUFNLE9BQU8sQ0FBQyxDQUFBLENBQUE7QUFDbEcsSUFBTyxPQUFBLElBQUEsQ0FBQTtBQUFBLEdBQ1g7QUFBQSxFQUVPLElBQUksS0FBK0MsRUFBQTtBQUN0RCxJQUFBLElBQUEsQ0FBSyxNQUFPLENBQUEsSUFBQSxDQUFLLEdBQUcsS0FBQSxDQUFNLE1BQU0sQ0FBQSxDQUFBO0FBQ2hDLElBQU8sT0FBQSxJQUFBLENBQUE7QUFBQSxHQUNYO0FBQUEsRUFFTyxZQUFBLENBQWEsS0FBZ0IsR0FBQSxJQUFBLENBQUssS0FBMkIsRUFBQTtBQUNoRSxJQUFBLE9BQU8sSUFBSSxrQkFBQSxDQUFtQixJQUFLLENBQUEsS0FBQSxFQUFPLEtBQUssQ0FBQSxDQUFBO0FBQUEsR0FDbkQ7QUFBQSxFQUVPLE9BQThCLEdBQUE7QUFDakMsSUFBQSxPQUFPLElBQUksa0JBQUEsQ0FBbUIsSUFBSyxDQUFBLEtBQUEsRUFBTyxLQUFLLEtBQUssQ0FBQSxDQUFBO0FBQUEsR0FDeEQ7QUFDSjs7OzsifQ==
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { default as Suggestions } from './Suggestions';
|
|
2
|
+
import { default as Message } from '../Message';
|
|
3
|
+
|
|
4
|
+
export default class SuggestionsBuilder {
|
|
5
|
+
private input;
|
|
6
|
+
private start;
|
|
7
|
+
private remaining;
|
|
8
|
+
private result;
|
|
9
|
+
constructor(input: string, start: number);
|
|
10
|
+
getInput(): String;
|
|
11
|
+
getStart(): number;
|
|
12
|
+
getRemaining(): string;
|
|
13
|
+
build(): Suggestions;
|
|
14
|
+
buildPromise(): Promise<Suggestions>;
|
|
15
|
+
suggest(text: string | number, tooltip?: Message | null): SuggestionsBuilder;
|
|
16
|
+
add(other: SuggestionsBuilder): SuggestionsBuilder;
|
|
17
|
+
createOffset(start?: number): SuggestionsBuilder;
|
|
18
|
+
restart(): SuggestionsBuilder;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=SuggestionsBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SuggestionsBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/suggestion/SuggestionsBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,YAAY,CAAC;AAGtC,OAAO,WAAW,MAAM,eAAe,CAAC;AAGxC,MAAM,CAAC,OAAO,OAAO,kBAAkB;IACnC,OAAO,CAAC,KAAK,CAAS;IAEtB,OAAO,CAAC,KAAK,CAAS;IAEtB,OAAO,CAAC,SAAS,CAAS;IAE1B,OAAO,CAAC,MAAM,CAAyB;gBAEpB,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAMxC,QAAQ,IAAI,MAAM;IAIlB,QAAQ,IAAI,MAAM;IAIlB,YAAY,IAAI,MAAM;IAItB,KAAK,IAAI,WAAW;IAIpB,YAAY,IAAI,OAAO,CAAC,WAAW,CAAC;IAIpC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,GAAE,OAAO,GAAG,IAAW,GAAG,kBAAkB;IAYlF,GAAG,CAAC,KAAK,EAAE,kBAAkB,GAAG,kBAAkB;IAKlD,YAAY,CAAC,KAAK,GAAE,MAAmB,GAAG,kBAAkB;IAI5D,OAAO,IAAI,kBAAkB;CAGvC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import StringRange from '../context/StringRange.es.js';
|
|
2
|
+
import Suggestion from './Suggestion.es.js';
|
|
3
|
+
import Suggestions from './Suggestions.es.js';
|
|
4
|
+
import IntegerSuggestion from './IntegerSuggestion.es.js';
|
|
5
|
+
import '../util/isEqual.es.js';
|
|
6
|
+
|
|
7
|
+
class SuggestionsBuilder {
|
|
8
|
+
input;
|
|
9
|
+
start;
|
|
10
|
+
remaining;
|
|
11
|
+
result = [];
|
|
12
|
+
constructor(input, start) {
|
|
13
|
+
this.input = input;
|
|
14
|
+
this.start = start;
|
|
15
|
+
this.remaining = input.substring(start);
|
|
16
|
+
}
|
|
17
|
+
getInput() {
|
|
18
|
+
return this.input;
|
|
19
|
+
}
|
|
20
|
+
getStart() {
|
|
21
|
+
return this.start;
|
|
22
|
+
}
|
|
23
|
+
getRemaining() {
|
|
24
|
+
return this.remaining;
|
|
25
|
+
}
|
|
26
|
+
build() {
|
|
27
|
+
return Suggestions.create(this.input, this.result);
|
|
28
|
+
}
|
|
29
|
+
buildPromise() {
|
|
30
|
+
return Promise.resolve(this.build());
|
|
31
|
+
}
|
|
32
|
+
suggest(text, tooltip = null) {
|
|
33
|
+
if (typeof text === "number") {
|
|
34
|
+
this.result.push(new IntegerSuggestion(StringRange.between(this.start, this.input.length), text, tooltip));
|
|
35
|
+
return this;
|
|
36
|
+
}
|
|
37
|
+
if (text === this.remaining)
|
|
38
|
+
return this;
|
|
39
|
+
this.result.push(new Suggestion(StringRange.between(this.start, this.input.length), text, tooltip));
|
|
40
|
+
return this;
|
|
41
|
+
}
|
|
42
|
+
add(other) {
|
|
43
|
+
this.result.push(...other.result);
|
|
44
|
+
return this;
|
|
45
|
+
}
|
|
46
|
+
createOffset(start = this.start) {
|
|
47
|
+
return new SuggestionsBuilder(this.input, start);
|
|
48
|
+
}
|
|
49
|
+
restart() {
|
|
50
|
+
return new SuggestionsBuilder(this.input, this.start);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export { SuggestionsBuilder as default };
|
|
55
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3VnZ2VzdGlvbnNCdWlsZGVyLmVzLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3N1Z2dlc3Rpb24vU3VnZ2VzdGlvbnNCdWlsZGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIE1lc3NhZ2UgZnJvbSAnLi4vTWVzc2FnZSc7XG5pbXBvcnQgU3RyaW5nUmFuZ2UgZnJvbSAnLi4vY29udGV4dC9TdHJpbmdSYW5nZSc7XG5pbXBvcnQgU3VnZ2VzdGlvbiBmcm9tICcuL1N1Z2dlc3Rpb24nO1xuaW1wb3J0IFN1Z2dlc3Rpb25zIGZyb20gJy4vU3VnZ2VzdGlvbnMnO1xuaW1wb3J0IEludGVnZXJTdWdnZXN0aW9uIGZyb20gJy4vSW50ZWdlclN1Z2dlc3Rpb24nO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTdWdnZXN0aW9uc0J1aWxkZXIge1xuICAgIHByaXZhdGUgaW5wdXQ6IHN0cmluZztcblxuICAgIHByaXZhdGUgc3RhcnQ6IG51bWJlcjtcblxuICAgIHByaXZhdGUgcmVtYWluaW5nOiBzdHJpbmc7XG5cbiAgICBwcml2YXRlIHJlc3VsdDogQXJyYXk8U3VnZ2VzdGlvbj4gPSBbXTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihpbnB1dDogc3RyaW5nLCBzdGFydDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuaW5wdXQgPSBpbnB1dDtcbiAgICAgICAgdGhpcy5zdGFydCA9IHN0YXJ0O1xuICAgICAgICB0aGlzLnJlbWFpbmluZyA9IGlucHV0LnN1YnN0cmluZyhzdGFydCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldElucHV0KCk6IFN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmlucHV0O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRTdGFydCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5zdGFydDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UmVtYWluaW5nKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlbWFpbmluZztcbiAgICB9XG5cbiAgICBwdWJsaWMgYnVpbGQoKTogU3VnZ2VzdGlvbnMge1xuICAgICAgICByZXR1cm4gU3VnZ2VzdGlvbnMuY3JlYXRlKHRoaXMuaW5wdXQsIHRoaXMucmVzdWx0KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYnVpbGRQcm9taXNlKCk6IFByb21pc2U8U3VnZ2VzdGlvbnM+IHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLmJ1aWxkKCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdWdnZXN0KHRleHQ6IHN0cmluZyB8IG51bWJlciwgdG9vbHRpcDogTWVzc2FnZSB8IG51bGwgPSBudWxsKTogU3VnZ2VzdGlvbnNCdWlsZGVyIHtcbiAgICAgICAgaWYgKHR5cGVvZiB0ZXh0ID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgdGhpcy5yZXN1bHQucHVzaChuZXcgSW50ZWdlclN1Z2dlc3Rpb24oU3RyaW5nUmFuZ2UuYmV0d2Vlbih0aGlzLnN0YXJ0LCB0aGlzLmlucHV0Lmxlbmd0aCksIHRleHQsIHRvb2x0aXApKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRleHQgPT09IHRoaXMucmVtYWluaW5nKSByZXR1cm4gdGhpcztcblxuICAgICAgICB0aGlzLnJlc3VsdC5wdXNoKG5ldyBTdWdnZXN0aW9uKFN0cmluZ1JhbmdlLmJldHdlZW4odGhpcy5zdGFydCwgdGhpcy5pbnB1dC5sZW5ndGgpLCB0ZXh0LCB0b29sdGlwKSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGQob3RoZXI6IFN1Z2dlc3Rpb25zQnVpbGRlcik6IFN1Z2dlc3Rpb25zQnVpbGRlciB7XG4gICAgICAgIHRoaXMucmVzdWx0LnB1c2goLi4ub3RoZXIucmVzdWx0KTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIGNyZWF0ZU9mZnNldChzdGFydDogbnVtYmVyID0gdGhpcy5zdGFydCk6IFN1Z2dlc3Rpb25zQnVpbGRlciB7XG4gICAgICAgIHJldHVybiBuZXcgU3VnZ2VzdGlvbnNCdWlsZGVyKHRoaXMuaW5wdXQsIHN0YXJ0KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVzdGFydCgpOiBTdWdnZXN0aW9uc0J1aWxkZXIge1xuICAgICAgICByZXR1cm4gbmV3IFN1Z2dlc3Rpb25zQnVpbGRlcih0aGlzLmlucHV0LCB0aGlzLnN0YXJ0KTtcbiAgICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBTUEsTUFBcUIsa0JBQW1CLENBQUE7QUFBQSxFQUM1QixLQUFBLENBQUE7QUFBQSxFQUVBLEtBQUEsQ0FBQTtBQUFBLEVBRUEsU0FBQSxDQUFBO0FBQUEsRUFFQSxTQUE0QixFQUFDLENBQUE7QUFBQSxFQUU5QixXQUFBLENBQVksT0FBZSxLQUFlLEVBQUE7QUFDN0MsSUFBQSxJQUFBLENBQUssS0FBUSxHQUFBLEtBQUEsQ0FBQTtBQUNiLElBQUEsSUFBQSxDQUFLLEtBQVEsR0FBQSxLQUFBLENBQUE7QUFDYixJQUFLLElBQUEsQ0FBQSxTQUFBLEdBQVksS0FBTSxDQUFBLFNBQUEsQ0FBVSxLQUFLLENBQUEsQ0FBQTtBQUFBLEdBQzFDO0FBQUEsRUFFTyxRQUFtQixHQUFBO0FBQ3RCLElBQUEsT0FBTyxJQUFLLENBQUEsS0FBQSxDQUFBO0FBQUEsR0FDaEI7QUFBQSxFQUVPLFFBQW1CLEdBQUE7QUFDdEIsSUFBQSxPQUFPLElBQUssQ0FBQSxLQUFBLENBQUE7QUFBQSxHQUNoQjtBQUFBLEVBRU8sWUFBdUIsR0FBQTtBQUMxQixJQUFBLE9BQU8sSUFBSyxDQUFBLFNBQUEsQ0FBQTtBQUFBLEdBQ2hCO0FBQUEsRUFFTyxLQUFxQixHQUFBO0FBQ3hCLElBQUEsT0FBTyxXQUFZLENBQUEsTUFBQSxDQUFPLElBQUssQ0FBQSxLQUFBLEVBQU8sS0FBSyxNQUFNLENBQUEsQ0FBQTtBQUFBLEdBQ3JEO0FBQUEsRUFFTyxZQUFxQyxHQUFBO0FBQ3hDLElBQUEsT0FBTyxPQUFRLENBQUEsT0FBQSxDQUFRLElBQUssQ0FBQSxLQUFBLEVBQU8sQ0FBQSxDQUFBO0FBQUEsR0FDdkM7QUFBQSxFQUVPLE9BQUEsQ0FBUSxJQUF1QixFQUFBLE9BQUEsR0FBMEIsSUFBMEIsRUFBQTtBQUN0RixJQUFJLElBQUEsT0FBTyxTQUFTLFFBQVUsRUFBQTtBQUMxQixNQUFBLElBQUEsQ0FBSyxNQUFPLENBQUEsSUFBQSxDQUFLLElBQUksaUJBQUEsQ0FBa0IsWUFBWSxPQUFRLENBQUEsSUFBQSxDQUFLLEtBQU8sRUFBQSxJQUFBLENBQUssS0FBTSxDQUFBLE1BQU0sQ0FBRyxFQUFBLElBQUEsRUFBTSxPQUFPLENBQUMsQ0FBQSxDQUFBO0FBQ3pHLE1BQU8sT0FBQSxJQUFBLENBQUE7QUFBQSxLQUNYO0FBRUEsSUFBQSxJQUFJLFNBQVMsSUFBSyxDQUFBLFNBQUE7QUFBVyxNQUFPLE9BQUEsSUFBQSxDQUFBO0FBRXBDLElBQUEsSUFBQSxDQUFLLE1BQU8sQ0FBQSxJQUFBLENBQUssSUFBSSxVQUFBLENBQVcsWUFBWSxPQUFRLENBQUEsSUFBQSxDQUFLLEtBQU8sRUFBQSxJQUFBLENBQUssS0FBTSxDQUFBLE1BQU0sQ0FBRyxFQUFBLElBQUEsRUFBTSxPQUFPLENBQUMsQ0FBQSxDQUFBO0FBQ2xHLElBQU8sT0FBQSxJQUFBLENBQUE7QUFBQSxHQUNYO0FBQUEsRUFFTyxJQUFJLEtBQStDLEVBQUE7QUFDdEQsSUFBQSxJQUFBLENBQUssTUFBTyxDQUFBLElBQUEsQ0FBSyxHQUFHLEtBQUEsQ0FBTSxNQUFNLENBQUEsQ0FBQTtBQUNoQyxJQUFPLE9BQUEsSUFBQSxDQUFBO0FBQUEsR0FDWDtBQUFBLEVBRU8sWUFBQSxDQUFhLEtBQWdCLEdBQUEsSUFBQSxDQUFLLEtBQTJCLEVBQUE7QUFDaEUsSUFBQSxPQUFPLElBQUksa0JBQUEsQ0FBbUIsSUFBSyxDQUFBLEtBQUEsRUFBTyxLQUFLLENBQUEsQ0FBQTtBQUFBLEdBQ25EO0FBQUEsRUFFTyxPQUE4QixHQUFBO0FBQ2pDLElBQUEsT0FBTyxJQUFJLGtCQUFBLENBQW1CLElBQUssQ0FBQSxLQUFBLEVBQU8sS0FBSyxLQUFLLENBQUEsQ0FBQTtBQUFBLEdBQ3hEO0FBQ0o7Ozs7In0=
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
4
|
+
|
|
5
|
+
require('./CommandNode.cjs.js');
|
|
6
|
+
require('../context/ParsedArgument.cjs.js');
|
|
7
|
+
const lib_tree_ArgumentCommandNode = require('../../RequiredArgumentBuilder-DMJ4kl0u.cjs');
|
|
8
|
+
require('../StringReader.cjs.js');
|
|
9
|
+
require('../suggestion/Suggestions.cjs.js');
|
|
10
|
+
require('../util/isEqual.cjs.js');
|
|
11
|
+
require('../context/StringRange.cjs.js');
|
|
12
|
+
require('../builder/ArgumentBuilder.cjs.js');
|
|
13
|
+
require('./RootCommandNode.cjs.js');
|
|
14
|
+
require('../../CommandSyntaxException-BKBHJvxr.cjs');
|
|
15
|
+
require('../LiteralMessage.cjs.js');
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
exports.default = lib_tree_ArgumentCommandNode.ArgumentCommandNode;
|
|
20
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXJndW1lbnRDb21tYW5kTm9kZS5janMuanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7In0=
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { default as SuggestionsBuilder } from '../suggestion/SuggestionsBuilder';
|
|
2
|
+
import { default as Suggestions } from '../suggestion/Suggestions';
|
|
3
|
+
import { default as SuggestionProvider } from '../suggestion/SuggestionProvider';
|
|
4
|
+
import { default as StringReader } from '../StringReader';
|
|
5
|
+
import { default as RequiredArgumentBuilder } from '../builder/RequiredArgumentBuilder';
|
|
6
|
+
import { default as RedirectModifier } from '../RedirectModifier';
|
|
7
|
+
import { default as Predicate } from '../Predicate';
|
|
8
|
+
import { default as CommandNode } from './CommandNode';
|
|
9
|
+
import { default as CommandContextBuilder } from '../context/CommandContextBuilder';
|
|
10
|
+
import { default as CommandContext } from '../context/CommandContext';
|
|
11
|
+
import { default as Command } from '../Command';
|
|
12
|
+
import { default as ArgumentType } from '../arguments/ArgumentType';
|
|
13
|
+
|
|
14
|
+
export default class ArgumentCommandNode<S, T> extends CommandNode<S> {
|
|
15
|
+
private name;
|
|
16
|
+
private type;
|
|
17
|
+
private customSuggestions;
|
|
18
|
+
constructor(name: string, type: ArgumentType<T>, command: Command<S>, requirement: Predicate<S>, redirect: CommandNode<S>, modifier: RedirectModifier<S> | null, forks: boolean, customSuggestions: SuggestionProvider<S>);
|
|
19
|
+
getNodeType(): string;
|
|
20
|
+
getType(): ArgumentType<T>;
|
|
21
|
+
getName(): string;
|
|
22
|
+
getUsageText(): string;
|
|
23
|
+
getCustomSuggestions(): SuggestionProvider<S>;
|
|
24
|
+
parse(reader: StringReader, contextBuilder: CommandContextBuilder<S>): void;
|
|
25
|
+
listSuggestions(context: CommandContext<S>, builder: SuggestionsBuilder): Promise<Suggestions>;
|
|
26
|
+
createBuilder(): RequiredArgumentBuilder<S, T>;
|
|
27
|
+
isValidInput(input: string, context: any): boolean;
|
|
28
|
+
equals(o: object): boolean;
|
|
29
|
+
getSortedKey(): string;
|
|
30
|
+
getExamples(): Iterable<string>;
|
|
31
|
+
toString(): string;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=ArgumentCommandNode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ArgumentCommandNode.d.ts","sourceRoot":"","sources":["../../../src/lib/tree/ArgumentCommandNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,OAAO,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,cAAc,MAAM,2BAA2B,CAAC;AAC5D,OAAO,KAAK,qBAAqB,MAAM,kCAAkC,CAAC;AAC1E,OAAO,WAAW,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,SAAS,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,gBAAgB,MAAM,qBAAqB,CAAC;AACxD,OAAO,uBAAuB,MAAM,oCAAoC,CAAC;AACzE,OAAO,YAAY,MAAM,iBAAiB,CAAC;AAC3C,OAAO,KAAK,kBAAkB,MAAM,kCAAkC,CAAC;AACvE,OAAO,WAAW,MAAM,2BAA2B,CAAC;AACpD,OAAO,KAAK,kBAAkB,MAAM,kCAAkC,CAAC;AAMvE,MAAM,CAAC,OAAO,OAAO,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAE,SAAQ,WAAW,CAAC,CAAC,CAAC;IACjE,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,IAAI,CAAkB;IAC9B,OAAO,CAAC,iBAAiB,CAAwB;gBAG7C,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,EACrB,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EACnB,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,EACzB,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,EACxB,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,IAAI,EACpC,KAAK,EAAE,OAAO,EACd,iBAAiB,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAQrC,WAAW,IAAI,MAAM;IAIrB,OAAO,IAAI,YAAY,CAAC,CAAC,CAAC;IAI1B,OAAO,IAAI,MAAM;IAIjB,YAAY,IAAI,MAAM;IAItB,oBAAoB,IAAI,kBAAkB,CAAC,CAAC,CAAC;IAI7C,KAAK,CAAC,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAQpE,eAAe,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC;IAS9F,aAAa,IAAI,uBAAuB,CAAC,CAAC,EAAE,CAAC,CAAC;IAe9C,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO;IAUlD,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO;IAU1B,YAAY,IAAI,MAAM;IAItB,WAAW,IAAI,QAAQ,CAAC,MAAM,CAAC;IAI/B,QAAQ,IAAI,MAAM;CAG5B"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import './CommandNode.es.js';
|
|
2
|
+
import '../context/ParsedArgument.es.js';
|
|
3
|
+
export { A as default } from '../../RequiredArgumentBuilder-D105occO.js';
|
|
4
|
+
import '../StringReader.es.js';
|
|
5
|
+
import '../suggestion/Suggestions.es.js';
|
|
6
|
+
import '../util/isEqual.es.js';
|
|
7
|
+
import '../context/StringRange.es.js';
|
|
8
|
+
import '../builder/ArgumentBuilder.es.js';
|
|
9
|
+
import './RootCommandNode.es.js';
|
|
10
|
+
import '../../CommandSyntaxException-Dz8Qlq9d.js';
|
|
11
|
+
import '../LiteralMessage.es.js';
|
|
12
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXJndW1lbnRDb21tYW5kTm9kZS5lcy5qcyIsInNvdXJjZXMiOltdLCJzb3VyY2VzQ29udGVudCI6W10sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7In0=
|