-
Notifications
You must be signed in to change notification settings - Fork 157
Expand file tree
/
Copy pathlistener.py
More file actions
81 lines (59 loc) · 2.09 KB
/
Copy pathlistener.py
File metadata and controls
81 lines (59 loc) · 2.09 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
import vim
from . import connection
from . import opts
from . import util
class Listener:
@classmethod
def create(cls):
if opts.Options.get('background_listener', int):
return BackgroundListener()
return ForegroundListener()
class ForegroundListener:
def __init__(self):
self.__server = connection.SocketCreator(util.InputStream())
def start(self):
self.__server.start(opts.Options.get('server'),
opts.Options.get('port', int),
opts.Options.get('timeout', int))
def stop(self):
self.__server.clear()
def is_listening(self):
return False
def is_ready(self):
return self.__server.has_socket()
def status(self):
return "inactive"
def create_connection(self):
handler = connection.ConnectionHandler(*self.__server.socket())
self.stop()
return handler
class BackgroundListener:
def __init__(self):
self.__server = connection.SocketServer()
def start(self):
if opts.Options.get("auto_start", int):
vim.command('autocmd Vdebug CursorHold,CursorHoldI,CursorMoved,CursorMovedI,FocusGained,FocusLost * python3 debugger.start_if_ready()')
self.__server.start(opts.Options.get('server'),
opts.Options.get('port', int))
def stop(self):
if opts.Options.get("auto_start", bool):
vim.command('augroup Vdebug')
vim.command('autocmd!')
vim.command('augroup END')
self.__server.stop()
def status(self):
if not self.__server:
return "inactive"
if self.is_ready():
return "ready"
if self.__server.is_alive():
return "listening"
return "inactive"
def is_ready(self):
return self.__server.has_socket()
def is_listening(self):
return not self.is_ready() and self.__server.is_alive()
def create_connection(self):
handler = connection.ConnectionHandler(*self.__server.socket())
self.stop()
return handler