https://vimsky.com/zh-tw/examples/detail/java-method-org.netbeans.spi.editor.hints.ErrorDescriptionFactory.createErrorDescription.html
There must be some issue change in the API Le ven. 31 janv. 2020 à 22:43, Geertjan Wielenga <geert...@apache.org> a écrit : > Which other implementations did you check? Maybe you should go furthermore. > > Gj > > On Fri, Jan 31, 2020 at 8:47 PM Bilu <albi...@gmail.com> wrote: > >> from my debug the issue seems to comes from the >> SJSyntaxErrorHighlightingTask class. i check already a little other >> implementations and they are quite similar but i failed to go >> futhermore. >> >> waiting for your feedback, thanks you very much >> Le 31/01/2020 à 20:25, Geertjan Wielenga a écrit : >> >> I would look for other implementations of that class on GitHub and >> elsewhere to see how others have done it. >> >> Gj >> >> >> On Fri, 31 Jan 2020 at 20:18, Bilu <albi...@gmail.com> wrote: >> >>> Sorry you right i skipped this step a bit: >>> >>> What i do is: >>> >>> 5.a- change: public static class SJParserResult extends Result { => >>> public >>> static class SJParserResult extends >>> org.netbeans.modules.csl.spi.ParserResult { >>> >>> 5.b- org.netbeans.modules.csl.spi.ParserResult require module: >>> Common Scripting Language Types. Add it >>> >>> 5.c- Add: >>> >>> import java.util.List; >>> >>> import org.netbeans.modules.csl.api.Error; >>> >>> 5.d- Add abstract method : >>> >>> @Override >>> public List<? extends Error> getDiagnostics() { >>> return null; >>> >>> //throw new UnsupportedOperationException("Not supported >>> yet."); //To change body of generated methods, choose Tools | Templates. >>> } >>> >>> >>> The SJParser now looks like this: >>> >>> package org.simplejava.parser; >>> >>> import java.io.Reader; >>> import java.io.StringReader; >>> import java.util.List; >>> import java.util.logging.Level; >>> import java.util.logging.Logger; >>> import javax.swing.event.ChangeListener; >>> import org.netbeans.modules.csl.api.Error; >>> import org.netbeans.modules.parsing.api.Snapshot; >>> import org.netbeans.modules.parsing.api.Task; >>> import org.netbeans.modules.parsing.spi.Parser; >>> import org.netbeans.modules.parsing.spi.Parser.Result; >>> import org.netbeans.modules.parsing.spi.SourceModificationEvent; >>> import org.simplejava.jccparser.JavaParser; >>> >>> public class SJParser extends Parser { >>> >>> private Snapshot snapshot; >>> private JavaParser javaParser; >>> >>> @Override >>> public void parse(Snapshot snapshot, Task task, >>> SourceModificationEvent event) { >>> this.snapshot = snapshot; >>> Reader reader = new StringReader(snapshot.getText().toString()); >>> javaParser = new JavaParser(reader); >>> try { >>> javaParser.CompilationUnit(); >>> } catch (org.simplejava.jccparser.ParseException ex) { >>> >>> Logger.getLogger(SJParser.class.getName()).log(Level.WARNING, null, ex); >>> } >>> } >>> >>> @Override >>> public Result getResult(Task task) { >>> return new SJParserResult(snapshot, javaParser); >>> } >>> >>> @Override >>> public void cancel() { >>> } >>> >>> @Override >>> public void addChangeListener(ChangeListener changeListener) { >>> } >>> >>> @Override >>> public void removeChangeListener(ChangeListener changeListener) { >>> } >>> >>> public static class SJParserResult extends >>> org.netbeans.modules.csl.spi.ParserResult { >>> >>> private JavaParser javaParser; >>> private boolean valid = true; >>> >>> SJParserResult(Snapshot snapshot, JavaParser javaParser) { >>> super(snapshot); >>> this.javaParser = javaParser; >>> } >>> >>> public JavaParser getJavaParser() throws >>> org.netbeans.modules.parsing.spi.ParseException { >>> if (!valid) { >>> throw new >>> org.netbeans.modules.parsing.spi.ParseException(); >>> } >>> return javaParser; >>> } >>> >>> @Override >>> protected void invalidate() { >>> valid = false; >>> } >>> >>> @Override >>> public List<? extends Error> getDiagnostics() { >>> return null; >>> >>> //throw new UnsupportedOperationException("Not supported >>> yet."); //To change body of generated methods, choose Tools | Templates. >>> } >>> >>> } >>> >>> } >>> >>> >>> Le 31/01/2020 à 19:56, Geertjan Wielenga a écrit : >>> >>> What does this mean, exactly: >>> >>> "update SJParserResult class to extend o.n.m.csl.spi.ParserResult >>> instead of o.n.m.parsing.spi.Parser.Result" >>> >>> I'm not going ton try to guess, since you have done the above, would be >>> best if you'd explain how you made the above change -- it's not a >>> simple question of changing import statements. >>> >>> Gj >>> >>> On Fri, Jan 31, 2020 at 7:07 PM Bilu Al <albi...@gmail.com> wrote: >>> >>>> Complete step is available in this tutorial: >>>> https://platform.netbeans.org/tutorials/nbm-javacc-parser.html >>>> >>>> You can also get the complete source code of the tutorial to avoid all >>>> the steps: >>>> https://github.com/vparfonov/api-samples/tree/master/nb-api-samples~api-samples/versions/7.2/tutorials/SimpleJava2 >>>> >>>> >>>> 1. Open Project SimpleJava2 >>>> 2. You should miss File Template dependency. Add it >>>> 3. Run SimpleJava2 project >>>> 4. open a SJ file (sample.sj) containing a java like source code => >>>> Exception occur (java.lang.ClassCastException:) >>>> 5. update SJParserResult class to extend o.n.m.csl.spi.ParserResult >>>> instead of o.n.m.parsing.spi.Parser.Result like suggest here >>>> https://bz.apache.org/netbeans/show_bug.cgi?id=167064 >>>> 6. Rerun the Project, you should get now >>>> java.lang.NullPointerException >>>> >>>> >>>> Env is: >>>> Product Version: Apache NetBeans IDE 11.1 >>>> Updates: NetBeans IDE is updated to version NetBeans 8.2 Patch 2 >>>> Java: 1.8.0_181; Java HotSpot(TM) 64-Bit Server VM 25.181-b13 >>>> Runtime: Java(TM) SE Runtime Environment 1.8.0_181-b13 >>>> System: Windows 10 version 10.0 running on amd64; Cp1252; en_US (nb) >>>> User directory: C:\Users\xxxx\AppData\Roaming\NetBeans\11.1 >>>> Cache directory: C:\Users\xxxx\AppData\Local\NetBeans\Cache\11.1 >>>> >>>> Thanks >>>> >>>> >>>> >>>> Le ven. 31 janv. 2020 à 18:37, Geertjan Wielenga <geert...@apache.org> >>>> a écrit : >>>> > >>>> > Complete environment and precise steps to take to reproduce the >>>> problem. >>>> > >>>> > Gj >>>> > >>>> > On Fri, Jan 31, 2020 at 6:35 PM Bilu Al <albi...@gmail.com> wrote: >>>> >> >>>> >> Any advice hear please? >>>> >> >>>> >> >>>> >> Le jeu. 30 janv. 2020 à 16:53, Bilu Al <albi...@gmail.com> a écrit : >>>> >> > >>>> >> > Hello, >>>> >> > >>>> >> > Can somebody tell if this tutorial still up to date: >>>> https://platform.netbeans.org/tutorials/nbm-javacc-parser.html with >>>> Apache NetBeans IDE 11.1 platform? >>>> >> > >>>> >> > I am facing an issue when implementing this in my module >>>> >> > >>>> >> > I have the same issue with the complete tutorial source code : >>>> https://github.com/vparfonov/api-samples/tree/master/nb-api-samples~api-samples/versions/7.2/tutorials/SimpleJava2 >>>> >> > >>>> >> > i am getting this exception: >>>> >> > >>>> >> > java.lang.ClassCastException: >>>> org.simplejava.parser.SJParser$SJParserResult cannot be cast to >>>> org.netbeans.modules.csl.spi.ParserResult >>>> >> > at >>>> org.netbeans.modules.csl.hints.infrastructure.SuggestionsTask.run(SuggestionsTask.java:54) >>>> >> > at >>>> org.netbeans.modules.parsing.impl.TaskProcessor.callParserResultTask(TaskProcessor.java:561) >>>> >> > [catch] at >>>> org.netbeans.modules.parsing.impl.TaskProcessor$RequestPerformer.run(TaskProcessor.java:786) >>>> >> > at org.openide.util.lookup.Lookups.executeWith(Lookups.java:279) >>>> >> > at >>>> org.netbeans.modules.parsing.impl.TaskProcessor$RequestPerformer.execute(TaskProcessor.java:702) >>>> >> > at >>>> org.netbeans.modules.parsing.impl.TaskProcessor$CompilationJob.run(TaskProcessor.java:663) >>>> >> > at >>>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) >>>> >> > at java.util.concurrent.FutureTask.run(FutureTask.java:266) >>>> >> > at >>>> org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1418) >>>> >> > at >>>> org.netbeans.modules.openide.util.GlobalLookup.execute(GlobalLookup.java:45) >>>> >> > at org.openide.util.lookup.Lookups.executeWith(Lookups.java:278) >>>> >> > at >>>> org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2033) >>>> >> > >>>> >> > I follow the fix here: >>>> https://bz.apache.org/netbeans/show_bug.cgi?id=167064 about the >>>> previous exception and now i am getting this indefinitely : >>>> >> > >>>> >> > java.lang.NullPointerException >>>> >> > at >>>> org.netbeans.modules.csl.hints.GsfHintsProvider.computeErrors(GsfHintsProvider.java:114) >>>> >> > at >>>> org.netbeans.modules.csl.hints.GsfHintsProvider.processErrors(GsfHintsProvider.java:388) >>>> >> > at >>>> org.netbeans.modules.csl.hints.GsfHintsProvider.processErrorsRecursive(GsfHintsProvider.java:359) >>>> >> > at >>>> org.netbeans.modules.csl.hints.GsfHintsProvider.refreshErrors(GsfHintsProvider.java:327) >>>> >> > at >>>> org.netbeans.modules.csl.hints.GsfHintsProvider.access$200(GsfHintsProvider.java:79) >>>> >> > at >>>> org.netbeans.modules.csl.hints.GsfHintsProvider$2.run(GsfHintsProvider.java:407) >>>> >> > at >>>> org.netbeans.modules.parsing.impl.TaskProcessor.callUserTask(TaskProcessor.java:586) >>>> >> > at >>>> org.netbeans.modules.parsing.api.ParserManager$UserTaskAction.run(ParserManager.java:130) >>>> >> > at >>>> org.netbeans.modules.parsing.api.ParserManager$UserTaskAction.run(ParserManager.java:114) >>>> >> > at >>>> org.netbeans.modules.parsing.impl.TaskProcessor$2.call(TaskProcessor.java:181) >>>> >> > at >>>> org.netbeans.modules.parsing.impl.TaskProcessor$2.call(TaskProcessor.java:178) >>>> >> > at >>>> org.netbeans.modules.masterfs.filebasedfs.utils.FileChangedManager.priorityIO(FileChangedManager.java:153) >>>> >> > at >>>> org.netbeans.modules.masterfs.providers.ProvidedExtensions.priorityIO(ProvidedExtensions.java:335) >>>> >> > at >>>> org.netbeans.modules.parsing.nb.DataObjectEnvFactory.runPriorityIO(DataObjectEnvFactory.java:118) >>>> >> > at >>>> org.netbeans.modules.parsing.impl.Utilities.runPriorityIO(Utilities.java:67) >>>> >> > at >>>> org.netbeans.modules.parsing.impl.TaskProcessor.runUserTask(TaskProcessor.java:178) >>>> >> > Caused: org.netbeans.modules.parsing.spi.ParseException >>>> >> > at >>>> org.netbeans.modules.parsing.impl.TaskProcessor.runUserTask(TaskProcessor.java:186) >>>> >> > at >>>> org.netbeans.modules.parsing.api.ParserManager.parse(ParserManager.java:81) >>>> >> > [catch] at >>>> org.netbeans.modules.csl.hints.GsfHintsProvider.run(GsfHintsProvider.java:405) >>>> >> > at >>>> org.netbeans.modules.csl.hints.GsfHintsProvider.run(GsfHintsProvider.java:79) >>>> >> > at >>>> org.netbeans.modules.parsing.impl.TaskProcessor.callParserResultTask(TaskProcessor.java:561) >>>> >> > at >>>> org.netbeans.modules.parsing.impl.TaskProcessor$RequestPerformer.run(TaskProcessor.java:786) >>>> >> > at org.openide.util.lookup.Lookups.executeWith(Lookups.java:279) >>>> >> > at >>>> org.netbeans.modules.parsing.impl.TaskProcessor$RequestPerformer.execute(TaskProcessor.java:702) >>>> >> > at >>>> org.netbeans.modules.parsing.impl.TaskProcessor$CompilationJob.run(TaskProcessor.java:663) >>>> >> > at >>>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) >>>> >> > at java.util.concurrent.FutureTask.run(FutureTask.java:266) >>>> >> > at >>>> org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1418) >>>> >> > at >>>> org.netbeans.modules.openide.util.GlobalLookup.execute(GlobalLookup.java:45) >>>> >> > at org.openide.util.lookup.Lookups.executeWith(Lookups.java:278) >>>> >> > at >>>> org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2033) >>>> >> > >>>> >> > Thanks you >>>> >> >>>> >> --------------------------------------------------------------------- >>>> >> To unsubscribe, e-mail: users-unsubscr...@netbeans.apache.org >>>> >> For additional commands, e-mail: users-h...@netbeans.apache.org >>>> >> >>>> >> For further information about the NetBeans mailing lists, visit: >>>> >> https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists >>>> >> >>>> >>>