CEDET:手动存储标签

5

我正在使用Cedet的ECB,并且语义搜索引擎会将我访问的文件的标签存储在其缓存文件中。

我还使用了ECB的left-symboldef布局 - 它显示光标所在位置的标签定义。为了做到这一点,语义打开了定义标签的文件。

问题是 - 由于我在所有python脚本中都定义了parser,当我使用argparse解析命令行参数时,语义几乎总是会打开它们... 因此,我宁愿停止语义自动缓存我的文件,并仅在我的库上手动执行C-c ,,

那么我的问题是 - 我如何防止语义存储缓存?我仍然应该能够使用现有的数据库(我将手动收集)。


或者我完全误解了它? - Adobe
1个回答

3

为了防止空闲时间自动解析其他文件,您可以设置:

(setq semantic-idle-work-parse-neighboring-files-flag nil)

如果它是通过包含文件引入它们的,你可以这样做:

并且如果使用了包含方式,您可以这样操作:

(setq semantic-idle-work-update-headers-flag nil)

这实际上是默认设置,如果您使用常规或华丽代码助手的预设配置选项,则会将其设置为true。

为了不解析所有文件,但仍然让ECB找到标签定义,您可能需要使用GNU Global数据库。有关更多信息,请参见semanticdb-enable-gnu-global-databases


谢谢您的回答。不过请注意 - 我想要语义解析文件 - 但我不想它存储缓存文件。我想手动存储缓存文件 - 在调用 C-c ,, 时。 - Adobe
1
你可以使用semanticdb-save-all-db手动保存。没有禁用空闲时间保存的选项。但是,如果禁用相邻文件的解析,则不需要保存任何内容,因此不会妨碍你。 - Eric
谢谢Eric。但是我自己打开的文件呢?它会为这些文件存储缓存吗?我想要语义分析它们 - 但不要存储。我想手动存储缓存 - 在调用C-c ,,时。 - Adobe
你可以通过禁用global-semanticdb-minor-mode来禁用保存,但是当它处于活动状态时,你打开的所有内容都将被保存。如果在禁用后重新启用,它只会保存打开的缓冲区或之前在当前目录中保存过的缓冲区。不过这种情况尚未经过测试,所以结果可能因人而异。 - Eric

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接