Minimap - Testers needed


#1

Hello there,

We are currently putting the finishing touches to the next version of the minimap, with greatly improved performances (thanks to @jrouviere and its canvas-based implementation).
There’s also a new decoration API that mimic the editor’s one, and we will need some testers to make sure we haven’t forgotten anything in the process.
However this version won’t be compatible with version of Atom <= v0.124.0 as we have to follow the evolutions of Atom’s own API.

How to install the latest minimap

Clone the minimap repo in your atom packages directory and switch to the canvas_rendering branch. Don’t forget to run apm install in the repo to install its dependencies.

What about the plugins

The current master branch of all the plugins I released so far have been updated to support the new decoration API. I haven’t experienced any particular issues, but this is why we need more testers.

The process to install the current plugins version is the same as for the minimap, except you doesn’t need to switch branches.

What are we looking for

Mostly bugs, but also we want to confirm the performance boost on a maximum of configuration.

Known issues

There’s still some stretching on the canvas when resizing the pane mostly due to the same issue than:

That’s all folks!


#2

Nice. I tried out minimap a while back and disabled it because of the performance impact.

I tried to install this, but it wont load. I get the following error:

Uncaught TypeError: Object #<Pane> has no method 'observeActiveItem' minimap-view.coffee:64
module.exports.MinimapView.initialize minimap-view.coffee:64
View /opt/atom/resources/app/node_modules/space-pen/lib/space-pen.js:135
MinimapView minimap-view.coffee:41
(anonymous function) view-management.coffee:69
module.exports.WorkspaceView.eachEditorView /opt/atom/resources/app/src/workspace-view.js:478
module.exports.ViewManagement.createViews view-management.coffee:63
Minimap.toggle minimap.coffee:147
Minimap.toggleNoDebug minimap.coffee:130
(anonymous function) minimap.coffee:105
jQuery.event.dispatch /opt/atom/resources/app/node_modules/space-pen/vendor/jquery.js:4676
elemData.handle /opt/atom/resources/app/node_modules/space-pen/vendor/jquery.js:4360
jQuery.event.trigger /opt/atom/resources/app/node_modules/space-pen/vendor/jquery.js:4594
(anonymous function) /opt/atom/resources/app/node_modules/space-pen/vendor/jquery.js:5119
jQuery.extend.each /opt/atom/resources/app/node_modules/space-pen/vendor/jquery.js:590
jQuery.fn.jQuery.each /opt/atom/resources/app/node_modules/space-pen/vendor/jquery.js:237
jQuery.fn.extend.trigger /opt/atom/resources/app/node_modules/space-pen/vendor/jquery.js:5118
module.exports.CommandPaletteView.confirmed /opt/atom/resources/app/node_modules/command-palette/lib/command-palette-view.js:110
module.exports.SelectListView.confirmSelection /opt/atom/resources/app/src/select-list-view.js:269
(anonymous function) /opt/atom/resources/app/src/select-list-view.js:108
jQuery.event.dispatch /opt/atom/resources/app/node_modules/space-pen/vendor/jquery.js:4676
elemData.handle /opt/atom/resources/app/node_modules/space-pen/vendor/jquery.js:4361
module.exports.KeymapManager.dispatchCommandEvent /opt/atom/resources/app/node_modules/atom-keymap/lib/keymap-manager.js:395
module.exports.KeymapManager.handleKeyboardEvent /opt/atom/resources/app/node_modules/atom-keymap/lib/keymap-manager.js:176
(anonymous function) /opt/atom/resources/app/src/window-event-handler.js:90
jQuery.event.dispatch /opt/atom/resources/app/node_modules/space-pen/vendor/jquery.js:4676
elemData.handle /opt/atom/resources/app/node_modules/space-pen/vendor/jquery.js:4361

Running Atom: 0.116.0-262ba6b
under Ubuntu Saucy


#3

I should have mentioned that this version will only be compatible with atom version > 0.124 since a lot of Atom’s API has changed (hence the error you encountered).

Is there anything that prevent you to update the atom version (except that you’ll probably have to build it)?


#4

Just installed on 0.125.0 and it’s working really well. Much faster than before!

Only found one issue so far: the minimap is positioned below the tab bar, but it happens before user styles get applied. My styles alter the height of the tab bar leaving a gap between it and the minimap.

Is there a reason why minimap doesn’t use atom.workspaceView.appendToRight instead?


#5

Yes actually there is one, minimaps are added for each pane and not just once for the workspace.


#6

Ah, good point. Maybe Atom needs an API to attach panels to Editors as well.


#7

That would be great, if this API could use a flex box so that we doesn’t have to care about positioning the minimap it would be even better.


#8

I figured it was something like that. I’m actually using the launchpad version since I didn’t want to bother to build it all by myself. My Linux computer is on a corporate network with proxies and firewalls making it tricky.

I’m on my mac now with 0.124.0 and it seems to work well! I’ll play around a bit an submit issues if I find anything amiss. Thanks for your efforts on this!


#9

Tested it running Windows 8.1 surface pro 2 (atom version 0.125), performance appears much better (roughly 50%), including for larger text files (up to 3000 lines). I also tested using the auto toggle feature in settings.

As you mentioned, it still has the font resize issue where it goes out of whack.

No issues found so far (including checking dev console).

Will use it for the next few days and let you know if I find anything.


#10

I have just upgraded to atom version 0.126.0 (which includes Chrome37) and now minimap is not displaying anything, just a blank column (using canvas_rendering branch).

I have also reinstalled the package and it is still not displaying anything.

There are also no errors displayed in the developer console.

Update:
The issue appears to only occur with auto toggle. If I turn off auto-toggle and toggle on manually it works, or if I toggle it twice to turn it off and on again it works. Just when auto-toggle is on and I open a file.

Also, if I toggle it on and open a new file, the issue occurs.

Update 2:
I also tested with the package deployed to atom.io and the issue doesn’t occur, autotoggle works (although I almost forgot how much slower it was! :smile:)


#11

Ok, it seems they agressively deprecated most events between 0.125 and 0.126.


#12

I just pushed a version that fixes the most important deprecations, at least the minimap is shown again.


#13

@abe, I’ll give it a try :+1:

Same here


#14

I updated to head of the canvas_rendering branch. Now I’m getting this:

Uncaught TypeError: undefined is not a function minimap-editor-view.coffee:79
module.exports.MinimapEditorView.setEditorView minimap-editor-view.coffee:79
MinimapView minimap-view.coffee:58
(anonymous function) view-management.coffee:69
module.exports.WorkspaceView.eachEditorView /Applications/Atom.app/Contents/Resources/app/src/workspace-view.js:498
module.exports.ViewManagement.createViews view-management.coffee:63
Minimap.toggle minimap.coffee:147
Minimap.toggleNoDebug minimap.coffee:130
(anonymous function) minimap.coffee:105
jQuery.event.dispatch /Applications/Atom.app/Contents/Resources/app/node_modules/space-pen/vendor/jquery.js:4676
elemData.handle /Applications/Atom.app/Contents/Resources/app/node_modules/space-pen/vendor/jquery.js:4360
module.exports.KeymapManager.dispatchCommandEvent /Applications/Atom.app/Contents/Resources/app/node_modules/atom-keymap/lib/keymap-manager.js:399
module.exports.KeymapManager.handleKeyboardEvent /Applications/Atom.app/Contents/Resources/app/node_modules/atom-keymap/lib/keymap-manager.js:180
module.exports.WindowEventHandler.onKeydown /Applications/Atom.app/Contents/Resources/app/src/window-event-handler.js:146

Aside from that, I noticed a minor inconsistency. I have minimap, and minimap-highlight-selected installed. If I click the cogwheel and de-select the highlight selected plugin by clicking on it. Next I click anywhere to remove the cogwheel menu. Then I click the cogwheel menu again, and there’s a green checkmark indicating that it’s enabled (?) which it is not. If I click it, the green check mark will remain, and the plugin gets activated.


#15

Thanks @abe. I have tested it out (from commit c5bf1e8) and it now shows for auto toggle and open tab, but there is still a slight flicker as the tab is opened.


#16

@noseglid: What is your version of atom? It may break if your version is <= 0.125
@russlescai: Can you create a gif that capture this flicker?


#17

@noseglid: I think I’ve found what is the issue here. The previous module for event handling, emissary, was updated recently to avoid name collisions between the old subcsriptions array that was created by the subscriber mixin and the subscriptions variable holding the CompositeDisposable defined by event-kit (the new event module).

I think the emissary package was not updated to the right version. You should have version 1.3.3 installed, if not you should update it.

I’ll see to remove the depency to emissary asap.


#18

@abe Hmm I think you’re probably right. I didn’t get it to work, so I removed it all (along with the plugins) and cloned it again. Now it works as it should. Thanks.


#19

Trying again at home (but same PC) and I can’t replicate the flicker (now using 127.0), trying various different files (file types and sizes), could be something external to the app.
Long files take a second for the minimap to show, but it doesn’t appear to flicker for me any more.

Also, going back to previous version certainly reminded me how much faster this version is. :smile: Thanks!


#20

Yep, actually the first render is only done when a file have been fully tokenized, which may happen a few seconds after opening a large file. I’ll try to put back the previous render asap and update on tokenization behavior if needed.