[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/auctex cef38f9 04/35: Handle TeX-region in backward sea
From: |
Tassilo Horn |
Subject: |
[elpa] externals/auctex cef38f9 04/35: Handle TeX-region in backward search with both PDF Tools and Evince |
Date: |
Sun, 22 Mar 2015 09:26:55 +0000 |
branch: externals/auctex
commit cef38f9946042b8ce26cf9a4deea0e5c54c35f06
Author: Tassilo Horn <address@hidden>
Commit: Tassilo Horn <address@hidden>
Handle TeX-region in backward search with both PDF Tools and Evince
* tex.el (TeX-source-correlate-handle-TeX-region): New function.
(TeX-source-correlate-sync-source): Use it.
(TeX-PDF-mode): Set `pdf-sync-correlate-tex-refine-function' to
`TeX-source-correlate-sync-source'.
---
ChangeLog | 7 ++++
tex.el | 110 +++++++++++++++++++++++++++++++-----------------------------
2 files changed, 64 insertions(+), 53 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index cc381f2..c641f53 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2015-02-06 Tassilo Horn <address@hidden>
+
+ * tex.el (TeX-source-correlate-handle-TeX-region): New function.
+ (TeX-source-correlate-sync-source): Use it.
+ (TeX-PDF-mode): Set `pdf-sync-correlate-tex-refine-function' to
+ `TeX-source-correlate-sync-source'.
+
2015-02-05 Tassilo Horn <address@hidden>
* tex.el (TeX-pdf-tools-sync-view): New function to use PDF Tools
diff --git a/tex.el b/tex.el
index 3aace79..2a00d5b 100644
--- a/tex.el
+++ b/tex.el
@@ -1096,8 +1096,6 @@ search are checked, too."
(cdr (caar (cdr elem)))))
spec))))))))
-(defvar url-unreserved-chars)
-
(defun TeX-pdf-tools-sync-view ()
"Focus the focused page/paragraph in `pdf-view-mode'. Used by
default for the PDF Tools viewer entry in
@@ -1112,6 +1110,8 @@ default for the PDF Tools viewer entry in
(pdf-sync-display-pdf)
(pop-to-buffer doc))))
+(defvar url-unreserved-chars)
+
(defun TeX-evince-sync-view ()
"Focus the focused page/paragraph in Evince with the position
of point in emacs by using Evince's DBUS API. Used by default
@@ -1316,8 +1316,8 @@ are evaluated positively is chosen."
(mapc (lambda (spec)
(add-to-list 'list
`(const ,(car spec))))
- (append TeX-view-program-list
- TeX-view-program-list-builtin))
+ (append TeX-view-program-list
+ TeX-view-program-list-builtin))
(sort list
(lambda (a b)
(string< (downcase (cadr a))
@@ -1616,6 +1616,25 @@ If this is nil, an empty string will be returned."
"Keymap for `TeX-source-correlate-mode'.
You could use this for unusual mouse bindings.")
+(defun TeX-source-correlate-handle-TeX-region (file line col &rest more)
+ "Translate backward search info with respect to `TeX-region'.
+That is, if FILE is `TeX-region', update FILE to the real tex
+file and LINE to (+ LINE offset-of-region). Else, return the
+list of arguments unchanged."
+ (if (string-equal TeX-region (file-name-base file))
+ (with-current-buffer (or (find-buffer-visiting file)
+ (find-file-noselect file))
+ (goto-char 0)
+ (if (re-search-forward "!offset(\\([[:digit:]]+\\))" nil t)
+ (let ((offset (string-to-int (match-string-no-properties 1))))
+ (if TeX-region-orig-buffer
+ (apply #'list
+ (expand-file-name (buffer-file-name
TeX-region-orig-buffer))
+ (+ line offset) col more)
+ (apply #'list file line col more)))
+ (apply #'list file line col more)))
+ (apply #'list file line col more)))
+
(defun TeX-source-correlate-sync-source (file linecol &rest ignored)
"Show TeX FILE with point at LINECOL.
This function is called when emacs receives a SyncSource signal
@@ -1625,55 +1644,36 @@ or newer."
;; FILE may be given as relative path to the TeX-master root document or as
;; absolute file:// URL. In the former case, the tex file has to be already
;; opened.
- (let* ((line (car linecol))
- (col (cadr linecol))
- (region (string= TeX-region (file-name-sans-extension
- (file-name-nondirectory file))))
- (region-search-string nil)
- (buf (let ((f (condition-case nil
- (progn
- (require 'url-parse)
- (require 'url-util)
- (url-unhex-string (aref (url-generic-parse-url
file) 6)))
- ;; For Emacs 21 compatibility, which doesn't have the
- ;; url package.
- (file-error (replace-regexp-in-string "^file://" ""
file)))))
- (cond
- ;; Copy the text referenced by syntex relative in the region
- ;; file so that we can search it in the original file.
- (region (let ((region-buf (get-buffer (file-name-nondirectory
file))))
- (when region-buf
- (with-current-buffer region-buf
- (goto-char (point-min))
- (forward-line (1- line))
- (let* ((p (point))
- (bound (save-excursion
- (re-search-backward
"\\\\message{[^}]+}" nil t)
- (end-of-line)
- (point)))
- (start (save-excursion
- (while (< (- p (point)) 250)
- (backward-paragraph))
- (point))))
- (setq region-search-string
(buffer-substring-no-properties
- (if (< start
bound) bound start)
- (point))))
- ;; TeX-region-create stores the original buffer
- ;; locally as TeX-region-orig-buffer.
- (get-buffer TeX-region-orig-buffer)))))
- ((file-name-absolute-p f) (find-file f))
- (t (get-buffer (file-name-nondirectory file)))))))
- (if (null buf)
- (message "No buffer for %s." file)
- (switch-to-buffer buf)
- (push-mark (point) 'nomsg)
- (goto-char (point-min))
- (if region
- (search-forward region-search-string nil t)
- (forward-line (1- line)))
- (unless (= col -1)
- (move-to-column col))
- (raise-frame))))
+ (let* ((file (condition-case nil
+ (progn
+ (require 'url-parse)
+ (require 'url-util)
+ (url-unhex-string (aref (url-generic-parse-url file) 6)))
+ ;; For Emacs 21 compatibility, which doesn't have the
+ ;; url package.
+ (file-error (replace-regexp-in-string "^file://" "" file))))
+ (flc (apply #'TeX-source-correlate-handle-TeX-region file linecol))
+ (file (car flc))
+ (line (cadr flc))
+ (col (nth 2 flc)))
+ (pop-to-buffer (or (find-buffer-visiting file)
+ (find-file-noselect file)))
+ (push-mark nil 'nomsg)
+ (let ((pos
+ (when (> line 0)
+ (save-excursion
+ (save-restriction
+ (widen)
+ (goto-char 1)
+ (forward-line (1- line))
+ (when (> col 0)
+ (forward-char (1- col)))
+ (point))))))
+ (when pos
+ (when (or (< pos (point-min))
+ (> pos (point-max)))
+ (widen))
+ (goto-char pos)))))
(define-minor-mode TeX-source-correlate-mode
"Minor mode for forward and inverse search.
@@ -1861,6 +1861,10 @@ function `TeX-global-PDF-mode' for toggling this value."
(setq TeX-PDF-mode nil))
(setq TeX-PDF-mode-parsed nil)
(TeX-set-mode-name nil nil t)
+ (when (and TeX-PDF-mode
+ (boundp 'pdf-sync-correlate-tex-refine-function))
+ (setq pdf-sync-correlate-tex-refine-function
+ #'TeX-source-correlate-handle-TeX-region))
(setq TeX-output-extension
(if TeX-PDF-mode "pdf" "dvi")))
(add-to-list 'minor-mode-alist '(TeX-PDF-mode ""))
- [elpa] externals/auctex updated (8c89edf -> 6620d8c), Tassilo Horn, 2015/03/22
- [elpa] externals/auctex 4b2587d 01/35: Add new style currvita.el., Tassilo Horn, 2015/03/22
- [elpa] externals/auctex 061d8cd 02/35: New tcolorbox style, Tassilo Horn, 2015/03/22
- [elpa] externals/auctex 5276f35 03/35: Add PDF Tools support, Tassilo Horn, 2015/03/22
- [elpa] externals/auctex cc9c060 05/35: Fix compatibility with Emacs < 24., Tassilo Horn, 2015/03/22
- [elpa] externals/auctex cef38f9 04/35: Handle TeX-region in backward search with both PDF Tools and Evince,
Tassilo Horn <=
- [elpa] externals/auctex 51e3aa8 06/35: Adapt to PDF Tool changes, Tassilo Horn, 2015/03/22
- [elpa] externals/auctex 1bc721b 07/35: Fix error introduced in previous commit, Tassilo Horn, 2015/03/22
- [elpa] externals/auctex adf90e9 09/35: Simplify TeX-pdf-tools-sync-view, Tassilo Horn, 2015/03/22
- [elpa] externals/auctex b858aae 10/35: Make TeX-pdf-tools-sync-view work with region files, Tassilo Horn, 2015/03/22
- [elpa] externals/auctex b2957c8 11/35: Fix bug in pdf-tools support, Tassilo Horn, 2015/03/22
- [elpa] externals/auctex 86f4a1e 12/35: Add a hook that's run after an environment is modified, Tassilo Horn, 2015/03/22
- [elpa] externals/auctex 566426b 08/35: New style for color.sty, Tassilo Horn, 2015/03/22
- [elpa] externals/auctex 3cf92fc 14/35: Fix font-locking issue, Tassilo Horn, 2015/03/22
- [elpa] externals/auctex 39badf0 15/35: New defcustom LaTeX-fill-excluded-macros, Tassilo Horn, 2015/03/22
- [elpa] externals/auctex 83306b4 13/35: Add some expl3 support, Tassilo Horn, 2015/03/22