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 > <mailto: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 >> <mailto: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 <http://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 <mailto: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 >> <mailto:albi...@gmail.com>> wrote: >> >> >> >> Any advice hear please? >> >> >> >> >> >> Le jeu. 30 janv. 2020 à 16:53, Bilu Al <albi...@gmail.com >> <mailto: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 >> <mailto:users-unsubscr...@netbeans.apache.org> >> >> For additional commands, e-mail: >> users-h...@netbeans.apache.org >> <mailto:users-h...@netbeans.apache.org> >> >> >> >> For further information about the NetBeans mailing lists, >> visit: >> >> >> https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists >> >> >>