Browse Source

Move table-related variables and functions into "org-table"

Slightly re-organize file.
Nicolas Goaziou 6 years ago
parent
commit
98475b32d8
5 changed files with 430 additions and 741 deletions
  1. 3 0
      lisp/org-capture.el
  2. 1 1
      lisp/org-compat.el
  3. 0 11
      lisp/org-macs.el
  4. 425 586
      lisp/org-table.el
  5. 1 143
      lisp/org.el

+ 3 - 0
lisp/org-capture.el

@@ -51,6 +51,7 @@
 (require 'org)
 (require 'org)
 
 
 (declare-function org-at-encrypted-entry-p "org-crypt" ())
 (declare-function org-at-encrypted-entry-p "org-crypt" ())
+(declare-function org-at-table-p "org-table" (&optional table-type))
 (declare-function org-clock-update-mode-line "org-clock" (&optional refresh))
 (declare-function org-clock-update-mode-line "org-clock" (&optional refresh))
 (declare-function org-datetree-find-date-create "org-datetree" (date &optional keep-restriction))
 (declare-function org-datetree-find-date-create "org-datetree" (date &optional keep-restriction))
 (declare-function org-decrypt-entry "org-crypt" ())
 (declare-function org-decrypt-entry "org-crypt" ())
@@ -72,7 +73,9 @@
 (defvar org-store-link-plist)
 (defvar org-store-link-plist)
 (defvar org-table-border-regexp)
 (defvar org-table-border-regexp)
 (defvar org-table-current-begin-pos)
 (defvar org-table-current-begin-pos)
+(defvar org-table-dataline-regexp)
 (defvar org-table-fix-formulas-confirm)
 (defvar org-table-fix-formulas-confirm)
+(defvar org-table-hline-regexp)
 (defvar org-table-hlines)
 (defvar org-table-hlines)
 
 
 (defvar org-capture-clock-was-started nil
 (defvar org-capture-clock-was-started nil

+ 1 - 1
lisp/org-compat.el

@@ -316,7 +316,7 @@ See `org-link-parameters' for documentation on the other parameters."
 ;;;; Functions unused in Org core.
 ;;;; Functions unused in Org core.
 (defun org-table-recognize-table.el ()
 (defun org-table-recognize-table.el ()
   "If there is a table.el table nearby, recognize it and move into it."
   "If there is a table.el table nearby, recognize it and move into it."
-  (when (and org-table-tab-recognizes-table.el (org-at-table.el-p))
+  (when (org-at-table.el-p)
     (beginning-of-line)
     (beginning-of-line)
     (unless (or (looking-at org-table-dataline-regexp)
     (unless (or (looking-at org-table-dataline-regexp)
                 (not (looking-at org-table1-hline-regexp)))
                 (not (looking-at org-table1-hline-regexp)))

+ 0 - 11
lisp/org-macs.el

@@ -209,17 +209,6 @@ because otherwise all these markers will point to nowhere."
   `(let (pop-up-frames display-buffer-alist)
   `(let (pop-up-frames display-buffer-alist)
      ,@body))
      ,@body))
 
 
-(defmacro org-table-with-shrunk-field (&rest body)
-  "Save field shrunk state, execute BODY and restore state."
-  (declare (debug (body)))
-  (org-with-gensyms (end shrunk size)
-    `(let* ((,shrunk (save-match-data (org-table--shrunk-field)))
-	    (,end (and ,shrunk (copy-marker (overlay-end ,shrunk) t)))
-	    (,size (and ,shrunk (- ,end (overlay-start ,shrunk)))))
-       (when ,shrunk (delete-overlay ,shrunk))
-       (unwind-protect (progn ,@body)
-	 (when ,shrunk (move-overlay ,shrunk (- ,end ,size) ,end))))))
-
 
 
 ;;; Buffer and windows
 ;;; Buffer and windows
 
 

File diff suppressed because it is too large
+ 425 - 586
lisp/org-table.el


+ 1 - 143
lisp/org.el

@@ -65,8 +65,6 @@
 ;;; Code:
 ;;; Code:
 
 
 (defvar org-inhibit-highlight-removal nil) ; dynamically scoped param
 (defvar org-inhibit-highlight-removal nil) ; dynamically scoped param
-(defvar-local org-table-formula-constants-local nil
-  "Local version of `org-table-formula-constants'.")
 (defvar org-inlinetask-min-level)
 (defvar org-inlinetask-min-level)
 
 
 ;;;; Require other packages
 ;;;; Require other packages
@@ -94,6 +92,7 @@
 (require 'org-compat)
 (require 'org-compat)
 (require 'org-keys)
 (require 'org-keys)
 (require 'ol)
 (require 'ol)
+(require 'org-table)
 
 
 ;; `org-outline-regexp' ought to be a defconst but is let-bound in
 ;; `org-outline-regexp' ought to be a defconst but is let-bound in
 ;; some places -- e.g. see the macro `org-with-limited-levels'.
 ;; some places -- e.g. see the macro `org-with-limited-levels'.
@@ -164,56 +163,17 @@ Stars are put in group 1 and the trimmed body in group 2.")
 (declare-function org-element-type "org-element" (element))
 (declare-function org-element-type "org-element" (element))
 (declare-function org-export-dispatch "ox" (&optional arg))
 (declare-function org-export-dispatch "ox" (&optional arg))
 (declare-function org-export-get-backend "ox" (name))
 (declare-function org-export-get-backend "ox" (name))
-(declare-function org-export-get-backend "ox" (name))
-(declare-function org-export-get-environment "ox" (&optional backend subtreep ext-plist))
 (declare-function org-export-get-environment "ox" (&optional backend subtreep ext-plist))
 (declare-function org-export-get-environment "ox" (&optional backend subtreep ext-plist))
 (declare-function org-feed-goto-inbox "org-feed" (feed))
 (declare-function org-feed-goto-inbox "org-feed" (feed))
 (declare-function org-feed-update-all "org-feed" ())
 (declare-function org-feed-update-all "org-feed" ())
 (declare-function org-goto "org-goto" (&optional alternative-interface))
 (declare-function org-goto "org-goto" (&optional alternative-interface))
-(declare-function org-goto "org-goto" (&optional alternative-interface))
 (declare-function org-id-find-id-file "org-id" (id))
 (declare-function org-id-find-id-file "org-id" (id))
 (declare-function org-id-get-create "org-id" (&optional force))
 (declare-function org-id-get-create "org-id" (&optional force))
 (declare-function org-inlinetask-at-task-p "org-inlinetask" ())
 (declare-function org-inlinetask-at-task-p "org-inlinetask" ())
 (declare-function org-inlinetask-outline-regexp "org-inlinetask" ())
 (declare-function org-inlinetask-outline-regexp "org-inlinetask" ())
 (declare-function org-inlinetask-toggle-visibility "org-inlinetask" ())
 (declare-function org-inlinetask-toggle-visibility "org-inlinetask" ())
 (declare-function org-latex-make-preamble "ox-latex" (info &optional template snippet?))
 (declare-function org-latex-make-preamble "ox-latex" (info &optional template snippet?))
-(declare-function org-latex-make-preamble "ox-latex" (info &optional template snippet?))
 (declare-function org-plot/gnuplot "org-plot" (&optional params))
 (declare-function org-plot/gnuplot "org-plot" (&optional params))
-(declare-function org-table--shrunk-field "org-table" ()) ;; For `org-table-with-shrunk-field'.
-(declare-function org-table-align "org-table" ())
-(declare-function org-table-begin "org-table" (&optional table-type))
-(declare-function org-table-beginning-of-field "org-table" (&optional n))
-(declare-function org-table-blank-field "org-table" ())
-(declare-function org-table-calc-current-TBLFM "org-table" (&optional arg))
-(declare-function org-table-copy-down "org-table" (N))
-(declare-function org-table-copy-region "org-table" (beg end &optional cut))
-(declare-function org-table-create-or-convert-from-region "org-table" (arg))
-(declare-function org-table-create-with-table.el "org-table" ())
-(declare-function org-table-cut-region "org-table" (beg end))
-(declare-function org-table-edit-field "org-table" (arg))
-(declare-function org-table-end "org-table" (&optional table-type))
-(declare-function org-table-end-of-field "org-table" (&optional n))
-(declare-function org-table-eval-formula "org-table" (&optional arg equation suppress-align suppress-const suppress-store suppress-analysis))
-(declare-function org-table-field-info "org-table" (arg))
-(declare-function org-table-insert-row "org-table" (&optional arg))
-(declare-function org-table-justify-field-maybe "org-table" (&optional new))
-(declare-function org-table-maybe-eval-formula "org-table" ())
-(declare-function org-table-maybe-recalculate-line "org-table" ())
-(declare-function org-table-move-cell-up "org-table" ())
-(declare-function org-table-move-cell-down "org-table" ())
-(declare-function org-table-move-cell-right "org-table" ())
-(declare-function org-table-move-cell-left "org-table" ())
-(declare-function org-table-next-row "org-table" ())
-(declare-function org-table-paste-rectangle "org-table" ())
-(declare-function org-table-recalculate "org-table" (&optional all noalign))
-(declare-function org-table-rotate-recalc-marks "org-table" (&optional newchar))
-(declare-function org-table-shrink "org-table" (&optional begin end))
-(declare-function org-table-sort-lines "org-table" (&optional with-case sorting-type getkey-func compare-func interactive?))
-(declare-function org-table-sum "org-table" (&optional beg end nlast))
-(declare-function org-table-toggle-column-width "org-table" (&optional arg))
-(declare-function org-table-toggle-coordinate-overlays "org-table" ())
-(declare-function org-table-toggle-formula-debugger "org-table" ())
-(declare-function org-table-wrap-region "org-table" (arg))
 (declare-function org-tags-view "org-agenda" (&optional todo-only match))
 (declare-function org-tags-view "org-agenda" (&optional todo-only match))
 (declare-function org-timer "org-timer" (&optional restart no-insert))
 (declare-function org-timer "org-timer" (&optional restart no-insert))
 (declare-function org-timer-item "org-timer" (&optional arg))
 (declare-function org-timer-item "org-timer" (&optional arg))
@@ -225,14 +185,11 @@ Stars are put in group 1 and the trimmed body in group 2.")
 (declare-function org-timer-stop "org-timer" ())
 (declare-function org-timer-stop "org-timer" ())
 (declare-function org-toggle-archive-tag "org-archive" (&optional find-done))
 (declare-function org-toggle-archive-tag "org-archive" (&optional find-done))
 (declare-function org-update-radio-target-regexp "ol" ())
 (declare-function org-update-radio-target-regexp "ol" ())
-(declare-function orgtbl-ascii-plot "org-table" (&optional ask))
-(declare-function orgtbl-mode "org-table" (&optional arg))
 
 
 (defvar ffap-url-regexp)
 (defvar ffap-url-regexp)
 (defvar org-element-paragraph-separate)
 (defvar org-element-paragraph-separate)
 (defvar org-indent-indentation-per-level)
 (defvar org-indent-indentation-per-level)
 (defvar org-radio-target-regexp)
 (defvar org-radio-target-regexp)
-(defvar org-table-auto-blank-field)
 (defvar org-target-link-regexp)
 (defvar org-target-link-regexp)
 (defvar org-target-regexp)
 (defvar org-target-regexp)
 
 
@@ -608,30 +565,6 @@ An entry can be toggled between COMMENT and normal with
   "The property that is being used to keep track of effort estimates.
   "The property that is being used to keep track of effort estimates.
 Effort estimates given in this property need to have the format H:MM.")
 Effort estimates given in this property need to have the format H:MM.")
 
 
-;;;; Table
-
-(defconst org-table-any-line-regexp "^[ \t]*\\(|\\|\\+-[-+]\\)"
-  "Detect an org-type or table-type table.")
-
-(defconst org-table-line-regexp "^[ \t]*|"
-  "Detect an org-type table line.")
-
-(defconst org-table-dataline-regexp "^[ \t]*|[^-]"
-  "Detect an org-type table line.")
-
-(defconst org-table-hline-regexp "^[ \t]*|-"
-  "Detect an org-type table hline.")
-
-(defconst org-table1-hline-regexp "^[ \t]*\\+-[-+]"
-  "Detect a table-type table hline.")
-
-(defconst org-table-any-border-regexp "^[ \t]*[^|+ \t]"
-  "Detect the first line outside a table when searching from within it.
-This works for both table types.")
-
-(defconst org-TBLFM-regexp "^[ \t]*#\\+TBLFM: "
-  "Detect a #+TBLFM line.")
-
 ;;;; Timestamp
 ;;;; Timestamp
 
 
 (defconst org-ts-regexp "<\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\} ?[^\r\n>]*?\\)>"
 (defconst org-ts-regexp "<\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\} ?[^\r\n>]*?\\)>"
@@ -1817,11 +1750,6 @@ as possible."
   :group 'org-sparse-trees
   :group 'org-sparse-trees
   :type 'hook)
   :type 'hook)
 
 
-(defgroup org-table nil
-  "Options concerning tables in Org mode."
-  :tag "Org Table"
-  :group 'org)
-
 (defcustom org-self-insert-cluster-for-undo nil
 (defcustom org-self-insert-cluster-for-undo nil
   "Non-nil means cluster self-insert commands for undo when possible.
   "Non-nil means cluster self-insert commands for undo when possible.
 If this is set, then, like in the Emacs command loop, 20 consecutive
 If this is set, then, like in the Emacs command loop, 20 consecutive
@@ -1830,13 +1758,6 @@ This is configurable, because there is some impact on typing performance."
   :group 'org-table
   :group 'org-table
   :type 'boolean)
   :type 'boolean)
 
 
-(defcustom org-table-tab-recognizes-table.el t
-  "Non-nil means TAB will automatically notice a table.el table.
-When it sees such a table, it moves point into it and - if necessary -
-calls `table-recognize-table'."
-  :group 'org-table-editing
-  :type 'boolean)
-
 (defvaralias 'org-activate-links 'org-highlight-links)
 (defvaralias 'org-activate-links 'org-highlight-links)
 (defcustom org-highlight-links '(bracket angle plain radio tag date footnote)
 (defcustom org-highlight-links '(bracket angle plain radio tag date footnote)
   "Types of links that should be highlighted in Org files.
   "Types of links that should be highlighted in Org files.
@@ -3935,7 +3856,6 @@ This is needed for font-lock setup.")
 (declare-function org-inlinetask-goto-end "org-inlinetask" ())
 (declare-function org-inlinetask-goto-end "org-inlinetask" ())
 (declare-function org-inlinetask-in-task-p "org-inlinetask" ())
 (declare-function org-inlinetask-in-task-p "org-inlinetask" ())
 (declare-function org-inlinetask-remove-END-maybe "org-inlinetask" ())
 (declare-function org-inlinetask-remove-END-maybe "org-inlinetask" ())
-(declare-function orgtbl-send-table "org-table" (&optional maybe))
 (declare-function parse-time-string "parse-time" (string))
 (declare-function parse-time-string "parse-time" (string))
 
 
 (defvar align-mode-rules-list)
 (defvar align-mode-rules-list)
@@ -3948,64 +3868,11 @@ This is needed for font-lock setup.")
 (defvar remember-data-file)
 (defvar remember-data-file)
 (defvar texmathp-why)
 (defvar texmathp-why)
 
 
-;;;###autoload
-(defun turn-on-orgtbl ()
-  "Unconditionally turn on `orgtbl-mode'."
-  (require 'org-table)
-  (orgtbl-mode 1))
-
-(defun org-at-table-p (&optional table-type)
-  "Non-nil if the cursor is inside an Org table.
-If TABLE-TYPE is non-nil, also check for table.el-type tables."
-  (and (org-match-line (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 (org-element-property :type e))))))))
-
-(defun org-at-table.el-p ()
-  "Non-nil when point is at a table.el table."
-  (and (org-match-line "[ \t]*[|+]")
-       (let ((element (org-element-at-point)))
-	 (and (eq (org-element-type element) 'table)
-	      (eq (org-element-property :type element) 'table.el)))))
-
-(defun org-at-table-hline-p ()
-  "Non-nil when point is inside a hline in a table.
-Assume point is already in a table."
-  (org-match-line org-table-hline-regexp))
-
-(defun org-table-map-tables (function &optional quietly)
-  "Apply FUNCTION to the start of all tables in the buffer."
-  (org-with-wide-buffer
-   (goto-char (point-min))
-   (while (re-search-forward org-table-any-line-regexp nil t)
-     (unless quietly
-       (message "Mapping tables: %d%%"
-		(floor (* 100.0 (point)) (buffer-size))))
-     (beginning-of-line 1)
-     (when (and (looking-at org-table-line-regexp)
-		;; Exclude tables in src/example/verbatim/clocktable blocks
-		(not (org-in-block-p '("src" "example" "verbatim" "clocktable"))))
-       (save-excursion (funcall function))
-       (or (looking-at org-table-line-regexp)
-	   (forward-char 1)))
-     (re-search-forward org-table-any-border-regexp nil 1)))
-  (unless quietly (message "Mapping tables: done")))
-
 (declare-function org-clock-save-markers-for-cut-and-paste "org-clock" (beg end))
 (declare-function org-clock-save-markers-for-cut-and-paste "org-clock" (beg end))
 (declare-function org-clock-update-mode-line "org-clock" (&optional refresh))
 (declare-function org-clock-update-mode-line "org-clock" (&optional refresh))
 (declare-function org-resolve-clocks "org-clock"
 (declare-function org-resolve-clocks "org-clock"
 		  (&optional also-non-dangling-p prompt last-valid))
 		  (&optional also-non-dangling-p prompt last-valid))
 
 
-(defun org-at-TBLFM-p (&optional pos)
-  "Non-nil when point (or POS) is in #+TBLFM line."
-  (save-excursion
-    (goto-char (or pos (point)))
-    (beginning-of-line)
-    (and (let ((case-fold-search t)) (looking-at org-TBLFM-regexp))
-	 (eq (org-element-type (org-element-at-point)) 'table))))
-
 (defvar org-clock-start-time)
 (defvar org-clock-start-time)
 (defvar org-clock-marker (make-marker)
 (defvar org-clock-marker (make-marker)
   "Marker recording the last clock-in.")
   "Marker recording the last clock-in.")
@@ -4892,12 +4759,6 @@ This is for getting out of special buffers like capture.")
 
 
 ;;;; Define the Org mode
 ;;;; Define the Org mode
 
 
-;; We use a before-change function to check if a table might need
-;; an update.
-(defvar org-table-may-need-update t
-  "Indicates that a table might need an update.
-This variable is set by `org-before-change-function'.
-`org-table-align' sets it back to nil.")
 (defun org-before-change-function (_beg _end)
 (defun org-before-change-function (_beg _end)
   "Every change indicates that a table might need an update."
   "Every change indicates that a table might need an update."
   (setq org-table-may-need-update t))
   (setq org-table-may-need-update t))
@@ -4906,7 +4767,6 @@ This variable is set by `org-before-change-function'.
 (defvar org-agenda-keep-modes nil)      ; Dynamically-scoped param.
 (defvar org-agenda-keep-modes nil)      ; Dynamically-scoped param.
 (defvar org-inhibit-logging nil)        ; Dynamically-scoped param.
 (defvar org-inhibit-logging nil)        ; Dynamically-scoped param.
 (defvar org-inhibit-blocking nil)       ; Dynamically-scoped param.
 (defvar org-inhibit-blocking nil)       ; Dynamically-scoped param.
-(defvar org-table-buffer-is-an nil)
 
 
 (defvar bidi-paragraph-direction)
 (defvar bidi-paragraph-direction)
 (defvar buffer-face-mode-face)
 (defvar buffer-face-mode-face)
@@ -17794,7 +17654,6 @@ Otherwise, return a user error."
 	   (`link (call-interactively #'ffap))
 	   (`link (call-interactively #'ffap))
 	   (_ (user-error "No special environment to edit here"))))))))
 	   (_ (user-error "No special environment to edit here"))))))))
 
 
-(defvar org-table-coordinate-overlays) ; defined in org-table.el
 (defun org-ctrl-c-ctrl-c (&optional arg)
 (defun org-ctrl-c-ctrl-c (&optional arg)
   "Set tags in headline, or update according to changed information at point.
   "Set tags in headline, or update according to changed information at point.
 
 
@@ -19515,7 +19374,6 @@ assumed to be significant there."
   ;; parenthesis can end up being parsed as a new list item.
   ;; parenthesis can end up being parsed as a new list item.
   (looking-at-p "[ \t]*{{{n\\(?:([^\n)]*)\\)?}}}[.)]\\(?:$\\| \\)"))
   (looking-at-p "[ \t]*{{{n\\(?:([^\n)]*)\\)?}}}[.)]\\(?:$\\| \\)"))
 
 
-(defvar orgtbl-line-start-regexp) ; From org-table.el
 (defun org-adaptive-fill-function ()
 (defun org-adaptive-fill-function ()
   "Compute a fill prefix for the current line.
   "Compute a fill prefix for the current line.
 Return fill prefix, as a string, or nil if current line isn't
 Return fill prefix, as a string, or nil if current line isn't

Some files were not shown because too many files changed in this diff