завершения emacs или IntelliSense то же как на Visual Studio

@Matt Sheppard:

Говорят, что у Вас есть таблица клиентов. Конечно, Вы не хотите, чтобы клиент существовал в таблице несколько раз, или много беспорядка произойдет в течение Ваших продаж и отделов логистики (особенно, если несколько строк о клиенте будут содержать различную информацию).

, Таким образом, у Вас есть потребительский идентификатор, который однозначно определяет клиента и Вы удостоверяетесь, что идентификатор известен клиенту (в счетах), так, чтобы у клиента и людей обслуживания клиентов была общая ссылка в случае, если они должны связаться. Для гарантии дублированных потребительских записей Вы добавляете ограничение уникальности к таблице, или через первичный ключ на потребительском идентификаторе или через NOT NULL + ограничение UNIQUE на потребительский столбец идентификатора.

Затем, по некоторым причинам (о котором я не могу думать), Вас просят добавить столбец GUID к потребительской таблице и сделать это первичным ключом. Если потребительский столбец идентификатора теперь оставляют без гарантии уникальности, Вы просите будущую проблему всюду по организации, потому что GUID всегда будут уникальны.

Некоторый "архитектор" мог бы сказать Вам, что, "о, но мы обрабатываем реальный потребительское ограничение уникальности в нашем уровне приложений!". Право. Вид относительно тот языки программирования общего назначения и изменения платформ (особенно) среднего уровня все время, и никогда не будет обычно переживать Вашу базу данных. И существует очень хороший шанс, что необходимо будет в какой-то момент получить доступ к базе данных, не проходя существующее приложение. == Проблема. (Но к счастью, Вы и "архитектор" давно в прошлом, таким образом, Вы не будете там для разгребания бардак.), Другими словами: Действительно поддержите очевидные ограничения в базе данных (и в других уровнях, также, если у Вас есть время).

, Другими словами: могут быть серьезные основания добавить столбцы GUID к таблицам, но не попадайтесь на искушение заставить это понизить Ваши стремления к непротиворечивости в реальный (== не-GUID) информация.

8
задан jprete 29 October 2009 в 15:28
поделиться

6 ответов

Я использую 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 /

Удачи.

4
ответ дан 5 December 2019 в 09:26
поделиться

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

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

http : //ecb.sourceforge.net/

6
ответ дан 5 December 2019 в 09:26
поделиться

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

Поиск тегов.

3
ответ дан 5 December 2019 в 09:26
поделиться

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

5
ответ дан 5 December 2019 в 09:26
поделиться

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

0
ответ дан 5 December 2019 в 09:26
поделиться

У меня есть это в моем .emacs, что немного упрощает работу.

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

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

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

0
ответ дан 5 December 2019 в 09:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: