esensar/neovim-java

Not all ui-options supported by UiOptions

smolck opened this issue ยท 6 comments

Describe the bug
Not all options to nvim_ui_attach are supported by UiOptions. Specifically, the ones that appear to be missing are the following:

  • override
  • ext_linegrid
  • ext_hlstate
  • ext_multigrid
  • ext_termcolors
  • ext_messages

See :help ui-option in Neovim.

Expected behavior
All the options above should ideally be supported by UiOptions.

Thank you for reporting this issue!

Fix released in version 0.2.2.

Wow, thank you for the quick fix!

@esensar Hmm, so just trying this out, and I'm getting/I got this strange error (after setting up a subscriber to handle ui events, and then attaching the UI with UiOptions.FULL_UI):

java.lang.IllegalArgumentException: Cannot deserialize instance of `com.ensarsarajcic.neovim.java.notifications.ui.grid.linegrid.CellData` out of START_ARRAY token
 at [Source: UNKNOWN; line: -1, column: -1] (through reference chain: java.util.ArrayList[0])
	at com.fasterxml.jackson.databind.ObjectMapper._convert(ObjectMapper.java:3751)
	at com.fasterxml.jackson.databind.ObjectMapper.convertValue(ObjectMapper.java:3669)
	at com.ensarsarajcic.neovim.java.notifications.NotificationCreatorCollector.lambda$createUiEventCreators$0(NotificationCreatorCollector.java:72)
	at com.ensarsarajcic.neovim.java.notifications.NeovimStreamNotificationHandler.lambda$eventFromRawData$4(NeovimStreamNotificationHandler.java:128)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
	at java.base/java.util.ArrayList$SubList$2.forEachRemaining(ArrayList.java:1481)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
	at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
	at com.ensarsarajcic.neovim.java.notifications.NeovimStreamNotificationHandler.eventFromRawData(NeovimStreamNotificationHandler.java:134)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
	at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
	at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
	at com.ensarsarajcic.neovim.java.notifications.NeovimStreamNotificationHandler.lambda$uiEvents$1(NeovimStreamNotificationHandler.java:94)
	at com.ensarsarajcic.neovim.java.notifications.MappingProcessor.onNext(MappingProcessor.java:55)
	at java.base/java.util.concurrent.SubmissionPublisher$BufferedSubscription.consumeNext(SubmissionPublisher.java:1307)
	at java.base/java.util.concurrent.SubmissionPublisher$BufferedSubscription.takeItems(SubmissionPublisher.java:1296)
	at java.base/java.util.concurrent.SubmissionPublisher$BufferedSubscription.consume(SubmissionPublisher.java:1253)
	at java.base/java.util.concurrent.SubmissionPublisher$ConsumerTask.exec(SubmissionPublisher.java:930)
	at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
	at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1016)
	at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1665)
	at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1598)
	at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)
Caused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `com.ensarsarajcic.neovim.java.notifications.ui.grid.linegrid.CellData` out of START_ARRAY token
 at [Source: UNKNOWN; line: -1, column: -1] (through reference chain: java.util.ArrayList[0])
	at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:63)
	at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1343)
	at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1139)
	at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1093)
	at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromArray(BeanDeserializerBase.java:1461)
Caused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `com.ensarsarajcic.neovim.java.notifications.ui.grid.linegrid.CellData` out of START_ARRAY token

	at com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeOther(BeanDeserializer.java:185)
	at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:161)
	at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:286)
	at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:245)
	at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:27)
	at com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:530)
	at com.fasterxml.jackson.databind.deser.impl.BeanAsArrayDeserializer._deserializeUsingPropertyBased(BeanAsArrayDeserializer.java:313)
	at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromObjectUsingNonDefault(BeanDeserializerBase.java:1287)
	at com.fasterxml.jackson.databind.deser.impl.BeanAsArrayDeserializer._deserializeNonVanilla(BeanAsArrayDeserializer.java:218)
	at com.fasterxml.jackson.databind.deser.impl.BeanAsArrayDeserializer.deserialize(BeanAsArrayDeserializer.java:100)
	at com.fasterxml.jackson.databind.ObjectMapper._convert(ObjectMapper.java:3746)
	... 29 more

Any idea what's causing that? Should I open another issue? Also, let me know if you need more information.

I found the issue, but fixing it just uncovered more issues ๐Ÿ˜„
I am working of fixes, but I am not sure when it will be done.

Okay, no worries! Thank you for the help!

It seems to be working now. Fix should be available in 0.2.3. Thank you very much for reporting these issues. Let me know if you run into any other issues along the way.