标签: cedet

如何在Windows上为Emacs 23.1.50编译CEDET 1.0pre7编译?

我正试图在Windows上用CVS为Emacs 23.1.50编译CEDET,我在"第6步:开启EDE ......"时遇到错误:"defvar:符号的变量值为void:cedet-menu-map ".CEDET 1.0pre6的编译引发了同样的错误.

emacs cedet

5
推荐指数
1
解决办法
2714
查看次数

GNU Emacs-23.3.1不会加载CEDET-1.0

我刚刚更新了我的emacs并在字节码中重新整理了一些扩展.我也通过emacs-updater更新了一些软件包,比如subversion,就像我在更新后建议的那样.但现在我得到了

Symbol's value as variable is void: cedet-menu-map
Run Code Online (Sandbox Code Playgroud)

还有更多的乐趣:如果我们削减线路装载cedet.el,欧洲央行说

    error: ECB 2.40 - Error: ECB can only be used with 
cedet [1.0pre6, 1.0.9]! Please install it and restart Emacs!
Run Code Online (Sandbox Code Playgroud)

CEDET-1.0.9在哪里?如果是,它在哪里?

操作系统:Gentoo

UPD:

使用包app-emacs/ecbapp-emacs/cedet解决了这个问题.

emacs cedet

5
推荐指数
1
解决办法
4256
查看次数

使用库设置emacs EDE项目

我已经搜索了emacs文档,cedet网站,并在这里徒劳无功.如果我的问题已经得到解答,可以自由地(指出现有答案)关闭它.

我正在尝试熟悉emacs中的EDE项目.到目前为止,我可以设置一个包含一个或多个文件的简单项目.

现在,我想分离一部分代码并将其打包到库中.基本上我正在努力实现与以下手写的天真Makefile相同的东西:

matrix:
  g++ -c -o lib/libmatrix.o lib/matrix.cpp -std=c++0x
  ar crf lib/libmatrix.a lib/libmatrix.o

num:
    g++ num.cpp -Llib -Ilib -std=c++0x -o num -g
Run Code Online (Sandbox Code Playgroud)

这里我有一个由"lib/matrix.h"和"lib/matrix.cpp"组成的库(它是矩阵类型的玩具实现)和一个使用矩阵的文件"num.cpp".

我不知道如何告诉emacs正确编译矩阵.到目前为止,我得到了以下EDE项目,但当然它没有编译.

;; Object Numbers
;; EDE project file.
(ede-proj-project "Numbers"
  :name "Numbers"
  :file "Project.ede"
  :targets (list 
   (ede-proj-target-makefile-program "num"
    :name "num"
    :path ""
    :source '("num.cpp")
    :compiler 'ede-g++-compiler
    :linker 'ede-g++-linker
    :configuration-variables 'nil
    :ldflags '("-std=c++0x" "-Llib" "-Ilib")
    :ldlibs '("matrix")
    )
   (ede-proj-target-makefile-archive "matrix"
    :name "matrix"
    :path "/lib"
    :source '("matrix.cpp")
    :compiler 'ede-g++-compiler
    :linker 'ede-archive-linker
    :configuration-variables 'nil
    )
   )
  :configuration-variables 'nil
  )
Run Code Online (Sandbox Code Playgroud)

c++ emacs cedet

5
推荐指数
1
解决办法
1491
查看次数

#ifdef上的cedet解析问题

我是emacs cedet用户.我得到了cedet的大力帮助.

但是,我在cedet中发现了一些错误#ifdef处理错误.不确定它是来自cedet内部还是我的错误配置.我引用了Curl中发生此问题的一些代码.

#ifdef CURL_DO_LINEEND_CONV
  if((data->set.crlf) || (data->set.prefer_ascii)) {
#else
  if(data->set.crlf) {
#endif /* CURL_DO_LINEEND_CONV */
    endofline_native  = "\n";
Run Code Online (Sandbox Code Playgroud)

使用此代码,必须存在一些错误括号匹配.因为我使用(eassist-list-methods)或其他cedet-semantic函数(跳转到定义)时出错.

我很容易猜到这可能来自#ifdef .. #endif block中的两个大括号.我承认这些是这样的.

#ifdef CURL_DO_LINEEND_CONV
  if((data->set.crlf) || (data->set.prefer_ascii)) 
#else
  if(data->set.crlf) 
#endif /* CURL_DO_LINEEND_CONV */
{
    endofline_native  = "\n";
Run Code Online (Sandbox Code Playgroud)

在此之后,cedet语义功能运行良好.

对此有何想法?它是否来自cedet解析器问题?

如果有一点我必须在cedet配置,你能给我一些见解吗?

谢谢

emacs cedet

5
推荐指数
1
解决办法
393
查看次数

CEDET:手动存储标签

我正在使用ECB和Cedet - 语义搜索引擎存储我在其缓存文件中访问的文件的标签.

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

问题是 - 语义几乎打开了我所有的python脚本 - 因为我已经parser在所有这些脚本中定义了 - 当我用argparse... 解析命令行参数时所以我宁愿停止语义缓存我的文件,并且这样做C-c , ,仅在我的libs上手动操作.

所以我的问题是 - 如何防止语义存储缓存?我仍然可以使用现有的数据库(我将手动收集).

emacs cedet emacs-ecb

5
推荐指数
1
解决办法
226
查看次数

Emacs CEDET:跳转到符号

我已经阅读了Alex Ott 为Emacs 提供CEDET精彩指南,我想我知道如何正确设置我的EDE项目.

但是,当我尝试使用该命令跳转到本地符号(例如main()C++中的函数)时semantic-complete-jump-local (C-c , j),[no match]即使我从定义了符号的.cpp文件中调用此命令,我也会收到错误.

此外,当我尝试跳转semantic-complete-jump-global (C-c , J)到具有不同文件(例如多个main()函数)上的多个定义的符号时,CEDET抱怨[not unique]但它没有给我一种方法来选择我想要看到的符号.找到我感兴趣的符号的唯一方法是使用<TAB>缓冲区缓冲区遍历所有选项,直到找到我感兴趣的符号.有没有办法从我可以选择的位置获取符号列表?理想情况下,获得类似于Emacs helm(以前称为Anything)提供的自动完成列表会很棒.

这完全适用于使用CEDET 1.1的 Linux上的Emacs 24.2.1.

emacs cedet

5
推荐指数
1
解决办法
1500
查看次数

emacs的cedet ede项目

我正在尝试学习如何使用CEDET.我没有任何乱七八糟的项目,所以我想拍摄Emacs本身.

当我在dir中打开Emacs存储库时,CEDET似乎自动将Emacs检测为项目.但是当我这样做时M-x ede-find-file,没有文件可以打开.

问题是,如何将Emacs准确地设置为CEDET中的项目以利用EDE和CEDET的其他好东西.

似乎这方面的文档尚未完成.

emacs project cedet

4
推荐指数
1
解决办法
490
查看次数

Emacs CEDET设置怀疑

我今天成功安装了cedet并且大部分都在工作; 感谢Alex Ott 对Cedet温柔介绍.

但是我遇到了问题

当我提供相对于我正在处理的当前文件的确切路径时,自动完成工作正常.

#include "../../opensource/inc/lldp_port.h"
void test_func()
{
    lldp_port port;
    port.blah //here auto-completion worked fine
}
Run Code Online (Sandbox Code Playgroud)

但是我不能一直指定完整的路径(我们在办公室吃了它,它为我们生成了makefile)

#include "lldp_port.h"
void test_func()
{
    lldp_port port;
    port. //here auto-completion does not work :(
}
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能解决这个问题?

emacs cedet

2
推荐指数
1
解决办法
1145
查看次数

将CEDET ede-cpp-root-project命令放在.emacs文件之外

我有一个有效的EDE项目,但我想在该项目的源代码树的文件中找到该命令,而不是在我的.emacs文件中.这可能吗?

我尝试过使用目录变量和emacs加载文件,但它确实有任何影响.为此,我将以下代码放在项目根目录中的.dir-locals.el中:

((nil 
 . ((ede-cpp-root-project "MyProj"
     :name "MyProj Project"
     :file "/home/jlisee/projects/myproj_code/CMakeLists.txt"
     :include-path '( "/packages" )
     :system-include-path '( "/opt/myproj/local/include" )
     :spp-table '( ("CONST" . "const") )
     ))))
Run Code Online (Sandbox Code Playgroud)

emacs cedet

2
推荐指数
1
解决办法
1737
查看次数

当我使用语义来定位符号时,"void-variable last-command-char"错误

由于我使用Emacs 24,当我试图找到符号出现的位置时,我总是会收到错误semantic-symref-symbol.细节是:

  1. semantic-symref-symbol当光标在我的源文件的某个符号上时,我按下一些键来调用,然后我得到一个列表,描述符号在*Symref缓冲区中的位置.
  2. 在列表的一个条目上,我按SPACERETURN键,它跳转到正确的位置,但同时,Emacs弹出*Backtrace*缓冲区在其他窗口中.其内容如下:

    Debugger entered--Lisp error: (void-variable last-command-char)
      semantic-symref-rb-goto-match(#<overlay from 97 to 126 in *Symref stateStack>)
      push-button(97)
      call-interactively(push-button nil nil)
    
    Run Code Online (Sandbox Code Playgroud)

    然后我遵循semantic-symref-rb-goto-matchsemantic-symref-list.el中定义的函数.elisp函数定义如下:

    (defun semantic-symref-rb-goto-match (&optional button)
      "Go to the file specified in the symref results buffer.
    BUTTON is the button that was clicked."
      (interactive)
      (let* ((tag (button-get button 'tag))
         (line (button-get button 'line))
         (buff (semantic-tag-buffer tag))
         (win (selected-window))
         )
        (switch-to-buffer-other-window buff)
        (goto-line line)
        (pulse-momentary-highlight-one-line (point)) …
    Run Code Online (Sandbox Code Playgroud)

emacs cedet emacs-semantic

2
推荐指数
1
解决办法
1547
查看次数

Emacs:如何快速找到项目中的文件?

现在,我正在使用ede来管理我的cpp项目,我尝试在项目中快速找到一个文件,但是我失败了.我曾经ede-find-file找到"db.h",它位于"d:/projects/leveldb/include/db.h",不幸的是,它说找不到.

我的配置放在下面

(setq leveldb_root "d:/projects/leveldb/")

(ede-cpp-root-project
  "leveldb"
  :file (concat leveldb_root ".gitignore")
  :system-include-path '("C:/Program Files/Microsoft SDKs/Windows/v7.1/Include"
                       "C:/Program Files (x86)/Microsoft Visual Studio 9.0/VC/include")
  :include-path '("/"
                "/include"))
Run Code Online (Sandbox Code Playgroud)

并且,对项目管理和文件查找解决方案有什么建议吗?(我也尝试过find-file-in-project).

我使用ede是因为我需要ede-cpp-root-project来自动设置semanticdb.

emacs cedet

1
推荐指数
1
解决办法
4586
查看次数

标签 统计

cedet ×11

emacs ×11

c++ ×1

emacs-ecb ×1

emacs-semantic ×1

project ×1