@Override public IRegion getSubject(final ITextViewer textViewer, final int offset) { if (fScanner == null) { fScanner = (RHeuristicTokenScanner) LTK.getModelAdapter(getEditor().getModelTypeId(), RHeuristicTokenScanner.class); } try { final IDocument document = getEditor().getViewer().getDocument(); fScanner.configure(document); final IRegion word = fScanner.findRWord(offset, false, true); if (word != null) { final ITypedRegion partition = fScanner.getPartition(word.getOffset()); if (fScanner .getPartitioningConfig() .getDefaultPartitionConstraint() .matches(partition.getType()) || partition.getType() == IRDocumentPartitions.R_STRING || partition.getType() == IRDocumentPartitions.R_QUOTED_SYMBOL) { return word; } } } catch (final Exception e) { } return new Region(offset, 0); }
@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; }
public RContentAssistProcessor( final ContentAssist assistant, final String partition, final ContentAssistComputerRegistry registry, final ISourceEditor editor) { super(assistant, partition, registry, editor); fScanner = (RHeuristicTokenScanner) LTK.getModelAdapter(editor.getModelTypeId(), RHeuristicTokenScanner.class); }