I am trying to use an example https://vadimtropashko.wordpress.com/2019/08/01/arbori-semantic-actions/, but it is not working.
I added a rule WrongToDateNumOfArgs:
After restarting IDE Custom Syntax Rules pane show error PlainLanguageSupport cannot be cast to ArboriLanguageSupport:
java.lang.ClassCastException: oracle.javatools.editor.language.plain.PlainLanguageSupport cannot be cast to oracle.dbtools.raptor.plsql.structure.arbori.ArboriLanguageSupport
at oracle.dbtools.raptor.plsql.structure.arbori.ArboriFoldingPlugin.createModel(ArboriFoldingPlugin.java:45)
at oracle.javatools.editor.folding.CodeFoldingMargin.createCodeFoldingModel(CodeFoldingMargin.java:418)
at oracle.javatools.editor.folding.CodeFoldingMargin.attach(CodeFoldingMargin.java:359)
at oracle.javatools.editor.folding.AbstractCodeFoldingPlugin.attach(AbstractCodeFoldingPlugin.java:124)
at oracle.javatools.editor.folding.AbstractCodeFoldingPlugin.installImpl(AbstractCodeFoldingPlugin.java:42)
at oracle.javatools.editor.plugins.AbstractEditorPlugin.install(AbstractEditorPlugin.java:43)
at oracle.javatools.editor.BasicEditorPane.installPlugin(BasicEditorPane.java:2722)
at oracle.dbtools.raptor.plsql.structure.arbori.ArboriTextPane.<init>(ArboriTextPane.java:62)
at oracle.dbtools.raptor.plsql.structure.arbori.ArboriTextPane.<init>(ArboriTextPane.java:38)
at oracle.dbtools.raptor.config.SyntaxColorCustomOptions.<init>(SyntaxColorCustomOptions.java:60)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at java.lang.Class.newInstance(Class.java:442)
at javax.ide.util.MetaClass.newInstance(MetaClass.java:154)
at oracle.ide.javaxide.Util.createInstance(Util.java:60)
at oracle.ide.javaxide.Util.createInstance(Util.java:40)
at oracle.ide.extension.LazyClassAdapter.createInstance(LazyClassAdapter.java:65)
at oracle.ide.config.ExtensionSettingsPage.newTraversable(ExtensionSettingsPage.java:106)
at oracle.ide.config.ExtensionNavigable.newTraversable(ExtensionNavigable.java:87)
at oracle.ide.panels.MetaTraversable.newTraversable(MetaTraversable.java:219)
at oracle.ide.panels.MDDPanel.getTraversable(MDDPanel.java:1390)
at oracle.ide.panels.MDDPanel.access$800(MDDPanel.java:129)
at oracle.ide.panels.MDDPanel$Tsl.updateSelectedNavigable(MDDPanel.java:1653)
at oracle.ide.panels.MDDPanel$Tsl.updateSelection(MDDPanel.java:1561)
at oracle.ide.panels.MDDPanel$Tsl.actionPerformed(MDDPanel.java:1555)
at javax.swing.Timer.fireActionPerformed(Timer.java:313)
at javax.swing.Timer$DoPostEvent.run(Timer.java:245)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at oracle.javatools.internal.ui.EventQueueWrapper._dispatchEvent(EventQueueWrapper.java:169)
at oracle.javatools.internal.ui.EventQueueWrapper.dispatchEvent(EventQueueWrapper.java:151)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:109)
at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:190)
at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:235)
at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:233)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:233)
at java.awt.Dialog.show(Dialog.java:1084)
at java.awt.Component.show(Component.java:1671)
at java.awt.Component.setVisible(Component.java:1623)
at java.awt.Window.setVisible(Window.java:1014)
at java.awt.Dialog.setVisible(Dialog.java:1005)
at oracle.bali.ewt.dialog.JEWTDialog.runDialog(JEWTDialog.java:399)
at oracle.bali.ewt.dialog.JEWTDialog.runDialog(JEWTDialog.java:360)
at oracle.ide.dialogs.WizardLauncher.runDialog(WizardLauncher.java:55)
at oracle.ide.panels.TDialogLauncher.showDialog(TDialogLauncher.java:225)
at oracle.ide.config.IdeSettings.showDialog(IdeSettings.java:875)
at oracle.ide.config.IdeSettings.showDialog(IdeSettings.java:612)
at oracle.dbtools.raptor.standalone.IndexedPreferencesCommand$IndexPreferencesTask.invokeLater(IndexedPreferencesCommand.java:219)
at oracle.dbtools.raptor.standalone.IndexedPreferencesCommand$IndexPreferencesTask$WaitOver$1.run(IndexedPreferencesCommand.java:231)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at oracle.javatools.internal.ui.EventQueueWrapper._dispatchEvent(EventQueueWrapper.java:169)
at oracle.javatools.internal.ui.EventQueueWrapper.dispatchEvent(EventQueueWrapper.java:151)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
When i removed the {java script}
after ->
at end of rule (custom_syntax.arbori file at home dir) and restarted the IDE, i see the new rule WrongToDateNumOfArgs in Syntax Colors/Available Styles, but changing the color settings does not affect the code highlighting of to_date( defg )
as in example.
Oracle SQL Developer 21.2.1.204
Version 21.2.1.204
Build 204.1703