IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    [原]spacemacs使用semantic跳转代码

    sheismylife发表于 2017-04-30 22:29:26
    love 0

    semantic是CEDIT的核心,支持语义理解的代码分析。

    安装了semantic layer之后,只要在spacemacs中打开过某个文件,就会自动建立tag,

    tag目录在~/.emacs.d/.cache/semanticdb/

    比如这里就有个tag文件:

    ~/.emacs.d/.cache/semanticdb/!home!dean!work!gitlab!gitlab.com!mystudy!mongodb!code!simple!src!helper!semantic.cache

    ;; Object semanticdb-project-database-file
    ;; SEMANTICDB Tags save file
    (semanticdb-project-database-file "semanticdb-project-database-file"
      :tables
      (list
        (semanticdb-table "semanticdb-table"
          :major-mode c++-mode
          :tags 
            '( ("helper/logger.h" include nil nil [1 27])
                ("InitLog" function (:type "void") nil [29 1018]))          
          :file "logger.cc"
          :pointmax 1019
          :fsize 1018
          :lastmodtime '(22645 60456 254615 422000)
          :unmatched-syntax nil))
      :file "!home!dean!work!gitlab!gitlab.com!mystudy!mongodb!code!simple!src!helper!semantic.cache"
      :semantic-tag-version "2.0"
      :semanticdb-version "2.2")
    


    可以看到里面有一个InitLog函数。

    现在进入main.cc文件中,里面有一行调用InitLog函数的代码,将光标移动到上面,然后按下快捷键

    C-c , J, 执行的是semantic-complete-jump函数。

    在mini buffer中回车确认查找的是InitLog函数

    然后就自动跳入源代码了。





沪ICP备19023445号-2号
友情链接