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
评论列表
文章目录