索引是IDEA 核心功能的基础:代码补全,语法检查,找到用法,导航,高亮,重构。

触发索引的是,你打开项目,在分支间切换,加载或卸载插件,大的外部文件更新。例如,如果你编译项目,多个文件被生成时。状态栏会提示:Scaning files to index...

索引,会检查你的代码用以生成一份虚拟的映射,关于类,方法,对象,其他元素。IDEA也索引项目的依赖,包括JDK,libraries,一些插件增加的文件。这是必须的,对于辅助编程,还有快速的搜索,导航。索引完后,IDE就熟悉了你的代码。这才能实现快速的搜索调用,和智能补全。

当索引构建过程中,上述编程辅助能力失效或部分失效。尽管如此,你仍可以敲代码,使用VCS特性,设置IDEA,其他和代码无关的操作。

Viewing the indexing process

索引过程,状态栏显示 Scanning ...你可以点击查看完整后台信息,分为2个主要部分,扫描文件,和更新索引。扫描过程不能暂停,更新过程可以。

为了使用IDEA的辅助能力,如补全和导航。更新过程必须做好。然而,辅助能力不要求扫描过程必须完成才能有效。

Decreasing time for indexing

项目越复杂,文件越多,索引越久。你可以缩短时间,通过排除文件,文件夹,卸载模块。

如果索引过程已经开始,你就不能加速了。

Exclude files and folders

把动态生成的文件,标记为排除。例如,编译输出文件夹。这些仍然属于项目,但被补全,导航,索引和语法检查所忽略。

1. 排除文件:右键一个文件,菜单中选择“Override file type | Plain Text”,则被标记为“几个横线”图标。

2. 排除文件夹:右键一个文件夹(ALT 1),菜单中选择mark directory as | Excluded,则文件夹被标记为一个空文件夹图标。

3. 你也可以通过 name patterns 方式排除。

Unload modules

如果索引很久很久,你的项目可能有多余2个模块。通常你不需要同时用到虽有模块。如果是这种情况,你可以临时设置用不到的模块。当你搜索,或编译时,IDE将忽略这些模块。

右键选择一个模块,菜单中选择加载/卸载。