use of com.redhat.ceylon.common.tool.ToolModel in project ceylon-compiler by ceylon.
the class CeylonBashCompletionTool method run.
@Override
public void run() throws Exception {
// we don't care about arg0
arguments.remove(0);
cword--;
final CompletionResults results;
if (cword == 0) {
// We're completing the name of the tool to run
results = completeToolNames(arguments.isEmpty() ? "" : arguments.get(cword));
} else if (cword < arguments.size()) {
String argument = arguments.get(cword);
CeylonTool main = new CeylonTool();
main.setArgs(arguments);
main.setToolLoader(toolLoader);
ToolModel<?> tool = main.getToolModel();
if (!afterEoo()) {
if (argument.startsWith("--")) {
if (argument.contains("=")) {
results = completeLongOptionArgument(tool, argument);
} else {
results = completeLongOption(tool, argument);
}
} else if (argument.startsWith("-")) {
/*TODO for (OptionModel<?> option : tool.getOptions()) {
if (argument.charAt(argument.length()-1) == option.getShortName()) {
complete
}
}*/
results = new CompletionResults();
} else {
// TODO it's argument completion unless the previous argument was a
// non-pure short option
results = new CompletionResults();
}
} else {
// TODO else it must be argument completion
results = new CompletionResults();
}
} else {
// TODO we don't know what we're completing.
// First assume it's an argument...
// ... but if the tool doesn't have any arguments (or all the
// arguments are already specified) then assume it's an option
results = new CompletionResults();
}
results.emitCompletions();
}
Aggregations