Improve completers generation

I think this logic can be simplified by just using `List<String>` instead of `String[]` for `tokens`.