Sublime Text 2 プラグインの作成方法を学習中です。私がやりたいことの 1 つは、強調表示されたテキストを取得し、そのアドレスで Web サイトが 200 を返すかどうかを確認し、クイック パネルにいくつかの情報を配置することです (はい、URL を実行する必要があることはわかっています)。メイン UI をブロックしないようにスレッドでルックアップします)。現在私は持っています:
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 クラスを正しく初期化する方法がわからず、それに関するドキュメントが見つからないことです。ここでの助けやヒントは大歓迎です。