Removed FileObject arguments from the ANTLR Parser listeners
diff --git a/java/languages.antlr/src/org/netbeans/modules/languages/antlr/AntlrParserResult.java b/java/languages.antlr/src/org/netbeans/modules/languages/antlr/AntlrParserResult.java
index 90d0cda..f903eeb 100644
--- a/java/languages.antlr/src/org/netbeans/modules/languages/antlr/AntlrParserResult.java
+++ b/java/languages.antlr/src/org/netbeans/modules/languages/antlr/AntlrParserResult.java
@@ -59,17 +59,17 @@
         if (! finished) {
             FileObject fo = getSnapshot().getSource().getFileObject();
             T parser = createParser(getSnapshot());
-            parser.addErrorListener(createErrorListener(fo));
+            parser.addErrorListener(createErrorListener());
             parser.addParseListener(createFoldListener());
-            parser.addParseListener(createReferenceListener(fo));
-            parser.addParseListener(createImportListener(fo));
-            parser.addParseListener(createStructureListener(fo));
+            parser.addParseListener(createReferenceListener());
+            parser.addParseListener(createImportListener());
+            parser.addParseListener(createStructureListener());
             parser.addParseListener(createOccurancesListener());
             evaluateParser(parser);
 
             // Start a second parsing phase for checking;
             parser = createParser(getSnapshot());
-            parser.addParseListener(createCheckReferences(fo));
+            parser.addParseListener(createCheckReferences());
             evaluateParser(parser);
             finished = true;
         }
@@ -104,18 +104,22 @@
         }
     }
 
+    protected final FileObject getFileObject() {
+        return getSnapshot().getSource().getFileObject();
+    }
+
     protected abstract T createParser(Snapshot snapshot);
     protected abstract void evaluateParser(T parser);
 
-    protected abstract ParseTreeListener createReferenceListener(FileObject source);
-    protected abstract ParseTreeListener createImportListener(FileObject source);
+    protected abstract ParseTreeListener createReferenceListener();
+    protected abstract ParseTreeListener createImportListener();
     protected abstract ParseTreeListener createFoldListener();
-    protected abstract ParseTreeListener createStructureListener(FileObject source);
+    protected abstract ParseTreeListener createStructureListener();
     protected abstract ParseTreeListener createOccurancesListener();
 
-    protected abstract ParseTreeListener createCheckReferences(FileObject source);
+    protected abstract ParseTreeListener createCheckReferences();
 
-    protected ANTLRErrorListener createErrorListener(FileObject source) {
+    protected ANTLRErrorListener createErrorListener() {
         return new BaseErrorListener() {
             @Override
             public void syntaxError(Recognizer<?, ?> recognizer, Object offendingSymbol, int line, int charPositionInLine, String msg, RecognitionException e) {
@@ -124,7 +128,7 @@
                     Token offendingToken = (Token) offendingSymbol;
                     errorPosition = offendingToken.getStartIndex();
                 }
-                errors.add(new DefaultError(null, msg, null, source, errorPosition, errorPosition, Severity.ERROR));
+                errors.add(new DefaultError(null, msg, null, getFileObject(), errorPosition, errorPosition, Severity.ERROR));
             }
 
         };
diff --git a/java/languages.antlr/src/org/netbeans/modules/languages/antlr/v3/Antlr3ParserResult.java b/java/languages.antlr/src/org/netbeans/modules/languages/antlr/v3/Antlr3ParserResult.java
index fbe33a7..cdd29cd 100644
--- a/java/languages.antlr/src/org/netbeans/modules/languages/antlr/v3/Antlr3ParserResult.java
+++ b/java/languages.antlr/src/org/netbeans/modules/languages/antlr/v3/Antlr3ParserResult.java
@@ -28,12 +28,9 @@
 import org.antlr.v4.runtime.Token;
 import org.antlr.v4.runtime.tree.ParseTreeListener;
 import org.netbeans.modules.csl.api.OffsetRange;
-import org.netbeans.modules.csl.api.Severity;
-import org.netbeans.modules.csl.spi.DefaultError;
 import org.netbeans.modules.languages.antlr.AntlrParserResult;
 import org.netbeans.modules.languages.antlr.AntlrStructureItem;
 import org.netbeans.modules.parsing.api.Snapshot;
-import org.openide.filesystems.FileObject;
 
 /**
  *
@@ -59,7 +56,7 @@
     }
 
     @Override
-    protected ParseTreeListener createReferenceListener(FileObject source) {
+    protected ParseTreeListener createReferenceListener() {
         return new ANTLRv3ParserBaseListener() {
             @Override
             public void exitRule_(ANTLRv3Parser.Rule_Context ctx) {
@@ -69,7 +66,7 @@
                 if (references.containsKey(name)) {
                     references.get(name).defOffset = range;
                 } else {
-                    Reference ref = new Reference(name, source, range);
+                    Reference ref = new Reference(name, getFileObject(), range);
                     references.put(ref.name, ref);
                 }
             }
@@ -77,7 +74,7 @@
     }
 
     @Override
-    protected ParseTreeListener createCheckReferences(FileObject source) {
+    protected ParseTreeListener createCheckReferences() {
         return new ANTLRv3OccuranceListener((token) -> {
             String name = token.getText();
             if (!"EOF".equals(name) && (!references.containsKey(name) || references.get(name).defOffset == null)) {
@@ -89,7 +86,7 @@
     }
 
     @Override
-    protected ParseTreeListener createImportListener(FileObject source) {
+    protected ParseTreeListener createImportListener() {
         return new ANTLRv3ParserBaseListener();
     }
 
@@ -135,12 +132,12 @@
     }
 
     @Override
-    protected ParseTreeListener createStructureListener(FileObject source) {
+    protected ParseTreeListener createStructureListener() {
         return new ANTLRv3ParserBaseListener() {
 
             @Override
             public void exitRule_(ANTLRv3Parser.Rule_Context ctx) {
-                AntlrStructureItem.RuleStructureItem rule = new AntlrStructureItem.RuleStructureItem(ctx.id_().getText(), source, ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex() + 1);
+                AntlrStructureItem.RuleStructureItem rule = new AntlrStructureItem.RuleStructureItem(ctx.id_().getText(), getFileObject(), ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex() + 1);
                 structure.add(rule);
             }
 
diff --git a/java/languages.antlr/src/org/netbeans/modules/languages/antlr/v4/Antlr4ParserResult.java b/java/languages.antlr/src/org/netbeans/modules/languages/antlr/v4/Antlr4ParserResult.java
index d8b2981..eba55a4 100644
--- a/java/languages.antlr/src/org/netbeans/modules/languages/antlr/v4/Antlr4ParserResult.java
+++ b/java/languages.antlr/src/org/netbeans/modules/languages/antlr/v4/Antlr4ParserResult.java
@@ -67,7 +67,7 @@
     }
 
     @Override
-    protected ParseTreeListener createReferenceListener(FileObject source) {
+    protected ParseTreeListener createReferenceListener() {
         return new ANTLRv4ParserBaseListener() {
             @Override
             public void exitParserRuleSpec(ANTLRv4Parser.ParserRuleSpecContext ctx) {
@@ -97,7 +97,7 @@
                 if(references.containsKey(name)) {
                     references.get(name).defOffset = range;
                 } else {
-                    Reference ref = new Reference(name, source, range);
+                    Reference ref = new Reference(name, getFileObject(), range);
                     references.put(ref.name, ref);
                 }
             }
@@ -107,10 +107,10 @@
 
 
     @Override
-    protected ParseTreeListener createCheckReferences(FileObject source) {
+    protected ParseTreeListener createCheckReferences() {
         final Map<String, Reference> allRefs = new HashMap<>(references);
         for (String im : imports) {
-            FileObject fo = source.getParent().getFileObject(im + ".g4");
+            FileObject fo = getFileObject().getParent().getFileObject(im + ".g4");
             if (fo != null) {
                 AntlrParserResult pr = AntlrParser.getParserResult(fo);
                 allRefs.putAll(pr.references);
@@ -119,13 +119,13 @@
         return new ANTLRv4OccuranceListener((token) -> {
             String name = token.getText();
             if(!"EOF".equals(name) && (!allRefs.containsKey(name) || (allRefs.get(name).defOffset == null))) {
-                errors.add(new DefaultError(null, "Unknown Reference: " + name, null, source, token.getStartIndex(), token.getStopIndex() + 1, Severity.ERROR));
+                errors.add(new DefaultError(null, "Unknown Reference: " + name, null, getFileObject(), token.getStartIndex(), token.getStopIndex() + 1, Severity.ERROR));
             }
         });
     }
 
     @Override
-    protected ParseTreeListener createImportListener(FileObject source) {
+    protected ParseTreeListener createImportListener() {
         return new ANTLRv4ParserBaseListener() {
             private void addImport(String importedGrammar) {
                 imports.add(importedGrammar);
@@ -205,7 +205,7 @@
     }
 
     @Override
-    protected ParseTreeListener createStructureListener(FileObject source) {
+    protected ParseTreeListener createStructureListener() {
         return new ANTLRv4ParserBaseListener() {
             final List<AntlrStructureItem.RuleStructureItem> lexerStructure = new ArrayList<>();
 
@@ -213,21 +213,21 @@
             public void exitLexerRuleSpec(ANTLRv4Parser.LexerRuleSpecContext ctx) {
                 if (ctx.FRAGMENT() == null) {
                     // Do not represent fragments in the structure
-                    AntlrStructureItem.RuleStructureItem rule = new AntlrStructureItem.RuleStructureItem(ctx.TOKEN_REF().getText(), source, ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex() + 1);
+                    AntlrStructureItem.RuleStructureItem rule = new AntlrStructureItem.RuleStructureItem(ctx.TOKEN_REF().getText(), getFileObject(), ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex() + 1);
                     lexerStructure.add(rule);
                 }
             }
 
             @Override
             public void exitParserRuleSpec(ANTLRv4Parser.ParserRuleSpecContext ctx) {
-                AntlrStructureItem.RuleStructureItem rule = new AntlrStructureItem.RuleStructureItem(ctx.RULE_REF().getText(), source, ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex() + 1);
+                AntlrStructureItem.RuleStructureItem rule = new AntlrStructureItem.RuleStructureItem(ctx.RULE_REF().getText(), getFileObject(), ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex() + 1);
                 structure.add(rule);
             }
 
             @Override
             public void exitRules(ANTLRv4Parser.RulesContext ctx) {
                 if (!lexerStructure.isEmpty()) {
-                    AntlrStructureItem.ModeStructureItem mode = new AntlrStructureItem.ModeStructureItem(source, ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex() + 1);
+                    AntlrStructureItem.ModeStructureItem mode = new AntlrStructureItem.ModeStructureItem(getFileObject(), ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex() + 1);
                     mode.rules.addAll(lexerStructure);
                     structure.add(mode);
                     lexerStructure.clear();
@@ -237,7 +237,7 @@
 
             @Override
             public void exitModeSpec(ANTLRv4Parser.ModeSpecContext ctx) {
-                AntlrStructureItem.ModeStructureItem mode = new AntlrStructureItem.ModeStructureItem(ctx.identifier().getText(), source, ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex() + 1);
+                AntlrStructureItem.ModeStructureItem mode = new AntlrStructureItem.ModeStructureItem(ctx.identifier().getText(), getFileObject(), ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex() + 1);
                 mode.rules.addAll(lexerStructure);
                 structure.add(mode);
                 lexerStructure.clear();