簡體   English   中英

如何制作emacs語義使用GTAGS生成的TAG文件

[英]How to make emacs Semantic use the TAG file generated by GTAGS

我的emacs版本是23.2.1雖然我使用以下內容來更改后端以使用GTAGS。 (需要'semantic / db-global)(semanticdb-enable-gnu-global-databases'c-mode)(semanticdb-enable-gnu-global-databases'c ++ - mode)我試着生成一個GTAGS文件用作語義的后端。 但是,每次打開C文件時,Semantic仍然在不使用GTAGS文件的情況下解析文件。

  1. 是否可以使用GTAGS文件而不是內置的語義解析器? 我發現內置的解析器不是很准確。

  2. 是否可以在不指定項目范圍的情況下使用GTAGS文件? 在我的情況下,我試圖將GTAGS文件放在/ usr / include中,這應該是emacs的標准包含路徑。 但是語義學並沒有使用它。

Semantic不使用GTAGS文件生成標記,它將直接用於跳轉或智能完成等功能。 GNU Global后端到語義數據庫將使用GTAGS作為巨型名稱表。 因此,如果您需要按名稱查找符號,GTAGS將告訴語義它在何處,然后Semantic將更直接地解析這些文件以獲取詳細信息。

GTAGS沒有直接用作替換解析器的原因是因為GTAGS中的信息不足以滿足語義需要的各種操作,因為它不包括數據類型信息,參數解析和本地上下文解析。

在/ usr / include中使用gtags是一個有趣的想法,但可能不會得到太多使用。 Semantic僅搜索代碼中實際使用的頭文件,而不是搜索所有包含文件。 GNU Global后端專門用於掃描整個項目的符號或符號引用。 如果你想搜索符號的所有包含,那么它會很有用,但目前Semantic中沒有這樣的功能。

可以使用ebrowse來做你想做的事情,但是我發現對於C ++來說,解析器在細微方面是不夠的,並且會引起一些問題。

如果您認為語義解析器不准確,那么您應該將其作為cedet-devel郵件列表中的錯誤發布。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM