Sublime Forum

BufferScroll

#4

I see the problem. tab switching within projects already preserve code folding and cursor position so I agree that the save is unnecessary in that case.
What’s about saving the data when
(a) “on_close” (already implemented)
(b) something like “on_save”. That takes care of the application close as long as the user saves the file before closing the project. It’s also not optimal because the user might save the file, do some code folding and then close ST2.
© When some project switch event is fired. Does that exist?

0 Likes

#5

I’m afraid there is no event for project switching.
BTW, Sublime should send the on_close event when switching projects and when closing the application.

0 Likes

#6

I made some little tweaks and added support for bookmarks and marks.

There is a little bug reproducible even without this plug-in that the first focused tab on switching projects sometimes don’t want to scroll, it stay on line 2.
I can live with that. : P

Regards

0 Likes

#7

This plugin has the following bug:

When the same file is opened on different columns/rows, looks like there is no way to detect on which column/row/group the file is. On restoration all the diffferent column/row/group of that file will get the same scroll, bookmarks, selections, etc.

Looks like there is a need to know an ID of the position in the editor for a view. such “group+column+row”… any API?

0 Likes

#8

Looks like there is a need to know an ID of the position in the editor for a view. such “group+column+row”

Yes, good fellow, yes!

0 Likes

#9

Very nice find tito, I’ve been looking for something similar. Thanks!

0 Likes

#10

I get a bit of “spam” in the console when I use your plugin (ST 2, v2165 portable):

app ready pre session restore time: 0.277987 Traceback (most recent call last): File ".\sublime_plugin.py", line 211, in on_deactivated callback.__module__, "on_deactivated", EVENT_TIMEOUT) File ".\sublime_plugin.py", line 155, in run_timed_function ret = f() File ".\sublime_plugin.py", line 210, in <lambda> run_timed_function(lambda: callback.on_deactivated(v), File ".\BufferScroll.py", line 33, in on_deactivated File ".\BufferScroll.py", line 77, in save AttributeError: 'View' object has no attribute 'folded_regions' wrote startup cache, added files: 2 orphaned files: 3 total files: 127 cache hits: 125 startup time: 0.362697 (package setup was not run) loaded 941 snippets Traceback (most recent call last): File ".\sublime_plugin.py", line 211, in on_deactivated callback.__module__, "on_deactivated", EVENT_TIMEOUT) File ".\sublime_plugin.py", line 155, in run_timed_function ret = f() File ".\sublime_plugin.py", line 210, in <lambda> run_timed_function(lambda: callback.on_deactivated(v), File ".\BufferScroll.py", line 33, in on_deactivated File ".\BufferScroll.py", line 77, in save AttributeError: 'View' object has no attribute 'folded_regions'

I have several files open but none of them is a duplicate (e.g. via “clone file”) of each other.

Regards,
Highend

0 Likes

#11

Update the plugin and let me know if is not working.

0 Likes

#12

Hi,

I have these lines with v2012.01.18.09.38.14, there isn’t any newer version available.

Regards,
Highend

0 Likes

#13

You say you have version 2165 of portable edition.

Can you please open the console and paste the output of the following:

sublime.version()

It’s crazy because the line your are quoting is for greater versions.
github.com/SublimeText/BufferSc … oll.py#L76

Thanks

0 Likes

#14

Sure:

>>> sublime.version() u'2165'

:smile:

0 Likes

#15

:smiley:

I think the package is outdated. Or I’m not seeing something very obvious.

Can you check if the file
github.com/SublimeText/BufferSc … rScroll.py
is the same to “Packages/BufferScroll/BufferScroll.py”

Regards

0 Likes

#16

Yes, they are identical (checked with Beyond Compare).

Maybe it’s the “u” in front of the ‘2165’ version number, that confuses your version check?

Regards,
Highend

0 Likes

#17

Ok I see the error downloading your version.

sublime.version() returns a string instead of an int, and the check for version fails.

Fixed. Thank you

0 Likes

#18

That’s, IIRC this version checking was working on previous versions, tested with SideBarEnhancements.

0 Likes

#19

Confirmed, it’s fixed. Thank you!

Is it normal that it reloads it’s settings file (./Data/Packages/User/BufferScroll.sublime-settings) on each tab change / clicking on a file in the sidebar (just for the preview, not via doubleclick to load one)?

Regards,
Highend

0 Likes

#20

Yes, because the application is not sending or do not want send some “events” such:

1 - Closing the application
2 - Closing a project
3 - Opening a project

Sorry for the message I have no control over that.

Regards,

0 Likes

#21

Is not reloading, is saving. The message is somewhat misleading. :bulb:

0 Likes

#22

A little bit, yeah but anyway, I have to live with that. Thanks again for fixing this little “bug” so fast and for your kind responses!

Regards,
Highend

0 Likes

#23

The plugin doesn’t work correctly in the following scenarios.

Scenario 1:

  1. Open some file
  2. Mess with it, make a syntax error
  3. Scroll a few screens away
  4. Close the file, so that BufferScroll remembers the position from #3
  5. Compile the project
  6. On the build screen hit F4
  7. The file opened during #1 will be displayed and correctly positioned at the syntax error, but then BufferScroll will restore the position #3

Scenario 2:

  1. Open a file
  2. Scroll somewhere
  3. Modify the file in an external application
  4. Sublime reloads the file in the background
  5. After switching to Sublime I see a view positioned at the first line of the file
0 Likes