예제 #1
0
        internal static ParseException LongOptionNameContainSymbol(TextBuffer reader, int position, char character)
        {
            var name  = character.ToString(CultureInfo.InvariantCulture);
            var token = new CommandTreeToken(CommandTreeToken.Kind.LongOption, position, name, name);

            return(ParseExceptionFactory.Create(reader.Original, token, "Invalid long option name.", "Invalid character."));
        }
예제 #2
0
        internal static ParseException LongOptionNameIsOneCharacter(TextBuffer reader, int position, string name)
        {
            var token  = new CommandTreeToken(CommandTreeToken.Kind.LongOption, position, name, $"--{name}");
            var reason = $"Did you mean -{name}?";

            return(ParseExceptionFactory.Create(reader.Original, token, "Invalid long option name.", reason));
        }
예제 #3
0
        internal static ParseException UnknownCommand(CommandModel model, CommandTree?node, IEnumerable <string> args, CommandTreeToken token)
        {
            var suggestion = CommandSuggestor.Suggest(model, node?.Command, token.Value);
            var text       = suggestion != null ? $"Did you mean '{suggestion.Name}'?" : "No such command.";

            return(ParseExceptionFactory.Create(args, token, $"Unknown command '{token.Value}'.", text));
        }
예제 #4
0
        internal static ParseException LongOptionNameStartWithDigit(TextBuffer reader, int position, string name)
        {
            var token = new CommandTreeToken(CommandTreeToken.Kind.LongOption, position, name, $"--{name}");

            return(ParseExceptionFactory.Create(reader.Original, token, "Invalid long option name.", "Option names cannot start with a digit."));
        }
예제 #5
0
        internal static ParseException LongOptionNameIsMissing(TextBuffer reader, int position)
        {
            var token = new CommandTreeToken(CommandTreeToken.Kind.LongOption, position, string.Empty, "--");

            return(ParseExceptionFactory.Create(reader.Original, token, "Invalid long option name.", "Did you forget the option name?"));
        }
예제 #6
0
 internal static ParseException InvalidShortOptionName(string input, CommandTreeToken token)
 {
     return(ParseExceptionFactory.Create(input, token, "Short option does not have a valid name.", "Not a valid name for a short option."));
 }
예제 #7
0
 internal static ParseException CannotAssignValueToFlag(IEnumerable <string> args, CommandTreeToken token)
 {
     return(ParseExceptionFactory.Create(args, token, "Flags cannot be assigned a value.", "Can't assign value."));
 }
예제 #8
0
 internal static ParseException UnexpectedOption(IEnumerable <string> args, CommandTreeToken token)
 {
     return(ParseExceptionFactory.Create(args, token, $"Unexpected option '{token.Value}'.", "Did you forget the command?"));
 }
예제 #9
0
 internal static ParseException OptionHasNoValue(IEnumerable <string> args, CommandTreeToken token, CommandOption option)
 {
     return(ParseExceptionFactory.Create(args, token, $"Option '{option.GetOptionName()}' is defined but no value has been provided.", "No value provided."));
 }
예제 #10
0
 internal static ParseException OptionValueWasExpected(string input, CommandTreeToken token)
 {
     return(ParseExceptionFactory.Create(input, token, "Expected an option value.", "Did you forget the option value?"));
 }
예제 #11
0
 internal static ParseException OptionHasNoName(string input, CommandTreeToken token)
 {
     return(ParseExceptionFactory.Create(input, token, "Option does not have a name.", "Did you forget the option name?"));
 }
예제 #12
0
 internal static ParseException UnknownOption(IEnumerable <string> args, CommandTreeToken token)
 {
     return(ParseExceptionFactory.Create(args, token, $"Unknown option '{token.Value}'.", "Unknown option."));
 }
예제 #13
0
 internal static ParseException CouldNotMatchArgument(IEnumerable <string> args, CommandTreeToken token)
 {
     return(ParseExceptionFactory.Create(args, token, $"Could not match '{token.Value}' with an argument.", "Could not match to argument."));
 }
예제 #14
0
 internal static ParseException UnterminatedQuote(string input, CommandTreeToken token)
 {
     return(ParseExceptionFactory.Create(input, token, $"Encountered unterminated quoted string '{token.Value}'.", "Did you forget the closing quotation mark?"));
 }