.emacs-my
changeset 1589 ae79beae573a
parent 1588 a2f88a6df8ab
child 1592 58938ef683aa
equal deleted inserted replaced
1588:a2f88a6df8ab 1589:ae79beae573a
   253  my-mode2modemap
   253  my-mode2modemap
   254  "Convert TREE of modes to TREE of keymaps for these modes. Single symbol allowed."
   254  "Convert TREE of modes to TREE of keymaps for these modes. Single symbol allowed."
   255  (lambda (symb) (intern (concat (symbol-name symb) "-map")))
   255  (lambda (symb) (intern (concat (symbol-name symb) "-map")))
   256  )
   256  )
   257 
   257 
   258 (defvar my-devel-mode-list
   258 (defvar my-prog-mode-list
   259   '(
   259   '(nsis-mode
   260     sh-mode script-mode tcl-mode
       
   261     c-mode c++-mode java-mode js-mode
       
   262     python-mode perl-mode cperl-mode
       
   263     lisp-mode
       
   264     sql-mode
       
   265     emacs-lisp-mode
       
   266     makefile-mode makefile-gmake-mode
       
   267     nsis-mode
       
   268     bat-generic-mode
       
   269     html-mode nxml-mode wesnoth-mode
   260     html-mode nxml-mode wesnoth-mode
   270     LilyPond-mode
   261     LilyPond-mode
   271     texinfo-mode
   262     texinfo-mode
   272     gadict-mode
   263     gadict-mode)
   273     )
       
   274   "List of development modes.")
   264   "List of development modes.")
   275 
   265 
   276 (defvar my-devel-mode-hook-list
   266 (defvar my-prog-hook-list
   277    (my-mode2hook my-devel-mode-list)
   267    (my-mode2hook my-prog-mode-list)
   278   "List of development mode hooks.")
   268   "List of development mode hooks.")
   279 
   269 
   280 (defvar my-scroll-margin-mode-list
       
   281   '(
       
   282     vc-dir-mode
       
   283     recentf-dialog-mode
       
   284     org-agenda-grid-mode           ; XXX for this item not worked!
       
   285     log-view-mode
       
   286     dired-mode
       
   287     compilation-mode
       
   288     conf-mode
       
   289     )
       
   290   "List of modes for enabling scroll margin.")
       
   291 
       
   292 (defvar my-scroll-margin-mode-hook-list
       
   293   (my-mode2hook my-scroll-margin-mode-list)
       
   294   "List of mode hooks for enabling scroll margin.")
       
   295 
       
   296 (defvar my-text-mode-list
   270 (defvar my-text-mode-list
   297   '(
   271   '(text-mode
   298     text-mode
       
   299     outline-mode
   272     outline-mode
   300     rst-mode
   273     rst-mode
   301     diff-mode
   274     diff-mode
   302     dict-c5-mode
   275     dict-c5-mode)
   303     )
       
   304   "List of text modes.")
   276   "List of text modes.")
   305 
   277 
   306 (defvar my-text-mode-hook-list
   278 (defvar my-text-mode-hook-list
   307   (my-mode2hook my-text-mode-list)
   279   (my-mode2hook my-text-mode-list)
   308   "List of text mode hooks.")
   280   "List of text mode hooks.")
   670 (setq-default indicate-buffer-boundaries 'left)
   642 (setq-default indicate-buffer-boundaries 'left)
   671 
   643 
   672 ;; (setq-default show-trailing-whitespace t)
   644 ;; (setq-default show-trailing-whitespace t)
   673 
   645 
   674 (setq whitespace-style '(face trailing tabs))
   646 (setq whitespace-style '(face trailing tabs))
   675 (setq whitespace-global-modes (append my-devel-mode-list my-text-mode-list))
   647 (setq whitespace-global-modes t)
   676 (ignore-errors
   648 (ignore-errors
   677   (require 'whitespace)
   649   (require 'whitespace)
   678   (global-whitespace-mode 1))
   650   (global-whitespace-mode 1))
   679 
   651 
   680 (setq next-line-add-newlines nil)
   652 (setq next-line-add-newlines nil)
   799  ;; will always scroll just enough text to bring point into view
   771  ;; will always scroll just enough text to bring point into view
   800  scroll-conservatively 1000
   772  scroll-conservatively 1000
   801  scroll-preserve-screen-position t
   773  scroll-preserve-screen-position t
   802  )
   774  )
   803 
   775 
       
   776 (defvar my-scroll-margin-mode-list
       
   777   '(vc-dir-mode
       
   778     recentf-dialog-mode
       
   779     org-agenda-grid-mode           ; XXX for this item not worked!
       
   780     log-view-mode
       
   781     dired-mode
       
   782     compilation-mode
       
   783     conf-mode)
       
   784   "List of modes for enabling scroll margin.")
       
   785 
   804 ;; Set margin only for desired modes! Do not frustrate calendar any more.
   786 ;; Set margin only for desired modes! Do not frustrate calendar any more.
   805 (make-variable-buffer-local 'scroll-margin)
   787 (make-variable-buffer-local 'scroll-margin)
   806 (mapc (lambda (hook) (add-hook hook (lambda nil (setq scroll-margin my-scroll-margin))))
   788 (defun my-set-scroll-margin () (setq scroll-margin my-scroll-margin))
   807       (delete-dups (append my-text-mode-hook-list my-devel-mode-hook-list my-scroll-margin-mode-hook-list)) )
   789 (mapc (lambda (hook) (add-hook hook #'my-set-scroll-margin))
       
   790       (delete-dups (append my-text-mode-hook-list
       
   791                            my-prog-hook-list
       
   792                            (my-mode2hook my-scroll-margin-mode-list)
       
   793                            '(prog-mode-hook))) )
   808 
   794 
   809 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   795 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   810 (message "chars, unicode")
   796 (message "chars, unicode")
   811 
   797 
   812 (defun my-print-unicode (&optional start end)
   798 (defun my-print-unicode (&optional start end)
  1925       (apply #'kill-region r))))
  1911       (apply #'kill-region r))))
  1926 
  1912 
  1927 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  1913 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  1928 (message "TODO, XXX, FIXME highlight")
  1914 (message "TODO, XXX, FIXME highlight")
  1929 
  1915 
  1930 (dolist (mode (append my-devel-mode-list my-text-mode-list))
  1916 (defvar my-todo-words '("TODO" "FIX" "FIXME" "HACK" "XXX" "EDITED"))
       
  1917 
       
  1918 (defun my-todo (&optional mode)
       
  1919   (interactive)
  1931   (font-lock-add-keywords
  1920   (font-lock-add-keywords
  1932    mode
  1921    mode
  1933    `(( ,(concat "\\<\\(" (regexp-opt '("TODO" "FIX" "FIXME" "HACK" "XXX" "EDITED")) ":?\\)\\>") 1 'font-lock-warning-face t)
  1922    (list (list (concat "\\<" (regexp-opt my-todo-words) "\\>") 0 'font-lock-warning-face t))))
  1934      ;; 64 times, for highlight C-u C-u C-u <key>
  1923 
  1935      ;; ("\\([^[:space:]]\\)\\1\\{63\\}" 0 'my-contrasty-face t)
  1924 (add-hook 'prog-mode-hook 'my-todo)
  1936      )))
       
  1937 
  1925 
  1938 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  1926 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  1939 (message "mail, message")
  1927 (message "mail, message")
  1940 
  1928 
  1941 (eval-when 'compile (require 'message))
  1929 (eval-when 'compile (require 'message))
  2508 
  2496 
  2509 (setq-default comment-style (quote indent))
  2497 (setq-default comment-style (quote indent))
  2510 (setq-default comment-column 44)
  2498 (setq-default comment-column 44)
  2511 (setq-default comment-fill-column my-fill-column)
  2499 (setq-default comment-fill-column my-fill-column)
  2512 
  2500 
  2513 (mapc (lambda (hook) (add-hook hook (lambda () (setq fill-column my-fill-column)) ))
  2501 (setq-default fill-column my-fill-column)
  2514       (append my-devel-mode-hook-list my-text-mode-hook-list))
  2502 
  2515 
  2503 (add-hook 'prog-mode-hook #'hs-minor-mode)
  2516 (mapc (lambda (mode) (add-hook (my-mode2hook mode) #'hs-minor-mode))
       
  2517       '(c-mode c++-mode java-mode js-mode lisp-mode emacs-lisp-mode))
       
  2518 
  2504 
  2519 (defun my-company-prog-mode-setup ()
  2505 (defun my-company-prog-mode-setup ()
  2520   (setq-local company-dabbrev-code-other-buffers 'code)
  2506   (setq-local company-dabbrev-code-other-buffers 'code)
  2521   (setq-local company-backends '((company-capf company-dabbrev-code company-files)))
  2507   (setq-local company-backends '((company-capf company-dabbrev-code company-files)))
  2522   (company-mode 1))
  2508   (company-mode 1))
  2883 (defun my-imenu-to-menubar ()
  2869 (defun my-imenu-to-menubar ()
  2884   "Force imenu building when (menu-bar-mode -1)."
  2870   "Force imenu building when (menu-bar-mode -1)."
  2885   (when imenu-generic-expression
  2871   (when imenu-generic-expression
  2886     (imenu-add-menubar-index)
  2872     (imenu-add-menubar-index)
  2887     (run-hooks 'menu-bar-update-hook) ))
  2873     (run-hooks 'menu-bar-update-hook) ))
  2888 (mapc (lambda (hook) (add-hook hook 'my-imenu-to-menubar))
  2874 (add-hook 'prog-mode-hook 'my-imenu-to-menubar)
  2889       my-devel-mode-hook-list)
       
  2890 
  2875 
  2891 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  2876 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  2892 (message "windows inf files for driver installin")
  2877 (message "windows inf files for driver installin")
  2893 
  2878 
  2894 (add-to-list 'auto-mode-alist '("\\.inf\\'" . conf-mode))
  2879 (add-to-list 'auto-mode-alist '("\\.inf\\'" . conf-mode))