XVimProject / XVim

Xcode plugin for Vim keybindings
MIT License
5.16k stars 595 forks source link

Not working in Xcode 7.3 #942

Open Yu-w opened 8 years ago

Yu-w commented 8 years ago

Description

XVim not working in Xcode 7.3

Operation

Not matter how I reinstall the XVim, it does not work and even crash my Xcode sometimes.

Expected behavior

Make it works, please!

Environments

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/32282043-not-working-in-xcode-7-3?utm_campaign=plugin&utm_content=tracker%2F252770&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F252770&utm_medium=issues&utm_source=github).
JugglerShu commented 8 years ago

Why don't you put your crash log here?

Yu-w commented 8 years ago

Xcode quit unexpectedly while using the XVim plug-in. Click Reopen to open the application again. Click Report to see more detailed information and send a report to Apple.

Process:               Xcode [2732]
Path:                  /Applications/Xcode.app/Contents/MacOS/Xcode
Identifier:            com.apple.dt.Xcode
Version:               7.3 (10183.3)
Build Info:            IDEFrameworks-10183003000000000~2
App Item ID:           497799835
App External ID:       816750016
Code Type:             X86-64 (Native)
Parent Process:        ??? [1]
Responsible:           Xcode [2732]
User ID:               501

PlugIn Path:             /Users/USER/Library/Application Support/Developer/*/XVim
PlugIn Identifier:       net.JugglerShu.XVim
PlugIn Version:          1.01 (1)

Date/Time:             2016-03-26 11:07:40.249 -0500
OS Version:            Mac OS X 10.11.4 (15E65)
Report Version:        11
Anonymous UUID:        A82E1BF7-442A-E15A-BE25-742C987624E1

Time Awake Since Boot: 2300 seconds

System Integrity Protection: disabled

Crashed Thread:        0  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_CRASH (SIGABRT)
Exception Codes:       0x0000000000000000, 0x0000000000000000
Exception Note:        EXC_CORPSE_NOTIFY

Application Specific Information:
ProductBuildVersion: 7D175
UNCAUGHT EXCEPTION (NSInvalidArgumentException): -[DVTSourceTextView xvim_didChangeText]: unrecognized selector sent to instance 0x7f9c284c8f90
UserInfo: (null)
Hints: None
Backtrace:
  0   __exceptionPreprocess (in CoreFoundation)
  1   DVTFailureHintExceptionPreprocessor (in DVTFoundation)
  2   objc_exception_throw (in libobjc.A.dylib)
  3   -[NSObject(NSObject) doesNotRecognizeSelector:] (in CoreFoundation)
  4   __ASPECTS_ARE_BEING_CALLED__ at /Users/wangyu/Library/Application Support/Alcatraz/Plug-ins/BBUDebuggerTuckAway/contrib/Aspects.m:467 (in BBUDebuggerTuckAway)
  5   ___forwarding___ (in CoreFoundation)
  6   _CF_forwarding_prep_0 (in CoreFoundation)
  7   -[NSTextView insertText:replacementRange:] (in AppKit)
  8   -[DVTCompletingTextView insertText:replacementRange:] (in DVTKit)
  9   -[NSTextView insertText:] (in AppKit)
 10   -[DVTSourceTextView insertText:] (in DVTKit)
 11   -[NSTextInputContext(NSInputContext_WithCompletion) insertText:replacementRange:completionHandler:] (in AppKit)
 12   __55-[NSTextInputContext handleTSMEvent:completionHandler:]_block_invoke_2250 (in AppKit)
 13   -[NSTextInputContext do_HandleTSMEvent_insertFixLenTextLoop:whileCondition:dispatchWorkEach:afterEachInsertText:continuation:] (in AppKit)
 14   -[NSTextInputContext tryHandleTSMEvent_insertFixLenText_withContext:dispatchCondition:setupForDispatch:nestedWorkaroundCondition:nestedWorkaroundDispatchWork:loopCondition:dispatchWorkEach:afterEachInsertText:continuation:] (in AppKit)
 15   __55-[NSTextInputContext handleTSMEvent:completionHandler:]_block_invoke176 (in AppKit)
 16   __55-[NSTextInputContext handleTSMEvent:completionHandler:]_block_invoke_2 (in AppKit)
 17   -[NSTextInputContext tryHandleTSMEvent_HasMarkedText_withDispatchCondition:dispatchWork:continuation:] (in AppKit)
 18   -[NSTextInputContext handleTSMEvent:completionHandler:] (in AppKit)
 19   _NSTSMEventHandler (in AppKit)
 20   DispatchEventToHandlers(EventTargetRec*, OpaqueEventRef*, HandlerCallRec*) (in HIToolbox)
 21   SendEventToEventTargetInternal(OpaqueEventRef*, OpaqueEventTargetRef*, HandlerCallRec*) (in HIToolbox)
 22   SendEventToEventTargetWithOptions (in HIToolbox)
 23   SendTSMEvent_WithCompletionHandler (in HIToolbox)
 24   __SendUnicodeTextAEToUnicodeDoc_WithCompletionHandler_block_invoke (in HIToolbox)
 25   __SendFilterTextEvent_WithCompletionHandler_block_invoke (in HIToolbox)
 26   SendTSMEvent_WithCompletionHandler (in HIToolbox)
 27   SendFilterTextEvent_WithCompletionHandler (in HIToolbox)
 28   SendUnicodeTextAEToUnicodeDoc_WithCompletionHandler (in HIToolbox)
 29   __utDeliverTSMEvent_WithCompletionHandler_block_invoke_2 (in HIToolbox)
 30   __utDeliverTSMEvent_WithCompletionHandler_block_invoke (in HIToolbox)
 31   TSMKeyEvent_WithCompletionHandler (in HIToolbox)
 32   __TSMProcessRawKeyEventWithOptionsAndCompletionHandler_block_invoke_4 (in HIToolbox)
 33   __TSMProcessRawKeyEventWithOptionsAndCompletionHandler_block_invoke_3 (in HIToolbox)
 34   __TSMProcessRawKeyEventWithOptionsAndCompletionHandler_block_invoke_2 (in HIToolbox)
 35   __TSMProcessRawKeyEventWithOptionsAndCompletionHandler_block_invoke (in HIToolbox)
 36   TSMProcessRawKeyEventWithOptionsAndCompletionHandler (in HIToolbox)
 37   __61-[NSTextInputContext _handleEvent:options:completionHandler:]_block_invoke955 (in AppKit)
 38   -[NSTextInputContext tryTSMProcessRawKeyEvent:dispatchCondition:setupForDispatch:furtherCondition:dispatchWork:continuation:] (in AppKit)
 39   -[NSTextInputContext _handleEvent:options:completionHandler:] (in AppKit)
 40   -[NSTextInputContext handleEvent:] (in AppKit)
 41   -[NSView interpretKeyEvents:] (in AppKit)
 42   -[NSTextView keyDown:] (in AppKit)
 43   -[DVTSourceTextView(XVim) xvim_keyDown:] (in XVim)
 44   -[NSWindow _reallySendEvent:isDelayedEvent:] (in AppKit)
 45   -[NSWindow sendEvent:] (in AppKit)
 46   -[IDEWorkspaceWindow sendEvent:] (in IDEKit)
 47   -[NSApplication sendEvent:] (in AppKit)
 48   -[IDEApplication sendEvent:] (in IDEKit)
 49   -[NSApplication run] (in AppKit)
 50   NSApplicationMain (in AppKit)
 51  0x0000000100d3439b (in Xcode)
 52   start (in libdyld.dylib)

abort() called
JugglerShu commented 8 years ago

How can you reproduce this? This looks really strange because it says there is no method named xvim_didChangeText. Do you see this whenever you input something?

Yu-w commented 8 years ago

Reinstall XVim from Alcatraz could reproduce this. Right after installing from Alcatraz, the cursor disappeared and if I input something, the Xcode would crash immediately. After reopening the Xcode, everything is normal but XVim is not there.

JugglerShu commented 8 years ago

Do you mean if you install XVim by manually (withoutt Acatraz), it doesn't happen?

Yu-w commented 8 years ago

Yes. Manually works.

code4ghana commented 8 years ago

I can confirm. Manual installation (cloning repo + make) works for 7.3.

I installed/uninstalled a number of times through Alcatraz but it doesn't work. observations: 1) xvim shows in the Editor menu and is enabled. 2) Pressing escape triggers the normal xcode cancel command instead of going into Vim's Normal mode. Other xvim keybindings don't appear to work.

JugglerShu commented 8 years ago

I don't know the reason but I think Xcode and Alcatraz now conflicts each other. The crash log also says something about Alcatraz... Let me see...

Yu-w commented 8 years ago

Alright, at least manually installation works. Hope you can find a way to fix this issue. Thanks!

unphased commented 8 years ago

Alcatraz appears to be silently broken at the moment with 7.3

davidquon commented 8 years ago

Both XVim and Alcatraz work for me with Xcode 7.3 when following these instructions https://github.com/XVimProject/XVim/issues/877#issuecomment-203513418. I haven't tried installing XVim with Alcatraz though.

tomassliz commented 8 years ago

@davidquon This doesn't work for me. I can't install XVim through Alcatraz and not either with manual installation. I'm really missing it :worried:

davidquon commented 8 years ago

@tomassliz Did you try these steps too (you'll need to modify the 2nd step to all the previous versions of Xcode you had installed)? https://github.com/XVimProject/XVim/issues/877#issuecomment-152360106

There's also this comment and link that might help as well. https://github.com/XVimProject/XVim/issues/877#issuecomment-155656416

jianpx commented 8 years ago

I find an solution: when I install XVim through Xcode Build, XVim does not work! But I uninstall XVim , and goto XVim source code directory, then run command :$make , then , XVim works! :+1:

bgerstle commented 8 years ago

None of the workarounds are doing anything for me, running Xcode 7.3 (from App Store). I'm seeing this whenever I run xcodebuild or in syslog when running Xcode:

4/1/16 12:32:09.393 PM Xcode[63243]: [MT] PluginLoading: Required plug-in compatibility UUID ACA8656B-FEA8-4B6D-8E4A-93F4C95C362C for plug-in at path '~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/XVim.xcplugin' not present in DVTPlugInCompatibilityUUIDs

I'll try adding in Info.plist

bgerstle commented 8 years ago

Tried building from source on develop branch, and it works! Any reason why this hasn't been merged to master?

JugglerShu commented 8 years ago

@bgerstle Your problem doesn't related to the issue reported here nor the difference between master and develop. Did you make master from source? (Please read README.md for how to build XVim. You wouldn't see the error you reported if you obeyed the instruction.)

bgerstle commented 8 years ago

I built from develop. As best I can tell, Alcatraz built from master. I'll try master and see.

On Friday, April 1, 2016, JugglerShu notifications@github.com wrote:

@bgerstle https://github.com/bgerstle Your problem doesn't related to the issue reported here nor the difference between master and develop. Did you make master from source? (Please read README.md for how to build XVim. You wouldn't see the error you reported if you obeyed the instruction.)

— You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub https://github.com/XVimProject/XVim/issues/942#issuecomment-204484066

firstka commented 8 years ago

7.3 not work

tomassliz commented 8 years ago

@davidquon Yes, I tried these steps but without success.

tdugger commented 8 years ago

This seems to be working for me. I did make from develop branch. Copied the build/Release/XVim.xcplugin to the plugins directory, restarted XC and it crashed. I renamed the plugin directory to XVim.ideplugin and this time it worked. Not sure if it was just the second time running it or the dir name was the problem.

baek-jinoo commented 8 years ago

I can also confirm that manual installation (cloning repo + make) works for 7.3.

vinnyoodles commented 8 years ago

Also confirming that manual installation works for 7.3 but very annoying

zevarito commented 8 years ago

Also confirming that manually works with XCode 7.3, Alcatraz fetching wrong version maybe ?

tdugger commented 8 years ago

:( not working anymore.

tdugger commented 8 years ago

Installed ViEmu and it seems to be working. http://www.viemu.com/download-xcode6.html

onmyway133 commented 8 years ago

Manually install using make works for me. Don't know what's wrong with Alcatraz

structAnkit commented 8 years ago

The UUID ACA8656B-FEA8-4B6D-8E4A-93F4C95C362C needs to be added to XVim/Info.plist but this hasn't been merged yet. To make this work on Xcode 7.3 until master branch includes this UUID you have to do the following:

  1. cd into your XVim plugin directory
  2. Add the UUID ACA8656B-FEA8-4B6D-8E4A-93F4C95C362C to XVim/Info.plist and save the file
  3. Run make in the XVim plugin directory
  4. If using Alcatraz, make sure to checkout a different branch (i.e. git checkout -b xcode-73) so that Alcatraz doesn't replace your manually built version with the master branch version which has not been updated to support Xcode 7.3
  5. Restart Xcode
YayC commented 8 years ago

Alcatraz is pulling from the old repo (https://github.com/JugglerShu/XVim). I had XVim working from a manual install, and then it broke when I installed Alcatraz. Have opened a pull request over there.

Fix: Manually clone this repo into Alcatraz's plugin folder (~/Library/Application Support/Alcatraz/Plug-ins/) and install with make. Alcatraz displays XVim as installed from the old repo, but it does not overwrite it.

zinwalin commented 8 years ago

find ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins -name Info.plist -maxdepth 3 | xargs -I{} defaults write {} DVTPlugInCompatibilityUUIDs -array-add defaults read /Applications/Xcode.app/Contents/Info.plist DVTPlugInCompatibilityUUID