Can you use PlatformUI.getWorkbench().getDisplay().syncExec() ? 2009/4/13 赵忠伟 <[email protected]>: > 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 <[email protected]> >> >> 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, 赵忠伟 <[email protected]> >> 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 >> > [email protected] >> > https://dev.eclipse.org/mailman/listinfo/pdt-dev >> > >> > >> >> >> >> -- >> Best regards, >> Michael >> _______________________________________________ >> pdt-dev mailing list >> [email protected] >> https://dev.eclipse.org/mailman/listinfo/pdt-dev > > > _______________________________________________ > pdt-dev mailing list > [email protected] > https://dev.eclipse.org/mailman/listinfo/pdt-dev > >
-- Best regards, Michael _______________________________________________ pdt-dev mailing list [email protected] https://dev.eclipse.org/mailman/listinfo/pdt-dev
