2016-08-24 48 views
1

構建系統我對Postgres的編譯系統:於選擇的文本

{ 
    "cmd": ["psql", "-U", "postgres", "-d", "test", "-o", "c:/app/sql/result.txt", "-f", "$file"] 
} 

它正常工作,執行當前的文件,並將結果以文件c:/app/sql/result.txt

我想修改它以自動將當前選擇保存到文件並在該文件上運行psql。它可以在構建系統中完成嗎?

+3

不,它不能。您必須手動執行此操作,或者編寫一個Sublime插件來執行此操作,然後調用構建系統。您可能會發現[API參考](http://www.sublimetext.com/docs/3/api_reference.html)有用。 – MattDMo

+0

@MattDMo - 謝謝,我要熟悉ST插件。 – klin

回答

2

由於我的學習已經結出碩果,讓我回答我自己的問題。簡單的插件將選定的文本保存在文件中並調用構建系統:

import sublime, sublime_plugin 

class ExecuteSelectedSqlCommand(sublime_plugin.TextCommand): 
    def run(self, edit): 
     for region in self.view.sel(): 
      if not region.empty(): 
       with open('/a/temporary/file', 'w') as f: 
        f.write(self.view.substr(region)) 
       self.view.window().run_command('build') 
       break