def __init__(self, vim, launcher, config_path): def setup_neovim(): """Set up neovim and execute global commands.""" self.vim = vim self.vim_command("highlight_enerror") if not self.vim_eval("exists_enerrorstyle"): self.vim_command("set_enerrorstyle") self.vim_command("set_updatetime") self.vim_command("set_ensime_completion") def setup_logger_and_paths(): """Set up paths and logger.""" osp = os.path self.config_path = osp.abspath(config_path) config_dirname = osp.dirname(self.config_path) self.ensime_cache = osp.join(config_dirname, ".ensime_cache") self.log_dir = self.ensime_cache \ if osp.isdir(self.ensime_cache) else "/tmp/" self.log_file = os.path.join(self.log_dir, "ensime-vim.log") setup_logger_and_paths() setup_neovim() self.log("__init__: in") self.ws = None self.ensime = None self.launcher = launcher self.ensime_server = None self.call_id = 0 self.call_options = {} self.refactor_id = 1 self.refactorings = {} self.receive_callbacks = {} self.matches = [] self.errors = [] self.queue = Queue() self.suggestions = None self.completion_timeout = 10 #seconds self.completion_started = False self.en_format_source_id = None self.enable_fulltype = False self.enable_teardown = True self.connection_attempts = 0 self.tmp_diff_folder = "/tmp/ensime-vim/diffs/" Util.mkdir_p(self.tmp_diff_folder) self.debug_thread_id = None self.running = True Thread(target=self.queue_poll, args=()).start() self.handlers = {} self.register_responses_handlers() self.websocket_exists = module_exists("websocket") if not self.websocket_exists: self.tell_module_missing("websocket-client")
def __init__(self, vim, launcher, config_path): def setup_vim(): """Set up vim and execute global commands.""" self.vim = vim if not int(self.vim_eval("exists_enerrorstyle")): self.vim_command("set_enerrorstyle") self.vim_command("highlight_enerror") self.vim_command("set_updatetime") self.vim_command("set_ensime_completion") def setup_logger_and_paths(): """Set up paths and logger.""" osp = os.path self.config_path = osp.abspath(config_path) config_dirname = osp.dirname(self.config_path) self.ensime_cache = osp.join(config_dirname, ".ensime_cache") self.log_dir = self.ensime_cache \ if osp.isdir(self.ensime_cache) else "/tmp/" self.log_file = os.path.join(self.log_dir, "ensime-vim.log") def fetch_runtime_paths(): """Fetch all the runtime paths of ensime-vim plugin.""" paths = self.vim_eval("runtimepath") tag = "ensime-vim" ps = [p for p in paths.split(',') if tag in p] home = os.environ.get("HOME") if home: ps = map(lambda s: s.replace(home, "~"), ps) return ps setup_logger_and_paths() setup_vim() self.log("__init__: in") self.ws = None self.ensime = None self.launcher = launcher self.ensime_server = None self.call_id = 0 self.call_options = {} self.refactor_id = 1 self.refactorings = {} self.receive_callbacks = {} self.matches = [] self.errors = [] self.queue = Queue() self.suggestions = None self.completion_timeout = 10 # seconds self.completion_started = False self.en_format_source_id = None self.enable_fulltype = False self.toggle_teardown = True self.connection_attempts = 0 self.tmp_diff_folder = "/tmp/ensime-vim/diffs/" Util.mkdir_p(self.tmp_diff_folder) # Set the runtime path here in case we need # to disable the plugin. It needs to be done # beforehand since vim.eval is not threadsafe self.runtime_paths = fetch_runtime_paths() # By default, don't connect to server more than once self.number_try_connection = 1 self.debug_thread_id = None self.running = True Thread(target=self.queue_poll, args=()).start() self.handlers = {} self.register_responses_handlers() self.websocket_exists = module_exists("websocket") if not self.websocket_exists: self.tell_module_missing("websocket-client")
def __init__(self, vim, launcher, config_path): def setup_vim(): """Set up vim and execute global commands.""" self.vim = vim if not int(self.vim_eval("exists_enerrorstyle")): self.vim_command("set_enerrorstyle") self.vim_command("highlight_enerror") self.vim_command("set_updatetime") self.vim_command("set_ensime_completion") self.vim.command( "autocmd FileType package_info nnoremap <buffer> <Space> :call EnPackageDecl()<CR>" ) self.vim.command( "autocmd FileType package_info setlocal splitright") super(EnsimeClient, self).__init__() def setup_logger_and_paths(): """Set up paths and logger.""" osp = os.path self.config_path = osp.abspath(config_path) config_dirname = osp.dirname(self.config_path) self.ensime_cache = osp.join(config_dirname, ".ensime_cache") self.log_dir = self.ensime_cache if not osp.isdir(self.ensime_cache): try: os.mkdir(self.ensime_cache) except OSError: self.log_dir = "/tmp/" self.log_file = os.path.join(self.log_dir, "ensime-vim.log") with open(self.log_file, "w") as f: now = datetime.datetime.now() tm = now.strftime("%Y-%m-%d %H:%M:%S.%f") f.write("{}: {} - {}\n".format(tm, "Initializing project", config_dirname)) def fetch_runtime_paths(): """Fetch all the runtime paths of ensime-vim plugin.""" paths = self.vim_eval("runtimepath") tag = "ensime-vim" ps = [p for p in paths.split(',') if tag in p] home = os.environ.get("HOME") if home: ps = map(lambda s: s.replace(home, "~"), ps) return ps setup_logger_and_paths() setup_vim() self.log("__init__: in") self.ws = None self.ensime = None self.launcher = launcher self.ensime_server = None self.call_id = 0 self.call_options = {} self.refactor_id = 1 self.refactorings = {} self.receive_callbacks = {} self.matches = [] self.errors = [] # Queue for messages received from the ensime server. self.queue = Queue() self.suggestions = None self.completion_timeout = 10 # seconds self.completion_started = False self.en_format_source_id = None self.full_types_enabled = False """Whether fully-qualified types are displayed by inspections or not""" self.toggle_teardown = True self.connection_attempts = 0 self.tmp_diff_folder = "/tmp/ensime-vim/diffs/" Util.mkdir_p(self.tmp_diff_folder) # Set the runtime path here in case we need # to disable the plugin. It needs to be done # beforehand since vim.eval is not threadsafe self.runtime_paths = fetch_runtime_paths() # By default, don't connect to server more than once self.number_try_connection = 1 self.debug_thread_id = None self.running = True thread = Thread(target=self.queue_poll, args=()) thread.daemon = True thread.start() self.handlers = {} self.register_responses_handlers() self.websocket_exists = module_exists("websocket") if not self.websocket_exists: self.tell_module_missing("websocket-client") if not module_exists("sexpdata"): self.tell_module_missing("sexpdata")
def __init__(self, vim, launcher, config_path): def setup_vim(): """Set up vim and execute global commands.""" self.vim = vim if not int(self.vim_eval("exists_enerrorstyle")): self.vim_command("set_enerrorstyle") self.vim_command("highlight_enerror") self.vim_command("set_updatetime") self.vim_command("set_ensime_completion") self.vim.command("autocmd FileType package_info nnoremap <buffer> <Space> :call EnPackageDecl()<CR>") self.vim.command("autocmd FileType package_info setlocal splitright") super(EnsimeClient, self).__init__() def setup_logger_and_paths(): """Set up paths and logger.""" osp = os.path self.config_path = osp.abspath(config_path) config_dirname = osp.dirname(self.config_path) self.ensime_cache = osp.join(config_dirname, ".ensime_cache") self.log_dir = self.ensime_cache if not osp.isdir(self.ensime_cache): try: os.mkdir(self.ensime_cache) except OSError: self.log_dir = "/tmp/" self.log_file = os.path.join(self.log_dir, "ensime-vim.log") with open(self.log_file, "w") as f: now = datetime.datetime.now() tm = now.strftime("%Y-%m-%d %H:%M:%S.%f") f.write("{}: {} - {}\n".format(tm, "Initializing project", config_dirname)) def fetch_runtime_paths(): """Fetch all the runtime paths of ensime-vim plugin.""" paths = self.vim_eval("runtimepath") tag = "ensime-vim" ps = [p for p in paths.split(',') if tag in p] home = os.environ.get("HOME") if home: ps = map(lambda s: s.replace(home, "~"), ps) return ps setup_logger_and_paths() setup_vim() self.log("__init__: in") self.ws = None self.ensime = None self.launcher = launcher self.ensime_server = None self.call_id = 0 self.call_options = {} self.refactor_id = 1 self.refactorings = {} self.receive_callbacks = {} self.matches = [] self.errors = [] # Queue for messages received from the ensime server. self.queue = Queue() self.suggestions = None self.completion_timeout = 10 # seconds self.completion_started = False self.en_format_source_id = None self.full_types_enabled = False """Whether fully-qualified types are displayed by inspections or not""" self.toggle_teardown = True self.connection_attempts = 0 self.tmp_diff_folder = "/tmp/ensime-vim/diffs/" Util.mkdir_p(self.tmp_diff_folder) # Set the runtime path here in case we need # to disable the plugin. It needs to be done # beforehand since vim.eval is not threadsafe self.runtime_paths = fetch_runtime_paths() # By default, don't connect to server more than once self.number_try_connection = 1 self.debug_thread_id = None self.running = True thread = Thread(target=self.queue_poll, args=()) thread.daemon = True thread.start() self.handlers = {} self.register_responses_handlers() self.websocket_exists = module_exists("websocket") if not self.websocket_exists: self.tell_module_missing("websocket-client") if not module_exists("sexpdata"): self.tell_module_missing("sexpdata")