| 13639 | sort: function(cm, params) { |
| 13640 | var reverse, ignoreCase, unique, number; |
| 13641 | function parseArgs() { |
| 13642 | if (params.argString) { |
| 13643 | var args = new CodeMirror.StringStream(params.argString); |
| 13644 | if (args.eat('!')) { reverse = true; } |
| 13645 | if (args.eol()) { return; } |
| 13646 | if (!args.eatSpace()) { return 'Invalid arguments'; } |
| 13647 | var opts = args.match(/[a-z]+/); |
| 13648 | if (opts) { |
| 13649 | opts = opts[0]; |
| 13650 | ignoreCase = opts.indexOf('i') != -1; |
| 13651 | unique = opts.indexOf('u') != -1; |
| 13652 | var decimal = opts.indexOf('d') != -1 && 1; |
| 13653 | var hex = opts.indexOf('x') != -1 && 1; |
| 13654 | var octal = opts.indexOf('o') != -1 && 1; |
| 13655 | if (decimal + hex + octal > 1) { return 'Invalid arguments'; } |
| 13656 | number = decimal && 'decimal' || hex && 'hex' || octal && 'octal'; |
| 13657 | } |
| 13658 | if (args.match(/\/.*\//)) { return 'patterns not supported'; } |
| 13659 | } |
| 13660 | } |
| 13661 | var err = parseArgs(); |
| 13662 | if (err) { |
| 13663 | showConfirm(cm, err + ': ' + params.argString); |