how to use PlatformUI.getWorkbench().getDisplay().syncExec() ? ISemanticHighlighting#consumes is called by wtp,so i can not change the way it is called. all i can do is in ISemanticHighlighting#consumes use the limited parameter,but it is not enough,so i want to do some operation on pdt.
i just want to add pdt some semantic highlighting function:) and the semantic highlighting interface and extension are defined in wtp.so....any advice there? 2009/4/13 Michael Spector <spek...@gmail.com> > Can you use PlatformUI.getWorkbench().getDisplay().syncExec() ? > > 2009/4/13 赵忠伟 <zhaozhong...@eclipseworld.org>: > > thanks for your reply.i think it is executed in non-ui thread ,and the > > result is (page == null),as i use the following code. > > > > // IWorkbench workbench = PlatformUI.getWorkbench(); > > // IWorkbenchWindow window = workbench.getActiveWorkbenchWindow(); > > // IWorkbenchPage page = window.getActivePage(); > > // IEditorPart editorpart = page.getActiveEditor(); > > // if(editorpart instanceof PHPStructuredEditor){ > > but i think i have some other method to get the edtior.descript as > > following: > > > > PHPStructuredEditor#createStructedTextViewer > > protected StructuredTextViewer createStructedTextViewer(Composite > parent, > > IVerticalRuler verticalRuler, int styles) { > > PHPStructuredTextViewer structuredTextViewer = new > > PHPStructuredTextViewer(this, parent, verticalRuler, getOverviewRuler(), > > isOverviewRulerVisible(), styles); > > structuredTextViewer.addTextInputListener(new ITextInputListener(){ > > > > public void inputDocumentChanged(IDocument oldInput, IDocument > newInput) > > { > > //do some operation > > } > > > > public void inputDocumentAboutToBeChanged(IDocument oldInput, > IDocument > > newInput) { > > } > > }); > > return structuredTextViewer; > > } > > i do some operations to put the current PHPStructuredEditor instance and > > IDocument to two global maps(they map to each other in a thread save way) > > .,and remove them when the editor is disposed. > > > > so in ISemanticHighlighting#consumes i can get the IDocument : > > IStructuredDocumentRegion sdRegion; > > IStructuredDocument parentDocument = sdRegion.getParentDocument(); > > > > and then through the global map,i think i can make it. i think it is a > very > > poor way! > > > > > > wei > > > > 2009/4/13 Michael Spector <spek...@gmail.com> > >> > >> In this case you can do the following hack :) > >> > >> IStructuredDocumentRegion sdRegion; > >> IStructuredDocument parentDocument = sdRegion.getParentDocument(); > >> IWorkbenchPage page = PHPUiPlugin.getActivePage(); > >> if (page != null) { > >> IEditorPart editor = page.getActiveEditor(); > >> if (editor instanceof PHPStructuredEditor) { > >> ISourceModule sourceModule = (ISourceModule) > >> ((PHPStructuredEditor) > >> editor).getModelElement(); > >> } > >> } > >> > >> On Mon, Apr 13, 2009 at 12:22 PM, 赵忠伟 <zhaozhong...@eclipseworld.org> > >> wrote: > >> > hi, Michael > >> > > >> > i extended the extension "org.eclipse.wst.sse.ui.semanticHighlighting" > >> > as following: > >> > <extension point="org.eclipse.wst.sse.ui.semanticHighlighting"> > >> > <highlighting > >> > > >> > > >> > > class="org.eclipse.php.internal.ui.editor.highlighting.PHPStaticSemanticHighlighting" > >> > target="org.eclipse.php.core.phpsource"> > >> > </highlighting> > >> > </extension> > >> > > >> > here PHPStaticSemanticHighlighting need to implement > >> > ISemanticHighlighting > >> > interface > >> > and there is a method public Position[] > >> > consumes(IStructuredDocumentRegion > >> > region); in ISemanticHighlighting interface ,so the context is i can > get > >> > nothing except IStructuredDocumentRegion (actually > >> > XMLStructuredDocumentRegion).the method ISemanticHighlighting#consumes > >> > is > >> > called by SemanticHighlightingReconciler#reconcile (more or less 133rd > >> > line) .there is StructuredTextEditor in > >> > SemanticHighlightingReconciler,but i > >> > could not get it.if i the editor,i can get editorinput and the file,so > i > >> > can > >> > use DLTKCore#create to get a ISourceModule ,but now i can only get > >> > IStructuredDocumentRegion ,nothing else!i search a lot in the pdt > source > >> > but > >> > i did not find a way to get ISourceModule from > >> > IStructuredDocumentRegion.and > >> > in my oponion,ISourceModule must be relative to IScriptProject and > >> > IScriptFolder,so from IStructuredDocumentRegion ,it is hardly to find > >> > the > >> > corresponding ISourceModule (IScriptProject and IScriptFolder) it > >> > belongs > >> > to.i am sorry for my poor english:) > >> > > >> > > >> > > >> > thank you very much! > >> > best regards! > >> > _______________________________________________ > >> > pdt-dev mailing list > >> > pdt-dev@eclipse.org > >> > https://dev.eclipse.org/mailman/listinfo/pdt-dev > >> > > >> > > >> > >> > >> > >> -- > >> Best regards, > >> Michael > >> _______________________________________________ > >> pdt-dev mailing list > >> pdt-dev@eclipse.org > >> https://dev.eclipse.org/mailman/listinfo/pdt-dev > > > > > > _______________________________________________ > > pdt-dev mailing list > > pdt-dev@eclipse.org > > https://dev.eclipse.org/mailman/listinfo/pdt-dev > > > > > > > > -- > Best regards, > Michael > _______________________________________________ > pdt-dev mailing list > pdt-dev@eclipse.org > https://dev.eclipse.org/mailman/listinfo/pdt-dev >
_______________________________________________ pdt-dev mailing list pdt-dev@eclipse.org https://dev.eclipse.org/mailman/listinfo/pdt-dev