Bläddra i källkod

Fix table detection in non-Org buffers

* lisp/org.el (org-at-table-p): Allow local tables without full valid
  syntax when current buffer is not in Org mode.

Reported-by: Benjamin Slade <slade@jnanam.net>
<http://permalink.gmane.org/gmane.emacs.orgmode/99982>
Nicolas Goaziou 9 år sedan
förälder
incheckning
db314d8ad0
1 ändrade filer med 8 tillägg och 7 borttagningar
  1. 8 7
      lisp/org.el

+ 8 - 7
lisp/org.el

@@ -4498,13 +4498,14 @@ Normal means, no org-mode-specific context."
   "Non-nil if the cursor is inside an Org table.
 If TABLE-TYPE is non-nil, also check for table.el-type tables.
 If `org-enable-table-editor' is nil, return nil unconditionally."
-  (and org-enable-table-editor
-       (save-excursion
-	 (beginning-of-line)
-	 (org-looking-at-p (if table-type "[ \t]*[|+]" "[ \t]*|")))
-       (let ((element (org-element-lineage (org-element-at-point) '(table) t)))
-	 (and element
-	      (or table-type (eq (org-element-property :type element) 'org))))))
+  (and
+   org-enable-table-editor
+   (save-excursion
+     (beginning-of-line)
+     (org-looking-at-p (if table-type "[ \t]*[|+]" "[ \t]*|")))
+   (or (not (derived-mode-p 'org-mode))
+       (let ((e (org-element-lineage (org-element-at-point) '(table) t)))
+	 (and e (or table-type (eq (org-element-property :type e) 'org)))))))
 (defsubst org-table-p () (org-at-table-p))
 
 (defun org-at-table.el-p ()