[英]Open sublime-project file programmatically
我目前正在为Sublime Text 3编写一个插件,旨在为用户提供更灵活的会话管理。
因为看起来API没有提供打开.sublime-project
文件的方法。 我显然能像往常一样打开文件 - 使用window.open_file
- 但不要告诉Sublime打开一个特定的项目文件。
它只会在一个新选项卡中打开它,这不是我所希望的。
我可以使用window.project_data
和window.set_project_data
访问和设置project_data ,但是有一个window.project_file_name
方法,它没有对应的。
这是有问题的,因为project_data通常包含相对路径,需要相对于.sublime-project
文件位置进行解释。 如果我只是将找到的数据转储到新窗口( set_project_data
),则所有相对路径将被解释为相对于root (至少在我的Ubuntu系统上)。
我可以自己处理相对路径并相应地修改project_data
但这很麻烦。
有没有未记载的方法或我遗漏的东西?
编辑: 有问题的插件。
尝试打开带有后缀':1'的文件 - 意思是'行号#1':这对我有用:
$ subl projectname.sublime-project:1
在一个名为ProjectManager的Sublime插件中找到了一个方法。 你会在这个文件中找到代码......
https://github.com/randy3k/ProjectManager/blob/master/pm.py
# Code lifted from https://github.com/randy3k/ProjectManager/blob/master/pm.py
def subl(args=[]):
# learnt from SideBarEnhancements
executable_path = sublime.executable_path()
if sublime.platform() == 'linux':
subprocess.Popen([executable_path] + [args])
if sublime.platform() == 'osx':
app_path = executable_path[:executable_path.rfind(".app/") + 5]
executable_path = app_path + "Contents/SharedSupport/bin/subl"
subprocess.Popen([executable_path] + args)
if sublime.platform() == "windows":
def fix_focus():
window = sublime.active_window()
view = window.active_view()
window.run_command('focus_neighboring_group')
window.focus_view(view)
sublime.set_timeout(fix_focus, 300)
subl(project_file) # The something.sublime-project file.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.