forked from jaysw/ipython
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathreadline_java.py
More file actions
125 lines (91 loc) · 2.95 KB
/
Copy pathreadline_java.py
File metadata and controls
125 lines (91 loc) · 2.95 KB
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
import sys
from org.gnu.readline import Readline
from org.gnu.readline import ReadlineLibrary
from org.gnu.readline import ReadlineCompleter
class PyCompleter(ReadlineCompleter):
def __init__(self, completer=None):
self.completer = completer
def complete(self, text, state):
"@sig public String complete(java.lang.String text, java.lang.int state)"
result = None
if self.completer != None:
result = self.completer(text, state)
return result
pycompleter = PyCompleter()
begidx = None
endidx = None
DEBUG = False
def setup_readline():
global begidx, endidx
Readline.load(ReadlineLibrary.GnuReadline)
Readline.initReadline("jython")
Readline.setWordBreakCharacters(" \t\n`~!@#$%^&*()-=+[{]}\\|;:'\",<>/?")
Readline.setCompleter(pycompleter)
begidx = 0
endidx = 0
setup_readline()
def unsupported(s):
if DEBUG is True:
print >> sys.stderr, "Unsupported Readline Operation: %s" % s
def parse_and_bind(string):
return Readline.parseAndBind(string)
def get_line_buffer():
return Readline.getLineBuffer()
def insert_text(string):
unsupported('insert_text(%s)' % string)
def read_init_file(filename=None):
Readline.readInitFile(filename)
def read_history_file(filename="~/.history"):
Readline.readHistoryFile(filename)
def write_history_file(filename="~/.history"):
Readline.writeHistoryFile(filename)
def clear_history():
Readline.clearHistory()
def add_history(line):
Readline.addToHistory(line)
def get_history_length():
return Readline.getHistorySize()
def set_history_length(length):
unsupported('set_history_length(%r)' % length)
def get_current_history_length():
return Readline.getHistorySize()
def get_history_item(index):
return Readline.getHistoryLine(index)
def set_completer(function=None):
pycompleter.completer = function
def get_completer():
pycompleter.completer
def get_completion_type():
"""Get the type of completion being attempted."""
unsupported("get_completion_type()")
return 0
def get_begidx():
return begidx
def get_endidx():
return endidx
def set_completer_delims(string):
Readline.setWordBreakCharacters(string)
def get_completer_delims():
return str(Readline.getWordBreakCharacters())
# xxx
def on_completion(text, state):
result = None
completer = get_completer()
if completer != None:
result = completer(text, state)
return result
# xxx
def flex_complete(text, start, end):
global begidx, endidx
begidx = start
endidx = end
# return completion_matches(text, on_completion)
return None
def remove_history_item(pos):
unsupported('remove_history_item(%r)' % pos)
def redisplay():
unsupported('redisplay()')
def set_startup_hook(function=None):
unsupported('set_startup_hook(%s)' % function)
def set_pre_input_hook(function=None):
unsupported('set_pre_init_input_hook(%s)' % function)