So, in this case you should not use "org.eclipse.wst.sse.ui.semanticHighlighting" :)
2009/4/13 Roy Ganor <[email protected]>: > Well, the whole idea with semantic highlighting that it is done in the > background. > Reviewing the Java implementation we should be able to do it without any > dependency of the UI thread? > > Thoughts? > > > > -----Original Message----- > From: [email protected] [mailto:[email protected]] On > Behalf Of Michael Spector > Sent: Monday, April 13, 2009 5:12 PM > To: PDT Developers > Subject: Re: [pdt-dev] can i get ISourceModule from IStructuredDocumentRegion > > I mean you can use syncExec() for running things in UI thread... like > getting an active editor page. > > 2009/4/13 赵忠伟 <[email protected]>: >> 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 <[email protected]> >>> >>> 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 >> >> >> _______________________________________________ >> 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
