public InstallPkgsWizard( final ITool rTool, final IRPkgManager.Ext manager, final int mode, final RPkgResolver plan) { fRTool = rTool; fRPkgManager = manager; fMode = mode; switch (fMode) { case MODE_INSTALL: fTitle = "Install Selected R Packages"; break; case MODE_UPDATE: fTitle = "Update Selected R Packages"; break; case MODE_REINSTALL: fTitle = "Reinstall R Packages"; break; default: throw new IllegalArgumentException("mode"); // $NON-NLS-1$ } fResolver = plan; setWindowTitle("R Package Manager"); setNeedsProgressMonitor(true); setDialogSettings( DialogUtil.getDialogSettings(RUIPlugin.getDefault(), "pkgmanager/InstallPkgsWizard")); }
@Override protected String getInitialFileContent(final IFile newFileHandle, final SubMonitor m) { final String lineDelimiter = TextUtil.getLineDelimiter(newFileHandle.getProject()); final IRSourceUnit su = (IRSourceUnit) LTK.getSourceUnitManager() .getSourceUnit( LTK.PERSISTENCE_CONTEXT, newFileHandle, getContentType(newFileHandle), true, m); try { final EvaluatedTemplate data = CodeGeneration.getNewRFileContent(su, lineDelimiter); if (data != null) { fInitialSelection = data.getRegionToSelect(); return data.getContent(); } } catch (final CoreException e) { RUIPlugin.logError( ICommonStatusConstants.INTERNAL_TEMPLATE, "An error occured when applying template to new R script file.", e); //$NON-NLS-1$ } finally { if (su != null) { su.disconnect(m); } } return null; }
/** * Generates initial content for a new R script file. * * @param su the R source unit to create the source for. The unit does not need to exist * @param lineDelimiter the line delimiter to be used * @return the new content or <code>null</code> if the template is undefined or empty * @throws CoreException thrown when the evaluation of the code template fails */ public static EvaluatedTemplate getNewRFileContent( final RResourceUnit su, final String lineDelimiter) throws CoreException { final Template template = RUIPlugin.getDefault() .getRCodeGenerationTemplateStore() .findTemplate(RCodeTemplatesContextType.NEW_RSCRIPTFILE); if (template == null) { return null; } final RCodeTemplatesContext context = new RCodeTemplatesContext( RCodeTemplatesContextType.NEW_RSCRIPTFILE_CONTEXTTYPE, su, lineDelimiter); try { final TemplateBuffer buffer = context.evaluate(template); if (buffer == null) { return null; } return new TemplatesUtil.EvaluatedTemplate(buffer, lineDelimiter); } catch (final Exception e) { throw new CoreException( new Status( IStatus.ERROR, RUI.PLUGIN_ID, NLS.bind( TemplateMessages.TemplateEvaluation_error_description, template.getDescription()), e)); } }
private int getNextLineOffset(final IDocument doc, final int endLine) { try { if (endLine >= 0 && endLine + 1 < doc.getNumberOfLines()) { return doc.getLineOffset(endLine + 1); } else { return -1; } } catch (final BadLocationException e) { // don't show an error RUIPlugin.logError(RUIPlugin.INTERNAL_ERROR, "Error while find next line.", e); // $NON-NLS-1$ return -1; } }
protected void updateSymbols(final Map<String, IToken> map) { final RIdentifierGroups groups = RUIPlugin.getDefault().getRIdentifierGroups(); groups.getReadLock().lock(); try { putAll(map, groups.getAssignmentIdentifiers(), getToken(IRTextTokens.SYMBOL_SUB_ASSIGN_KEY)); putAll(map, groups.getLogicalIdentifiers(), getToken(IRTextTokens.SYMBOL_SUB_LOGICAL_KEY)); putAll( map, groups.getFlowcontrolIdentifiers(), getToken(IRTextTokens.SYMBOL_SUB_FLOWCONTROL_KEY)); putAll(map, groups.getCustom1Identifiers(), getToken(IRTextTokens.SYMBOL_SUB_CUSTOM1_KEY)); putAll(map, groups.getCustom2Identifiers(), getToken(IRTextTokens.SYMBOL_SUB_CUSTOM2_KEY)); } finally { groups.getReadLock().unlock(); } }
public NewRFileCreationWizard() { setDialogSettings( DialogUtil.getDialogSettings(RUIPlugin.getDefault(), "NewElementWizard")); // $NON-NLS-1$ setDefaultPageImageDescriptor(RUI.getImageDescriptor(RUIPlugin.IMG_WIZBAN_NEWRFILE)); setWindowTitle(Messages.NewRScriptFileWizard_title); }
@Override public ContextTypeRegistry getContextTypeRegistry() { return RUIPlugin.getDefault().getRdCodeGenerationTemplateContextRegistry(); }
@Override public TemplateStore getTemplateStore() { return RUIPlugin.getDefault().getRdCodeGenerationTemplateStore(); }
/** * Generates content for the Roxygen comment for the given function definition * * @param rMethod function element * @param lineDelimiter the line delimiter to be used * @return * @throws CoreException thrown when the evaluation of the code template fails */ public static EvaluatedTemplate getCommonFunctionRoxygenComment( final IRMethod rMethod, final String lineDelimiter) throws CoreException { final Template template = RUIPlugin.getDefault() .getRCodeGenerationTemplateStore() .findTemplate(RCodeTemplatesContextType.ROXYGEN_COMMONFUNCTION_TEMPLATE); if (template == null) { return null; } final ISourceUnit su = rMethod.getSourceUnit(); final RCodeTemplatesContext context = new RCodeTemplatesContext( RCodeTemplatesContextType.ROXYGEN_COMMONFUNCTION_CONTEXTTYPE, su, lineDelimiter); context.setRElement(rMethod); try { final TemplateBuffer buffer = context.evaluate(template); if (buffer == null) { return null; } final EvaluatedTemplate data = new EvaluatedTemplate(buffer, lineDelimiter); final AbstractDocument content = data.startPostEdit(); final StringBuilder tagBuffer = new StringBuilder(64); final TemplateVariable paramVariable = TemplatesUtil.findVariable(buffer, RCodeTemplatesContextType.ROXYGEN_PARAM_TAGS_VARIABLE); final Position[] paramPositions = new Position[(paramVariable != null) ? paramVariable.getOffsets().length : 0]; for (int i = 0; i < paramPositions.length; i++) { paramPositions[i] = new Position(paramVariable.getOffsets()[i], paramVariable.getLength()); content.addPosition(paramPositions[i]); } if (paramPositions.length > 0) { String[] tags = null; final ArgsDefinition args = rMethod.getArgsDefinition(); if (args != null) { final int count = args.size(); tags = new String[count]; for (int i = 0; i < count; i++) { tagBuffer.append("@param "); // $NON-NLS-1$ tagBuffer.append(args.get(i).name); tagBuffer.append(" "); // $NON-NLS-1$ tags[i] = tagBuffer.toString(); tagBuffer.setLength(0); } } for (final Position pos : paramPositions) { insertRoxygen(content, pos, tags); } } data.finishPostEdit(); return data; } catch (final Exception e) { throw new CoreException( new Status( IStatus.ERROR, RUI.PLUGIN_ID, NLS.bind( TemplateMessages.TemplateEvaluation_error_description, template.getDescription()), e)); } }
/** * Generates content for the Roxygen comment for the given method definition * * @param rMethod function element * @param lineDelimiter the line delimiter to be used * @return * @throws CoreException thrown when the evaluation of the code template fails */ public static EvaluatedTemplate getMethodRoxygenComment( final IRMethod rMethod, final String lineDelimiter) throws CoreException { final Template template = RUIPlugin.getDefault() .getRCodeGenerationTemplateStore() .findTemplate(RCodeTemplatesContextType.ROXYGEN_S4METHOD_TEMPLATE); if (template == null) { return null; } final ISourceUnit su = rMethod.getSourceUnit(); final RCodeTemplatesContext context = new RCodeTemplatesContext( RCodeTemplatesContextType.ROXYGEN_METHOD_CONTEXTTYPE, su, lineDelimiter); context.setRElement(rMethod); try { final TemplateBuffer buffer = context.evaluate(template); if (buffer == null) { return null; } final EvaluatedTemplate data = new EvaluatedTemplate(buffer, lineDelimiter); final AbstractDocument content = data.startPostEdit(); final StringBuilder sb = new StringBuilder(64); final Position[] sigPositions; String sigText = null; { final TemplateVariable variable = TemplatesUtil.findVariable(buffer, RCodeTemplatesContextType.ROXYGEN_SIG_LIST_VARIABLE); sigPositions = new Position[(variable != null) ? variable.getOffsets().length : 0]; for (int i = 0; i < sigPositions.length; i++) { sigPositions[i] = new Position(variable.getOffsets()[i], variable.getLength()); content.addPosition(sigPositions[i]); } if (sigPositions.length > 0) { final ArgsDefinition args = rMethod.getArgsDefinition(); if (args != null) { final int count = args.size(); for (int i = 0; i < count; i++) { final Arg arg = args.get(i); if (arg.className == null || arg.className.equals("ANY")) { // $NON-NLS-1$ break; } sb.append(arg.className); sb.append(","); // $NON-NLS-1$ } if (sb.length() > 0) { sigText = sb.substring(0, sb.length() - 1); sb.setLength(0); } } } } final Position[] paramPositions; String[] paramTags = null; { final TemplateVariable variable = TemplatesUtil.findVariable( buffer, RCodeTemplatesContextType.ROXYGEN_PARAM_TAGS_VARIABLE); paramPositions = new Position[(variable != null) ? variable.getOffsets().length : 0]; for (int i = 0; i < paramPositions.length; i++) { paramPositions[i] = new Position(variable.getOffsets()[i], variable.getLength()); content.addPosition(paramPositions[i]); } if (paramPositions.length > 0) { String list = null; final ArgsDefinition args = rMethod.getArgsDefinition(); if (args != null) { final int count = args.size(); paramTags = new String[count]; for (int i = 0; i < count; i++) { sb.append("@param "); // $NON-NLS-1$ sb.append(args.get(i).name); sb.append(" "); // $NON-NLS-1$ paramTags[i] = sb.toString(); sb.setLength(0); } } } } if (sigPositions != null) { for (final Position pos : sigPositions) { insertRoxygen(content, pos, sigText); } } if (paramPositions != null) { for (final Position pos : paramPositions) { insertRoxygen(content, pos, paramTags); } } data.finishPostEdit(); return data; } catch (final Exception e) { throw new CoreException( new Status( IStatus.ERROR, RUI.PLUGIN_ID, NLS.bind( TemplateMessages.TemplateEvaluation_error_description, template.getDescription()), e)); } }
/** * Generates content for the Roxygen comment for the given class definition * * @param rClass class element * @param lineDelimiter the line delimiter to be used * @return * @throws CoreException thrown when the evaluation of the code template fails */ public static EvaluatedTemplate getClassRoxygenComment( final IRClass rClass, final String lineDelimiter) throws CoreException { final Template template = RUIPlugin.getDefault() .getRCodeGenerationTemplateStore() .findTemplate(RCodeTemplatesContextType.ROXYGEN_S4CLASS_TEMPLATE); if (template == null) { return null; } final ISourceUnit su = rClass.getSourceUnit(); final RCodeTemplatesContext context = new RCodeTemplatesContext( RCodeTemplatesContextType.ROXYGEN_CLASS_CONTEXTTYPE, su, lineDelimiter); context.setRElement(rClass); try { final TemplateBuffer buffer = context.evaluate(template); if (buffer == null) { return null; } final EvaluatedTemplate data = new EvaluatedTemplate(buffer, lineDelimiter); final AbstractDocument content = data.startPostEdit(); final StringBuilder tagBuffer = new StringBuilder(64); final TemplateVariable slotVariable = TemplatesUtil.findVariable(buffer, RCodeTemplatesContextType.ROXYGEN_SLOT_TAGS_VARIABLE); final Position[] slotPositions = new Position[(slotVariable != null) ? slotVariable.getOffsets().length : 0]; for (int i = 0; i < slotPositions.length; i++) { slotPositions[i] = new Position(slotVariable.getOffsets()[i], slotVariable.getLength()); content.addPosition(slotPositions[i]); } if (slotPositions.length > 0) { String[] tags = null; final List<? extends IModelElement> slots = rClass.getModelChildren(IRElement.R_S4SLOT_FILTER); final int count = slots.size(); tags = new String[count]; for (int i = 0; i < count; i++) { final IRSlot slot = (IRSlot) slots.get(i); tagBuffer.append("@slot "); // $NON-NLS-1$ tagBuffer.append(slot.getElementName().getDisplayName()); tagBuffer.append(" "); // $NON-NLS-1$ tags[i] = tagBuffer.toString(); tagBuffer.setLength(0); } for (final Position pos : slotPositions) { insertRoxygen(content, pos, tags); } } data.finishPostEdit(); return data; } catch (final Exception e) { throw new CoreException( new Status( IStatus.ERROR, RUI.PLUGIN_ID, NLS.bind( TemplateMessages.TemplateEvaluation_error_description, template.getDescription()), e)); } }
public NewRProjectWizard() { setDialogSettings( DialogUtil.getDialogSettings(RUIPlugin.getDefault(), "NewElementWizard")); // $NON-NLS-1$ setDefaultPageImageDescriptor(RUI.getImageDescriptor(RUIPlugin.IMG_WIZBAN_NEW_RPROJECT)); setWindowTitle(Messages.NewRProjectWizard_title); }