背景
作为Idea、Android Studio、PyCharm等jetbrains
系列IDE的开发者,每次打开一个工程项目时,一般都使用鼠标点击IDE左上角的Open菜单来才做。本文介绍一种基于Alfred的快捷方式进行打开操作。
效果图
原理
核心脚本逻辑
log("开始查询: %s" % _unicode_2_str(query))
cache_key = 'jet_brains_projects_%s' % ide
all_projects = wf.cached_data(cache_key, get_projects, max_age=60)
# 按文件修改时间排序
all_projects.sort(key=lambda it: it[-1], reverse=True)
if query:
log('根据"%s"进行过滤' % query)
size_before_filter = len(all_projects)
all_projects = wf.filter(query, all_projects, key=lambda it: _str_2_unicode(it[0]))
size_after_filter = len(all_projects)
log("过滤前: %s, 过滤后: %s" % (size_before_filter, size_after_filter))
else:
log("未匹配到关键词, 不需要过滤处理")
for name, path, _ in all_projects[:max_result_size]:
if is_android_studio:
command = '%s %s' % (process, path)
else:
command = 'open -a %s %s' % (process, path)
log('%s: %s' % (name, command))
_add_item(name, path, arg=command, valid=True, icon='icon_%s.png' % ide)
输入:项目名称模糊搜索的关键词;
输出:满足条件的项目名称和路径;
集成Alfred
Workflow图示:
拓展
目前IDE搜索的文件路径是从手动配置的工作目录中搜索的,这里可以结合IDE存储Recent Open Files
的逻辑将搜索排序和范围进行更好的整合。