Tôi đang trong quá trình tìm hiểu cách tạo plugin Sublime Text 2. Một trong những điều tôi muốn làm là lấy bất kỳ văn bản nào được đánh dấu, kiểm tra xem một trang web có trả lại 200 tại địa chỉ đó không và sau đó đặt một số thông tin vào bảng điều khiển nhanh (và có, tôi biết rằng tôi nên làm url tra cứu trong một chuỗi sao cho nó không chặn giao diện người dùng chính). Hiện nay tôi có:Truy cập Quick Panel trong Plugin Sublime Text 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
Các lỗi tôi nhận được là:
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)
Vấn đề là tôi không biết làm thế nào để khởi tạo lớp WindowCommand một cách chính xác, và tôi dường như không thể tìm thấy bất kỳ tài liệu về nó. Bất kỳ trợ giúp hoặc gợi ý nào ở đây sẽ được đánh giá cao.
Bạn là chính xác. Tôi đã tìm ra điều này trong khoảng 20 phút sau khi tôi đăng tiền thưởng, nhưng tôi đánh giá cao câu trả lời kỹ lưỡng của bạn bất kể. Cảm ơn bạn! (Tôi sẽ trao tiền thưởng ngay khi SO cho phép tôi) –