Sublime Text has a bunch of useful API, However, given an opened file, there is no explicit way to open the folder that contains this file as a project, especially when a *.sublime-project inside that folder. That's why I develop this small plug-in. Basically, this plug-in does two things:
-
Open the folder that contains the openned file as a project. If there is a sublime-project file in this folder, load it (This may change the interpreter, syntax theme, etc.)
-
provide an API for futher developement:
window.run_command("open_folder_as_project", {"folder": folder})
It is a bit tricky to implement this API. First, Sublime only has three project-related API:
- sublime.window.project_file_name()
- sublime.window.project_data()
- sublime.window.set_project_data()
Admittedly, if you have already opened a project file, the methods API are enough to retrive the project settings, but no method can directly open a sublime-project file, nor open a folder as a project.
Therefore, I designed a workaround:
- Search the folder for *.sublime-project file
- If exist, load this file. Otherwise create a temporary project configuration.
- put folder's path in project settings, temporarily change all relative paths to absolute paths to correctly show relevant folders in side bar.
- update project data.
-
"open_current_folder_as_project": Add the folder that contains current file to the sidebar.
-
"remove_folder_from_project": Remove the folder that contains current file from sidebar.
-
You can define your own keymaps, the default keymap is:
[
{ "keys": ["ctrl+shift+h"], "command": "open_current_folder_as_project"},
{ "keys": ["ctrl+shift+l"], "command": "remove_folder_from_project"}
]