def __init__(self, settings): """Prepare to call daemon. :type settings: dict """ python_virtualenv = settings.get('python_virtualenv') python_interpreter = settings.get('python_interpreter') logger.debug('Jedi Environment: {0}'.format( (python_virtualenv, python_interpreter))) if python_virtualenv: self.env = environment.create_environment(python_virtualenv, safe=False) elif python_interpreter: self.env = environment.create_environment(python_interpreter, safe=False) else: self.env = jedi.get_default_environment() self.sys_path = self.env.get_sys_path() # prepare the extra packages if any extra_packages = settings.get('extra_packages') if extra_packages: self.sys_path = extra_packages + self.sys_path # how to autocomplete arguments self.complete_funcargs = settings.get('complete_funcargs')
def __init__(self, settings): """Prepare to call daemon. :type settings: dict """ python_virtualenv = settings.get('python_virtualenv') python_interpreter = settings.get('python_interpreter') logger.debug('Jedi Environment: {0}'.format( (python_virtualenv, python_interpreter)) ) if python_virtualenv: self.env = environment.create_environment(python_virtualenv, safe=False) elif python_interpreter: self.env = environment.Environment( environment._get_python_prefix(python_interpreter), python_interpreter ) else: self.env = jedi.get_default_environment() self.sys_path = self.env.get_sys_path() # prepare the extra packages if any extra_packages = settings.get('extra_packages') if extra_packages: self.sys_path = extra_packages + self.sys_path # how to autocomplete arguments self.complete_funcargs = settings.get('complete_funcargs')
def __init__(self, view): self.window_id = view.window().id() settings = get_settings(view) # infer `python_interpreter` and `python_virtualenv` python_interpreter = settings.get('python_interpreter') python_virtualenv = settings.get('python_virtualenv') if python_interpreter and not python_virtualenv: python_virtualenv = up(up(python_interpreter)) if python_virtualenv and not python_interpreter: python_interpreter = join(python_virtualenv, 'bin', 'python') if python_virtualenv and python_interpreter: self.env = Environment(python_virtualenv, python_interpreter) else: self.env = jedi.get_default_environment() # prepare the extra packages if any extra_packages = settings.get('extra_packages') if extra_packages: self.sys_path = self.env.get_sys_path() + extra_packages else: self.sys_path = None # how to autocomplete arguments self.complete_funcargs = settings.get('complete_funcargs')
def bf_initialize( self, params: types.InitializeParams) -> types.InitializeResult: result = super().bf_initialize(params) global jediEnvironment global jediProject global completionFunction global documentSymbolFunction global hoverMarkup global hoverFunction if params.initialization_options: venv = params.initialization_options.get('venv', None) else: venv = None if venv: jediEnvironment = create_environment(venv, safe=False) else: jediEnvironment = get_default_environment() jediProject = get_default_project(getattr(params, 'rootPath', None)) logging.info(f'Jedi environment python: {jediEnvironment.executable}') logging.info('Jedi environment sys_path:') for p in jediEnvironment.get_sys_path(): logging.info(f' {p}') logging.info(f'Jedi project path: {jediProject._path}') def get_attr(o, *attrs): try: for attr in attrs: o = getattr(o, attr) return o except AttributeError: return None caps = getattr(params.capabilities, 'text_document', None) if get_attr(caps, 'completion', 'completion_item', 'snippet_support'): completionFunction = _completions_snippets else: completionFunction = _completions if get_attr(caps, 'document_symbol', 'hierarchical_document_symbol_support'): documentSymbolFunction = _document_symbol_hierarchy else: documentSymbolFunction = _document_symbol_plain hover = get_attr(caps, 'hover', 'content_format') if hover: hoverMarkup = hover[0] if hoverMarkup == types.MarkupKind.Markdown: hoverFunction = _docstring_markdown else: hoverFunction = _docstring # pygls does not currently support serverInfo of LSP v3.15 result.server_info = types.ServerInfo( name='anakinls', version=get_version(), ) return result
def bf_initialize( self, params: types.InitializeParams) -> types.InitializeResult: result = super().bf_initialize(params) global jediEnvironment global jediProject global completionFunction global documentSymbolFunction venv = getattr(params.initializationOptions, 'venv', None) if venv: jediEnvironment = create_environment(venv, False) else: jediEnvironment = get_default_environment() jediProject = get_default_project(getattr(params, 'rootPath', None)) logging.info(f'Jedi environment python: {jediEnvironment.executable}') logging.info('Jedi environment sys_path:') for p in jediEnvironment.get_sys_path(): logging.info(f' {p}') logging.info(f'Jedi project path: {jediProject._path}') def get_attr(o, *attrs): try: for attr in attrs: o = getattr(o, attr) return o except AttributeError: return None caps = getattr(params.capabilities, 'textDocument', None) if get_attr(caps, 'completion', 'completionItem', 'snippetSupport'): completionFunction = _completions_snippets else: completionFunction = _completions if get_attr(caps, 'documentSymbol', 'hierarchicalDocumentSymbolSupport'): documentSymbolFunction = _document_symbol_hierarchy else: documentSymbolFunction = _document_symbol_plain result.capabilities.textDocumentSync = types.TextDocumentSyncOptions( open_close=True, change=types.TextDocumentSyncKind.INCREMENTAL, save=types.SaveOptions()) result.capabilities.codeActionProvider = types.CodeActionOptions([ types.CodeActionKind.RefactorInline, types.CodeActionKind.RefactorExtract ]) # pygls does not currently support serverInfo of LSP v3.15 result.serverInfo = { 'name': 'anakinls', 'version': get_version(), } return result
def __init__(self, vim): Ncm2Source.__init__(self, vim) env = vim.vars['ncm2_jedi#environment'] if not env: self._env = jedi.get_default_environment() else: self._env = jedi.create_environment(env) rc_settings = vim.vars['ncm2_jedi#settings'] for name in rc_settings: setattr(settings, name, rc_settings[name])
def __init__(self, vim): Ncm2Source.__init__(self, vim) env = vim.vars['ncm2_jedi#environment'] if not env: osenv = os.environ if 'VIRTUAL_ENV' not in osenv and 'CONDA_PREFIX' in osenv: # if conda is active self._env = jedi.create_environment(osenv['CONDA_PREFIX']) else: # get_default_environment handles VIRTUAL_ENV self._env = jedi.get_default_environment() else: self._env = jedi.create_environment(env) rc_settings = vim.vars['ncm2_jedi#settings'] for name in rc_settings: setattr(settings, name, rc_settings[name])
def _EnvironmentForInterpreterPath( self, interpreter_path ): if interpreter_path: resolved_interpreter_path = FindExecutable( ExpandVariablesInPath( interpreter_path ) ) if not resolved_interpreter_path: raise RuntimeError( 'Cannot find Python interpreter path {}.'.format( interpreter_path ) ) interpreter_path = os.path.normpath( resolved_interpreter_path ) try: return self._environment_for_interpreter_path[ interpreter_path ] except KeyError: pass # Assume paths specified by the user are safe. environment = ( jedi.get_default_environment() if not interpreter_path else jedi.create_environment( interpreter_path, safe = False ) ) self._environment_for_interpreter_path[ interpreter_path ] = environment return environment
def __init__(self, view, settings): """Prepare to call daemon. :type settings: dict Parameters ---------- settings : TYPE Description """ view_context = utils.get_view_context(view) python_virtualenv = settings.get("python_virtualenv").get( sublime.platform(), "") python_interpreter = settings.get("python_interpreter").get( sublime.platform(), "") if python_virtualenv: logger.debug("Jedi Environment: {0}".format(python_virtualenv)) self.env = environment.create_environment( utils.substitute_variables(view_context, python_virtualenv), safe=False) elif python_interpreter: logger.debug("Jedi Environment: {0}".format(python_interpreter)) self.env = environment.create_environment( utils.substitute_variables(view_context, python_interpreter), safe=False) else: self.env = jedi.get_default_environment() self.sys_path = self.env.get_sys_path() # prepare the extra packages if any extra_packages = settings.get("python_package_paths").get( sublime.platform(), []) if extra_packages: logger.debug("Jedi Extra Packages: {0}".format(extra_packages)) self.sys_path = utils.substitute_variables( view_context, extra_packages) + self.sys_path
def setUp(self): super(JediBackendTestCase, self).setUp() env = jedi.get_default_environment().path self.backend = jedibackend.JediBackend(self.project_root, env)