braver/SideBarTools

Using 'Delete Folder' from side bar context menu corrupts .sublime-project files

saneef opened this issue · 2 comments

saneef commented

The problem is similar to #41. But for me only occurs when SideBarTools package is installed.

When a project is opened in Sublime Text (*.sublime-project), and if I delete any of the sub-folders (not the top most folder) using “Delete Folder” context menu, the folder path from the project is removed.

webby.sublime-project before deleting a folder

{
	"folders": [
		{
			"path": "~/workspace/webby"
		}
	]
}

webby.sublime-project before deleting a folder

{
	"folders": [
	],
}

Here are the log entries when deleting a folder.

command: delete_folder {"dirs": ["/Users/saneef/workspace/webby/lib/webby_web/controllers/website_html"], "prompt": true}
command: remove_folder {"dirs": ["~/workspace/webby"]}
command: lsp_hover {"point": 124}
reloading /Users/saneef/workspace/sublime-projects/webby.sublime-project
saneef commented

Is there any possibility for RemoveFolderListener to be involved?

braver commented

Could very well be... the intent of RemoveFolderListener is to clean up directories that no longer exist from the project file. So it's not deleting the specifically deleted directory, it will clean up everything that doesn't exist... which is maybe a bit naive, but it should be ok.

Except, that it does not take expansion of ~ into account:

~ $ python3
Python 3.9.6 (default, Feb  3 2024, 15:58:27) 
[Clang 15.0.0 (clang-1500.3.9.4)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.path.exists('~/code')
False
>>> os.path.exists(os.path.expanduser('~/code'))
True
>>> 

So that seems to be our bug 🤔