def run(self, index_project=False): """Runs the cindex command. Once this starts running, it will not listen to other calls until the index is finished running. Args: index_project: If true, the index will be generated from folders used by the project. The csearchindex file location must be set in the project settings when set to True. """ if self._is_running: return self._is_running = True self.window.active_view().set_status('YetAnotherCodeSearch', 'cindex (starting)') self._total_indexed = 0 try: s = settings.get_project_settings( self.window.project_data(), self.window.project_file_name(), index_project_folders=index_project) _CindexListThread(self, path_cindex=s.cindex_path, index_filename=s.index_filename, paths_to_index=s.paths_to_index).start() except Exception as e: self._finish(err=e)
def run(self, index_project=False): """Runs the cindex command. Once this starts running, it will not listen to other calls until the index is finished running. Args: index_project: If true, the index will be generated from folders used by the project. The csearchindex file location must be set in the project settings when set to True. """ if self._is_running: return self._is_running = True self.window.active_view().set_status('YetAnotherCodeSearch', 'cindex (starting)') self._total_indexed = 0 try: s = settings.get_project_settings( self.window.project_data(), index_project_folders=index_project) _CindexListThread(self, path_cindex=s.cindex_path, index_filename=s.index_filename, paths_to_index=s.paths_to_index).start() except Exception as e: self._finish(err=e)
def _on_search(self, result): self._last_search = result view = self._get_results_view() self._write_message('Searching for "{0}"\n\n'.format(result), view=view, erase=True) view.set_status("YetAnotherCodeSearch", "Searching...") try: s = settings.get_project_settings(self.window.project_data()) _CsearchThread( parser.parse_query(result), self, path_csearch=s.csearch_path, index_filename=s.index_filename ).start() except Exception as e: self._finish(None, err=e)
def test_get_project_settings_when_indexing_project_and_no_index_set( self, mock_isfile, mock_expanduser, mock_abspath): mock_expanduser.side_effect = lambda x: x.replace('~', 'home/you') mock_abspath.side_effect = lambda x: '/abs/' + x mock_isfile.return_value = True del self.project_data['code_search'] s = settings.get_project_settings(self.project_data, index_project_folders=True) self.assertEquals(s.paths_to_index, ['/abs/home/you/bar', '/abs/home/you/foo']) self.assertIsNone(s.index_filename) self.assertEquals(os.path.basename(s.cindex_path), 'cindex') self.assertEquals(os.path.basename(s.csearch_path), 'csearch')
def _on_search(self, result): self._last_search = result view = self._get_results_view() self._write_message('Searching for "{0}"\n\n'.format(result), view=view, erase=True) view.set_status('YetAnotherCodeSearch', 'Searching...') try: s = settings.get_project_settings(self.window.project_data()) _CsearchThread(parser.parse_query(result), self, path_csearch=s.csearch_path, index_filename=s.index_filename).start() except Exception as e: self._finish(None, err=e)
def test_get_project_settings(self, mock_isfile, mock_expanduser, mock_abspath): mock_expanduser.side_effect = lambda x: x.replace('~', 'home/you') mock_abspath.side_effect = lambda x: '/abs/' + x mock_isfile.return_value = True s = settings.get_project_settings(self.project_data, index_project_folders=True) self.assertEquals(s.paths_to_index, ['/abs/home/you/bar', '/abs/home/you/foo']) self.assertEquals(s.index_filename, '/abs/csearchindex') # Test the basename here incase someone is testing and has their own # user settings. self.assertEquals(os.path.basename(s.cindex_path), 'cindex') self.assertEquals(os.path.basename(s.csearch_path), 'csearch')
def test_get_project_settings_when_indexing_project_and_no_index_set( self, mock_isfile, mock_expanduser, mock_abspath, mock_isabs): mock_expanduser.side_effect = expanduser mock_abspath.side_effect = abspath mock_isfile.return_value = True mock_isabs.side_effect = lambda x: x.startswith('/') del self.project_data['code_search'] s = settings.get_project_settings(self.project_data, self.project_file_name, index_project_folders=True) self.assertEquals(s.paths_to_index, ['/abs/home/you/bar', '/abs/home/you/foo', '/abs/project/src']) self.assertIsNone(s.index_filename) self.assertEquals(os.path.basename(s.cindex_path), 'cindex') self.assertEquals(os.path.basename(s.csearch_path), 'csearch')
def test_get_project_settings(self, mock_isfile, mock_expanduser, mock_abspath, mock_isabs): mock_expanduser.side_effect = expanduser mock_abspath.side_effect = abspath mock_isfile.return_value = True mock_isabs.side_effect = lambda x: x.startswith('/') s = settings.get_project_settings(self.project_data, self.project_file_name, index_project_folders=True) self.assertEquals(s.paths_to_index, ['/abs/home/you/bar', '/abs/home/you/foo', '/abs/project/src']) self.assertEquals(s.index_filename, '/abs/csearchindex') # Test the basename here incase someone is testing and has their own # user settings. self.assertEquals(os.path.basename(s.cindex_path), 'cindex') self.assertEquals(os.path.basename(s.csearch_path), 'csearch')
def test_raises_exception_if_index_file_is_missing(self, mock_isfile): mock_isfile.return_value = False with self.assertRaises(Exception): settings.get_project_settings(self.project_data)