SCXcodeMiniMap icon indicating copy to clipboard operation
SCXcodeMiniMap copied to clipboard

SCXodeMiniMap makes Xcode slower

Open Bluelich opened this issue 8 years ago • 3 comments

The plugin list that used by me is below: { Alcatraz ColorSenseRainbow DBSmartPanels DerivedData Exterminator DXXcodeConsoleUnicodePlugin FuzzyAutocomplete HOStringSense JSFormatter Lin MCLog OMQuickHelp Peckham RTImageAssets SCXcodeEditorInset SCXcodeMinimap VVDocumenter-Xcode XAlign } When I remove SCXodeMiniMap, Xcode works well.

The version of my mac is 10.11.3, and my Xcode is version of 7.2(7C68).

Bluelich avatar Mar 16 '16 06:03 Bluelich

I does indeed make Xcode slower, mainly because of the larger amount of text that it now needs to syntax highlight, but, unfortunately, I haven't found any suitable solution to improve the performance and I had to settle on delaying when the text is invalidated. If you have any ideas pull requests are more than welcome.

stefanceriu avatar Mar 22 '16 22:03 stefanceriu

What if we MiniMap didn't do any syntax highlight? That could help a lot, isn't it?

dzenbot avatar Mar 23 '16 07:03 dzenbot

Absolutely. You can give it a try by replacing the the layoutManager's shouldUseTemporaryAttributes delegate method with something along these lines:

- (NSDictionary *)layoutManager:(NSLayoutManager *)layoutManager
   shouldUseTemporaryAttributes:(NSDictionary *)attrs
             forDrawingToScreen:(BOOL)toScreen
               atCharacterIndex:(NSUInteger)charIndex
                 effectiveRange:(NSRangePointer)effectiveRange
{
    SCXcodeMinimapTheme *theme = ([layoutManager isEqualTo:self.textView.layoutManager] ? self.minimapTheme : self.editorTheme);
    return @{NSForegroundColorAttributeName : theme.sourcePlainTextColor};
}

stefanceriu avatar Mar 23 '16 07:03 stefanceriu