Sorry, I've forgot to compare documents. Here's the complete "solution":
IStructuredDocumentRegion sdRegion; IStructuredDocument parentDocument = sdRegion.getParentDocument(); IWorkbenchPage page = PHPUiPlugin.getActivePage(); if (page != null) { IEditorPart editor = page.getActiveEditor(); if (editor instanceof PHPStructuredEditor) { StructuredTextViewer textViewer = ((PHPStructuredEditor) editor).getTextViewer(); if (textViewer != null && textViewer.getDocument() == parentDocument) { ISourceModule sourceModule = (ISourceModule) ((PHPStructuredEditor) editor).getModelElement(); } } } 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 > -- Best regards, Michael _______________________________________________ pdt-dev mailing list pdt-dev@eclipse.org https://dev.eclipse.org/mailman/listinfo/pdt-dev