Alien-SVN
view release on metacpan or search on metacpan
src/subversion/tools/dev/svn-dev.el view on Meta::CPAN
(put-text-property (point)
(progn (if (search-forward "\e[0m" nil 'move)
(delete-backward-char 4))
(point))
'face svn-perldoc-overstrike-face))
(goto-char (point-min))
(while (search-forward "_\b" nil t)
(backward-delete-char 2)
(put-text-property (point) (1+ (point)) 'face svn-perldoc-underline-face))
(goto-char (point-min))
(while (search-forward "\b_" nil t)
(backward-delete-char 2)
(put-text-property (1- (point)) (point) 'face svn-perldoc-underline-face))
(goto-char (point-min))
(while (re-search-forward "\\(.\\)\\(\b\\1\\)+" nil t)
(replace-match "\\1")
(put-text-property (1- (point)) (point) 'face svn-perldoc-overstrike-face))
(goto-char (point-min))
(while (re-search-forward "o\b\\+\\|\\+\bo" nil t)
(replace-match "o")
(put-text-property (1- (point)) (point) 'face 'bold))
(goto-char (point-min))
(while (re-search-forward "[-|]\\(\b[-|]\\)+" nil t)
(replace-match "+")
(put-text-property (1- (point)) (point) 'face 'bold))
(svn-perldoc-softhyphen-to-minus)
(message "Please wait, making up the page...done"))
(defun svn-perldoc-cleanup-buffer ()
"Remove overstriking and underlining from the current buffer."
(interactive)
(message "Please wait, cleaning up the page...")
(progn
(goto-char (point-min))
(while (search-forward "_\b" nil t) (backward-delete-char 2))
(goto-char (point-min))
(while (search-forward "\b_" nil t) (backward-delete-char 2))
(goto-char (point-min))
(while (re-search-forward "\\(.\\)\\(\b\\1\\)+" nil t)
(replace-match "\\1"))
(goto-char (point-min))
(while (re-search-forward "\e\\[[0-9]+m" nil t) (replace-match ""))
(goto-char (point-min))
(while (re-search-forward "o\b\\+\\|\\+\bo" nil t) (replace-match "o"))
(goto-char (point-min))
(while (re-search-forward "" nil t) (replace-match " ")))
(goto-char (point-min))
(while (re-search-forward "[-|]\\(\b[-|]\\)+" nil t) (replace-match "+"))
(svn-perldoc-softhyphen-to-minus)
(message "Please wait, cleaning up the page...done"))
;; Entry point to svn-perldoc functionality.
(defun svn-perldoc (file)
"Run perldoc on FILE, display the output in a buffer."
(interactive "fRun perldoc on file: ")
(let ((outbuf (get-buffer-create
(format "*%s PerlDoc*" (file-name-nondirectory file))))
(savepg (getenv "PAGER")))
(setenv "PAGER" "cat") ;; for perldoc
(save-excursion
(set-buffer outbuf)
(delete-region (point-min) (point-max))
(call-process "perldoc" nil outbuf nil (expand-file-name file))
(svn-perldoc-fontify-buffer)
(svn-perldoc-cleanup-buffer)
;; Clean out the inevitable leading dead space.
(goto-char (point-min))
(re-search-forward "[^ \i\n]")
(beginning-of-line)
(delete-region (point-min) (point)))
(setenv "PAGER" savepg)
(display-buffer outbuf)))
;;; Help developers write log messages.
;; How to use this: just run `svn-log-message'. You might want to
;; bind it to a key, for example,
;;
;; (define-key "\C-cl" 'svn-log-message)
;;
;; The log message will accumulate in a file. Later, you can use
;; that file when you commit:
;;
;; $ svn ci -F msg ...
(defun svn-log-path-derive (path)
"Derive a relative directory path for absolute PATH, for a log entry."
(save-match-data
(let ((base (file-name-nondirectory path))
(chop-spot (string-match
"\\(code/\\)\\|\\(src/\\)\\|\\(projects/\\)"
path)))
(if chop-spot
(progn
(setq path (substring path (match-end 0)))
;; Kluge for Subversion developers.
(if (string-match "subversion/" path)
(substring path (+ (match-beginning 0) 11))
path))
(string-match (expand-file-name "~/") path)
(substring path (match-end 0))))))
(defun svn-log-message-file ()
"Return the name of the appropriate log message accumulation file.
Usually this is just the file `msg' in the current directory, but
certain areas are treated specially, for example, the Subversion
source tree."
(save-match-data
(if (string-match "subversion" default-directory)
(concat (substring default-directory 0 (match-end 0)) "/msg")
"msg")))
(defun svn-log-message (short-file-names)
"Add to an in-progress log message, based on context around point.
If prefix arg SHORT-FILE-NAMES is non-nil, then use basenames only in
log messages, otherwise use full paths. The current defun name is
always used.
If the log message already contains material about this defun, then put
point there, so adding to that material is easy.
Else if the log message already contains material about this file, put
point there, and push onto the kill ring the defun name with log
message dressing around it, plus the raw defun name, so yank and
yank-next are both useful.
Else if there is no material about this defun nor file anywhere in the
( run in 0.438 second using v1.01-cache-2.11-cpan-adec679a428 )