标签: cedet

Emacs:减轻鼠标的依赖性

在Emacs中,如何使用键盘模拟鼠标按键等?例如,使用CEDET的Semantic(包含在GNU Emacs 23.2.1中),可以右键单击包含以提供菜单; 如何使用键盘将该菜单和其他菜单显示为工具提示,或者在迷你缓冲区中显示一个允许用户访问菜单栏的M-`?

emacs cedet

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

Emacs:使用和初始化CEDET

我正在使用带有CEDET的Emacs并自动完成代码完成.最初我设置了CEDET,因此它每次都会在Emacs上启动.

然而,这花了相当长的时间,所以我认为如果需要加载它会很聪明,即 - 在我的情况下 - 进入C++时 - 模式.

所以我将原始函数移动到lambda进入C++模式时调用的函数:

; cscope for c(++) programming (finding symbols, etc.)
(require 'xcscope)

; C++ stuff
(add-hook 'c++-mode-hook
      (lambda ()
        (load-file "/usr/share/emacs/site-lisp/cedet-common/cedet.el")
        (global-ede-mode 1) ; enable project management system
        (semantic-load-enable-code-helpers) ; enable prototype help and smart completion
        (require 'auto-complete-config)
        (add-to-list 'ac-dictionary-directories "~/elisp/ac-dict")
        (add-to-list 'ac-sources 'ac-source-semantic)
        (local-set-key (kbd "C-:") 'semantic-ia-complete-symbol-menu) ; set shortcut for auto completion.
        (local-set-key (kbd "C-.") 'ac-complete-semantic)
        (ac-config-default)
        )
      )
Run Code Online (Sandbox Code Playgroud)

没有错误,但我有以下问题:当Emacs第一次进入C++模式时,代码完成无法正常工作.但如果Emacs第二次进入C++模式,一切正常.

有人知道我做错了什么吗?

emacs hook elisp cedet

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

使用cedet semantic wisent-ruby

我刚刚开始设置cedet跟随各种指南,包括Alex Ott的.

这是我目前在我的init文件中所拥有的内容.

(require 'cedet)
(semantic-load-enable-code-helpers)

;; imenu breaks if I don't enable this
(global-semantic-highlight-func-mode 1)

(global-semantic-tag-folding-mode)
Run Code Online (Sandbox Code Playgroud)

我非常喜欢代码折叠,因为语义比hideshow等软件包更多地了解代码.

我想为红宝石做同样的折叠.我知道cedet还有其他的东西,但我现在只是蘸着脚趾.

所以我在contrib /文件夹中看到有明智的ruby.el.看起来语义肯定知道如何解析Ruby.INSTALL表示它应该"自动"安装.我打开一个Ruby文件,代码折叠魔术三角形不存在.现在怎么办?

ruby emacs folding cedet emacs-semantic

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

CEDET解析时会释放缓冲区

我使用最新的CEDET和emacs 23.2.我发现CEDET出了问题,这就是我当前的编辑缓冲区在没有任何错误消息的情况下使用semantic-load-enable-guady-code-helpers模式被杀死.
这种症状很奇怪.有人有同样的麻烦吗?或者有什么方法可以知道发生了什么?

emacs cedet

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

语义,cedet如何强制解析源文件

我在我的emacs c/c ++开发设置中一直在尝试使用cedet和semantic,除了一个小细节之外我对它非常满意.

ede-cpp-root-project用来创建一个项目,并给出我的项目的根目录以及包含文件所在的目录,如下所示:

(ede-cpp-root-project "My Project"
                :name "My Project"
                :file "/path/to/rootdir/AFILE"
                :include-path '( 
                "/include2"
                "/include1"
                               )

                )
Run Code Online (Sandbox Code Playgroud)

这使我可以轻松跳转到函数的声明,semantic-ia-fast-jump但它不会让我接受这些函数的定义.因此它似乎只处理头文件并完全忽略源文件.即使我继续声明该函数并触发semantic-analyze-proto-impl-toggle它,它也会告诉我没有找到合适的实现.

如果我手动打开函数实现所在的源文件,那么它只能通过语义进行解析,并且所有上述函数都能正常工作.

所以我的问题是,如果没有手动打开项目根目录下包含的所有源文件,或者ede-cpp-root-project通过:spp-files参数手动包含它们,还有其他方法可以强制解析目录下的所有源文件吗?

谢谢!

c c++ emacs cedet

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

禁用lisp模式的cedet /语义代码完成

我已经为我的c ++项目设置了cedet /语义代码完成(使用本教程:http://alexott.net/en/writings/emacs-devenv/EmacsCedet.html )但是不想要它或所有帮助器(在我看来,在lisp模式下提供自动化.

所以,我的问题是如何在lisp模式下禁用它们或仅在c ++模式下启用它们.

谢谢,雷内.

emacs cedet

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

设置Emacs 23.4,CEDET 1.1和SemanticDB以在Windows上使用GNU Global

我一直在努力让我的Emacs配置用于Java开发工作.这是非常好的 - 我已经使用了malabar模式并让GNU Global用于标签浏览.我无法工作的一件事是让semanticdb正确使用gnu global.我的所有进口都没有找到.

首先,这是一个Maven多模块项目,从顶级根项目文件夹中检出所有源.目录树中的所有其他项目都低于此项目.此根文件夹中有一个GTAGS数据库,涵盖所有内容.

有用的东西:

  • M-x gtags-find-tag RET symbol RET 工作得很好,所以数据库很好,全局都可以找到它.
  • M-x cedet-gnu-global-version-check 工作和报告我的版本是好的.
  • M-x cedet-gnu-global-expand-filename 作品
  • M-x semanticdb-find-test-translate-path 在Java缓冲区中显示"GNU全局搜索表"
  • 我将JDK源文件夹设置为系统包含文件夹,因此可以正确解析核心Java导入.

我的java配置如下(cedet初始化在文件中较早):

(add-local-load-path "malabar/lisp")

(require 'malabar-mode)
(setq malabar-groovy-lib-dir (concat emacs-local-site-lisp "malabar/lib"))
(add-to-list 'auto-mode-alist '("\\.java\\'" . malabar-mode))

;; enable semanticdb support for gnu global
(when (cedet-gnu-global-version-check t)
  (semanticdb-enable-gnu-global-databases 'java-mode))

(add-hook 'java-mode-hook
    (lambda ()
    (gtags-mode 1)))

(add-hook 'java-mode-hook 'flymake-mode-on)

(defun my-java-flymake-init ()
  (list "javac" (list (flymake-init-create-temp-buffer-copy
                   'flymake-create-temp-with-folder-structure))))

(add-to-list 'flymake-allowed-file-name-masks
         '("\\.java$" my-java-flymake-init flymake-simple-cleanup))

(add-hook 'java-mode-hook
      '(lambda ()
         (semantic-add-system-include (getenv "JAVA_HOME") 'java-mode)))
Run Code Online (Sandbox Code Playgroud)

java windows emacs cedet maven

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

在emacs中寻找自动完成功能

我正在寻找一个插件来为emacs中的c ++开发做自动完成弹出窗口.我所尝试的是Cedet Semantics和Autocompletion模式,只要我已经有几个单词,它们在完成变量和函数名称方面非常简洁.例如,我有一个名为foo的类和一个返回整数1的函数

class foo{
   int getInt(){return 1};
};
Run Code Online (Sandbox Code Playgroud)

在main方法中,只要我开始输入这个

int main(){
 foo bar;
 bar.get...
}
Run Code Online (Sandbox Code Playgroud)

插件没有问题弹出bar.getInt()等建议.但是,我真正想要的就是在Eclipse中,只要按下"点",就可以为我生成可能的选择.在Emacs中可以吗?谢谢

c++ emacs cedet

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

在Emacs CEDET /语义中通过键盘自动完成

在CEDET语义中查看完成的不同方法(来自Bazaar存储库的新版本),我看到我有以下选项(Alex Ott在他的配置文件中建议的键盘绑定)

  • C-c ?(semantic-ia-complete-symbol)
  • C-return(semantic-ia-complete-symbol-menu)
  • C-c , l(semantic-analyze-possible-completions)

但是,它们似乎都没有让我可以方便地使用键盘在可能的完成之间进行选择.

例如,(semantic-ia-complete-symbol-menu)打开一个菜单,我可以在其中选择不同的选项,但据我所知,它需要我使用鼠标(我试图C-n, C-p, M-n, M-p导航菜单没有成功).

另一方面(semantic-ia-complete-symbol)打开另一个带有选项的缓冲区.我也可以用鼠标选择所需的自动完成功能,但我想用键盘代替.

此外,在以前版本的CEDET中,有一个变量(semantic-complete-inline-analyzer-displayor-class)允许我在几个自动完成选项(例如(semantic-displayor-ghost),或更优雅的叠加作为工具提示)之间进行选择,但这个变量似乎不再存在.

如果它很重要,我主要使用C++文件.

更新:

似乎允许我循环执行自动完成的唯一方法是C-c , space(semantic-complete-analyze-inline),我可以使用它TAB来自动完成,但它没有显示我可以选择的可能自动完成的菜单.

emacs autocomplete cedet

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

Emacs 24.3.1 CEDET 2.0(内置)和ECB 20131116.1319:ECB布局设置期间的错误

使用Emacs 24.3.1附带的CEDET和Melpa中的ECB,我得到以下尝试ecb-activate:

All requirements for ECB 2.40 fulfilled - Enjoy it! [2 times]
The ECB is now deactivated.
ecb-clean-up-after-activation-failure: ECB 2.40: Errors during the layout setup of ECB.  
    (error-type: void-variable, error-data: (ecb-examples-bufferinfo-buffer-name))
Run Code Online (Sandbox Code Playgroud)

以下是emacs pacakage经理的信息:

ecb is an installed package.

     Status: Installed in `/home/Smith/.emacs.d/elpa/ecb-20131116.1319/'.
     Version: 20131116.1319
     Summary: a code browser for Emacs

cedet is a built-in package.

    Status: Built-in.
    Version: 2.0
    Summary: Setup CEDET environment
Run Code Online (Sandbox Code Playgroud)

我的问题,如何让这个工作.亚力克斯奥特的欧洲央行分支似乎表明应该这样做.

emacs cedet emacs-ecb

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

标签 统计

cedet ×10

emacs ×10

c++ ×2

autocomplete ×1

c ×1

elisp ×1

emacs-ecb ×1

emacs-semantic ×1

folding ×1

hook ×1

java ×1

maven ×1

ruby ×1

windows ×1