.gitignore added
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / yargs-parser / lib / tokenize-arg-string.js
1 // take an un-split argv string and tokenize it.
2 module.exports = function (argString) {
3   if (Array.isArray(argString)) return argString
4
5   argString = argString.trim()
6
7   var i = 0
8   var prevC = null
9   var c = null
10   var opening = null
11   var args = []
12
13   for (var ii = 0; ii < argString.length; ii++) {
14     prevC = c
15     c = argString.charAt(ii)
16
17     // split on spaces unless we're in quotes.
18     if (c === ' ' && !opening) {
19       if (!(prevC === ' ')) {
20         i++
21       }
22       continue
23     }
24
25     // don't split the string if we're in matching
26     // opening or closing single and double quotes.
27     if (c === opening) {
28       opening = null
29       continue
30     } else if ((c === "'" || c === '"') && !opening) {
31       opening = c
32       continue
33     }
34
35     if (!args[i]) args[i] = ''
36     args[i] += c
37   }
38
39   return args
40 }