Emacs - remove smartparens and use electric-pair-mode instead, add c style
[dotfiles.git] / emacs.d / config.org
index cd3133a..76330ed 100644 (file)
@@ -120,6 +120,11 @@ Make a temp directory for all cache/history files
   (setq large-file-warning-threshold nil)
 #+END_SRC
 
+*** Xterm mode
+#+BEGIN_SRC emacs-lisp :tangle yes :results silent
+  (unless (display-graphic-p)
+    (xterm-mouse-mode))
+#+END_SRC
 * Package Management Tools
 ** Use-package
 Using [[https://github.com/jwiegley/use-package][use-package]] to manage emacs packages
@@ -1170,12 +1175,13 @@ extend org-mode's easy templates, refer to [[http://coldnew.github.io/coldnew-em
 *** variable-pitch-mode and fixed-pitch-mode
 [[https://yoo2080.wordpress.com/2013/05/30/monospace-font-in-tables-and-source-code-blocks-in-org-mode-proportional-font-in-other-parts/][monospace font in tables and source code blocks in org-mode, proportional font in other parts]]
 #+BEGIN_SRC emacs-lisp :tangle yes :results silent
-  (unless (find-font (font-spec :name "Ubuntu Mono"))
-    (warn "Font not found Ubuntu Mono"))
-  (unless (find-font (font-spec :name "Source Code Pro"))
-    (warn "Font not found Source Code Pro"))
-  (unless (find-font (font-spec :name "Source Sans Pro"))
-    (warn "Font not found Source Sans Pro"))
+  (when (display-graphic-p)
+    (unless (find-font (font-spec :name "Ubuntu Mono"))
+      (warn "Font not found Ubuntu Mono"))
+    (unless (find-font (font-spec :name "Source Code Pro"))
+      (warn "Font not found Source Code Pro"))
+    (unless (find-font (font-spec :name "Source Sans Pro"))
+      (warn "Font not found Source Sans Pro")))
 
   (set-face-attribute 'variable-pitch nil :font "Source Sans Pro" :height 160)
   (set-face-attribute 'fixed-pitch nil :font "Source Code Pro" :height (face-attribute 'default :height))
@@ -1206,14 +1212,26 @@ extend org-mode's easy templates, refer to [[http://coldnew.github.io/coldnew-em
   ;;   (require 'org-indent)
   ;;   (set-face-attribute 'org-indent nil :inherit '(org-hide fixed-pitch)))
 
-  (with-eval-after-load "org"
-    (let ((default-font-size (- (face-attribute 'default :height) 20)))
-      (set-face-attribute 'org-code nil :height default-font-size)
-      (set-face-attribute 'org-block nil :height default-font-size)
-      (set-face-attribute 'org-table nil :family "Ubutu Mono" :height default-font-size)
-      (set-face-attribute 'org-formula nil :family "Ubutu Mono" :height default-font-size)
-      (set-face-attribute 'org-block-begin-line nil :background nil :foreground nil :inherit 'shadow :slant 'italic :height default-font-size)
-      (set-face-attribute 'org-block-end-line nil :background nil :foreground nil :inherit 'shadow :slant 'italic :height default-font-size)))
+  ;; (with-eval-after-load "org"
+  ;;   (let ((default-font-size (- (face-attribute 'default :height) (if (display-graphic-p) 20 0))))
+  ;;     (set-face-attribute 'org-code nil :height default-font-size)
+  ;;     (set-face-attribute 'org-block nil :height default-font-size)
+  ;;     (set-face-attribute 'org-block-begin-line nil :background nil :foreground nil :inherit 'shadow :slant 'italic :height default-font-size)
+  ;;     (set-face-attribute 'org-block-end-line nil :background nil :foreground nil :inherit 'shadow :slant 'italic :height default-font-size)
+  ;;     (when (find-font (font-spec :name "Ubuntu Mono"))
+  ;;       (set-face-attribute 'org-table nil :family "Ubutu Mono" :height default-font-size)
+  ;;       (set-face-attribute 'org-formula nil :family "Ubutu Mono" :height default-font-size))))
+
+  (add-hook 'org-mode-hook
+            (lambda ()
+              (let ((default-font-size (- (face-attribute 'default :height) (if (display-graphic-p) 20 0))))
+                (set-face-attribute 'org-code nil :height default-font-size)
+                (set-face-attribute 'org-block nil :height default-font-size)
+                (set-face-attribute 'org-block-begin-line nil :background nil :foreground nil :inherit 'shadow :slant 'italic :height default-font-size)
+                (set-face-attribute 'org-block-end-line nil :background nil :foreground nil :inherit 'shadow :slant 'italic :height default-font-size)
+                (when (find-font (font-spec :name "Ubuntu Mono"))
+                  (set-face-attribute 'org-table nil :family "Ubutu Mono" :height default-font-size)
+                  (set-face-attribute 'org-formula nil :family "Ubutu Mono" :height default-font-size)))))
 #+END_SRC
 
 Also correct the face of  =org-meta-line= in =org-table= 
@@ -1510,12 +1528,12 @@ Type =o= to go to the link
 
 ** Smart Parens
 #+BEGIN_SRC emacs-lisp :tangle yes :results silent
-  (use-package smartparens
-    :ensure t
-    :config
-    (progn
-      (require 'smartparens-config)
-      (add-hook 'prog-mode-hook 'smartparens-mode)))
+  ;; (use-package smartparens
+  ;;   :ensure t
+  ;;   :config
+  ;;   (progn
+  ;;     (require 'smartparens-config)
+  ;;     (add-hook 'prog-mode-hook 'smartparens-mode)))
 #+END_SRC
 
 ** Ace-Windows
@@ -2256,8 +2274,8 @@ C/C++ ide tools
 3. tags jump
 *** c/c++ style
 #+BEGIN_SRC emacs-lisp :tangle yes :results silent
-  (setq c-default-style "stroustrup"
-        c-basic-offset 4)
+  ;; (setq c-default-style "stroustrup"
+  ;;       c-basic-offset 4)
 
   ;; "C-M-j" is my global binding for avy goto line below
   ;; disable it in c mode
@@ -2271,6 +2289,31 @@ C/C++ ide tools
   (add-to-list 'auto-mode-alist '("\\.mm\\'" . objc-mode))
 
   (setq c-hungry-delete-key t)
+
+
+  ;; Looks `c-hanging-braces-alist' doesn't work as expected when  `electric-pair-mode' is enabled.
+  (electric-pair-mode 1)
+
+  (defconst sd/c-style
+    '("stroustrup"
+      (c-tab-always-indent . t)
+      (c-basic-offset . 4)
+      (c-hanging-braces-alist . ((substatement-open before)
+                                 (statement-block-intro before)))
+      (c-hanging-colons-alist . ())
+      (c-echo-syntactic-information-p . nil)
+      (c-hanging-semi&comma-criteria . ()))
+    "My C programming style")
+
+  (c-add-style "sd-c-style" sd/c-style)
+
+  (setq c-default-style "sd-c-style")
+
+  (add-hook 'c-mode-hook '(lambda ()
+                            (c-toggle-auto-newline 1)
+                            (c-set-style "sd-c-style")))
+
+  ;; (advice-add 'c-electric-brace :after (lambda (arg) "Add new line after insert {}" (newline-and-indent)))
 #+END_SRC
 
 *** irony
@@ -2648,12 +2691,12 @@ Emacs lisp auto-insert, based on the default module in =autoinsert.el=, but repl
            ("\\.markdown\\'" . markdown-mode))
     :init (setq markdown-command "multimarkdown"))
 
-  (add-hook 'gfm-mode-hook (lambda ()
-                             (set-face-attribute 'markdown-inline-code-face nil :inherit 'fixed-pitch)
-                             (set-face-attribute 'markdown-pre-face nil :inherit 'fixed-pitch)))
-  (with-eval-after-load "gfm-mode"
-    (set-face-attribute 'markdown-inline-code-face nil :inherit 'fixed-pitch)
-    (set-face-attribute 'markdown-pre-face nil :inherit 'fixed-pitch))
+  ;; (add-hook 'gfm-mode-hook (lambda ()
+  ;;                            (set-face-attribute 'markdown-inline-code-face nil :inherit 'fixed-pitch)
+  ;;                            (set-face-attribute 'markdown-pre-face nil :inherit 'fixed-pitch)))
+  ;; (with-eval-after-load "gfm-mode"
+  ;;   (set-face-attribute 'markdown-inline-code-face nil :inherit 'fixed-pitch)
+  ;;   (set-face-attribute 'markdown-pre-face nil :inherit 'fixed-pitch))
 #+END_SRC
 
 #+BEGIN_SRC emacs-lisp :tangle yes :results silent
@@ -3666,6 +3709,7 @@ blog with modify list
 
 draw one line top of the windows
 * test
+This is a test.
 #+BEGIN_SRC emacs-lisp :tangle yes :results silent
   ;; test local mode line
   ;; (add-to-list 'load-path "~/.emacs.d/elisp")