View difference between Paste ID: AUenTCfG and Q0e5ePtZ
SHOW: | | - or go back to the newest paste.
1
(defun delete-blank-lines-or-char ()
2
  (interactive)
3
  (cond
4
   ((region-active-p) (delete-region (region-beginning) (region-end)))
5-
   ((smart-delete-pairs-around))
5+
6
   ((looking-at "\\s-*\n[\\s-]*") (just-one-space) (delete-char 1) (just-one-space))
7
   ((looking-at "  ") (just-one-space))
8
   (t (delete-char 1)))
9
  )
10
11
(global-set-key [delete] 'delete-blank-lines-or-char)
12
13
(defadvice delete-blank-lines-or-char (around smart-delete-parenthesis activate)
14
  (cond
15
   ((looking-at ")")
16
    (save-excursion
17
      (forward-char 1)
18
      (backward-list 1)
19
      (delete-char 1))
20
    (delete-char 1))
21
   ((looking-at "(")
22
    (save-excursion
23
      (forward-list 1)
24
      (delete-char -1))
25
    (delete-char 1))
26
   (t ad-do-it))
27
  )