use of org.eclipse.ceylon.common.tools.CeylonTool in project ceylon by eclipse.
the class TopLevelToolTests method setup.
@Before
public void setup() {
tool = new CeylonTool();
tool.setToolLoader(toolLoader);
}
use of org.eclipse.ceylon.common.tools.CeylonTool in project ceylon by eclipse.
the class CeylonDocToolTests method tool.
private CeylonDocTool tool(List<File> sourceFolders, String[] repositories, String overrides, List<File> docFolders, List<String> moduleName, boolean haltOnError, boolean deleteDestDir, boolean bootstrapCeylon) throws Exception {
CeylonDocTool tool = new CeylonDocTool();
tool.setSystemRepository("../dist/dist/repo");
tool.setSourceFolders(sourceFolders);
tool.setRepositoryAsStrings(Arrays.asList(repositories));
tool.setModuleSpecs(moduleName);
tool.setDocFolders(docFolders);
tool.setHaltOnError(haltOnError);
tool.setBootstrapCeylon(bootstrapCeylon);
File dir = new File("build", "CeylonDocToolTest/" + name.getMethodName());
if (deleteDestDir && dir.exists()) {
FileUtil.delete(dir);
}
tool.setOut(dir.getAbsolutePath());
if (overrides != null) {
tool.setOverrides(overrides);
}
tool.initialize(new CeylonTool());
return tool;
}
use of org.eclipse.ceylon.common.tools.CeylonTool in project ceylon by eclipse.
the class CeylonHelpTool method run.
@Override
public void run() {
if (wantsPager && OSUtil.isWindows() && tool != null) {
if (openHelpInBrowser()) {
return;
}
}
docBuilder.setIncludeHidden(includeHidden);
Doc doc;
if (tool != null) {
doc = docBuilder.buildDoc(tool);
} else {
final ToolModel<CeylonTool> root = toolLoader.loadToolModel("");
doc = docBuilder.buildDoc(root, true);
}
Process pagerProcess = null;
if (wantsPager && !OSUtil.isWindows()) {
pagerProcess = startPager();
}
OutputStream pagerPipe = null;
if (pagerProcess != null)
pagerPipe = pagerProcess.getOutputStream();
try {
final WordWrap wrap = getWrap(pagerPipe);
Visitor plain = new PlainVisitor(wrap);
if (synopsis) {
plain = new SynopsisOnlyVisitor(plain);
} else if (options != null) {
plain = new OptionsOnlyVisitor(plain, new HashSet<String>(Arrays.asList(options.trim().split("\\s*,\\s*"))));
}
doc.accept(plain);
wrap.flush();
} finally {
// shutdown pager
if (pagerPipe != null) {
try {
pagerPipe.close();
} catch (IOException e) {
// Seems common on MacOS so let's just ignore this
}
// wait for pager to be done, there's no point doing anything else meanwhile
try {
int errorCode = pagerProcess.waitFor();
if (errorCode != 0) {
throw new ToolUsageError("Pager process returned an error exit code: " + errorCode + ". Try fixing your $CEYLON_PAGER or $PAGER environment variable or invoke with the --no-pager command-line option.");
}
} catch (InterruptedException e) {
throw new ToolUsageError("Pager process interrupted. Try fixing your $CEYLON_PAGER or $PAGER environment variable or invoke with the --no-pager command-line option.");
}
}
}
}
use of org.eclipse.ceylon.common.tools.CeylonTool in project ceylon by eclipse.
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