Giter VIP home page Giter VIP logo

comrade's People

Contributors

allcontributors[bot] avatar beeender avatar hori-ryota avatar zphixon avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

comrade's Issues

Invoke basic completion and second basic completion from Neovim

Hi, first of all this is an amazing plugin (Ingratiating neovim's speed and editing power with Jetbrains completion). Thanks a lot.

I just have one request (/ query). Is it possible anyway to invoke basic completion request (or even better, second basic completion request) to Jetbrains from Neovim?

Buffer already relesesed

Happens from time to time. Maybe relate to neovim loses sync.

java.lang.IllegalStateException: This SyncBuffer has been released already.
	at org.beeender.comradeneovim.buffer.SyncBuffer.checkReleased(SyncBuffer.kt:142)
	at org.beeender.comradeneovim.buffer.SyncBuffer.navigate(SyncBuffer.kt:76)
	at org.beeender.comradeneovim.buffer.SyncBufferManager$nvimBufLinesEvent$1.invoke(SyncBufferManager.kt:148)
	at org.beeender.comradeneovim.buffer.SyncBufferManager$nvimBufLinesEvent$1.invoke(SyncBufferManager.kt:28)
	at org.beeender.comradeneovim.UtilsKt$sam$java_lang_Runnable$0.run(Utils.kt)
	at com.intellij.openapi.application.TransactionGuardImpl.runWithWritingAllowed(TransactionGuardImpl.java:214)
	at com.intellij.openapi.application.TransactionGuardImpl.access$200(TransactionGuardImpl.java:21)
	at com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:196)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:794)
	at com.intellij.openapi.application.impl.ApplicationImpl.lambda$invokeLater$4(ApplicationImpl.java:350)
	at com.intellij.openapi.application.impl.FlushQueue.doRun(FlushQueue.java:84)
	at com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:133)
	at com.intellij.openapi.application.impl.FlushQueue.flushNow(FlushQueue.java:46)
	at com.intellij.openapi.application.impl.FlushQueue$FlushNow.run(FlushQueue.java:189)
	at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:776)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
	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:746)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:886)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:755)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:442)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:825)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:441)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:794)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:487)
	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)

Fix internal API and deprecated API usages

Build of the IDE: IU-201.8538.31
Verdict: Compatible. 6 usages of deprecated API. 2 usages of internal API

JetBrain sends those emails every day.
Need to find a time to fix those.

Feature Request: Sync Buffers with IDE editor tabs AND cursor location

I generally only reach for nvim when I need to do some heavy lifting that IdeaVim can't afford me. It would be incredible if I could open an IDE terminal tab, launch nvim from the workspace root directory, and then when I need actual nvim for heavy lifting, I can simply hotkey over to the IDE terminal and bang out some normal/global commands and then jump back in the IDE editor for my general workflow....I would also expect the jumplist, registers, marks, etc., to sync as well so everything would be pretty seamless. I think this would be a huge value add!

Integration with nvim LSP?

Does this plugin only work with deoplete? Or would it also work with neovim LSP?
If not, how much work do you think it would be to port it over to other completion engines?

Too many non-block events

Happens from time to time. Maybe relate to neovim loses sync.

java.lang.Throwable: Too many non-blocking read actions submitted at once. Please use coalesceBy, BoundedTaskExecutor or another way of limiting the number of concurrently running threads.: 14 with similar stack traces are currently active
	at com.intellij.openapi.diagnostic.Logger.error(Logger.java:182)
	at com.intellij.openapi.application.impl.SubmissionTracker.preventTooManySubmissions(SubmissionTracker.java:45)
	at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.<init>(NonBlockingReadActionImpl.java:231)
	at com.intellij.openapi.application.impl.NonBlockingReadActionImpl.submit(NonBlockingReadActionImpl.java:191)
	at com.intellij.completion.ml.common.RecentPlacesFeatures$StoreRecentPlacesListener.recentPlaceAdded(RecentPlacesFeatures.kt:83)
	at com.intellij.util.messages.impl.MessageBusImpl.invokeMethod(MessageBusImpl.java:645)
	at com.intellij.util.messages.impl.MessageBusImpl.invokeListener(MessageBusImpl.java:620)
	at com.intellij.util.messages.impl.MessageBusImpl.deliverMessage(MessageBusImpl.java:417)
	at com.intellij.util.messages.impl.MessageBusImpl.pumpWaitingBuses(MessageBusImpl.java:390)
	at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:372)
	at com.intellij.util.messages.impl.MessageBusImpl.access$200(MessageBusImpl.java:33)
	at com.intellij.util.messages.impl.MessageBusImpl$MessagePublisher.invoke(MessageBusImpl.java:179)
	at com.sun.proxy.$Proxy106.recentPlaceAdded(Unknown Source)
	at com.intellij.openapi.fileEditor.impl.IdeDocumentHistoryImpl.putLastOrMerge(IdeDocumentHistoryImpl.java:642)
	at com.intellij.openapi.fileEditor.impl.IdeDocumentHistoryImpl.setCurrentChangePlace(IdeDocumentHistoryImpl.java:379)
	at com.intellij.openapi.fileEditor.impl.IdeDocumentHistoryImpl.onCommandFinished(IdeDocumentHistoryImpl.java:331)
	at com.intellij.openapi.fileEditor.impl.IdeDocumentHistoryImpl$3.commandFinished(IdeDocumentHistoryImpl.java:126)
	at com.intellij.util.messages.impl.MessageBusImpl.invokeMethod(MessageBusImpl.java:645)
	at com.intellij.util.messages.impl.MessageBusImpl.invokeListener(MessageBusImpl.java:620)
	at com.intellij.util.messages.impl.MessageBusImpl.access$300(MessageBusImpl.java:33)
	at com.intellij.util.messages.impl.MessageBusImpl$MessagePublisher.executeOrAddToQueue(MessageBusImpl.java:208)
	at com.intellij.util.messages.impl.CompositeMessageBus$ToDirectChildrenMessagePublisher.publish(CompositeMessageBus.java:125)
	at com.intellij.util.messages.impl.MessageBusImpl$MessagePublisher.invoke(MessageBusImpl.java:166)
	at com.sun.proxy.$Proxy78.commandFinished(Unknown Source)
	at com.intellij.openapi.command.impl.CoreCommandProcessor.fireCommandFinished(CoreCommandProcessor.java:275)
	at com.intellij.openapi.command.impl.CoreCommandProcessor.finishCommand(CoreCommandProcessor.java:256)
	at com.intellij.openapi.command.impl.CommandProcessorImpl.finishCommand(CommandProcessorImpl.java:34)
	at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:222)
	at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:182)
	at com.intellij.openapi.command.WriteCommandAction$BuilderImpl.doRunWriteCommandAction(WriteCommandAction.java:150)
	at com.intellij.openapi.command.WriteCommandAction$BuilderImpl.run(WriteCommandAction.java:117)
	at org.beeender.comradeneovim.buffer.SyncBuffer$replaceText$1.run(SyncBuffer.kt:100)
	at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:936)
	at org.beeender.comradeneovim.buffer.SyncBuffer.replaceText$ComradeNeovim(SyncBuffer.kt:98)
	at org.beeender.comradeneovim.buffer.Synchronizer.onNeovimChange(Synchronizer.kt:201)
	at org.beeender.comradeneovim.buffer.Synchronizer.onChange(Synchronizer.kt:46)
	at org.beeender.comradeneovim.buffer.SyncBufferManager$nvimBufLinesEvent$1.invoke(SyncBufferManager.kt:146)
	at org.beeender.comradeneovim.buffer.SyncBufferManager$nvimBufLinesEvent$1.invoke(SyncBufferManager.kt:28)
	at org.beeender.comradeneovim.UtilsKt$sam$java_lang_Runnable$0.run(Utils.kt)
	at com.intellij.openapi.application.TransactionGuardImpl.runWithWritingAllowed(TransactionGuardImpl.java:214)
	at com.intellij.openapi.application.TransactionGuardImpl.access$200(TransactionGuardImpl.java:21)
	at com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:196)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:794)
	at com.intellij.openapi.application.impl.ApplicationImpl.lambda$invokeLater$4(ApplicationImpl.java:350)
	at com.intellij.openapi.application.impl.FlushQueue.doRun(FlushQueue.java:84)
	at com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:133)
	at com.intellij.openapi.application.impl.FlushQueue.flushNow(FlushQueue.java:46)
	at com.intellij.openapi.application.impl.FlushQueue$FlushNow.run(FlushQueue.java:189)
	at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:776)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
	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:746)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:886)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:755)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:442)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:825)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:441)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:794)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:487)
	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)

java.lang.IllegalStateException: This SyncBuffer has been released already.
	at org.beeender.comradeneovim.buffer.SyncBuffer.checkReleased(SyncBuffer.kt:142)
	at org.beeender.comradeneovim.buffer.SyncBuffer.navigate(SyncBuffer.kt:76)
	at org.beeender.comradeneovim.buffer.SyncBufferManager$nvimBufLinesEvent$1.invoke(SyncBufferManager.kt:148)
	at org.beeender.comradeneovim.buffer.SyncBufferManager$nvimBufLinesEvent$1.invoke(SyncBufferManager.kt:28)
	at org.beeender.comradeneovim.UtilsKt$sam$java_lang_Runnable$0.run(Utils.kt)
	at com.intellij.openapi.application.TransactionGuardImpl.runWithWritingAllowed(TransactionGuardImpl.java:214)
	at com.intellij.openapi.application.TransactionGuardImpl.access$200(TransactionGuardImpl.java:21)
	at com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:196)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:794)
	at com.intellij.openapi.application.impl.ApplicationImpl.lambda$invokeLater$4(ApplicationImpl.java:350)
	at com.intellij.openapi.application.impl.FlushQueue.doRun(FlushQueue.java:84)
	at com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:133)
	at com.intellij.openapi.application.impl.FlushQueue.flushNow(FlushQueue.java:46)
	at com.intellij.openapi.application.impl.FlushQueue$FlushNow.run(FlushQueue.java:189)
	at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:776)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
	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:746)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:886)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:755)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:442)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:825)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:441)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:794)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:487)
	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)


 

Line synchronization

Although the corresponding file is shown correctly, I sometimes find myself needing to go to intellij and perform a find to have both nvim and idea on the same line. Am I missing something or it's not possible?
Thanks

NCM2 completion support?

Hi there,

This is a great plugin, but I would like to make completion work with ncm2 rather than Deoplete. I know how to write a source (done that already for Vlime), but I need a bit of help understanding how completion is implemented in Comrade.

Looking at the Deoplete source and comrade#RequestCompletion it appears that you are using a blocking RPC request to fetch completion results. You then use a combination of Deoplete's is_async context entry and the is_finished entry of the results object.

Can you please elaborate how they fit together? NCM2 uses callbacks instead, the idea is that when completion is requested you send off an RPC notification and specify a callback which will be called when the other side notifies Neovim that it is done. See here for an example where I pass a lambda as the callback.

I think once I understand this part I can write the NCM2 source with ease.

add support for coc.nvim ?

The plugin is awesome,and thanks for the hard work of the author.If the comrade can have coordination with coc.nvim,it will be great.

Comrade for neovim conflicts with gitgutter navigation

I realize that this may not be an issue with Comrade, however I'm remarking here in the event it is.

Comrade uses the sign column, however it stops GitGutter from working effectively, namely it interferes with GitGutter's navigational commands:

  • GitGutterNextHunk
  • GitGutterPrevHunk

I don't know why, but I'm happy to help look into what is going on if I can maybe get a few hints from the original developer her how to do so (I'm not very familiar with vim plugin dev)

neovim hangs while doing `:%s`

Hi,
This is not conclusive, but when doing :%s with preview on synced file, after pressing enter, neovim was hanged.
It happened 3 times. When I did /gc, it went OK. I don't really see external reason for this..

Exposing jump to definition

Hi, first I just want to say that this is a really cool project! Are there any plans to allow jumping to definition from this plugin or maybe the intelliJ plugin could expose a language server api to do refactoring, find references, etc.

Thanks!

Failure with IntelliJ 2019.2

I am unable to begin using Comrade and ComradeNeovim with IntelliJ 2019.2.

Intellij Info:

Build #IC-192.5728.98, built on July 23, 2019
Runtime version: 11.0.3+12-b304.10 x86_64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
macOS 10.14.6
GC: ParNew, ConcurrentMarkSweep
Memory: 1981M
Cores: 8
Registry: debugger.watches.in.variables=false
Non-Bundled Plugins: CheckStyle-IDEA, IdeaVIM, PMDPlugin, SBT, beeender.ComradeNeovim, claims.bold.intellij.avro, com.atlassian.clover, org.intellij.scala, org.jetbrains.plugins.hocon

Neovim:

:version
NVIM v0.3.0-1308-g3585df3f0
Build type: RelWithDebInfo
LuaJIT 2.0.5

Comrade installed using vim/vim-plug and using the 'beeender/Comrade' github repo. I see the following stacktrace in IntelliJ:

java.lang.Exception: [0, Invalid method name]
	at org.beeender.neovim.BufferApi.detach(BufferApi.kt:19)
	at org.beeender.neovim.BufferApi$detach$1.invokeSuspend(BufferApi.kt)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:32)
	at kotlinx.coroutines.DispatchedTask.run(Dispatched.kt:233)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:594)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.access$runSafely(CoroutineScheduler.kt:60)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:742)

From within vim, I see the following, and I cannot save any files, or exit the editor:

Error detected while processing function <SNR>156_WriteBuffer:
line   17:
JetBrain failed to save file.Vim(call):java.lang.reflect.InvocationTargetException
Press ENTER or type command to continue

[CLion/C++] Errors and warnings from included files

In neovim, Comrade adds errors and warnings from included files to the location list. These do not appear in the buffer in CLion. They make navigation between errors quite frustrating, because it pollutes the buffer and location list and :lnext can move me out of the current file. Errors from included files are never something I care about: either they are errors in my code, and I will see them when I build or when I edit the erroneous file; or they are warnings from code that I do not control which I cannot do anything about.

Additionally, the file paths in the errors from included files include control characters, so they are not usable. For example, a location list entry:

^[[0m^[[1mbazel-out/k8-opt/bin/external/<censored>/_virtual_includes/<censored>.H|43 col 16 warning| ^[[0moverridden virtual function is here^[[0m

Is there a way Comrade can filter out errors from external files? Failing that, can the presence of control characters be fixed?

use nvim as backend for jetbrains

Hi. This is a very nice plugin. However, it feels awkward to have both jetbrains and nvim open at the same time to have completion etc. in nvim provided be jetbrains. How about the other way around? Since nvim provides an api to use it as a backend for any UI it should be theoretically possible to have just open jetbrains with all its feautures but with the editing capabilities of nvim. An example from the real world would be vscode-neovim. It works in vscode! You have all the advantages of working directly in vscode but also the power of real nvim and all its plugins. What do you think?

Index out of bounds exception

Happens from time to time. Maybe relate to neovim loses sync.

java.lang.IndexOutOfBoundsException: Wrong line: -1. Available lines count: 0
	at com.intellij.openapi.editor.impl.LineSet.checkLineIndex(LineSet.java:200)
	at com.intellij.openapi.editor.impl.LineSet.getLineEnd(LineSet.java:194)
	at com.intellij.openapi.editor.impl.DocumentImpl.getLineEndOffset(DocumentImpl.java:1023)
	at org.beeender.comradeneovim.insight.InsightProcessor$process$1.run(InsightProcessor.kt:64)
	at com.intellij.openapi.application.TransactionGuardImpl.runWithWritingAllowed(TransactionGuardImpl.java:214)
	at com.intellij.openapi.application.TransactionGuardImpl.access$200(TransactionGuardImpl.java:21)
	at com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:196)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:794)
	at com.intellij.openapi.application.impl.ApplicationImpl.lambda$invokeLater$4(ApplicationImpl.java:350)
	at com.intellij.openapi.application.impl.FlushQueue.doRun(FlushQueue.java:84)
	at com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:133)
	at com.intellij.openapi.application.impl.FlushQueue.flushNow(FlushQueue.java:46)
	at com.intellij.openapi.application.impl.FlushQueue$FlushNow.run(FlushQueue.java:189)
	at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:776)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
	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:746)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:886)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:755)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:442)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:825)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:441)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:794)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:487)
	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)

Enable intellij -> neovim action sync

When intellij open a file, or editing a file, sync it back to neovim, or called two way sync

Why?
Eclipse provide a very useful java LSP: https://github.com/eclipse/eclipse.jdt.ls
Neovim + coc.nvim + eclipse.jdt.ls has provide a very nice java coding experience, but we need a debugger!
neither Vim nor Neovim provide much GUI event(such as mouse hover, interactable floating window, etc) to make a good debugger, event though DAP is included in eclipse.jdt.ls.
so I personally use Idea to debug, I use mission controll on my mac, put Idea and Neovim in one workspace, it just works. With Comrade, it works much better.
But when Idea debugger step into another file, Neovim doesn't open it, so I can't quickly fix bugs and restart debugger session

IllegalStateException in Android Studio

Attempting to edit the buffer in Neovim 0.4.2 (As well as the previous version 0.3.x i was using)
results in a readonly buffer in neovim (Unable to edit the file) and the following Stack trace in Android Studio 3.5
Build #AI-191.8026.42.35.5791312, built on August 8, 2019
JRE: 1.8.0_202-release-1483-b49-5587405 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
macOS 10.14.6

java.lang.IllegalStateException: This SyncBuffer has been released already.
at org.beeender.comradeneovim.buffer.SyncBuffer.checkReleased(SyncBuffer.kt:142)
at org.beeender.comradeneovim.buffer.SyncBuffer.navigate(SyncBuffer.kt:76)
at org.beeender.comradeneovim.buffer.SyncBufferManager$nvimBufLinesEvent$1.invoke(SyncBufferManager.kt:148)
at org.beeender.comradeneovim.buffer.SyncBufferManager$nvimBufLinesEvent$1.invoke(SyncBufferManager.kt:28)
at org.beeender.comradeneovim.UtilsKt$sam$java_lang_Runnable$0.run(Utils.kt)
at com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:315)
at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.doRun(LaterInvocator.java:435)
at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.runNextEvent(LaterInvocator.java:419)
at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:403)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:764)
at java.awt.EventQueue.access$500(EventQueue.java:98)
at java.awt.EventQueue$3.run(EventQueue.java:715)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:734)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:757)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:706)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:375)
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)

Fixer causes neovim loose focus

When apply some quick fixes from IDE, like adding missing functions, the IDE will grab focus to the IDE's editor window for the input of param. This behavior causes neovim loose focus.

We could just disable those kinds of fixes in the comrade, but there is no clear pattern of what kind of quick fix in the IDE will do this (they are not implemented a certain Interface of have any method to tell this.).

We need to find a way to solve this.

Installation Problems

I'm new to Neovim and the installation workflow of Comrade in Neovim is very complex :/

I run into this error:

Error detected while processing /Volumes/Users/manny/.local/share/nvim/site/pack/packer/start/Comrade/plugin/comrade.vim[27]..function provider#python3#Call:
line   18:
Error invoking 'python_execute_file' on channel 3 (python3-script-host):
Traceback (most recent call last):
  File "/Volumes/Users/manny/.local/share/nvim/site/pack/packer/start/Comrade/plugin/init.py", line 77, in <module>
    init()
  File "/Volumes/Users/manny/.local/share/nvim/site/pack/packer/start/Comrade/plugin/init.py", line 71, in init
    pid_file.write(addr + "\n")
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'

I'm on macOS Ventura with the following Neovim/Packer setup:
~/.config/nvim/lua/user/core/plugins.lua:

use({
  'Shougo/deoplete.nvim',
   run = ':UpdateRemotePlugins',
  requires = {
    'roxma/nvim-yarp',
    'roxma/vim-hug-neovim-rpc',
    run = 'pip install -r requirements.txt'
  },
  config = function()
    require('user.plugin_options.deoplete')
  end,
})

use({
  'beeender/Comrade'
})

~/.config/nvim/lua/user/plugin_options/deoplete.lua:

vim.g['deoplete#enable_at_startup'] = 1
vim.fn['python3_host_prog'] = '/usr/bin/python3'

I don't know how to help myself - Can anybody help me to solve this?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.