def __enter__(self): file_path = self.view.file_name() if file_path is None: # unsaved buffer file_path = self._create_temp_file() project_dir = self._find_ropeproject(file_path) if project_dir: self.project = project.Project(project_dir, fscommands=FileSystemCommands()) self.importer = autoimport.AutoImport(project=self.project, observe=True) if not os.path.exists("%s/.ropeproject/globalnames" % project_dir): # self.importer.generate_cache() self.build_cache() if os.path.exists("%s/__init__.py" % project_dir): sys.path.append(project_dir) else: # create a single-file project(ignoring other files in the folder) folder = os.path.dirname(file_path) ignored_res = os.listdir(folder) ignored_res.remove(os.path.basename(file_path)) self.project = project.Project(ropefolder=None, projectroot=folder, ignored_resources=ignored_res, fscommands=FileSystemCommands()) self.importer = autoimport.AutoImport(project=self.project, observe=True) self.resource = libutils.path_to_resource(self.project, file_path) _update_python_path(self.project.prefs.get('python_path', [])) self.input = self.view.substr(sublime.Region(0, self.view.size())) return self
def __init__(self, view, single_file=False): self.view = view self.project = None self.resource = None self.tmpfile = None self.input = "" self.building = False self.file_path = self.view.file_name() if self.file_path is None: # unsaved buffer self.file_path = self._create_temp_file() self.project_dir = _find_ropeproject(self.file_path) if not single_file and self.project_dir: self.project = project.Project(self.project_dir, fscommands=FileSystemCommands()) self.importer = autoimport.AutoImport(project=self.project, observe=False) if os.path.exists("%s/__init__.py" % self.project_dir): sys.path.append(self.project_dir) else: # create a single-file project(ignoring other files in the folder) folder = os.path.dirname(self.file_path) ignored_res = os.listdir(folder) ignored_res.remove(os.path.basename(self.file_path)) self.project = project.Project(ropefolder=None, projectroot=folder, ignored_resources=ignored_res, fscommands=FileSystemCommands()) self.importer = autoimport.AutoImport(project=self.project, observe=False)
def setUp(self): super(AutoImportObservingTest, self).setUp() self.project = testutils.sample_project() self.mod1 = testutils.create_module(self.project, "mod1") self.pkg = testutils.create_package(self.project, "pkg") self.mod2 = testutils.create_module(self.project, "mod2", self.pkg) self.importer = autoimport.AutoImport(self.project, observe=True)
def setUp(self): super(AutoImportTest, self).setUp() self.project = testutils.sample_project(extension_modules=["sys"]) self.mod1 = testutils.create_module(self.project, "mod1") self.pkg = testutils.create_package(self.project, "pkg") self.mod2 = testutils.create_module(self.project, "mod2", self.pkg) self.importer = autoimport.AutoImport(self.project, observe=False)
def __init__(self, path=None, project_path=None): """ Init Rope context. """ self.path = path self.project = project.Project(project_path, fscommands=FileSystemCommands()) self.importer = rope_autoimport.AutoImport(project=self.project, observe=False) update_python_path(self.project.prefs.get('python_path', [])) self.resource = None self.current = None self.options = dict( completeopt=env.var('&completeopt'), autoimport=env.var('g:pymode_rope_autoimport', True), autoimport_modules=env.var('g:pymode_rope_autoimport_modules'), goto_definition_cmd=env.var('g:pymode_rope_goto_definition_cmd'), ) if os.path.exists("%s/__init__.py" % project_path): sys.path.append(project_path) if self.options.get('autoimport'): self.generate_autoimport_cache() env.debug('Context init', project_path) env.message('Init Rope project: %s' % project_path)
def __enter__(self): project_dir = os.environ.get('TM_PROJECT_DIRECTORY', None) file_path = os.environ['TM_FILEPATH'] if project_dir: self.project = project.Project(project_dir) # no use to have auto import for a single file project if not os.path.exists("%s/.ropeproject/globalnames" % project_dir): importer = autoimport.AutoImport(project=self.project, observe=True) importer.generate_cache() if os.path.exists("%s/__init__.py" % project_dir): sys.path.append(project_dir) else: #create a single-file project (ignoring all other files in the file's folder) folder = os.path.dirname(file_path) ignored_res = os.listdir(folder) ignored_res.remove(os.path.basename(file_path)) self.project = project.Project(ropefolder=None, projectroot=folder, ignored_resources=ignored_res) self.resource = libutils.path_to_resource(self.project, file_path) update_python_path(self.project.prefs.get('python_path', [])) self.input = sys.stdin.read() return self
def open_project(self, root=None): if not root: root = self.env.ask_directory('Rope project root folder: ') if self.project is not None: self.close_project() progress = self.env.create_progress('Opening [%s] project' % root) self.project = rope.base.project.Project(root) if self.env.get('enable_autoimport'): underlined = self.env.get('autoimport_underlineds') self.autoimport = autoimport.AutoImport(self.project, underlined=underlined) progress.done()
def open_project(self, root=None): if not root: root = self.env.ask_directory('Rope project root folder: ') if self.project is not None: self.close_project() address = rope.base.project._realpath( os.path.join(root, '.ropeproject')) if not os.path.exists(address): if not self.env.y_or_n('Project not exists in %s, ' \ 'create one?' % root): self.env.message("Project creation aborted") return progress = self.env.create_progress('Opening [%s] project' % root) self.project = rope.base.project.Project(root) if self.env.get('enable_autoimport'): underlined = self.env.get('autoimport_underlineds') self.autoimport = autoimport.AutoImport(self.project, underlined=underlined) progress.done()
def complete_import(project, resource, code, offset): class ImportProposal(object): def __init__(self, name, module): self.name = name self.display = name + " - " + module self.insert = module+"."+name self.module = module self.type = 'module' importer = autoimport.AutoImport(project=project, observe=False) # find all files with changes and index them again for filename in find_unindexed_files(project._address): importer.update_resource(libutils.path_to_resource(project, filename)) proposals = importer.import_assist(starting=current_identifier()) if len(proposals) == 0: return [] else: return [ImportProposal(p[0], p[1]) for p in proposals]
def test_caching_underlined_names_passing_to_the_constructor(self): importer = autoimport.AutoImport(self.project, False, True) self.mod1.write("_myvar = None\n") importer.update_resource(self.mod1) self.assertEqual(["mod1"], importer.get_modules("_myvar"))