-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathurl_alias.py
executable file
·71 lines (54 loc) · 1.99 KB
/
url_alias.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#coding:utf-8
"""
特定のキーワードが入力されたときに URL を開くための拡張
実行例:
rfc822
→ http://www.ietf.org/rfc/rfc822.txt を規定のブラウザで開く
@nitoyon
→ http://twitter.com/nitoyon を規定のブラウザで開く
定義例:
# config.py の configure() 関数に次のように記載します
import url_alias
url_alias.register(window,
{ 'regex': re.compile('^rfc(\d+)$', re.IGNORECASE),
'url': 'http://www.ietf.org/rfc/rfc%param%.txt' },
{ 'regex': re.compile('^@(\w+)$'),
'url': 'http://twitter.com/%param%' },
)
"""
from clnch import *
# --------------------------------------------------------------------
# url alias を有効にします
#
# 引数:
# - window:
# メインウインドウ オブジェクト。
# - pattern1:
# 入力パターン。
# - pattern2:
# :
# :
def register(window, *args):
url_alias = commandline_UrlAlias(window, args)
window.commandline_list.insert(0, url_alias)
# --------------------------------------------------------------------
# "UrlAlias" コマンドライン
class commandline_UrlAlias:
def __init__( self, main_window, patterns ):
self.main_window = main_window
self.patterns = patterns
def onCandidate( self, update_info ):
return []
def onEnter( self, commandline, text, mod ):
for pattern in self.patterns:
m = pattern['regex'].search(text)
if m:
break
else:
return False
# エディットの文字列を変更
command = self.main_window.command_URL(pattern['url'])
clnch_commandline.executeCommand(commandline, command, m.groups(), mod, text, True)
return True
def onStatusString( self, text ):
return None