yatex

annotate yatexhie.el @ 294:8d3156073892

for 1.77
author HIROSE Yuuji <yuuji@gentei.org>
date Mon, 01 Apr 2013 22:47:31 +0900
parents 5921f28ef77c
children 2a72779d9c50
rev   line source
yuuji@287 1 ;;; yatexhie.el --- YaTeX hierarchy browser
yuuji@287 2 ;;;
yuuji@294 3 ;;; (c)1995-2013 by HIROSE Yuuji [yuuji@yatex.org]
yuuji@294 4 ;;; Last modified Mon Apr 1 22:43:34 2013 on firestorm
yuuji@52 5 ;;; $Id$
yuuji@52 6
yuuji@287 7 ;;; Code:
yuuji@52 8 ;; ----- Customizable variables -----
yuuji@53 9 (defvar YaTeX-hierarchy-ignore-heading-regexp
yuuji@53 10 "\\$[A-Z][a-z]+: .* \\$\\|-\\*- .* -\\*-"
yuuji@53 11 "*Regexp of lines to ignore as files' headline.")
yuuji@52 12
yuuji@52 13 ;; ----- General variables -----
yuuji@52 14 (defvar YaTeX-default-TeX-extensions "\\.\\(tex\\|sty\\)")
yuuji@52 15 (defvar YaTeX-hierarchy-current-main nil)
yuuji@52 16 (defvar YaTeX-hierarchy-buffer-message
yuuji@52 17 (concat
yuuji@53 18 "n)ext p)rev N)extsame P)revsame u)p K)illbuf RET)select"
yuuji@53 19 (if (and YaTeX-emacs-19 window-system) " Mouse2)select" "")
yuuji@53 20 " ?)help"))
yuuji@52 21 (defvar YaTeX-hierarchy-saved-wc nil "Saved window configuration.")
yuuji@52 22
yuuji@52 23 ;; ----- Functions for parsing hierarchy -----
yuuji@52 24
yuuji@52 25 (defun YaTeX-all-included-files (&optional file)
yuuji@52 26 "Return all included files from FILE as a list.
yuuji@52 27 If FILE is nil, use current buffer."
yuuji@52 28 (save-excursion
yuuji@52 29 (let ((include-regex (concat YaTeX-ec-regexp
yuuji@52 30 "\\(\\(input\\)\\|" ;match#2
yuuji@52 31 "\\(include\\)\\)\\b")) ;match#3
yuuji@52 32 list file (cb (current-buffer)))
yuuji@52 33 (if file (set-buffer (YaTeX-switch-to-buffer file t)))
yuuji@52 34 (goto-char (point-min))
yuuji@52 35 (while (YaTeX-re-search-active-forward
yuuji@52 36 include-regex YaTeX-comment-prefix nil t)
yuuji@52 37 (cond
yuuji@52 38 ((match-beginning 2) ;\input, {} is optional, 1 argument
yuuji@52 39 (skip-chars-forward " {")
yuuji@52 40 (setq file (buffer-substring
yuuji@52 41 (point)
yuuji@52 42 (progn
yuuji@52 43 (skip-chars-forward
yuuji@52 44 (concat "^ \t\n\r" YaTeX-ec-regexp "{}"))
yuuji@52 45 (point)))))
yuuji@68 46 ((and (match-beginning 3) (looking-at "{"))
yuuji@52 47 (skip-chars-forward "{")
yuuji@52 48 (setq file (buffer-substring
yuuji@52 49 (point)
yuuji@52 50 (progn
yuuji@52 51 (forward-char -1) (forward-list 1) (1- (point)))))))
yuuji@52 52 (or (string-match YaTeX-default-TeX-extensions file)
yuuji@52 53 (setq file (concat file ".tex")))
yuuji@52 54 (setq list (cons file list)))
yuuji@52 55 (set-buffer cb)
yuuji@52 56 (nreverse list))))
yuuji@52 57
yuuji@70 58 (defun YaTeX-document-hierarchy (&optional file basedir)
yuuji@52 59 "Return the document hierarchy beginning from FILE as a list.
yuuji@52 60 If FILE is nil, beginning with current buffer's file."
yuuji@52 61 (setq file (or file buffer-file-name))
yuuji@70 62 (and YaTeX-search-file-from-top-directory
yuuji@70 63 (not (file-exists-p file))
yuuji@70 64 (string-match "^[^/].*/" file)
yuuji@70 65 (setq file (expand-file-name file basedir)))
yuuji@52 66 (message "Parsing [%s]..." (file-name-nondirectory file))
yuuji@52 67 (prog1
yuuji@52 68 (save-excursion
yuuji@52 69 (if (or (file-exists-p file) (null file))
yuuji@52 70 (progn
yuuji@52 71 (if file
yuuji@52 72 (let ((parent buffer-file-name))
yuuji@52 73 (YaTeX-switch-to-buffer file t) ;set buffer to file
yuuji@52 74 (or YaTeX-parent-file
yuuji@52 75 (YaTeX-get-builtin "!")
yuuji@52 76 (setq YaTeX-parent-file parent))))
yuuji@52 77 (cons (buffer-file-name (current-buffer))
yuuji@70 78 (mapcar '(lambda (f) ;return value
yuuji@70 79 (YaTeX-document-hierarchy f basedir))
yuuji@52 80 (YaTeX-all-included-files))))))
yuuji@52 81 (message "Parsing [%s]...done" (file-name-nondirectory file))))
yuuji@52 82
yuuji@52 83 ;; ----- Functions for displaying hierarchy -----
yuuji@52 84
yuuji@52 85 (defun YaTeX-hierarchy-get-file-heading (file)
yuuji@52 86 "Get a FILE's heading."
yuuji@52 87 (save-excursion
yuuji@52 88 (set-buffer (find-file-noselect file))
yuuji@52 89 (save-excursion
yuuji@53 90 (let (p)
yuuji@53 91 (goto-char (point-min))
yuuji@53 92 (cond
yuuji@53 93 ((re-search-forward
yuuji@53 94 (concat YaTeX-ec-regexp YaTeX-sectioning-regexp) nil t)
yuuji@53 95 (search-forward "{")
yuuji@53 96 (forward-char -1)
yuuji@53 97 (setq p (condition-case nil
yuuji@53 98 (progn (forward-list 1) (1- (point)))
yuuji@53 99 (error (point-end-of-line))))
yuuji@53 100 (goto-char (1+ (match-beginning 0)))
yuuji@53 101 (skip-chars-forward " \t\n")
yuuji@53 102 (buffer-substring (point) (min (point-end-of-line) p)))
yuuji@53 103 ((catch 'found
yuuji@53 104 (while (re-search-forward "^ *%\\([^#]\\)" nil t)
yuuji@53 105 (or (re-search-forward
yuuji@53 106 YaTeX-hierarchy-ignore-heading-regexp
yuuji@53 107 (point-end-of-line) t)
yuuji@53 108 (throw 'found t))))
yuuji@53 109 (beginning-of-line)
yuuji@53 110 (search-forward "%")
yuuji@53 111 (skip-chars-forward "% \t")
yuuji@53 112 (buffer-substring (point) (point-end-of-line)))
yuuji@53 113 (t ""))))))
yuuji@52 114
yuuji@52 115 (defun YaTeX-display-a-hierachy (hier level)
yuuji@52 116 "Put a HIER of document hierarchy.
yuuji@52 117 LEVEL is including depth."
yuuji@52 118 (message "Formatting hierarchy buffer...")
yuuji@52 119 (let ((lastatomcol 0) list i p)
yuuji@52 120 (cond
yuuji@52 121 ((listp hier)
yuuji@52 122 (setq list hier)
yuuji@52 123 (while list
yuuji@52 124 (YaTeX-display-a-hierachy (car list) (1+ level))
yuuji@52 125 (setq list (cdr list))))
yuuji@52 126 ((stringp hier) ;is an atom
yuuji@52 127 (insert " ")
yuuji@52 128 (setq i level)
yuuji@52 129 (while (> i 2)
yuuji@52 130 (insert "| ")
yuuji@52 131 (setq i (1- i)))
yuuji@52 132 (if (> level 1) (insert "+---"))
yuuji@52 133 (setq p (point))
yuuji@52 134 (insert (or (buffer-name (get-file-buffer hier))
yuuji@52 135 (file-name-nondirectory hier)))
yuuji@52 136 (if (and window-system YaTeX-emacs-19)
yuuji@52 137 (put-text-property p (point) 'mouse-face 'underline))
yuuji@52 138 (insert " ")
yuuji@52 139 (indent-to-column (1- (/ (window-width) 2)))
yuuji@52 140 (insert "% " (YaTeX-hierarchy-get-file-heading hier))
yuuji@52 141 (insert "\n"))))
yuuji@52 142 (message "Formatting hierarchy buffer..."))
yuuji@52 143
yuuji@52 144 (defun YaTeX-display-hierarchy (file &optional use-default)
yuuji@52 145 "Display document hierarchy that is beginning from FILE."
yuuji@52 146 (interactive "P")
yuuji@52 147 (setq YaTeX-hierarchy-saved-wc
yuuji@52 148 (list (current-window-configuration)
yuuji@52 149 (and (featurep 'windows)
yuuji@52 150 (boundp 'win:current-config)
yuuji@52 151 win:current-config)))
yuuji@52 152 (let*((b-in (YaTeX-get-builtin "!"))
yuuji@70 153 default)
yuuji@52 154 ;;む・踉擦鵙髟阡鮫このへんの仕様どう瘢雹したらいいか良く分からん...
yuuji@52 155 (if default (setq default (expand-file-name default)))
yuuji@52 156 (YaTeX-visit-main t) ;move to parent file
yuuji@70 157 (setq default buffer-file-name)
yuuji@52 158 (setq file
yuuji@52 159 (or (if use-default default file)
yuuji@52 160 (read-file-name
yuuji@52 161 (format
yuuji@52 162 "Main .tex file%s: "
yuuji@52 163 (if default
yuuji@52 164 (format "(default %s)"(file-name-nondirectory default))
yuuji@52 165 ""))
yuuji@52 166 "" default 1))))
yuuji@52 167 (setq file (expand-file-name file))
yuuji@52 168 (setq YaTeX-hierarchy-current-main file)
yuuji@70 169 (let ((dbuf "*document hierarchy*")
yuuji@70 170 (topdir default-directory))
yuuji@52 171 (YaTeX-showup-buffer dbuf nil t)
yuuji@52 172 (set-buffer (get-buffer dbuf))
yuuji@52 173 (setq truncate-lines t)
yuuji@52 174 (let ((buffer-read-only nil))
yuuji@52 175 (erase-buffer)
yuuji@70 176 (YaTeX-display-a-hierachy (YaTeX-document-hierarchy file topdir) 0))
yuuji@52 177 (goto-char (point-min))
yuuji@52 178 (YaTeX-hierarchy-next 0)
yuuji@52 179 (set-buffer-modified-p nil)
yuuji@52 180 (YaTeX-hierarchy-mode)
yuuji@52 181 ))
yuuji@52 182
yuuji@52 183 (defun YaTeX-display-hierarchy-directly ()
yuuji@52 184 "Same as YaTeX-display-hierarchy. Call from mouse."
yuuji@52 185 (interactive)
yuuji@52 186 (YaTeX-display-hierarchy nil t))
yuuji@52 187
yuuji@52 188 (defun YaTeX-hierarchy-mode ()
yuuji@52 189 "Major mode to browse and select document hierarchy.
yuuji@52 190
yuuji@52 191 \\[YaTeX-hierarchy-next] next line
yuuji@52 192 \\[YaTeX-hierarchy-prev] previous line
yuuji@53 193 \\[YaTeX-hierarchy-forward] move forward in the same level
yuuji@53 194 \\[YaTeX-hierarchy-backward] move backward in the same level
yuuji@52 195 \\[YaTeX-hierarchy-up-document] move to parent file
yuuji@52 196 \\[delete-other-windows] delete other windows
yuuji@52 197 \\[other-window] other window
yuuji@53 198 \\[shrink-window] shrink window
yuuji@53 199 \\[enlarge-window] enlarge window
yuuji@53 200 \\[YaTeX-hierarchy-show] show file contents in the next window
yuuji@53 201 \\[YaTeX-hierarchy-scroll-up] scroll up file contents buffer
yuuji@53 202 \\[YaTeX-hierarchy-scroll-down] scroll down file contents buffer
yuuji@53 203 \\[YaTeX-hierarchy-top] show the top of file contents
yuuji@53 204 \\[YaTeX-hierarchy-bottom] show the bottom of file contents
yuuji@53 205 \\[YaTeX-hierarchy-lastpos] return to the previous position
yuuji@52 206 \\[YaTeX-hierarchy-select] select file
yuuji@52 207 \\[YaTeX-hierarchy-mouse-select] select
yuuji@52 208 "
yuuji@52 209 (setq major-mode 'YaTeX-hierarchy-mode
yuuji@52 210 mode-name "YaTeX hier")
yuuji@52 211 (use-local-map YaTeX-hierarchy-mode-map)
yuuji@52 212 (setq buffer-read-only t)
yuuji@52 213 (message YaTeX-hierarchy-buffer-message))
yuuji@52 214
yuuji@52 215 ;; ----- Subfunctions for interactive functions -----
yuuji@52 216 (defun YaTeX-hierarchy-get-current-file-buffer ()
yuuji@52 217 "Return the buffer associated with current line's file."
yuuji@52 218 (let ((file (buffer-substring
yuuji@52 219 (point)
yuuji@52 220 (save-excursion
yuuji@52 221 (skip-chars-forward "^ \t" (point-end-of-line)) (point))))
yuuji@52 222 (hilit-auto-highlight) buffer)
yuuji@52 223 (set-buffer (find-file-noselect YaTeX-hierarchy-current-main))
yuuji@52 224 (if (get-buffer file) ;buffer is active
yuuji@52 225 (setq buffer (get-buffer file)) ;may contain `<2>'
yuuji@52 226 (if (string-match "<[2-9]>$" file)
yuuji@52 227 (setq file (substring file 0 -3)))
yuuji@52 228 (save-excursion
yuuji@52 229 (setq buffer (YaTeX-switch-to-buffer file t)))))) ; open it!
yuuji@52 230
yuuji@52 231 ;; ----- Interactive functions -----
yuuji@52 232 (defun YaTeX-hierarchy-next (arg &optional quiet)
yuuji@52 233 "Move to next line's file in YaTeX document hierarchy buffer."
yuuji@52 234 (interactive "p")
yuuji@52 235 (forward-line arg)
yuuji@52 236 (skip-chars-forward "- +\\|")
yuuji@53 237 (if (and (/= arg 0) (not quiet))
yuuji@52 238 (YaTeX-hierarchy-select t))
yuuji@52 239 (message YaTeX-hierarchy-buffer-message))
yuuji@52 240
yuuji@52 241 (defun YaTeX-hierarchy-prev (arg)
yuuji@52 242 "Move to previous line's file in YaTeX document hierarchy buffer."
yuuji@52 243 (interactive "p")
yuuji@52 244 (YaTeX-hierarchy-next (- arg)))
yuuji@52 245
yuuji@52 246 (defun YaTeX-hierarchy-next-line (arg)
yuuji@52 247 (interactive "p")
yuuji@52 248 (YaTeX-hierarchy-next arg t))
yuuji@52 249
yuuji@52 250 (defun YaTeX-hierarchy-prev-line (arg)
yuuji@52 251 (interactive "p")
yuuji@52 252 (YaTeX-hierarchy-next (- arg) t))
yuuji@52 253
yuuji@52 254 (defun YaTeX-hierarchy-forward (arg)
yuuji@52 255 "Move to forward file in same hierarchy level."
yuuji@52 256 (interactive "p")
yuuji@52 257 (YaTeX-hierarchy-next 0)
yuuji@52 258 (let ((p (point))(column (current-column)) (i (if (> arg 0) arg (- arg))))
yuuji@52 259 (if (= column 0) (error "Not on file line."))
yuuji@52 260 (while (> i 0)
yuuji@52 261 (if (catch 'found
yuuji@52 262 (while (and (not (eobp)) (not (bobp)))
yuuji@52 263 (forward-line (if (> arg 0) 1 -1))
yuuji@52 264 (move-to-column column)
yuuji@52 265 (if (looking-at "[- +\\|]") nil
yuuji@52 266 (YaTeX-hierarchy-next 0)
yuuji@52 267 (if (= (current-column) column) (throw 'found t)))
yuuji@52 268 (beginning-of-line)))
yuuji@52 269 nil
yuuji@52 270 (goto-char p)
yuuji@52 271 (error "No same level file."))
yuuji@52 272 (setq i (1- i)))))
yuuji@52 273
yuuji@52 274 (defun YaTeX-hierarchy-backward (arg)
yuuji@52 275 "Move to backward file in same hierarchy level."
yuuji@52 276 (interactive "p")
yuuji@52 277 (YaTeX-hierarchy-forward (- arg)))
yuuji@52 278
yuuji@52 279 (defun YaTeX-hierarchy-up-document ()
yuuji@52 280 "Up level, that is, move to parent file position."
yuuji@52 281 (interactive)
yuuji@52 282 (YaTeX-hierarchy-next 0) ;adjust column
yuuji@52 283 (let ((p (point)) (line (count-lines (point-min) (point))) column)
yuuji@52 284 (if (or (<= line 1) (< (current-column) 6))
yuuji@52 285 (message "No more parent")
yuuji@52 286 (backward-char 1)
yuuji@52 287 (or (= (char-after (point)) ?-) (error "Unexpected hierarchy buffer"))
yuuji@52 288 (setq column (current-column))
yuuji@52 289 (while (and (> line 1) (looking-at "[- +\\|]"))
yuuji@52 290 (forward-line -1)
yuuji@52 291 (move-to-column column))
yuuji@52 292 (YaTeX-hierarchy-next 0)
yuuji@52 293 (push-mark p t)
yuuji@52 294 (message "Mark set to last position"))))
yuuji@52 295
yuuji@52 296 (defun YaTeX-hierarchy-kill-buffer (arg)
yuuji@52 297 "Kill buffer associated with current line's file."
yuuji@52 298 (interactive "p")
yuuji@52 299 (YaTeX-hierarchy-next 0) ;move to file name column
yuuji@52 300 (if (bolp) (error "Not on file name line"))
yuuji@53 301 (let ((file (buffer-substring
yuuji@53 302 (point)
yuuji@53 303 (progn (skip-chars-forward "^ \t") (point)))))
yuuji@52 304 (YaTeX-hierarchy-next arg)
yuuji@52 305 (cond
yuuji@52 306 ((get-buffer file)
yuuji@52 307 (kill-buffer (get-buffer file))
yuuji@52 308 (message "Buffer [%s] was killed" file))
yuuji@52 309 (t (message "Buffer [%s] is not active." file)))))
yuuji@52 310
yuuji@52 311 (defun YaTeX-hierarchy-select (arg)
yuuji@52 312 "Select current line's file in YaTeX document hierarchy buffer.
yuuji@52 313 If ARG is non-nil, show the buffer in the next window."
yuuji@52 314 (interactive "P")
yuuji@52 315 (beginning-of-line)
yuuji@52 316 (skip-chars-forward "- +\\|")
yuuji@52 317 (or (eolp)
yuuji@52 318 (let ((buffer (YaTeX-hierarchy-get-current-file-buffer)))
yuuji@52 319 (if buffer ;if file was found
yuuji@52 320 (if arg
yuuji@52 321 (YaTeX-showup-buffer buffer nil)
yuuji@52 322 (if (and YaTeX-emacs-19 window-system
yuuji@52 323 (get-buffer-window buffer t))
yuuji@52 324 (goto-buffer-window buffer) ;select currently displaying
yuuji@52 325 (YaTeX-switch-to-buffer-other-window buffer)))))))
yuuji@52 326
yuuji@52 327 (defun YaTeX-hierarchy-show ()
yuuji@52 328 "Show current line's file in the next window."
yuuji@52 329 (interactive)
yuuji@52 330 (YaTeX-hierarchy-select t))
yuuji@52 331
yuuji@52 332 (defun YaTeX-hierarchy-mouse-select (event)
yuuji@52 333 (interactive "e")
yuuji@52 334 (mouse-set-point event)
yuuji@52 335 (YaTeX-hierarchy-select nil))
yuuji@52 336
yuuji@52 337 (defun YaTeX-hierarchy-quit ()
yuuji@52 338 "Quit from YaTeX-hierarchy buffer and restore window configuration."
yuuji@52 339 (interactive)
yuuji@52 340 (if (or (not (featurep 'windows))
yuuji@52 341 (car YaTeX-hierarchy-saved-wc)
yuuji@52 342 (and (= (car (cdr YaTeX-hierarchy-saved-wc)) win:current-config)))
yuuji@52 343 (set-window-configuration (car YaTeX-hierarchy-saved-wc))
yuuji@52 344 (bury-buffer nil)))
yuuji@52 345
yuuji@53 346 (defun YaTeX-hierarchy-scroll-up (arg &optional action)
yuuji@53 347 "Scroll up file contents of YaTeX-hierarchy."
yuuji@52 348 (interactive "P")
yuuji@53 349 (YaTeX-hierarchy-next 0 t)
yuuji@53 350 (let*((bufname (buffer-substring
yuuji@53 351 (point)
yuuji@53 352 (save-excursion (skip-chars-forward "^ \t") (point))))
yuuji@53 353 (buf (get-buffer bufname))
yuuji@53 354 (cw (selected-window)))
yuuji@53 355 (cond
yuuji@53 356 ((and buf (get-buffer-window buf))
yuuji@53 357 (select-window (get-buffer-window buf)))
yuuji@53 358 ((and buf (YaTeX-showup-buffer buf nil t)) t)
yuuji@53 359 (t (YaTeX-hierarchy-select nil)))
yuuji@53 360 (unwind-protect
yuuji@53 361 (cond
yuuji@53 362 ((eq action 'down) (scroll-down arg))
yuuji@53 363 ((eq action 'top) (beginning-of-buffer))
yuuji@53 364 ((eq action 'bottom) (end-of-buffer))
yuuji@53 365 ((eq action 'last) (exchange-point-and-mark))
yuuji@53 366 (t (scroll-up arg)))
yuuji@53 367 (select-window cw))))
yuuji@53 368
yuuji@53 369 (defun YaTeX-hierarchy-scroll-down (arg)
yuuji@53 370 "Scroll down file contents of YaTeX-hierarchy."
yuuji@53 371 (interactive "P")
yuuji@53 372 (YaTeX-hierarchy-scroll-up arg 'down))
yuuji@53 373
yuuji@53 374 (defun YaTeX-hierarchy-top ()
yuuji@53 375 "Show the top of YaTeX-hierarchy inspection buffer's."
yuuji@53 376 (interactive)
yuuji@53 377 (YaTeX-hierarchy-scroll-up nil 'top)
yuuji@53 378 )
yuuji@53 379
yuuji@53 380 (defun YaTeX-hierarchy-bottom ()
yuuji@53 381 "Show the top of YaTeX-hierarchy inspection buffer's."
yuuji@53 382 (interactive)
yuuji@53 383 (YaTeX-hierarchy-scroll-up nil 'bottom)
yuuji@53 384 )
yuuji@53 385
yuuji@53 386 (defun YaTeX-hierarchy-lastpos ()
yuuji@53 387 "Go to last position in YaTeX-hierarchy buffer."
yuuji@53 388 (interactive)
yuuji@53 389 (YaTeX-hierarchy-scroll-up nil 'last)
yuuji@53 390 )
yuuji@52 391
yuuji@52 392 ;; ----- Setting up keymap -----
yuuji@52 393 (defvar YaTeX-hierarchy-mode-map nil "Keymap used in YaTeX-hierarchy-mode.")
yuuji@52 394 (if YaTeX-hierarchy-mode-map nil
yuuji@52 395 (setq YaTeX-hierarchy-mode-map (make-sparse-keymap))
yuuji@52 396 (define-key YaTeX-hierarchy-mode-map "n" 'YaTeX-hierarchy-next)
yuuji@52 397 (define-key YaTeX-hierarchy-mode-map "p" 'YaTeX-hierarchy-prev)
yuuji@52 398 (define-key YaTeX-hierarchy-mode-map "j" 'YaTeX-hierarchy-next-line)
yuuji@52 399 (define-key YaTeX-hierarchy-mode-map "k" 'YaTeX-hierarchy-prev-line)
yuuji@52 400 (substitute-all-key-definition
yuuji@52 401 'next-line 'YaTeX-hierarchy-next-line YaTeX-hierarchy-mode-map)
yuuji@52 402 (substitute-all-key-definition
yuuji@52 403 'previous-line 'YaTeX-hierarchy-prev-line YaTeX-hierarchy-mode-map)
yuuji@52 404 (define-key YaTeX-hierarchy-mode-map "N" 'YaTeX-hierarchy-forward)
yuuji@52 405 (define-key YaTeX-hierarchy-mode-map "P" 'YaTeX-hierarchy-backward)
yuuji@52 406 (define-key YaTeX-hierarchy-mode-map "u" 'YaTeX-hierarchy-up-document)
yuuji@52 407 (define-key YaTeX-hierarchy-mode-map "K" 'YaTeX-hierarchy-kill-buffer)
yuuji@52 408 (define-key YaTeX-hierarchy-mode-map "1" 'delete-other-windows)
yuuji@52 409 (define-key YaTeX-hierarchy-mode-map "o" 'other-window)
yuuji@53 410 (define-key YaTeX-hierarchy-mode-map "-" 'shrink-window)
yuuji@53 411 (define-key YaTeX-hierarchy-mode-map "+" 'enlarge-window)
yuuji@52 412 (define-key YaTeX-hierarchy-mode-map "." 'YaTeX-hierarchy-show)
yuuji@53 413 (define-key YaTeX-hierarchy-mode-map " " 'YaTeX-hierarchy-scroll-up)
yuuji@53 414 (define-key YaTeX-hierarchy-mode-map "b" 'YaTeX-hierarchy-scroll-down)
yuuji@53 415 (define-key YaTeX-hierarchy-mode-map "\C-?" 'YaTeX-hierarchy-scroll-down)
yuuji@52 416 (define-key YaTeX-hierarchy-mode-map "\C-m" 'YaTeX-hierarchy-select)
yuuji@53 417 (define-key YaTeX-hierarchy-mode-map "<" 'YaTeX-hierarchy-top)
yuuji@53 418 (define-key YaTeX-hierarchy-mode-map ">" 'YaTeX-hierarchy-bottom)
yuuji@53 419 (define-key YaTeX-hierarchy-mode-map "'" 'YaTeX-hierarchy-lastpos)
yuuji@53 420 (define-key YaTeX-hierarchy-mode-map "g" 'YaTeX-hierarchy-select)
yuuji@52 421 (define-key YaTeX-hierarchy-mode-map "q" 'YaTeX-hierarchy-quit)
yuuji@52 422 (define-key YaTeX-hierarchy-mode-map "?" 'describe-mode)
yuuji@52 423 (if (and YaTeX-emacs-19 window-system)
yuuji@52 424 (define-key YaTeX-hierarchy-mode-map
yuuji@52 425 [mouse-2] 'YaTeX-hierarchy-mouse-select))
yuuji@52 426 )
yuuji@52 427
yuuji@52 428 (provide 'yatexhie)
yuuji@52 429 ;;end of yatexhie.el