diff -r 5ee3a93090f0 -r 77bbb8dc0e0c .emacs-obsolete --- a/.emacs-obsolete Sat Jan 02 19:49:06 2021 +0200 +++ b/.emacs-obsolete Sat Jan 02 20:02:16 2021 +0200 @@ -388,3 +388,100 @@ (let ( (grep-find-template "find . -type f -exec zgrep -nH -e {} +") (grep-find-ignored-files nil) ) (cl-flet ( (grep-compute-defaults () nil) ) (call-interactively #'rgrep)))) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +(message "CEDET, semantic, SRecord") + +;; For debug use 'semantic-debug-idle-function' and 'semantic-debug-idle-work-function'. + +(eval-when 'compile + (require 'cedet nil t) + (require 'srecode nil t) + (require 'srecode/table nil t) + (require 'semantic nil t) + (require 'semantic/idle nil t) + (require 'ede/linux nil t)) + +(eval-and-compile + (when (or + (and (= emacs-major-version 23) (>= emacs-minor-version 2)) + (>= emacs-major-version 24) ) + (require 'cedet) + (require 'mode-local))) + +(defun my-srecode-reload-templates () + "Reload all templates under `srecode-map-load-path'. Useful +during template developing." + (interactive) + (setq srecode-mode-table-list nil + srecode-current-map nil) + (srecode-map-update-map) ) + +(defun my-c-mode-cedet-hook () + ;; (local-set-key [C-return] 'semantic-complete-symbol) + ;; (local-set-key [C-return] 'semantic-complete-analyze-inline) + ;; (local-set-key "." 'semantic-complete-self-insert) + ;; (local-set-key ">" 'semantic-complete-self-insert) + ) +(add-hook 'c-mode-common-hook 'my-c-mode-cedet-hook) + +(when (featurep 'cedet) + (require 'semantic) + (global-semantic-idle-scheduler-mode 1) + (global-semantic-idle-summary-mode 1) + (global-semantic-idle-completions-mode -1) + (global-semantic-mru-bookmark-mode 1) + ;; (setq semantic-stickyfunc-sticky-classes '(function type variable include package)) + (global-semantic-stickyfunc-mode -1) + (global-semantic-highlight-func-mode -1) + (global-semantic-decoration-mode 1) + (when (fboundp 'global-semantic-idle-local-symbol-highlight-mode) + (global-semantic-idle-local-symbol-highlight-mode 1)) + (setq semantic-idle-scheduler-idle-time 10) + (setq semantic-idle-scheduler-work-idle-time 60) + (setq semantic-idle-scheduler-max-buffer-size 100000) + ;; (setq semantic-idle-work-parse-neighboring-files-flag nil) + ;; semantic-dependency-system-include-path, semantic-customize-system-include-path + ;; file local project unloaded system recursive + (setq-mode-local c-mode semanticdb-find-default-throttle '(file local)) + (add-hook 'c-mode-hook (lambda nil (semantic-add-system-include "~/.emacs.d/include" 'c-mode))) + (add-hook 'c-mode-hook (lambda nil (semantic-add-system-include "~/.emacs.d/include" 'c++-mode))) + (global-semanticdb-minor-mode 1) + (ignore-errors + (global-cedet-m3-minor-mode 1)) + (semantic-mode 1) + (global-ede-mode 1) + (require 'srecode) + (defvar srecode-map-load-path nil) + (add-to-list 'srecode-map-load-path (locate-user-emacs-file "srecode/")) + (global-srecode-minor-mode 1) + (add-hook 'prog-mode-hook 'srecode-minor-mode) + (ignore-errors + (cedet-ectag-version-check) + (semantic-load-enable-primary-ectags-support)) + (ignore-errors + (cedet-gnu-global-version-check) + (require 'cedet-global) + (semanticdb-enable-gnu-global-databases 'c-mode) + (semanticdb-enable-gnu-global-databases 'c++-mode)) + (ignore-errors + (require 'cedet-java)) + (setq project-linux-build-directory-default 'same + project-linux-architecture-default "x86") + ;; (require 'semantic/db-javap) + ;; (add-to-list 'ede-locate-setup-options 'ede-locate-idutils) + ;; (add-to-list 'ede-locate-setup-options 'ede-locate-global) + ;; (ignore-errors (require 'cedet-idutils)) + (ignore-errors + (require 'semantic/ia) + (define-key semantic-mode-map (kbd "C-c , .") 'semantic-ia-fast-jump) + (define-key semantic-mode-map (kbd "C-c , d") 'semantic-ia-show-doc) + (define-key semantic-mode-map (kbd "C-c , D") 'semantic-ia-show-summary) + (define-key semantic-mode-map (kbd "C-c , ?") 'semantic-ia-complete-symbol-menu) + ;; (define-key semantic-mode-map [(control return)] 'semantic-ia-complete-symbol) + ;; (define-key semantic-mode-map (kbd "C-c , C") 'semantic-ia-describe-class) + ;; semantic-decoration-include-visit + ;; semantic-analyze-proto-impl-toggle + ) + ;; END OF: (when (featurep 'cedet) ...) + )