дополнения к emacs или IntelliSense такие же, как в Visual Studio
-
10-07-2019 - |
Вопрос
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 - /
не совсем интеллектуален, но он перебирает известные имена.
Этот проект предоставляет выпадающие меню, к которым вы привыкли:
вам нужно взять последнюю версию пакета CEDET (лучше прямо из CVS). Вы можете настроить его, как описано в документации на этом сайте
Я думаю, что вы ищете etags. http://tulrich.com/geekstuff/emacs.html
Поиск тегов.
Если вы хотите использовать стоковые emacs для выполнения завершения из вашего проекта и включаемых файлов библиотеки, попробуйте этот ответ
У меня есть это в моем .emacs, что немного облегчает жизнь.
(требуется 'c-eldoc) (add-hook 'c-mode-hook' c-turn-on-eldoc-mode)
Таким образом, мне не нужно искать определения функций.
Я не так много пишу, но согласен, что TAGS также очень полезная функция.