| author | Adam Gomaa <adam@gomaa.us> |
| Sun Dec 18 13:13:02 2011 -0500 | |
| changeset 521 | 67f37d330ad0 |
| parent 322 | b0123230dc77 |
| permissions | -rw-r--r-- |
| gak9422e@0 | 1 |
|
| gak9422e@0 | 2 |
(defun kill-whole-line () |
| gak9422e@0 | 3 |
(interactive) |
| gak9422e@0 | 4 |
(move-beginning-of-line 1) |
| gak9422e@0 | 5 |
(kill-line 1) |
| gak9422e@0 | 6 |
) |
| gak9422e@0 | 7 |
|
| gak9422e@0 | 8 |
(defun jao-toggle-selective-display (column) |
| gak9422e@0 | 9 |
(interactive "P") |
| gak9422e@0 | 10 |
(set-selective-display |
| gak9422e@0 | 11 |
(if selective-display nil (or column 1)))) |
| gak9422e@0 | 12 |
|
| gak9422e@0 | 13 |
|
| gak9422e@0 | 14 |
|
| gak9422e@0 | 15 |
(defun diff-buffer-with-associated-file () |
| gak9422e@0 | 16 |
"View the differences between BUFFER and its associated file. |
| gak9422e@0 | 17 |
This requires the external program \"diff\" to be in your `exec-path'. |
| gak9422e@0 | 18 |
Returns nil if no differences found, 't otherwise." |
| gak9422e@0 | 19 |
(interactive) |
| gak9422e@0 | 20 |
(let ((buf-filename buffer-file-name) |
| gak9422e@0 | 21 |
(buffer (current-buffer))) |
| gak9422e@0 | 22 |
(unless buf-filename |
| gak9422e@0 | 23 |
(error "Buffer %s has no associated file" buffer)) |
| gak9422e@0 | 24 |
(let ((diff-buf (get-buffer-create |
| gak9422e@0 | 25 |
(concat "*Assoc file diff: " |
| gak9422e@0 | 26 |
(buffer-name) |
| gak9422e@0 | 27 |
"*")))) |
| gak9422e@0 | 28 |
(with-current-buffer diff-buf |
| gak9422e@0 | 29 |
(setq buffer-read-only nil) |
| gak9422e@0 | 30 |
(erase-buffer)) |
| gak9422e@0 | 31 |
(let ((tempfile (make-temp-file "buffer-to-file-diff-"))) |
| gak9422e@0 | 32 |
(unwind-protect |
| gak9422e@0 | 33 |
(progn |
| gak9422e@0 | 34 |
(with-current-buffer buffer |
| gak9422e@0 | 35 |
(write-region (point-min) (point-max) tempfile nil 'nomessage)) |
| gak9422e@0 | 36 |
(if (zerop |
| code@3 | 37 |
(apply #'call-process "diff" nil diff-buf nil |
| gak9422e@0 | 38 |
(append |
| gak9422e@0 | 39 |
(when (and (boundp 'ediff-custom-diff-options) |
| gak9422e@0 | 40 |
(stringp ediff-custom-diff-options)) |
| gak9422e@0 | 41 |
(list ediff-custom-diff-options)) |
| gak9422e@0 | 42 |
(list buf-filename tempfile)))) |
| gak9422e@0 | 43 |
(progn |
| gak9422e@0 | 44 |
(message "No differences found") |
| gak9422e@0 | 45 |
nil) |
| gak9422e@0 | 46 |
(progn |
| gak9422e@0 | 47 |
(with-current-buffer diff-buf |
| gak9422e@0 | 48 |
(goto-char (point-min)) |
| gak9422e@0 | 49 |
(if (fboundp 'diff-mode) |
| gak9422e@0 | 50 |
(diff-mode) |
| gak9422e@0 | 51 |
(fundamental-mode))) |
| gak9422e@0 | 52 |
(display-buffer diff-buf) |
| gak9422e@0 | 53 |
t))) |
| gak9422e@0 | 54 |
(when (file-exists-p tempfile) |
| gak9422e@0 | 55 |
(delete-file tempfile))))))) |
| gak9422e@0 | 56 |
|
| gak9422e@0 | 57 |
;; tidy up diffs when closing the file |
| gak9422e@0 | 58 |
(defun kill-associated-diff-buf () |
| gak9422e@0 | 59 |
(let ((buf (get-buffer (concat "*Assoc file diff: " |
| gak9422e@0 | 60 |
(buffer-name) |
| gak9422e@0 | 61 |
"*")))) |
| gak9422e@0 | 62 |
(when (bufferp buf) |
| gak9422e@0 | 63 |
(kill-buffer buf)))) |
| gak9422e@0 | 64 |
|
| gak9422e@0 | 65 |
(add-hook 'kill-buffer-hook 'kill-associated-diff-buf) |
| gak9422e@0 | 66 |
|
| gak9422e@0 | 67 |
(defun de-context-kill (arg) |
| gak9422e@0 | 68 |
"Kill buffer, taking gnuclient into account." |
| gak9422e@0 | 69 |
(interactive "p") |
| gak9422e@0 | 70 |
(when (and (buffer-modified-p) |
| gak9422e@0 | 71 |
buffer-file-name |
| gak9422e@0 | 72 |
(not (string-match "\\*.*\\*" (buffer-name))) |
| gak9422e@0 | 73 |
;; erc buffers will be automatically saved |
| gak9422e@0 | 74 |
(not (eq major-mode 'erc-mode)) |
| gak9422e@0 | 75 |
(= 1 arg)) |
| gak9422e@0 | 76 |
(let ((differences 't)) |
| gak9422e@0 | 77 |
(when (file-exists-p buffer-file-name) |
| gak9422e@0 | 78 |
(setq differences (diff-buffer-with-associated-file))) |
| gak9422e@0 | 79 |
(error (if differences |
| gak9422e@0 | 80 |
"Buffer has unsaved changes" |
| gak9422e@0 | 81 |
"Buffer has unsaved changes, but no differences wrt. the file")))) |
| gak9422e@0 | 82 |
(if (and (boundp 'gnuserv-minor-mode) |
| gak9422e@0 | 83 |
gnuserv-minor-mode) |
| gak9422e@0 | 84 |
(gnuserv-edit) |
| gak9422e@0 | 85 |
(set-buffer-modified-p nil) |
| gak9422e@0 | 86 |
(kill-buffer (current-buffer)))) |
| gak9422e@0 | 87 |
|
| gak9422e@0 | 88 |
|
| code@2 | 89 |
(fset 'lparen |
| code@2 | 90 |
(lambda (&optional arg) "Keyboard macro." (interactive "p") (kmacro-exec-ring-item (quote ("\\left(" 0 "%d")) arg)))
|
| code@2 | 91 |
(fset 'rparen |
| code@2 | 92 |
(lambda (&optional arg) "Keyboard macro." (interactive "p") (kmacro-exec-ring-item (quote ("\\right)" 0 "%d")) arg)))
|
| code@2 | 93 |
|
| code@3 | 94 |
(defun my-list-buffers (&optional files-only) |
| code@3 | 95 |
"Opens list-buffers and put focus on it" |
| code@3 | 96 |
(interactive "P") |
| code@3 | 97 |
(let ((b (list-buffers-noselect files-only))) |
| code@3 | 98 |
(display-buffer b) |
| code@6 | 99 |
(pop-to-buffer b) |
| code@6 | 100 |
(delete-other-windows))) |
| code@3 | 101 |
|
| code@35 | 102 |
|
| code@71 | 103 |
(defun jao-toggle-selective-display (column) |
| code@71 | 104 |
(interactive "P") |
| code@71 | 105 |
(set-selective-display |
| code@71 | 106 |
(if selective-display nil (or column 1)))) |
| code@71 | 107 |
|
| code@88 | 108 |
(defun really-revert-buffer () |
| code@88 | 109 |
"Revert the buffer without asking for confirmation." |
| code@88 | 110 |
(interactive) |
| code@88 | 111 |
(revert-buffer t t t)) |
| code@71 | 112 |
|
| code@133 | 113 |
(defun close-project (project) |
| code@133 | 114 |
"Filesets never seems to work." |
| code@133 | 115 |
(interactive "P") |
| code@133 | 116 |
(dolist (buffer (buffer-list)) |
| code@133 | 117 |
(with-current-buffer buffer |
| code@133 | 118 |
(if (and (buffer-file-name) |
| code@133 | 119 |
(string-match project (buffer-file-name))) |
| code@133 | 120 |
(kill-buffer buffer))))) |
| code@133 | 121 |
|
| code@290 | 122 |
(defun my-clean-line (foo) |
| code@290 | 123 |
(interactive "P") |
| code@290 | 124 |
(indent-for-tab-command) |
| code@290 | 125 |
(move-end-of-line nil) |
| code@290 | 126 |
(delete-horizontal-space) |
| code@290 | 127 |
(next-logical-line)) |
| code@133 | 128 |
|
| code@291 | 129 |
(defun insert-time-stamp () |
| code@291 | 130 |
(interactive) |
| code@291 | 131 |
(insert-and-inherit (time-stamp-yyyy/mm/dd) " - "(time-stamp-hh:mm:ss)) |
| code@291 | 132 |
(newline)) |
| code@291 | 133 |
|
| gak9422e@0 | 134 |
(provide 'ag-functions) |