3

Textmate の優れた点の 1 つは、次のようにスコープ全体の内容をコマンドにパイプできることです。

テキストメイトのスクリーンショット

meta.class.python次に、または何でも使用するスコープを指定できます。

現在のスコープ全体をプラグインの入力としてパイプする小さなプラグインを作成しようとしています (たとえば、(私がやろうとしていることとは異なりますが、閉じます)、全体をコメントアウトできる関数)すべてを選択せず​​にPythonクラス)

現在の選択を入力として使用するのは非常に簡単です。

import sublime, sublime_plugin
import re

class DoStuffWithSelection(sublime_plugin.TextCommand):
    def run(self, edit):
        for region in self.view.sel():
            if not region.empty():
                changed = region  # Do something to the selection
                self.view.replace(edit, region, changed)  # Replace the selection

Sublime Text プラグイン API を調べて、 のようなことをする方法を探しましたfor region in self.view.scope()が、成功しませんでした。

では、カーソルの下にある現在のスコープの内容をプラグイン関数の入力として使用する方法はありますか? または、さらに良いことに、選択がない場合はスコープ全体を使用する方法ですが、選択がある場合は選択を使用します。

ありがとう!

4

1 に答える 1

2

選択したテキストを取得する場合は、次のコード スニペットがその例です。

if not region.empty():
    selectText = self.view.substr(region)
    ...

カーソルが置かれているテキストを取得する場合は、次のコード スニペットがその例です。

if region.empty():
    lineRegion = self.view.line(region)
    lineText = self.view.substr(lineRegion)
    ...

詳細については、http: //net.tutsplus.com/tutorials/python-tutorials/how-to-create-a-sublime-text-2-plugin/およびhttp://www.sublimetext.com/docsを参照してください。 /api-reference .

于 2012-07-24T03:50:36.470 に答える