Complete Word doesn't work with a language where variables can contains dots
Submitted by Thursday, 9 April, 2009 - 19:02
on
Hi there,
I'm using jEdit 4.3.pre16 with java 1.5.0.13.
My problem is the language I configure in jedit named Infobasic supports dots in variables, for example: Y.TOTAL.CREDITS is a variable name.
I have configured all the syntax highlight, some other compiling routines, etc. But when I configure the extra characters to consider a word there is a problem ( "_." -> this are the extra characters I define), when I press Ctrl+B to see the code completion, there is an error on jEdit, you can see the exception given:
02:01:58 PM [AWT-EventQueue-0] [debug] CompleteWord: $ . (this is a debug message i put in CompleteWord.java)
02:01:58 PM [AWT-EventQueue-0] [debug] CompleteWord: _\\.$ . (this is a debug message i put in CompleteWord.java)
02:01:58 PM [AWT-EventQueue-0] [debug] CompleteWord: Z.RESULT (this is a debug message i put in CompleteWord.java)
02:01:58 PM [AWT-EventQueue-0] [debug] CompleteWord: (this is a debug message i put in CompleteWord.java)
02:01:58 PM [AWT-EventQueue-0] [debug] CompleteWord: array completions [ ] (this is a debug message i put in CompleteWord.java)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: java.lang.StringIndexOutOfBoundsException: String index out of range: -8
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at java.lang.String.substring(String.java:1768)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at java.lang.String.substring(String.java:1735)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at org.gjt.sp.jedit.gui.CompleteWord.completeWord(CompleteWord.java:103)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at java.lang.reflect.Method.invoke(Method.java:585)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at org.gjt.sp.jedit.bsh.Reflect.invokeMethod(Reflect.java:134)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at org.gjt.sp.jedit.bsh.Reflect.invokeStaticMethod(Reflect.java:98)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at org.gjt.sp.jedit.bsh.Name.invokeMethod(Name.java:871)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at org.gjt.sp.jedit.bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:75)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at org.gjt.sp.jedit.bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at org.gjt.sp.jedit.bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at org.gjt.sp.jedit.bsh.BSHBlock.evalBlock(BSHBlock.java:130)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at org.gjt.sp.jedit.bsh.BSHBlock.eval(BSHBlock.java:80)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at org.gjt.sp.jedit.bsh.BshMethod.invokeImpl(BshMethod.java:362)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at org.gjt.sp.jedit.bsh.BshMethod.invoke(BshMethod.java:258)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at org.gjt.sp.jedit.bsh.BshMethod.invoke(BshMethod.java:186)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at org.gjt.sp.jedit.BeanShellFacade.runCachedBlock(BeanShellFacade.java:225)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at org.gjt.sp.jedit.BeanShell.runCachedBlock(BeanShell.java:441)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at org.gjt.sp.jedit.BeanShellAction.invoke(BeanShellAction.java:73)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at org.gjt.sp.jedit.gui.InputHandler.invokeAction(InputHandler.java:352)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at org.gjt.sp.jedit.gui.InputHandler.invokeAction(InputHandler.java:317)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at org.gjt.sp.jedit.gui.DefaultInputHandler.handleKey(DefaultInputHandler.java:197)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at org.gjt.sp.jedit.input.AbstractInputHandler.processKeyEventKeyStrokeHandling(AbstractInputHandler.java:405)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at org.gjt.sp.jedit.gui.InputHandler.processKeyEvent(InputHandler.java:151)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at org.gjt.sp.jedit.textarea.TextArea.processKeyEvent(TextArea.java:4545)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at java.awt.Component.processEvent(Component.java:5294)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at java.awt.Container.processEvent(Container.java:1966)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at java.awt.Component.dispatchEventImpl(Component.java:3984)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at java.awt.Container.dispatchEventImpl(Container.java:2024)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at java.awt.Component.dispatchEvent(Component.java:3819)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1826)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:681)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:938)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:810)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:645)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at java.awt.Component.dispatchEventImpl(Component.java:3857)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at java.awt.Container.dispatchEventImpl(Container.java:2024)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at java.awt.Window.dispatchEventImpl(Window.java:1791)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at java.awt.Component.dispatchEvent(Component.java:3819)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
02:02:00 PM [AWT-EventQueue-0] [debug] EditBus: DynamicMenuChanged[menu=recent-files,source=null]
I'm using jEdit 4.3.pre16 with java 1.5.0.13.
My problem is the language I configure in jedit named Infobasic supports dots in variables, for example: Y.TOTAL.CREDITS is a variable name.
I have configured all the syntax highlight, some other compiling routines, etc. But when I configure the extra characters to consider a word there is a problem ( "_." -> this are the extra characters I define), when I press Ctrl+B to see the code completion, there is an error on jEdit, you can see the exception given:
02:01:58 PM [AWT-EventQueue-0] [debug] CompleteWord: $ . (this is a debug message i put in CompleteWord.java)
02:01:58 PM [AWT-EventQueue-0] [debug] CompleteWord: _\\.$ . (this is a debug message i put in CompleteWord.java)
02:01:58 PM [AWT-EventQueue-0] [debug] CompleteWord: Z.RESULT (this is a debug message i put in CompleteWord.java)
02:01:58 PM [AWT-EventQueue-0] [debug] CompleteWord: (this is a debug message i put in CompleteWord.java)
02:01:58 PM [AWT-EventQueue-0] [debug] CompleteWord: array completions [ ] (this is a debug message i put in CompleteWord.java)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: java.lang.StringIndexOutOfBoundsException: String index out of range: -8
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at java.lang.String.substring(String.java:1768)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at java.lang.String.substring(String.java:1735)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at org.gjt.sp.jedit.gui.CompleteWord.completeWord(CompleteWord.java:103)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at java.lang.reflect.Method.invoke(Method.java:585)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at org.gjt.sp.jedit.bsh.Reflect.invokeMethod(Reflect.java:134)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at org.gjt.sp.jedit.bsh.Reflect.invokeStaticMethod(Reflect.java:98)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at org.gjt.sp.jedit.bsh.Name.invokeMethod(Name.java:871)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at org.gjt.sp.jedit.bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:75)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at org.gjt.sp.jedit.bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at org.gjt.sp.jedit.bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at org.gjt.sp.jedit.bsh.BSHBlock.evalBlock(BSHBlock.java:130)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at org.gjt.sp.jedit.bsh.BSHBlock.eval(BSHBlock.java:80)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at org.gjt.sp.jedit.bsh.BshMethod.invokeImpl(BshMethod.java:362)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at org.gjt.sp.jedit.bsh.BshMethod.invoke(BshMethod.java:258)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at org.gjt.sp.jedit.bsh.BshMethod.invoke(BshMethod.java:186)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at org.gjt.sp.jedit.BeanShellFacade.runCachedBlock(BeanShellFacade.java:225)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at org.gjt.sp.jedit.BeanShell.runCachedBlock(BeanShell.java:441)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at org.gjt.sp.jedit.BeanShellAction.invoke(BeanShellAction.java:73)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at org.gjt.sp.jedit.gui.InputHandler.invokeAction(InputHandler.java:352)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at org.gjt.sp.jedit.gui.InputHandler.invokeAction(InputHandler.java:317)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at org.gjt.sp.jedit.gui.DefaultInputHandler.handleKey(DefaultInputHandler.java:197)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at org.gjt.sp.jedit.input.AbstractInputHandler.processKeyEventKeyStrokeHandling(AbstractInputHandler.java:405)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at org.gjt.sp.jedit.gui.InputHandler.processKeyEvent(InputHandler.java:151)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at org.gjt.sp.jedit.textarea.TextArea.processKeyEvent(TextArea.java:4545)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at java.awt.Component.processEvent(Component.java:5294)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at java.awt.Container.processEvent(Container.java:1966)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at java.awt.Component.dispatchEventImpl(Component.java:3984)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at java.awt.Container.dispatchEventImpl(Container.java:2024)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at java.awt.Component.dispatchEvent(Component.java:3819)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1826)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:681)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:938)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:810)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:645)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at java.awt.Component.dispatchEventImpl(Component.java:3857)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at java.awt.Container.dispatchEventImpl(Container.java:2024)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at java.awt.Window.dispatchEventImpl(Window.java:1791)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at java.awt.Component.dispatchEvent(Component.java:3819)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
02:01:58 PM [AWT-EventQueue-0] [error] BeanShellAction: at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
02:02:00 PM [AWT-EventQueue-0] [debug] EditBus: DynamicMenuChanged[menu=recent-files,source=null]