Christian Lenz created NETBEANS-4540:
----------------------------------------

             Summary: SyntaxException for specific grammar
                 Key: NETBEANS-4540
                 URL: https://issues.apache.org/jira/browse/NETBEANS-4540
             Project: NetBeans
          Issue Type: Bug
          Components: textmate-lexer
    Affects Versions: 12.0
         Environment: Product Version: Apache NetBeans IDE 12.0
Java: 11.0.2; Java HotSpot(TM) 64-Bit Server VM 11.0.2+9-LTS
Runtime: Java(TM) SE Runtime Environment 11.0.2+9-LTS
System: Windows 10 version 10.0 running on amd64; Cp1252; de_DE (nb)
User directory: C:\Users\Chris\AppData\Roaming\Netbeans\12.0
Cache directory: C:\Users\Chris\AppData\Local\NetBeans\Cache\12.0
            Reporter: Christian Lenz
            Assignee: Jan Lahoda
         Attachments: example.tex

When I use this grammar file: 
https://github.com/James-Yu/LaTeX-Workshop/blob/master/syntax/LaTeX.tmLanguage.json
 for tex files, I got an SyntaxException fot the attached file (example.tex)

{code}
org.joni.exception.SyntaxException: premature end of char-class
        at org.joni.ScannerSupport.newSyntaxException(ScannerSupport.java:166)
        at org.joni.Parser.parseCharClass(Parser.java:342)
        at org.joni.Parser.parseCharClass(Parser.java:318)
        at org.joni.Parser.parseExp(Parser.java:892)
        at org.joni.Parser.parseBranch(Parser.java:1116)
        at org.joni.Parser.parseSubExp(Parser.java:1133)
        at org.joni.Parser.parseRegexp(Parser.java:1166)
        at org.joni.Parser.parse(Parser.java:65)
        at org.joni.Analyser.compile(Analyser.java:80)
        at org.joni.Regex.<init>(Regex.java:159)
        at org.joni.Regex.<init>(Regex.java:136)
        at 
org.eclipse.tm4e.core.internal.oniguruma.OnigRegExp.<init>(OnigRegExp.java:49)
        at 
org.eclipse.tm4e.core.internal.oniguruma.OnigSearcher.<init>(OnigSearcher.java:29)
        at 
org.eclipse.tm4e.core.internal.oniguruma.OnigScanner.<init>(OnigScanner.java:24)
        at 
org.eclipse.tm4e.core.internal.rule.RegExpSourceList.createOnigScanner(RegExpSourceList.java:132)
        at 
org.eclipse.tm4e.core.internal.rule.RegExpSourceList.compile(RegExpSourceList.java:86)
        at 
org.eclipse.tm4e.core.internal.rule.BeginEndRule.compile(BeginEndRule.java:77)
        at 
org.eclipse.tm4e.core.internal.grammar.LineTokenizer.matchRule(LineTokenizer.java:276)
        at 
org.eclipse.tm4e.core.internal.grammar.LineTokenizer.matchRuleOrInjections(LineTokenizer.java:299)
        at 
org.eclipse.tm4e.core.internal.grammar.LineTokenizer.scanNext(LineTokenizer.java:110)
        at 
org.eclipse.tm4e.core.internal.grammar.LineTokenizer.scan(LineTokenizer.java:97)
        at 
org.eclipse.tm4e.core.internal.grammar.LineTokenizer._tokenizeString(LineTokenizer.java:537)
        at 
org.eclipse.tm4e.core.internal.grammar.Grammar._tokenize(Grammar.java:239)
        at 
org.eclipse.tm4e.core.internal.grammar.Grammar.tokenizeLine(Grammar.java:191)
        at 
org.netbeans.modules.textmate.lexer.TextmateLexer.nextToken(TextmateLexer.java:75)
        at 
org.netbeans.lib.lexer.LexerInputOperation.nextToken(LexerInputOperation.java:191)
        at 
org.netbeans.lib.lexer.inc.IncTokenList.tokenOrEmbeddingImpl(IncTokenList.java:170)
        at 
org.netbeans.lib.lexer.inc.IncTokenList.tokenOrEmbedding(IncTokenList.java:165)
        at org.netbeans.api.lexer.TokenSequence.moveNext(TokenSequence.java:463)
        at 
org.netbeans.modules.textmate.lexer.SyntaxHighlighting$TSInfo.moveNextToken(SyntaxHighlighting.java:779)
        at 
org.netbeans.modules.textmate.lexer.SyntaxHighlighting$HSImpl.moveTheSequence(SyntaxHighlighting.java:476)
        at 
org.netbeans.modules.textmate.lexer.SyntaxHighlighting$HSImpl.moveNext(SyntaxHighlighting.java:405)
        at 
org.netbeans.modules.editor.lib2.highlighting.DirectMergeContainer$Wrapper.fetchNextHighlight(DirectMergeContainer.java:600)
        at 
org.netbeans.modules.editor.lib2.highlighting.DirectMergeContainer$HlSequence.updateMergeVars(DirectMergeContainer.java:337)
        at 
org.netbeans.modules.editor.lib2.highlighting.DirectMergeContainer$HlSequence.nextMerge(DirectMergeContainer.java:303)
        at 
org.netbeans.modules.editor.lib2.highlighting.DirectMergeContainer$HlSequence.moveNext(DirectMergeContainer.java:234)
        at 
org.netbeans.modules.editor.lib2.highlighting.HighlightsReader.readUntil(HighlightsReader.java:59)
        at 
org.netbeans.modules.editor.lib2.view.HighlightsViewFactory.restart(HighlightsViewFactory.java:168)
        at 
org.netbeans.modules.editor.lib2.view.ViewBuilder$FactoryState.init(ViewBuilder.java:1299)
        at 
org.netbeans.modules.editor.lib2.view.ViewBuilder.createViews(ViewBuilder.java:699)
        at 
org.netbeans.modules.editor.lib2.view.ViewBuilder.createReplaceRepaintViews(ViewBuilder.java:660)
        at 
org.netbeans.modules.editor.lib2.view.ViewUpdates.reinitAllViews(ViewUpdates.java:189)
        at 
org.netbeans.modules.editor.lib2.view.DocumentViewOp.checkViewsInited(DocumentViewOp.java:619)
        at 
org.netbeans.modules.editor.lib2.view.DocumentView.getPreferredSpan(DocumentView.java:226)
        at 
java.desktop/javax.swing.plaf.basic.BasicTextUI$RootView.getPreferredSpan(BasicTextUI.java:1452)
        at 
java.desktop/javax.swing.plaf.basic.BasicTextUI.getPreferredSize(BasicTextUI.java:957)
        at 
java.desktop/javax.swing.JComponent.getPreferredSize(JComponent.java:1680)
        at 
java.desktop/javax.swing.JEditorPane.getPreferredSize(JEditorPane.java:1345)
        at 
org.netbeans.modules.editor.NbEditorUI$LayeredEditorPane.getPreferredSize(NbEditorUI.java:453)
        at 
java.desktop/javax.swing.ScrollPaneLayout.layoutContainer(ScrollPaneLayout.java:795)
        at java.desktop/java.awt.Container.layout(Container.java:1537)
        at java.desktop/java.awt.Container.doLayout(Container.java:1526)
        at java.desktop/java.awt.Container.validateTree(Container.java:1722)
        at java.desktop/java.awt.Container.validateTree(Container.java:1731)
        at java.desktop/java.awt.Container.validateTree(Container.java:1731)
        at java.desktop/java.awt.Container.validateTree(Container.java:1731)
        at java.desktop/java.awt.Container.validateTree(Container.java:1731)
        at java.desktop/java.awt.Container.validateTree(Container.java:1731)
        at java.desktop/java.awt.Container.validateTree(Container.java:1731)
        at java.desktop/java.awt.Container.validateTree(Container.java:1731)
        at java.desktop/java.awt.Container.validateTree(Container.java:1731)
        at java.desktop/java.awt.Container.validate(Container.java:1657)
        at 
org.netbeans.core.windows.view.ui.DesktopImpl$LayeredLayout.layoutContainer(DesktopImpl.java:529)
        at java.desktop/java.awt.Container.layout(Container.java:1537)
        at java.desktop/java.awt.Container.doLayout(Container.java:1526)
        at java.desktop/java.awt.Container.validateTree(Container.java:1722)
        at java.desktop/java.awt.Container.validateTree(Container.java:1731)
        at java.desktop/java.awt.Container.validateTree(Container.java:1731)
        at java.desktop/java.awt.Container.validateTree(Container.java:1731)
        at java.desktop/java.awt.Container.validateTree(Container.java:1731)
        at java.desktop/java.awt.Container.validate(Container.java:1657)
        at 
java.desktop/javax.swing.RepaintManager$3.run(RepaintManager.java:745)
        at 
java.desktop/javax.swing.RepaintManager$3.run(RepaintManager.java:743)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at 
java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
        at 
java.desktop/javax.swing.RepaintManager.validateInvalidComponents(RepaintManager.java:742)
        at 
java.desktop/javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1889)
        at 
java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
        at 
java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
        at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
        at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at 
java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
        at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
        at 
org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:136)
[catch] at 
java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
        at 
java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
        at 
java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
        at 
java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
        at 
java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
        at 
java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
{code}

Steps to reproduce:
* Open options
* Go to Editor -> Language Servers
* Create a new entry for tex files (LaTeX)
* Use the given grammar file to register it for tex files
* Save and apply options.
* Open the example.tex file
* See the exception



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@netbeans.apache.org
For additional commands, e-mail: commits-h...@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists

Reply via email to