2017-08-31 14 views
2

私は多くのJavaScriptプロジェクトを行っています。私はPHPStormの素晴らしい機能が欠けています。今私はそれほどPythonを理解していません。あなたが私を助けることを願っています。カスタム 'console.log'プラグインサブライムテキスト3

'test'.log => console.log('test'); 
test.log => console.log(test); 

だから、単一tabtrigger .log

と私は.log前に何かを取得したい:

は、これは私が欲しいものです。そして私はそれを変えるでしょう。これどうやってするの?

答えて

3

あなただけ.log前にテキストを取得し、ビューでそれを置き換えるためにプラグインを作成することができます。

import re 

import sublime 
import sublime_plugin 


class PostSnippetLogCommand(sublime_plugin.TextCommand): 
    def run(self, edit): 
     view = self.view 
     for sel in view.sel(): 
      pos = sel.b 
      text_before = view.substr(sublime.Region(view.line(pos).a, pos)) 

      # match the text before in reversed order 
      m = re.match(r"gol\.(\S*)", text_before[::-1]) 
      if not m: 
       continue 
      # retrieve the text before .log and reestablish the correct order 
      text_content = m.group(1)[::-1] 
      # create the replacements text and region 
      replace_text = "console.log({});".format(text_content) 
      replace_reg = sublime.Region(pos - len(m.group(0)), pos) 
      # replace the text 
      view.replace(edit, replace_reg, replace_text) 

その後それはjavascriptのドキュメント内.logが付いている場合は、コマンドを起動するために、このキーバインドを追加します。

{ 
    "keys": ["tab"], 
    "command": "post_snippet_log", 
    "context": 
    [ 
     { "key": "selector", "operand": "source.js" }, 
     { "key": "preceding_text", "operator": "regex_contains", "operand": "\\.log$" }, 
    ], 
},