Okay this behaviour doesn’t seem to happen all the time (I was in a CSON fileI swear it didn’t happen with), but it’s reproducibly happening for me right now with some standard PHP. I think it’s because of the fact that I use tabs for indentation, and so two cursors in the same visual column could actually be in different physical columns. I think the Editor class has some kind of methods for coping with this (though reading the difference between screen and buffer position it was more for dealing with wrapped and folded lines than tabs).
Here’s a demo gif:
As you can see, the
some_key line is indented with one tab, so the
Selection:: addSelectionAbove() and
Selection:: addSelectionBelow() methods seem to get confused about the visual up/down compared to the physic up/down.
(Side note: is this the best place for an Atom core bug report like this or is there a bug tracker somewhere?)