kodidevkit.py 文件源码

python
阅读 21 收藏 0 点赞 0 评论 0

项目:KodiDevKit 作者: phil65 项目源码 文件源码
def on_query_completions(self, view, prefix, locations):
        """
        ST API method: gets called when autocompletion triggers
        """
        completions = []
        scope_name = view.scope_name(view.sel()[0].b)
        filename = view.file_name()
        if not filename or not INFOS.addon:
            return []
        folder = filename.split(os.sep)[-2]
        if folder not in INFOS.addon.includes:
            return []
        if "text.xml" in scope_name:
            for dir_, _, files in os.walk(INFOS.addon.media_path):
                for filename in files:
                    rel_dir = os.path.relpath(dir_, INFOS.addon.media_path)
                    rel_file = os.path.join(rel_dir, filename).lstrip("./").lstrip("\\")
                    rel_file = rel_file.replace("\\", "/")
                    completions.append([rel_file, rel_file])
            colors = []
            for node in INFOS.get_colors():
                if node["name"] not in colors:
                    colors.append(node["name"])
                    completions.append(["%s (%s)" % (node["name"], node["content"]), node["name"]])
            for node in chain(INFOS.addon.includes[folder], INFOS.addon.fonts[folder]):
                completions.append([node["name"], node["name"]])
            for node in chain(INFOS.builtins, INFOS.conditions):
                completions.append([node[0], node[0]])
            for item in INFOS.WINDOW_NAMES:
                completions.append([item, item])
            for item in completions:
                for i, match in enumerate(re.findall(r"\([a-z,\]\[]+\)", item[1])):
                    item[1] = item[1].replace(match, "($%i)" % (i + 1))
            return completions
            # return (completions, sublime.INHIBIT_WORD_COMPLETIONS | sublime.INHIBIT_EXPLICIT_COMPLETIONS)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号