.emacs-my
changeset 1635 d231b87af643
parent 1634 1c19f4e2ac19
child 1636 fbef0a487803
equal deleted inserted replaced
1634:1c19f4e2ac19 1635:d231b87af643
   637 
   637 
   638 (setq term-scroll-show-maximum-output t)
   638 (setq term-scroll-show-maximum-output t)
   639 
   639 
   640 (my--eval-after-load term
   640 (my--eval-after-load term
   641   (define-key term-mode-map [?\t] #'term-dynamic-complete)
   641   (define-key term-mode-map [?\t] #'term-dynamic-complete)
   642 
       
   643   (defun my-term-send-delete-word-forward () (interactive) (term-send-raw-string "\ed"))
   642   (defun my-term-send-delete-word-forward () (interactive) (term-send-raw-string "\ed"))
   644   (defun my-term-send-delete-word-backward () (interactive) (term-send-raw-string "\e\C-h"))
   643   (defun my-term-send-delete-word-backward () (interactive) (term-send-raw-string "\e\C-h"))
   645   (define-key term-raw-map [C-delete] 'my-term-send-delete-word-forward)
   644   (define-key term-raw-map [C-delete] 'my-term-send-delete-word-forward)
   646   (define-key term-raw-map [C-backspace] 'my-term-send-delete-word-backward)
   645   (define-key term-raw-map [C-backspace] 'my-term-send-delete-word-backward)
   647   (defun my-term-send-forward-word () (interactive) (term-send-raw-string "\ef"))
   646   (defun my-term-send-forward-word () (interactive) (term-send-raw-string "\ef"))
   917 (defvar pc-select-selection-keys-only)
   916 (defvar pc-select-selection-keys-only)
   918 (defvar pc-select-meta-moves-sexps)
   917 (defvar pc-select-meta-moves-sexps)
   919 (when (<= emacs-major-version 23)
   918 (when (<= emacs-major-version 23)
   920   ;; 1/-1, when the mark is active, the region is highlighted.
   919   ;; 1/-1, when the mark is active, the region is highlighted.
   921   (transient-mark-mode 1)
   920   (transient-mark-mode 1)
   922 
       
   923   ;; Order of next items is important, (assignment must done before pc-selection-mode enabled).
   921   ;; Order of next items is important, (assignment must done before pc-selection-mode enabled).
   924   (require 'pc-select)
   922   (require 'pc-select)
   925   (setq pc-select-selection-keys-only t)  ; To avoid some key bindings as F6, etc.
   923   (setq pc-select-selection-keys-only t)  ; To avoid some key bindings as F6, etc.
   926   (setq pc-select-meta-moves-sexps t)
   924   (setq pc-select-meta-moves-sexps t)
   927   (pc-selection-mode 1) )
   925   (pc-selection-mode 1) )
  1902       (concat (file-name-sans-extension path) "_." (file-name-extension path))
  1900       (concat (file-name-sans-extension path) "_." (file-name-extension path))
  1903     nil))
  1901     nil))
  1904 
  1902 
  1905 (defun my-org-archive-file (path)
  1903 (defun my-org-archive-file (path)
  1906   "Move marked by `org-done-keywords' entries to archive file.
  1904   "Move marked by `org-done-keywords' entries to archive file.
  1907 
  1905 .
  1908 Archive file name constructed by `my-org-archive-location'."
  1906 Archive file name constructed by `my-org-archive-location'."
  1909   (let ( (archive (my-org-archive-location path))
  1907   (let ( (archive (my-org-archive-location path))
  1910          entry-re entry-done-re
  1908          entry-re entry-done-re
  1911          entry-beg entry-end )
  1909          entry-beg entry-end )
  1912     (unless archive
  1910     (unless archive
  1936           (save-buffer) )))))
  1934           (save-buffer) )))))
  1937 
  1935 
  1938 (defun my-org-archive (&optional prefix)
  1936 (defun my-org-archive (&optional prefix)
  1939   "Move all entries marked by `org-done-keywords' to archive
  1937   "Move all entries marked by `org-done-keywords' to archive
  1940 files with name mangled by `my-org-archive-location'.
  1938 files with name mangled by `my-org-archive-location'.
  1941 
  1939 .
  1942 Without prefix work on current file. With prefix work on
  1940 Without prefix work on current file. With prefix work on
  1943 `org-agenda-files'."
  1941 `org-agenda-files'."
  1944   (interactive "P")
  1942   (interactive "P")
  1945   (loop for file in (if prefix (org-agenda-files) (list (buffer-file-name))) do
  1943   (loop for file in (if prefix (org-agenda-files) (list (buffer-file-name))) do
  1946         (my-org-archive-file file)))
  1944         (my-org-archive-file file)))
  2848          (and (= emacs-major-version 23) (>= emacs-minor-version 2))
  2846          (and (= emacs-major-version 23) (>= emacs-minor-version 2))
  2849          (>= emacs-major-version 24) )
  2847          (>= emacs-major-version 24) )
  2850     (require 'cedet)
  2848     (require 'cedet)
  2851     (require 'mode-local)))
  2849     (require 'mode-local)))
  2852 
  2850 
       
  2851 (defun my-srecode-reload-templates ()
       
  2852   "Reload all templates under `srecode-map-load-path'. Useful
       
  2853 during template developing."
       
  2854   (interactive)
       
  2855   (setq srecode-mode-table-list nil
       
  2856         srecode-current-map nil)
       
  2857   (srecode-map-update-map) )
       
  2858 
       
  2859 (defun my-c-mode-cedet-hook ()
       
  2860   ;; (local-set-key [C-return] 'semantic-complete-symbol)
       
  2861   ;; (local-set-key [C-return] 'semantic-complete-analyze-inline)
       
  2862   ;; (local-set-key "." 'semantic-complete-self-insert)
       
  2863   ;; (local-set-key ">" 'semantic-complete-self-insert)
       
  2864   )
       
  2865 (add-hook 'c-mode-common-hook 'my-c-mode-cedet-hook)
       
  2866 
  2853 (when (featurep 'cedet)
  2867 (when (featurep 'cedet)
  2854   (require 'semantic)
  2868   (require 'semantic)
  2855 
       
  2856   (global-semantic-idle-scheduler-mode 1)
  2869   (global-semantic-idle-scheduler-mode 1)
  2857   (global-semantic-idle-summary-mode 1)
  2870   (global-semantic-idle-summary-mode 1)
  2858   (global-semantic-idle-completions-mode -1)
  2871   (global-semantic-idle-completions-mode -1)
  2859   (global-semantic-mru-bookmark-mode 1)
  2872   (global-semantic-mru-bookmark-mode 1)
  2860   ;; (setq semantic-stickyfunc-sticky-classes '(function type variable include package))
  2873   ;; (setq semantic-stickyfunc-sticky-classes '(function type variable include package))
  2861   (global-semantic-stickyfunc-mode -1)
  2874   (global-semantic-stickyfunc-mode -1)
  2862   (global-semantic-highlight-func-mode -1)
  2875   (global-semantic-highlight-func-mode -1)
  2863   (global-semantic-decoration-mode 1)
  2876   (global-semantic-decoration-mode 1)
  2864   (when (fboundp 'global-semantic-idle-local-symbol-highlight-mode)
  2877   (when (fboundp 'global-semantic-idle-local-symbol-highlight-mode)
  2865     (global-semantic-idle-local-symbol-highlight-mode 1))
  2878     (global-semantic-idle-local-symbol-highlight-mode 1))
  2866 
       
  2867   (setq semantic-idle-scheduler-idle-time 10)
  2879   (setq semantic-idle-scheduler-idle-time 10)
  2868   (setq semantic-idle-scheduler-work-idle-time 60)
  2880   (setq semantic-idle-scheduler-work-idle-time 60)
  2869   (setq semantic-idle-scheduler-max-buffer-size 100000)
  2881   (setq semantic-idle-scheduler-max-buffer-size 100000)
  2870   ;; (setq semantic-idle-work-parse-neighboring-files-flag nil)
  2882   ;; (setq semantic-idle-work-parse-neighboring-files-flag nil)
  2871 
       
  2872   ;; semantic-dependency-system-include-path, semantic-customize-system-include-path
  2883   ;; semantic-dependency-system-include-path, semantic-customize-system-include-path
  2873 
       
  2874   ;; file local project unloaded system recursive
  2884   ;; file local project unloaded system recursive
  2875   (setq-mode-local c-mode semanticdb-find-default-throttle '(file local))
  2885   (setq-mode-local c-mode semanticdb-find-default-throttle '(file local))
  2876   (add-hook 'c-mode-hook (lambda nil (semantic-add-system-include "~/.emacs.d/include" 'c-mode)))
  2886   (add-hook 'c-mode-hook (lambda nil (semantic-add-system-include "~/.emacs.d/include" 'c-mode)))
  2877   (add-hook 'c-mode-hook (lambda nil (semantic-add-system-include "~/.emacs.d/include" 'c++-mode)))
  2887   (add-hook 'c-mode-hook (lambda nil (semantic-add-system-include "~/.emacs.d/include" 'c++-mode)))
  2878   (global-semanticdb-minor-mode 1)
  2888   (global-semanticdb-minor-mode 1)
  2879 
       
  2880   (ignore-errors
  2889   (ignore-errors
  2881     (global-cedet-m3-minor-mode 1))
  2890     (global-cedet-m3-minor-mode 1))
  2882 
       
  2883   (semantic-mode 1)
  2891   (semantic-mode 1)
  2884   (global-ede-mode 1)
  2892   (global-ede-mode 1)
  2885 
       
  2886   (require 'srecode)
  2893   (require 'srecode)
  2887   (defvar srecode-map-load-path nil)
  2894   (defvar srecode-map-load-path nil)
  2888   (add-to-list 'srecode-map-load-path (locate-user-emacs-file "srecode/"))
  2895   (add-to-list 'srecode-map-load-path (locate-user-emacs-file "srecode/"))
  2889   (global-srecode-minor-mode 1)
  2896   (global-srecode-minor-mode 1)
  2890   (add-hook 'prog-mode-hook 'srecode-minor-mode)
  2897   (add-hook 'prog-mode-hook 'srecode-minor-mode)
  2891 
       
  2892   (defun my-srecode-reload-templates ()
       
  2893     "Reload all templates under `srecode-map-load-path'. Useful
       
  2894 during template developing."
       
  2895     (interactive)
       
  2896     (setq srecode-mode-table-list nil
       
  2897           srecode-current-map nil)
       
  2898     (srecode-map-update-map) )
       
  2899 
       
  2900   (ignore-errors
  2898   (ignore-errors
  2901     (cedet-ectag-version-check)
  2899     (cedet-ectag-version-check)
  2902     (semantic-load-enable-primary-ectags-support))
  2900     (semantic-load-enable-primary-ectags-support))
  2903   (ignore-errors
  2901   (ignore-errors
  2904     (cedet-gnu-global-version-check)
  2902     (cedet-gnu-global-version-check)
  2905     (require 'cedet-global)
  2903     (require 'cedet-global)
  2906     (semanticdb-enable-gnu-global-databases 'c-mode)
  2904     (semanticdb-enable-gnu-global-databases 'c-mode)
  2907     (semanticdb-enable-gnu-global-databases 'c++-mode))
  2905     (semanticdb-enable-gnu-global-databases 'c++-mode))
  2908 
       
  2909   (ignore-errors
  2906   (ignore-errors
  2910     (require 'cedet-java))
  2907     (require 'cedet-java))
  2911 
       
  2912   (setq project-linux-build-directory-default 'same
  2908   (setq project-linux-build-directory-default 'same
  2913         project-linux-architecture-default "x86")
  2909         project-linux-architecture-default "x86")
  2914 
       
  2915   ;; (require 'semantic/db-javap)
  2910   ;; (require 'semantic/db-javap)
  2916 
       
  2917   ;; (add-to-list 'ede-locate-setup-options 'ede-locate-idutils)
  2911   ;; (add-to-list 'ede-locate-setup-options 'ede-locate-idutils)
  2918   ;; (add-to-list 'ede-locate-setup-options 'ede-locate-global)
  2912   ;; (add-to-list 'ede-locate-setup-options 'ede-locate-global)
  2919 
       
  2920   ;; (ignore-errors (require 'cedet-idutils))
  2913   ;; (ignore-errors (require 'cedet-idutils))
  2921 
       
  2922   (defun my-c-mode-cedet-hook ()
       
  2923     ;; (local-set-key [C-return] 'semantic-complete-symbol)
       
  2924     ;; (local-set-key [C-return] 'semantic-complete-analyze-inline)
       
  2925     ;; (local-set-key "." 'semantic-complete-self-insert)
       
  2926     ;; (local-set-key ">" 'semantic-complete-self-insert)
       
  2927     )
       
  2928   (add-hook 'c-mode-common-hook 'my-c-mode-cedet-hook)
       
  2929 
       
  2930   (ignore-errors
  2914   (ignore-errors
  2931     (require 'semantic/ia)
  2915     (require 'semantic/ia)
  2932     (define-key semantic-mode-map (kbd "C-c , .") 'semantic-ia-fast-jump)
  2916     (define-key semantic-mode-map (kbd "C-c , .") 'semantic-ia-fast-jump)
  2933     (define-key semantic-mode-map (kbd "C-c , d") 'semantic-ia-show-doc)
  2917     (define-key semantic-mode-map (kbd "C-c , d") 'semantic-ia-show-doc)
  2934     (define-key semantic-mode-map (kbd "C-c , D") 'semantic-ia-show-summary)
  2918     (define-key semantic-mode-map (kbd "C-c , D") 'semantic-ia-show-summary)