Introduce compatibility code for looking-back
This commit is contained in:
parent
d60d003980
commit
db5c9d73ec
|
@ -1,5 +1,15 @@
|
|||
2009-11-23 Carsten Dominik <carsten.dominik@gmail.com>
|
||||
|
||||
* org-mouse.el (org-mouse-end-headline, org-mouse-insert-item)
|
||||
(org-mouse-context-menu): Use `org-looking-back'.
|
||||
|
||||
* org.el (org-cycle-level): Use `org-looking-back'.
|
||||
|
||||
* org-list.el (org-cycle-item-indentation): Use
|
||||
`org-looking-back'.
|
||||
|
||||
* org-compat.el (org-looking-back): New function.
|
||||
|
||||
* org.el (org-insert-heading): Catch before-first-headline when
|
||||
inserting a headline.
|
||||
|
||||
|
|
|
@ -362,6 +362,40 @@ TIME defaults to the current time."
|
|||
(time-to-seconds (or time (current-time)))
|
||||
(float-time time)))
|
||||
|
||||
; XEmacs does not have `looking-back'.
|
||||
(if (fboundp 'looking-back)
|
||||
(defalias 'org-looking-back 'looking-back)
|
||||
(defun org-looking-back (regexp &optional limit greedy)
|
||||
"Return non-nil if text before point matches regular expression REGEXP.
|
||||
Like `looking-at' except matches before point, and is slower.
|
||||
LIMIT if non-nil speeds up the search by specifying a minimum
|
||||
starting position, to avoid checking matches that would start
|
||||
before LIMIT.
|
||||
|
||||
If GREEDY is non-nil, extend the match backwards as far as
|
||||
possible, stopping when a single additional previous character
|
||||
cannot be part of a match for REGEXP. When the match is
|
||||
extended, its starting position is allowed to occur before
|
||||
LIMIT."
|
||||
(let ((start (point))
|
||||
(pos
|
||||
(save-excursion
|
||||
(and (re-search-backward (concat "\\(?:" regexp "\\)\\=") limit t)
|
||||
(point)))))
|
||||
(if (and greedy pos)
|
||||
(save-restriction
|
||||
(narrow-to-region (point-min) start)
|
||||
(while (and (> pos (point-min))
|
||||
(save-excursion
|
||||
(goto-char pos)
|
||||
(backward-char 1)
|
||||
(looking-at (concat "\\(?:" regexp "\\)\\'"))))
|
||||
(setq pos (1- pos)))
|
||||
(save-excursion
|
||||
(goto-char pos)
|
||||
(looking-at (concat "\\(?:" regexp "\\)\\'")))))
|
||||
(not (null pos)))))
|
||||
|
||||
(provide 'org-compat)
|
||||
|
||||
;; arch-tag: a0a0579f-e68c-4bdf-9e55-93768b846bbe
|
||||
|
|
|
@ -1049,7 +1049,7 @@ Assumes cursor in item line."
|
|||
(org-adapt-indentation nil))
|
||||
(cond
|
||||
((and (looking-at "[ \t]*$")
|
||||
(looking-back "^\\([ \t]*\\)\\([-+*]\\|[0-9]+[).]\\)[ \t]+"))
|
||||
(org-looking-back "^\\([ \t]*\\)\\([-+*]\\|[0-9]+[).]\\)[ \t]+"))
|
||||
(setq this-command 'org-cycle-item-indentation)
|
||||
(if (eq last-command 'org-cycle-item-indentation)
|
||||
(condition-case nil
|
||||
|
|
|
@ -189,7 +189,7 @@ Changing this variable requires a restart of Emacs to get activated."
|
|||
(interactive)
|
||||
(end-of-line)
|
||||
(skip-chars-backward "\t ")
|
||||
(when (looking-back ":[A-Za-z]+:")
|
||||
(when (org-looking-back ":[A-Za-z]+:")
|
||||
(skip-chars-backward ":A-Za-z")
|
||||
(skip-chars-backward "\t ")))
|
||||
|
||||
|
@ -607,7 +607,7 @@ SCHEDULED: or DEADLINE: or ANYTHINGLIKETHIS:"
|
|||
(:end ; insert text here
|
||||
(skip-chars-backward " \t")
|
||||
(kill-region (point) (point-at-eol))
|
||||
(unless (looking-back org-mouse-punctuation)
|
||||
(unless (org-looking-back org-mouse-punctuation)
|
||||
(insert (concat org-mouse-punctuation " ")))))
|
||||
|
||||
(insert text)
|
||||
|
@ -674,7 +674,7 @@ SCHEDULED: or DEADLINE: or ANYTHINGLIKETHIS:"
|
|||
'org-mode-restart))))
|
||||
((or (eolp)
|
||||
(and (looking-at "\\( \\|\t\\)\\(+:[0-9a-zA-Z_:]+\\)?\\( \\|\t\\)+$")
|
||||
(looking-back " \\|\t")))
|
||||
(org-looking-back " \\|\t")))
|
||||
(org-mouse-popup-global-menu))
|
||||
((get-context :checkbox)
|
||||
(popup-menu
|
||||
|
|
|
@ -6285,7 +6285,7 @@ in the region."
|
|||
(defun org-cycle-level ()
|
||||
(let ((org-adapt-indentation nil))
|
||||
(when (and (looking-at "[ \t]*$")
|
||||
(looking-back
|
||||
(org-looking-back
|
||||
(concat "^\\(\\*+\\)[ \t]+\\(" org-todo-regexp "\\)?[ \t]*")))
|
||||
(setq this-command 'org-cycle-level)
|
||||
(if (eq last-command 'org-cycle-level)
|
||||
|
|
Loading…
Reference in New Issue