サブライムテキスト2プラグインを作成する方法を学習中です。私がしたいことの1つは、強調表示されたテキストを取り、Webサイトがそのアドレスに200を返すかどうかを確認して、クイックパネルに情報を入力することです(はい、私はURLメインUIをブロックしないようにスレッドでルックアップする)。現在、私は持っている:サブライムテキスト2プラグインでクイックパネルにアクセスする
import sublime
import sublime_plugin
import urllib2
class CheckUrlPanel(sublime_plugin.WindowCommand):
def quick_panel(self, messages, flags):
self.window.show_quick_panel(messages, None, flags)
class CheckUrlsCommand(sublime_plugin.TextCommand):
def run(self, edit):
urls = []
selections = self.view.sel()
for selection in selections:
urls.append(self.view.substr(selection))
messages = self.validate_urls(urls)
panel = CheckUrlPanel()
panel.quick_panel(messages, sublime.MONOSPACE_FONT)
def validate_urls(self, urls):
messages = []
for url in urls:
try:
request = urllib2.Request(url, headers={ "User-Agent" : "Sublime URL Checker" })
response = urllib2.urlopen(request, timeout=3)
message = '"%s" is a valid URL.' % url
except Exception as (e):
message = '"%s" is an invalid URL.' % url
messages.append(message)
return messages
私が手にエラーがある:
Traceback (most recent call last):
File "./sublime_plugin.py", line 362, in run_
File "./CheckUrls.py", line 19, in run
panel = CheckUrlPanel()
TypeError: __init__() takes exactly 2 arguments (1 given)
問題は、私が正しくWindowCommandクラスを初期化する方法がわからない、と私はいずれかを見つけるように見えることができないということですそれに関するドキュメンテーション。ここで助けやヒントがあれば幸いです。
あなたが正しいです:
はここで完全なソースです。私は賞金を出した後、約20分後にこれを理解しましたが、あなたの徹底的な答えには無関係に感謝します。ありがとうございました! (そうすればすぐに賞金が授与されます) –