XVimProject / XVim

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

Xcode 5-DP5 #421

Open plattdl opened 11 years ago

plattdl commented 11 years ago

Whenever Assistant Editor is enabled Xcode Crashes with this error using Master:

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

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

Application Specific Information: ProductBuildVersion: 5A11365x ASSERTION FAILURE in /SourceCache/DVTFoundation/DVTFoundation-3511.2/Framework/Classes/Utilities/DVTFoundationUtilities_MRR.m:282 Details: An instance 0x7ff4b76926e0 of class DVTSourceTextScrollView was deallocated while key value observers were still registered with it. Observation info was leaked, and may even become mistakenly attached to some other object. Set a breakpoint on NSKVODeallocateBreak to stop here in the debugger. Here's the current observation info: <NSKeyValueObservationInfo 0x7ff4b7698440> ( <NSKeyValueObservance 0x7ff4b7698390: Observer: 0x7ff4b7694100, Key path: hasHorizontalScroller, Options: <New: YES, Old: NO, Prior: NO> Context: 0x0, Property: 0x7ff4b7698470> ) Function: __DVTSetupKVODeallocAssertions_block_invoke_371 Thread: <NSThread: 0x7ff4b0414bf0>{name = (null), num = 1} Hints: None

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

JugglerShu commented 11 years ago

Thanks for reporting. Unfortunately I do not have enough time to see Xcode5 related thing right now. But I'll see it after I release the next version of XVim.

devinfoley commented 11 years ago

This is a big issue for me as well. I'm unable to use XVim while scrambling to get my apps ready for iOS 7. I've resorted to using vim on the command line.

kolywater commented 11 years ago

TEMPORARY HACK FIX FOR NOW =)

in DVTSourceTextViewHook.m: line 258:

just comment out the lines that hide the scroll bars and you should be good to go.

- (void)viewDidMoveToSuperview {
    @try{
        DVTSourceTextView *base = (DVTSourceTextView*)self;
        [base viewDidMoveToSuperview_];

 /***** THESE OBSERVERS DON'T GET REMOVED ON DEALLOC, SO COMMENT THEM OUT AS A WORKAROUND ***
        // Hide scroll bars according to options
        XVimOptions *options = [[XVim instance] options];
        NSString *guioptions = options.guioptions;
        NSScrollView * scrollView = [base enclosingScrollView];
        [scrollView setPostsBoundsChangedNotifications:YES];
        if ([guioptions rangeOfString:@"r"].location == NSNotFound) {
            [scrollView addObserver:self
                         forKeyPath:@"hasVerticalScroller"
                            options:NSKeyValueObservingOptionNew
                            context:nil];
            [scrollView setHasVerticalScroller:NO];
        }
        if ([guioptions rangeOfString:@"b"].location == NSNotFound) {
            [scrollView addObserver:self
                         forKeyPath:@"hasHorizontalScroller"
                            options:NSKeyValueObservingOptionNew
                            context:nil];
            [scrollView setHasHorizontalScroller:NO];
        }
*/
    }@catch (NSException* exception) {
        ERROR_LOG(@"Exception %@: %@", [exception name], [exception reason]);
        [Logger logStackTrace:exception];
    }
}
JugglerShu commented 11 years ago

Do you still get this crashes?? Can you try the latest release?

JugglerShu commented 11 years ago

Ah, sorry it may lead a crash. I misunderstood your code. I'll fix it soon. Thanks