Skip to content

Commit e79f6c8

Browse files
Add CiderCompletionManager
1 parent 17508e1 commit e79f6c8

File tree

2 files changed

+33
-23
lines changed

2 files changed

+33
-23
lines changed

pythonx/async_clj_omni/async_clj_omni/fireplace.py

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import nrepl # NOQA
1+
import nrepl
2+
from async_clj_omni.cider import cider_gather
23

34
class Error(Exception):
45
"""Base class for exceptions in this module."""
@@ -56,3 +57,31 @@ def watch(self, name, q, callback):
5657

5758
def unwatch(self, name):
5859
self.wc.unwatch(name)
60+
61+
class CiderCompletionManager:
62+
def __init__(self, logger, vim):
63+
self.__connmanager = ConnManager(logger)
64+
self.__logger = logger
65+
self.__vim = vim
66+
67+
def gather_candidates(self, complete_str):
68+
self.__logger.debug("Gathering candidates")
69+
70+
try:
71+
client, connection, transport, ns = gather_conn_info(self.__vim)
72+
except Error:
73+
self.__logger.exception("Unable to get connection info")
74+
return []
75+
76+
host = transport.get("host")
77+
port = transport.get("port")
78+
79+
conn_string = "nrepl://{}:{}".format(host, port)
80+
81+
wc = self.__connmanager.get_conn(conn_string)
82+
83+
return cider_gather(self.__logger,
84+
Fireplace_nrepl(wc),
85+
complete_str,
86+
connection.get("session"),
87+
ns)

rplugin/python3/deoplete/sources/async_clj.py

Lines changed: 3 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
sys.path.append(os.path.join(basedir, "vim_nrepl_python_client/"))
66
sys.path.append(os.path.join(basedir, "../../../../pythonx/async_clj_omni"))
77

8-
from async_clj_omni.cider import cider_gather # NOQA
8+
# from async_clj_omni.cider import cider_gather # NOQA
99
from async_clj_omni import fireplace
1010
from .base import Base # NOQA
1111
import deoplete.logger
@@ -18,26 +18,7 @@ def __init__(self, vim):
1818
self.mark = "CLJ"
1919
self.filetypes = ['clojure']
2020
self.rank = 200
21-
self.__connmanager = fireplace.ConnManager(deoplete.logger.getLogger('fireplace_conn_manager'))
21+
self.__cider_completion_manager = fireplace.CiderCompletionManager(deoplete.logger.getLogger('fireplace_cider_completion_manager'), vim)
2222

2323
def gather_candidates(self, context):
24-
self.debug("Gathering candidates")
25-
26-
try:
27-
client, connection, transport, ns = fireplace.gather_conn_info(self.vim)
28-
except fireplace.Error:
29-
self.exception("Unable to get connection info")
30-
return []
31-
32-
host = transport.get("host")
33-
port = transport.get("port")
34-
35-
conn_string = "nrepl://{}:{}".format(host, port)
36-
37-
wc = self.__connmanager.get_conn(conn_string)
38-
39-
return cider_gather(deoplete.logger.getLogger('fireplace_cider_gather'),
40-
fireplace.Fireplace_nrepl(wc),
41-
context["complete_str"],
42-
connection.get("session"),
43-
ns)
24+
return self.__cider_completion_manager.gather_candidates(context["complete_str"])

0 commit comments

Comments
 (0)