дополнения к emacs или IntelliSense такие же, как в Visual Studio

StackOverflow https://stackoverflow.com/questions/1644490

Вопрос

emacs 22.2.1 в Linux

Я занимаюсь программированием на C / C ++ с использованием emacs. Мне интересно, поддерживает ли Emacs дополнения (IntelliSense в Visual Studio).

Например, при заполнении структур я хотел бы видеть список членов, когда набираю оператор точки или стрелки.

То же самое относится и к сигнатурам функций, которые дают мне типы, которые я передаю, будут отображаться.

Это было полезно?

Решение

Я использую cedet с emacs. Я попытался использовать версию cedet в Debian, но в ней есть некоторые ошибки, поэтому я удалил ее и загрузил версию cvs с http : //sourceforge.net/projects/cedet/develop

Я скомпилировал его в своем каталоге ~ / tmp / emacs-stuff /, а затем добавил следующие строки в мой файл ~ / .emacs.d / custom.el:

<Ч>


;;needed if cedet is in a custom location
(load-file "~/tmp/emacs-stuff/cedet/common/cedet.el")

;; Enable EDE (Project Management) features
(global-ede-mode t)

;;to enable code folding
(global-semantic-tag-folding-mode)

;; Enabling Semantic (code parsing, smart completion) features
;; (select only one)
;;(semantic-load-enable-minimum-features)
;;(semantic-load-enable-code-helpers)
(semantic-load-enable-gaudy-code-helpers)
;;(semantic-load-enable-all-exuberent-ctags-support)

(global-semantic-idle-scheduler-mode 1) ;The idle scheduler with automatically reparse buffers in idle time.
(global-semantic-idle-completions-mode 1) ;Display a tooltip with a list of possible completions near the cursor.
(global-semantic-idle-summary-mode 1) ;Display a tag summary of the lexical token under the cursor.

;;to work with my include files and cedet
(semantic-add-system-include "~/include" 'c++-mode)
(semantic-add-system-include "~/include" 'c-mode)


;;To use additional features for names completion, and displaying of information for tags & classes,
;; you also need to load the semantic-ia package. This could be performed with following command:
(require 'semantic-ia)

;;to work with systme include files and gcc
(require 'semantic-gcc)


;;integrate semantic with Imenu
(defun my-semantic-hook ()
  (imenu-add-to-menubar "TAGS"))
(add-hook 'semantic-init-hooks 'my-semantic-hook)

;;load Semanticdb
(require 'semanticdb)
;;(global-semanticdb-minor-mode 1)

;;working with tags
;; gnu global support
(require 'semanticdb-global)
(semanticdb-enable-gnu-global-databases 'c-mode)
(semanticdb-enable-gnu-global-databases 'c++-mode)

;; ctags
(require 'semanticdb-ectag)
(semantic-load-enable-primary-exuberent-ctags-support)

(defun my-semantic-hook ()
  (imenu-add-to-menubar "TAGS"))
(add-hook 'semantic-init-hooks 'my-semantic-hook)

<Ч>

Этот файл вызывается моим файлом ~ / .emacs, который содержит следующую строку: (загрузочный файл " ~ / .emacs.d / custom.el ")

Теперь, когда вы печатаете переменную и нажимаете CTRL + SHIFT + ENTER, появится меню выбора с предложениями.

Кроме того, если вы установили переменную semantic-complete-inline-analyzer-idle-displayor-class, чтобы заключить в кавычки semantic-displayor-tooltip, всплывающая подсказка с предложениями также появится после некоторого времени простоя (1 или 2 секунды).

Краткое введение см. в http: // xtalk.msk.su/~ott/en/writings/emacs-devenv/EmacsCedet.html

Для документов Cedet см .: http://cedet.sourceforge.net/

Удачи.

Другие советы

Meta - / не совсем интеллектуален, но он перебирает известные имена.

Этот проект предоставляет выпадающие меню, к которым вы привыкли:

http://ecb.sourceforge.net/

вам нужно взять последнюю версию пакета CEDET (лучше прямо из CVS). Вы можете настроить его, как описано в документации на этом сайте

Я думаю, что вы ищете etags. http://tulrich.com/geekstuff/emacs.html

Поиск тегов.

Если вы хотите использовать стоковые emacs для выполнения завершения из вашего проекта и включаемых файлов библиотеки, попробуйте этот ответ

У меня есть это в моем .emacs, что немного облегчает жизнь.

(требуется 'c-eldoc) (add-hook 'c-mode-hook' c-turn-on-eldoc-mode)

Таким образом, мне не нужно искать определения функций.

Я не так много пишу, но согласен, что TAGS также очень полезная функция.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top