bracer.py 文件源码

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

项目:bracer 作者: deikatsuo 项目源码 文件源码
def search(self, iterc, mode):
        project_dir = Bracer.get_tmp_dir()
        temp_file = tempfile.NamedTemporaryFile(dir=project_dir)

        buff = iterc.get_buffer()

        begin, end = buff.get_bounds()
        doc_text = buff.get_text(begin, end, True)

        temp_file.write(doc_text.encode('utf-8'))
        temp_file.seek(0)

        line = iterc.get_line() + 1
        column = iterc.get_line_offset()

        result = None
        try:
            launcher = Ide.SubprocessLauncher.new(Gio.SubprocessFlags.STDOUT_PIPE)
            launcher.push_argv(self.get_racer_path())
            launcher.push_argv(mode)
            launcher.push_argv(str(line))
            launcher.push_argv(str(column))
            launcher.push_argv(temp_file.name)
            launcher.set_run_on_host(True)
            sub_process = launcher.spawn()
            success, stdout, stderr = sub_process.communicate_utf8(None, None)

            if stdout:
                result = stdout

        except GLib.Error as e:
            pass

        temp_file.close()
        return result
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号