def __init__(self, db_base_dir=None, on_scan_complete=None, extra_module_dirs=None, env=None, db_event_reporter=None, db_catalog_dirs=None, db_import_everything_langs=None): """Create a CodeIntel manager. "db_base_dir" (optional) specifies the base directory for the codeintel database. If not given it will default to '~/.codeintel'. "on_scan_complete" (optional) is a callback for Citadel scan completion. It will be passed the ScanRequest instance as an argument. "extra_module_dirs" (optional) is a list of extra dirs in which to look for and use "codeintel_*.py" support modules (and "lang_*.py" modules, DEPRECATED). "env" (optional) is an Environment instance (or subclass). See environment.py for details. "db_event_reporter" (optional) is a callback that will be called db_event_reporter(<event-desc-string>) before "significant" long processing events in the DB. This may be useful to forward to a status bar in a GUI. "db_catalog_dirs" (optional) is a list of catalog dirs in addition to the std one to use for the CatalogsZone. All *.cix files in a catalog dir are made available. "db_import_everything_langs" (optional) is a set of langs for which the extra effort to support Database `lib.hits_from_lpath()' should be made. See class Database for more details. """ threading.Thread.__init__(self, name="CodeIntel Manager") self.setDaemon(True) Queue.__init__(self) self.citadel = Citadel(self) # Module registry bits. self._registered_module_canon_paths = set() self.silvercity_lexer_from_lang = {} self.buf_class_from_lang = {} self.langintel_class_from_lang = {} self._langintel_from_lang_cache = {} self.import_handler_class_from_lang = {} self._is_citadel_from_lang = { } # registered langs that are Citadel-based self._is_cpln_from_lang = { } # registered langs for which completion is supported self._hook_handlers_from_lang = defaultdict(list) self.env = env or DefaultEnvironment() # The database must be enabled before registering modules. self.db = Database(self, base_dir=db_base_dir, catalog_dirs=db_catalog_dirs, event_reporter=db_event_reporter, import_everything_langs=db_import_everything_langs) self.lidb = langinfo.get_default_database() self._register_modules(extra_module_dirs) self.idxr = indexer.Indexer(self, on_scan_complete)
def __init__(self, *args, **kwargs): import langinfo langdb = langinfo.get_default_database() langdb._load_dir(join(dirname(dirname(abspath(__file__))), "pylib")) koJavaScriptLanguage.__init__(self, *args, **kwargs) # Hack end: # Hack start: add styling entries - to give it JS coloring. import styles styles.StateMap[self.name] = styles.StateMap['JavaScript'].copy()
def get_lidb(self): pylib_dir = join(dirname(self.dir), "src", "python-sitelib") sys.path.insert(0, pylib_dir) import langinfo return langinfo.get_default_database()