org.eclipse.core.filebuffers.ITextFileBufferManager Java Examples
The following examples show how to use
org.eclipse.core.filebuffers.ITextFileBufferManager.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: ResourceUtils.java From goclipse with Eclipse Public License 1.0 | 6 votes |
public static ITextFileBuffer getTextFileBuffer(ITextFileBufferManager fbm, Path filePath) { ITextFileBuffer fileBuffer; fileBuffer = fbm.getTextFileBuffer(epath(filePath), LocationKind.NORMALIZE); if(fileBuffer != null) { return fileBuffer; } // Could be an external file, try alternative API: fileBuffer = fbm.getFileStoreTextFileBuffer(FileBuffers.getFileStoreAtLocation(epath(filePath))); if(fileBuffer != null) { return fileBuffer; } // Fall back, try LocationKind.LOCATION fileBuffer = fbm.getTextFileBuffer(epath(filePath), LocationKind.LOCATION); if(fileBuffer != null) { return fileBuffer; } return null; }
Example #2
Source File: CleanUpPostSaveListener.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 6 votes |
private long getDocumentStamp(IFile file, IProgressMonitor monitor) throws CoreException { final ITextFileBufferManager manager= FileBuffers.getTextFileBufferManager(); final IPath path= file.getFullPath(); monitor.beginTask("", 2); //$NON-NLS-1$ ITextFileBuffer buffer= null; try { manager.connect(path, LocationKind.IFILE, new SubProgressMonitor(monitor, 1)); buffer= manager.getTextFileBuffer(path, LocationKind.IFILE); IDocument document= buffer.getDocument(); if (document instanceof IDocumentExtension4) { return ((IDocumentExtension4)document).getModificationStamp(); } else { return file.getModificationStamp(); } } finally { if (buffer != null) manager.disconnect(path, LocationKind.IFILE, new SubProgressMonitor(monitor, 1)); monitor.done(); } }
Example #3
Source File: DocumentAdapter.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 6 votes |
private void initialize() { ITextFileBufferManager manager= FileBuffers.getTextFileBufferManager(); try { if (fFileStore != null) { manager.connectFileStore(fFileStore, new NullProgressMonitor()); fTextFileBuffer= manager.getFileStoreTextFileBuffer(fFileStore); } else { manager.connect(fPath, fLocationKind, new NullProgressMonitor()); fTextFileBuffer= manager.getTextFileBuffer(fPath, fLocationKind); } fDocument= fTextFileBuffer.getDocument(); } catch (CoreException x) { fDocument= manager.createEmptyDocument(fPath, fLocationKind); if (fDocument instanceof ISynchronizable) ((ISynchronizable)fDocument).setLockObject(new Object()); } fDocument.addDocumentListener(this); fIsClosed= false; }
Example #4
Source File: JavadocContentAccess2.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 6 votes |
/** * Reads the content of the IFile. * * @param file the file whose content has to be read * @return the content of the file * @throws CoreException if the file could not be successfully connected or disconnected */ private static String getIFileContent(IFile file) throws CoreException { String content= null; ITextFileBufferManager manager= FileBuffers.getTextFileBufferManager(); IPath fullPath= file.getFullPath(); manager.connect(fullPath, LocationKind.IFILE, null); try { ITextFileBuffer buffer= manager.getTextFileBuffer(fullPath, LocationKind.IFILE); if (buffer != null) { content= buffer.getDocument().get(); } } finally { manager.disconnect(fullPath, LocationKind.IFILE, null); } return content; }
Example #5
Source File: JavadocContentAccess2.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 6 votes |
/** * Reads the content of the java.io.File. * * @param file the file whose content has to be read * @return the content of the file * @throws CoreException if the file could not be successfully connected or disconnected */ private static String getFileContent(File file) throws CoreException { String content= null; ITextFileBufferManager manager= FileBuffers.getTextFileBufferManager(); IPath fullPath= new Path(file.getAbsolutePath()); manager.connect(fullPath, LocationKind.LOCATION, null); try { ITextFileBuffer buffer= manager.getTextFileBuffer(fullPath, LocationKind.LOCATION); if (buffer != null) { content= buffer.getDocument().get(); } } finally { manager.disconnect(fullPath, LocationKind.LOCATION, null); } return content; }
Example #6
Source File: EditorUtils.java From typescript.java with MIT License | 6 votes |
public static Position getPosition(IFile file, TextSpan textSpan) throws BadLocationException { ITextFileBufferManager bufferManager = FileBuffers.getTextFileBufferManager(); ITextFileBuffer buffer = bufferManager.getTextFileBuffer(file.getLocation(), LocationKind.IFILE); if (buffer != null) { return getPosition(buffer.getDocument(), textSpan); } IDocumentProvider provider = new TextFileDocumentProvider(); try { provider.connect(file); IDocument document = provider.getDocument(file); if (document != null) { return getPosition(document, textSpan); } } catch (CoreException e) { } finally { provider.disconnect(file); } return null; }
Example #7
Source File: ModulaSearchUtils.java From xds-ide with Eclipse Public License 1.0 | 6 votes |
private static void evaluateTextEditor(Map<IFile, IDocument> result, IEditorPart ep, IFile filter) { IEditorInput input = ep.getEditorInput(); if (input instanceof IFileEditorInput) { IFile file = ((IFileEditorInput) input).getFile(); if (filter == null || filter.equals(file)) { if (!result.containsKey(file)) { // take the first editor found ITextFileBufferManager bufferManager = FileBuffers.getTextFileBufferManager(); ITextFileBuffer textFileBuffer = bufferManager .getTextFileBuffer(file.getFullPath(), LocationKind.IFILE); if (textFileBuffer != null) { // file buffer has precedence result.put(file, textFileBuffer.getDocument()); } else { // use document provider IDocument document = ((ITextEditor) ep).getDocumentProvider().getDocument(input); if (document != null) { result.put(file, document); } } } } } }
Example #8
Source File: JsonRpcHelpers.java From eclipse.jdt.ls with Eclipse Public License 2.0 | 6 votes |
/** * Returns an {@link IDocument} for the given {@link IFile}. * * @param file an {@link IFile} * @return a document with the contents of the file, * or <code>null</code> if the file can not be opened. */ public static IDocument toDocument(IFile file) { if (file != null && file.isAccessible()) { IPath path = file.getFullPath(); ITextFileBufferManager fileBufferManager = FileBuffers.getTextFileBufferManager(); LocationKind kind = LocationKind.IFILE; try { fileBufferManager.connect(path, kind, new NullProgressMonitor()); ITextFileBuffer fileBuffer = fileBufferManager.getTextFileBuffer(path, kind); if (fileBuffer != null) { return fileBuffer.getDocument(); } } catch (CoreException e) { JavaLanguageServerPlugin.logException("Failed to convert "+ file +" to an IDocument", e); } finally { try { fileBufferManager.disconnect(path, kind, new NullProgressMonitor()); } catch (CoreException slurp) { //Don't care } } } return null; }
Example #9
Source File: JavadocContentAccess2.java From eclipse.jdt.ls with Eclipse Public License 2.0 | 6 votes |
/** * Reads the content of the java.io.File. * * @param file * the file whose content has to be read * @return the content of the file * @throws CoreException * if the file could not be successfully connected or disconnected */ private static String getFileContent(File file) throws CoreException { String content = null; ITextFileBufferManager manager = FileBuffers.getTextFileBufferManager(); IPath fullPath = new Path(file.getAbsolutePath()); manager.connect(fullPath, LocationKind.LOCATION, null); try { ITextFileBuffer buffer = manager.getTextFileBuffer(fullPath, LocationKind.LOCATION); if (buffer != null) { content = buffer.getDocument().get(); } } finally { manager.disconnect(fullPath, LocationKind.LOCATION, null); } return content; }
Example #10
Source File: JavadocContentAccess2.java From eclipse.jdt.ls with Eclipse Public License 2.0 | 6 votes |
/** * Reads the content of the IFile. * * @param file * the file whose content has to be read * @return the content of the file * @throws CoreException * if the file could not be successfully connected or disconnected */ private static String getIFileContent(IFile file) throws CoreException { String content = null; ITextFileBufferManager manager = FileBuffers.getTextFileBufferManager(); IPath fullPath = file.getFullPath(); manager.connect(fullPath, LocationKind.IFILE, null); try { ITextFileBuffer buffer = manager.getTextFileBuffer(fullPath, LocationKind.IFILE); if (buffer != null) { content = buffer.getDocument().get(); } } finally { manager.disconnect(fullPath, LocationKind.IFILE, null); } return content; }
Example #11
Source File: FileUtils.java From Pydev with Eclipse Public License 1.0 | 6 votes |
/** * @param path the path we're interested in * @return a file buffer to be used. */ public static ITextFileBuffer getBufferFromPath(IPath path) { try { //eclipse 3.3 onwards ITextFileBufferManager textFileBufferManager = ITextFileBufferManager.DEFAULT; if (textFileBufferManager != null) {//we don't have it in tests ITextFileBuffer textFileBuffer = textFileBufferManager.getTextFileBuffer(path, LocationKind.LOCATION); if (textFileBuffer != null) { //we don't have it when it is not properly refreshed return textFileBuffer; } } return null; } catch (Throwable e) { //private static final IWorkspaceRoot WORKSPACE_ROOT= ResourcesPlugin.getWorkspace().getRoot(); //throws an error and we don't even have access to the FileBuffers class in tests if (!IN_TESTS) { Log.log("Unable to get doc from text file buffer"); } return null; } }
Example #12
Source File: DocumentAdapter.java From eclipse.jdt.ls with Eclipse Public License 2.0 | 6 votes |
@Override public void setContents(String contents) { synchronized (lock) { if (fDocument == null) { if (fTextFileBuffer != null) { fDocument = fTextFileBuffer.getDocument(); } else { ITextFileBufferManager manager= FileBuffers.getTextFileBufferManager(); fDocument = manager.createEmptyDocument(fFile.getFullPath(), LocationKind.IFILE); } fDocument.addDocumentListener(this); ((ISynchronizable)fDocument).setLockObject(lock); } } if (!contents.equals(fDocument.get())) { fDocument.set(contents); } }
Example #13
Source File: PyChange.java From Pydev with Eclipse Public License 1.0 | 5 votes |
private static ITextFileBuffer getBuffer(IFile file) { try { ITextFileBufferManager manager = ITextFileBufferManager.DEFAULT; return manager.getTextFileBuffer(file.getFullPath(), org.eclipse.core.filebuffers.LocationKind.IFILE); } catch (Throwable e) {//NoSuchMethod/NoClassDef exception if (e instanceof ClassNotFoundException || e instanceof LinkageError || e instanceof NoSuchMethodException || e instanceof NoSuchMethodError || e instanceof NoClassDefFoundError) { return null; // that's ok -- not available in Eclipse 3.2 } throw new RuntimeException(e); } }
Example #14
Source File: ChangedLinesComputer.java From Pydev with Eclipse Public License 1.0 | 5 votes |
/** * Return the lines which have changed in the given buffer since the last save occurred. * * @param buffer the buffer to compare contents from * @param monitor to report progress to * @return the regions of the changed lines or null if something went wrong. */ public static int[] calculateChangedLines(final ITextFileBuffer buffer, final IProgressMonitor monitor) throws CoreException { int[] result = null; try { monitor.beginTask("Calculating changed lines", 20); IFileStore fileStore = buffer.getFileStore(); ITextFileBufferManager fileBufferManager = FileBuffers.createTextFileBufferManager(); fileBufferManager.connectFileStore(fileStore, getSubProgressMonitor(monitor, 15)); try { IDocument currentDocument = buffer.getDocument(); IDocument oldDocument = ((ITextFileBuffer) fileBufferManager.getFileStoreFileBuffer(fileStore)) .getDocument(); result = getChangedLines(oldDocument, currentDocument); } finally { fileBufferManager.disconnectFileStore(fileStore, getSubProgressMonitor(monitor, 5)); monitor.done(); } } catch (Exception e) { Log.log(e); return null; } return result; }
Example #15
Source File: ModelReconcilationTest.java From goclipse with Eclipse Public License 1.0 | 5 votes |
public BufferFixture(ITextFileBufferManager fbm, IPath path, LocationKind locationKind, FixtureSourceModelManager sourceModelMgr) throws CoreException { this.path = path; this.locationKind = locationKind; this.sourceModelMgr = sourceModelMgr; this.fbm = assertNotNull(fbm); fbm.connect(path, locationKind, pm); buffer = fbm.getTextFileBuffer(path, locationKind); }
Example #16
Source File: DeletePackageFragmentRootChange.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 5 votes |
private static String getFileContents(IFile file) throws CoreException { ITextFileBufferManager manager= FileBuffers.getTextFileBufferManager(); IPath path= file.getFullPath(); manager.connect(path, LocationKind.IFILE, new NullProgressMonitor()); try { return manager.getTextFileBuffer(path, LocationKind.IFILE).getDocument().get(); } finally { manager.disconnect(path, LocationKind.IFILE, new NullProgressMonitor()); } }
Example #17
Source File: OpenTypeHistory.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 5 votes |
public boolean isContainerDirty(TypeNameMatch match) { ICompilationUnit cu= match.getType().getCompilationUnit(); if (cu == null) { return false; } IResource resource= cu.getResource(); ITextFileBufferManager manager= FileBuffers.getTextFileBufferManager(); ITextFileBuffer textFileBuffer= manager.getTextFileBuffer(resource.getFullPath(), LocationKind.IFILE); if (textFileBuffer != null) { return textFileBuffer.isDirty(); } return false; }
Example #18
Source File: NLSSearchResultRequestor.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 5 votes |
private InputStream createInputStream(IFile propertiesFile) throws CoreException { ITextFileBufferManager manager= FileBuffers.getTextFileBufferManager(); if (manager != null) { ITextFileBuffer buffer= manager.getTextFileBuffer(propertiesFile.getFullPath(), LocationKind.IFILE); if (buffer != null) { return new ByteArrayInputStream(buffer.getDocument().get().getBytes()); } } return propertiesFile.getContents(); }
Example #19
Source File: TypeScriptResourceUtil.java From typescript.java with MIT License | 5 votes |
/** * Returns the file from the given {@link IDocument}. */ public static IFile getFile(IDocument document) { ITextFileBufferManager bufferManager = FileBuffers.getTextFileBufferManager(); // get // the // buffer // manager ITextFileBuffer buffer = bufferManager.getTextFileBuffer(document); IPath location = buffer == null ? null : buffer.getLocation(); if (location == null) { return null; } return ResourcesPlugin.getWorkspace().getRoot().getFile(location); }
Example #20
Source File: TypeScriptResourceUtil.java From typescript.java with MIT License | 5 votes |
/** * Returns the {@link IDocument} from the given file and null if it's not * possible. */ public static IDocument getDocument(IPath location) { ITextFileBufferManager manager = FileBuffers.getTextFileBufferManager(); boolean connected = false; try { ITextFileBuffer buffer = manager.getTextFileBuffer(location, LocationKind.NORMALIZE); if (buffer == null) { // no existing file buffer..create one manager.connect(location, LocationKind.NORMALIZE, new NullProgressMonitor()); connected = true; buffer = manager.getTextFileBuffer(location, LocationKind.NORMALIZE); if (buffer == null) { return null; } } return buffer.getDocument(); } catch (CoreException ce) { TypeScriptCorePlugin.logError(ce, "Error while getting document from file"); return null; } finally { if (connected) { try { manager.disconnect(location, LocationKind.NORMALIZE, new NullProgressMonitor()); } catch (CoreException e) { TypeScriptCorePlugin.logError(e, "Error while getting document from file"); } } } }
Example #21
Source File: TypeScriptHyperLinkDetector.java From typescript.java with MIT License | 5 votes |
/** * Returns the {@link IResource} from the given text viewer and null otherwise. * * @param textViewer * @return the {@link IResource} from the given text viewer and null otherwise. */ private IResource getResource(ITextViewer textViewer) { ITextEditor textEditor = (ITextEditor) getAdapter(ITextEditor.class); if (textEditor != null) { return EditorUtils.getResource(textEditor); } ITextFileBufferManager bufferManager = FileBuffers.getTextFileBufferManager(); ITextFileBuffer textFileBuffer = bufferManager.getTextFileBuffer(textViewer.getDocument()); if (textFileBuffer != null) { IPath location = textFileBuffer.getLocation(); return ResourcesPlugin.getWorkspace().getRoot().findMember(location); } return null; }
Example #22
Source File: DeletePackageFragmentRootChange.java From eclipse.jdt.ls with Eclipse Public License 2.0 | 5 votes |
private static String getFileContents(IFile file) throws CoreException { ITextFileBufferManager manager= FileBuffers.getTextFileBufferManager(); IPath path= file.getFullPath(); manager.connect(path, LocationKind.IFILE, new NullProgressMonitor()); try { return manager.getTextFileBuffer(path, LocationKind.IFILE).getDocument().get(); } finally { manager.disconnect(path, LocationKind.IFILE, new NullProgressMonitor()); } }
Example #23
Source File: TextSearchVisitor.java From eclipse.jdt.ls with Eclipse Public License 2.0 | 5 votes |
private IDocument getOpenDocument(IFile file, Map<IFile, IDocument> documentsInEditors) { IDocument document= documentsInEditors.get(file); if (document == null) { ITextFileBufferManager bufferManager= FileBuffers.getTextFileBufferManager(); ITextFileBuffer textFileBuffer= bufferManager.getTextFileBuffer(file.getFullPath(), LocationKind.IFILE); if (textFileBuffer != null) { document= textFileBuffer.getDocument(); } } return document; }
Example #24
Source File: DocumentAdapter.java From eclipse.jdt.ls with Eclipse Public License 2.0 | 5 votes |
@Override public void close() { synchronized (lock) { if (fIsClosed) { return; } fIsClosed= true; if (fDocument != null) { fDocument.removeDocumentListener(this); } if (fTextFileBuffer != null && fFile != null) { try { ITextFileBufferManager manager= FileBuffers.getTextFileBufferManager(); manager.disconnect(fFile.getFullPath(), LocationKind.NORMALIZE, null); } catch (CoreException x) { // ignore } fTextFileBuffer= null; } fireBufferChanged(new BufferChangedEvent(this, 0, 0, null)); fBufferListeners.clear(); fDocument = null; } }
Example #25
Source File: DocumentAdapter.java From eclipse.jdt.ls with Eclipse Public License 2.0 | 5 votes |
public DocumentAdapter(IOpenable owner, IFile file) { fOwner = owner; fFile = file; fBufferListeners = new ArrayList<>(3); fIsClosed = false; ITextFileBufferManager manager= FileBuffers.getTextFileBufferManager(); try { manager.connect(file.getFullPath(), LocationKind.IFILE, null); fTextFileBuffer= manager.getTextFileBuffer(file.getFullPath(), LocationKind.IFILE); } catch (CoreException e) { } }
Example #26
Source File: TexSpellingEngine.java From texlipse with Eclipse Public License 1.0 | 5 votes |
/** * Returns the project that belongs to the given document. * Thanks to Nitin Dahyabhai for the tip. * * @param document * @return the project or <code>null</code> if no project was found */ private static IProject getProject(IDocument document) { ITextFileBufferManager fileBufferMgr = FileBuffers.getTextFileBufferManager(); ITextFileBuffer fileBuffer = fileBufferMgr.getTextFileBuffer(document); if (fileBuffer != null) { IWorkspace workspace = ResourcesPlugin.getWorkspace(); IResource res = workspace.getRoot().findMember(fileBuffer.getLocation()); if (res != null) return res.getProject(); } return null; }
Example #27
Source File: AddJavaDocStubOperation.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 4 votes |
private void addJavadocComments(IProgressMonitor monitor) throws CoreException { ICompilationUnit cu= fMembers[0].getCompilationUnit(); ITextFileBufferManager manager= FileBuffers.getTextFileBufferManager(); IPath path= cu.getPath(); manager.connect(path, LocationKind.IFILE, new SubProgressMonitor(monitor, 1)); try { IDocument document= manager.getTextFileBuffer(path, LocationKind.IFILE).getDocument(); String lineDelim= TextUtilities.getDefaultLineDelimiter(document); MultiTextEdit edit= new MultiTextEdit(); for (int i= 0; i < fMembers.length; i++) { IMember curr= fMembers[i]; int memberStartOffset= getMemberStartOffset(curr, document); String comment= null; switch (curr.getElementType()) { case IJavaElement.TYPE: comment= createTypeComment((IType) curr, lineDelim); break; case IJavaElement.FIELD: comment= createFieldComment((IField) curr, lineDelim); break; case IJavaElement.METHOD: comment= createMethodComment((IMethod) curr, lineDelim); break; } if (comment == null) { StringBuffer buf= new StringBuffer(); buf.append("/**").append(lineDelim); //$NON-NLS-1$ buf.append(" *").append(lineDelim); //$NON-NLS-1$ buf.append(" */").append(lineDelim); //$NON-NLS-1$ comment= buf.toString(); } else { if (!comment.endsWith(lineDelim)) { comment= comment + lineDelim; } } final IJavaProject project= cu.getJavaProject(); IRegion region= document.getLineInformationOfOffset(memberStartOffset); String line= document.get(region.getOffset(), region.getLength()); String indentString= Strings.getIndentString(line, project); String indentedComment= Strings.changeIndent(comment, 0, project, indentString, lineDelim); edit.addChild(new InsertEdit(memberStartOffset, indentedComment)); monitor.worked(1); } edit.apply(document); // apply all edits } catch (BadLocationException e) { throw new CoreException(JavaUIStatus.createError(IStatus.ERROR, e)); } finally { manager.disconnect(path, LocationKind.IFILE,new SubProgressMonitor(monitor, 1)); } }
Example #28
Source File: AbstractAnnotationHover.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 4 votes |
@Override public Object getHoverInfo2(ITextViewer textViewer, IRegion hoverRegion) { IPath path; IAnnotationModel model; if (textViewer instanceof ISourceViewer) { path= null; model= ((ISourceViewer)textViewer).getAnnotationModel(); } else { // Get annotation model from file buffer manager path= getEditorInputPath(); model= getAnnotationModel(path); } if (model == null) return null; try { Iterator<Annotation> parent; if (model instanceof IAnnotationModelExtension2) parent= ((IAnnotationModelExtension2)model).getAnnotationIterator(hoverRegion.getOffset(), hoverRegion.getLength(), true, true); else parent= model.getAnnotationIterator(); Iterator<Annotation> e= new JavaAnnotationIterator(parent, fAllAnnotations); int layer= -1; Annotation annotation= null; Position position= null; while (e.hasNext()) { Annotation a= e.next(); AnnotationPreference preference= getAnnotationPreference(a); if (preference == null || !(preference.getTextPreferenceKey() != null && fStore.getBoolean(preference.getTextPreferenceKey()) || (preference.getHighlightPreferenceKey() != null && fStore.getBoolean(preference.getHighlightPreferenceKey())))) continue; Position p= model.getPosition(a); int l= fAnnotationAccess.getLayer(a); if (l > layer && p != null && p.overlapsWith(hoverRegion.getOffset(), hoverRegion.getLength())) { String msg= a.getText(); if (msg != null && msg.trim().length() > 0) { layer= l; annotation= a; position= p; } } } if (layer > -1) return createAnnotationInfo(annotation, position, textViewer); } finally { try { if (path != null) { ITextFileBufferManager manager= FileBuffers.getTextFileBufferManager(); manager.disconnect(path, LocationKind.NORMALIZE, null); } } catch (CoreException ex) { JavaPlugin.log(ex.getStatus()); } } return null; }
Example #29
Source File: AbstractAnnotationHover.java From typescript.java with MIT License | 4 votes |
@Override public Object getHoverInfo2(ITextViewer textViewer, IRegion hoverRegion) { IPath path; IAnnotationModel model; if (textViewer instanceof ISourceViewer) { path = null; model = ((ISourceViewer) textViewer).getAnnotationModel(); } else { // Get annotation model from file buffer manager path = getEditorInputPath(); model = getAnnotationModel(path); } if (model == null) return null; try { Iterator<Annotation> parent; if (model instanceof IAnnotationModelExtension2) parent = ((IAnnotationModelExtension2) model).getAnnotationIterator(hoverRegion.getOffset(), hoverRegion.getLength() > 0 ? hoverRegion.getLength() : 1, true, true); else parent = model.getAnnotationIterator(); Iterator<Annotation> e = new TypeScriptAnnotationIterator(parent, fAllAnnotations); int layer = -1; Annotation annotation = null; Position position = null; while (e.hasNext()) { Annotation a = e.next(); AnnotationPreference preference = getAnnotationPreference(a); if (preference == null || !(preference.getTextPreferenceKey() != null /* * && fStore.getBoolean(preference.getTextPreferenceKey()) || * (preference.getHighlightPreferenceKey() != null && * fStore.getBoolean(preference.getHighlightPreferenceKey())) */)) continue; Position p = model.getPosition(a); int l = fAnnotationAccess.getLayer(a); if (l > layer && p != null && p.overlapsWith(hoverRegion.getOffset(), hoverRegion.getLength())) { String msg = a.getText(); if (msg != null && msg.trim().length() > 0) { layer = l; annotation = a; position = p; } } } if (layer > -1) return createAnnotationInfo(annotation, position, textViewer); } finally { try { if (path != null) { ITextFileBufferManager manager = FileBuffers.getTextFileBufferManager(); manager.disconnect(path, LocationKind.NORMALIZE, null); } } catch (CoreException ex) { TypeScriptUIPlugin.log(ex.getStatus()); } } return null; }
Example #30
Source File: ReplaceRefactoring.java From Pydev with Eclipse Public License 1.0 | 4 votes |
private TextChange createFileChange(IFile file, Pattern pattern, Collection<Match> matches, RefactoringStatus resultingStatus, Collection<MatchGroup> matchGroups) throws PatternSyntaxException, CoreException { PositionTracker tracker = InternalSearchUI.getInstance().getPositionTracker(); TextFileChange change = new SynchronizedTextFileChange(MessageFormat.format( SearchMessages.ReplaceRefactoring_group_label_change_for_file, file.getName()), file); change.setEdit(new MultiTextEdit()); ITextFileBufferManager manager = FileBuffers.getTextFileBufferManager(); manager.connect(file.getFullPath(), LocationKind.IFILE, null); try { ITextFileBuffer textFileBuffer = manager.getTextFileBuffer(file.getFullPath(), LocationKind.IFILE); if (textFileBuffer == null) { resultingStatus .addError(MessageFormat.format(SearchMessages.ReplaceRefactoring_error_accessing_file_buffer, file.getName())); return null; } IDocument document = textFileBuffer.getDocument(); String lineDelimiter = TextUtilities.getDefaultLineDelimiter(document); for (Iterator<Match> iterator = matches.iterator(); iterator.hasNext();) { Match match = iterator.next(); int offset = match.getOffset(); int length = match.getLength(); Position currentPosition = tracker.getCurrentPosition(match); if (currentPosition != null) { offset = currentPosition.offset; if (length != currentPosition.length) { resultingStatus.addError(MessageFormat.format( SearchMessages.ReplaceRefactoring_error_match_content_changed, file.getName())); continue; } } String originalText = getOriginalText(document, offset, length); if (originalText == null) { resultingStatus.addError(MessageFormat.format( SearchMessages.ReplaceRefactoring_error_match_content_changed, file.getName())); continue; } String replacementString = computeReplacementString(pattern, originalText, fReplaceString, lineDelimiter); if (replacementString == null) { resultingStatus.addError(MessageFormat.format( SearchMessages.ReplaceRefactoring_error_match_content_changed, file.getName())); continue; } ReplaceEdit replaceEdit = new ReplaceEdit(offset, length, replacementString); change.addEdit(replaceEdit); TextEditChangeGroup textEditChangeGroup = new TextEditChangeGroup(change, new TextEditGroup( SearchMessages.ReplaceRefactoring_group_label_match_replace, replaceEdit)); change.addTextEditChangeGroup(textEditChangeGroup); matchGroups.add(new MatchGroup(textEditChangeGroup, match)); } } finally { manager.disconnect(file.getFullPath(), LocationKind.IFILE, null); } return change; }