Merge branch 'master' of git+ssh://repo.or.cz/srv/git/org-mode
This commit is contained in:
commit
8d980d219e
|
@ -57,12 +57,14 @@ This function is called by `org-babel-execute-src-block'."
|
|||
(out-file (cdr (assoc :file params)))
|
||||
(cmdline (cdr (assoc :cmdline params)))
|
||||
(in-file (org-babel-temp-file "plantuml-"))
|
||||
(cmd (concat "java -jar "
|
||||
(shell-quote-argument org-plantuml-jar-path)
|
||||
" -p " cmdline " < "
|
||||
(shell-quote-argument in-file)
|
||||
" > "
|
||||
(shell-quote-argument out-file))))
|
||||
(cmd (if (not org-plantuml-jar-path)
|
||||
(error "`org-plantuml-jar-path' is not set")
|
||||
(concat "java -jar "
|
||||
(shell-quote-argument org-plantuml-jar-path)
|
||||
" -p " cmdline " < "
|
||||
(shell-quote-argument in-file)
|
||||
" > "
|
||||
(shell-quote-argument out-file)))))
|
||||
(unless (file-exists-p org-plantuml-jar-path)
|
||||
(error "Could not find plantuml.jar at %s" org-plantuml-jar-path))
|
||||
(with-temp-file in-file (insert (concat "@startuml\n" body "\n@enduml")))
|
||||
|
|
|
@ -54,7 +54,6 @@
|
|||
|
||||
(defun org-babel-expand-body:ruby (body params &optional processed-params)
|
||||
"Expand BODY according to PARAMS, return the expanded body."
|
||||
(require 'inf-ruby)
|
||||
(let ((vars (nth 1 (or processed-params (org-babel-process-params params)))))
|
||||
(concat
|
||||
(mapconcat ;; define any variables
|
||||
|
|
|
@ -4002,8 +4002,7 @@ The remainder is either a list of TODO keywords, or a state symbol
|
|||
"Create agenda view for projects that are stuck.
|
||||
Stuck projects are project that have no next actions. For the definitions
|
||||
of what a project is and how to check if it stuck, customize the variable
|
||||
`org-stuck-projects'.
|
||||
MATCH is being ignored."
|
||||
`org-stuck-projects'."
|
||||
(interactive)
|
||||
(let* ((org-agenda-skip-function
|
||||
'org-agenda-skip-entry-when-regexp-matches-in-subtree)
|
||||
|
@ -5118,7 +5117,7 @@ The modified list may contain inherited tags, and tags matched by
|
|||
(throw 'exit list))
|
||||
(while (setq time (pop gridtimes))
|
||||
(unless (and remove (member time have))
|
||||
(setq time (format "%2d" time))
|
||||
(setq time (format "%4d" time))
|
||||
(push (org-format-agenda-item
|
||||
nil string "" nil
|
||||
(concat (substring time 0 -2) ":" (substring time -2)))
|
||||
|
|
|
@ -557,6 +557,13 @@ use libnotify if available, or fall back on a message."
|
|||
((stringp org-show-notification-handler)
|
||||
(start-process "emacs-timer-notification" nil
|
||||
org-show-notification-handler notification))
|
||||
((featurep 'notifications)
|
||||
(notifications-notify
|
||||
:title "Org-mode message"
|
||||
:body notification
|
||||
;; FIXME how to link to the Org icon?
|
||||
;; :app-icon "~/.emacs.d/icons/mail.png"
|
||||
:urgency 'low))
|
||||
((org-program-exists "notify-send")
|
||||
(start-process "emacs-timer-notification" nil
|
||||
"notify-send" notification))
|
||||
|
|
|
@ -720,7 +720,7 @@ MAY-INLINE-P allows inlining it as an image."
|
|||
;;Substitute just if original path was absolute.
|
||||
;;(Otherwise path must remain relative)
|
||||
(if (file-name-absolute-p path)
|
||||
(expand-file-name path)
|
||||
(concat "file://" (expand-file-name path))
|
||||
path)))
|
||||
((string= type "")
|
||||
(list nil path))
|
||||
|
@ -756,8 +756,7 @@ MAY-INLINE-P allows inlining it as an image."
|
|||
(setq thefile
|
||||
(let
|
||||
((str (org-export-html-format-href thefile)))
|
||||
(if (and type (not (string= "file" type))
|
||||
(org-string-match-p "^//" str))
|
||||
(if (and type (not (string= "file" type)))
|
||||
(concat type ":" str)
|
||||
str)))
|
||||
|
||||
|
|
|
@ -260,7 +260,7 @@ Here is an example:
|
|||
:group 'org-protocol
|
||||
:type '(alist))
|
||||
|
||||
(defcustom org-protocol-default-template-key "w"
|
||||
(defcustom org-protocol-default-template-key nil
|
||||
"The default org-remember-templates key to use."
|
||||
:group 'org-protocol
|
||||
:type 'string)
|
||||
|
|
|
@ -715,6 +715,70 @@ Org-babel commands."
|
|||
(call-interactively
|
||||
(lookup-key org-babel-map key)))))
|
||||
|
||||
(defvar org-src-tab-acts-natively nil
|
||||
"If non-nil, the effect of TAB in a code block is as if it were
|
||||
issued in the language major mode buffer.")
|
||||
|
||||
(defun org-src-native-tab-command-maybe ()
|
||||
"Perform language-specific TAB action.
|
||||
Alter code block according to effect of TAB in the language major
|
||||
mode."
|
||||
(and org-src-tab-acts-natively
|
||||
(org-babel-do-key-sequence-in-edit-buffer (kbd "TAB"))))
|
||||
|
||||
(add-hook 'org-tab-first-hook 'org-src-native-tab-command-maybe)
|
||||
|
||||
(defun org-src-font-lock-fontify-block (lang start end)
|
||||
"Fontify code block.
|
||||
This function is called by emacs automatic fontification, as long
|
||||
as `org-src-fontify-natively' is non-nil. For manual
|
||||
fontification of code blocks see `org-src-fontify-block' and
|
||||
`org-src-fontify-buffer'"
|
||||
(let* ((lang-mode (org-src-get-lang-mode lang))
|
||||
(string (buffer-substring-no-properties start end))
|
||||
(modified (buffer-modified-p))
|
||||
(org-buffer (current-buffer)) pos next)
|
||||
(remove-text-properties start end '(face nil))
|
||||
(with-current-buffer
|
||||
(get-buffer-create
|
||||
(concat " org-src-fontification:" (symbol-name lang-mode)))
|
||||
(delete-region (point-min) (point-max))
|
||||
(insert string)
|
||||
(unless (eq major-mode lang-mode) (funcall lang-mode))
|
||||
(font-lock-fontify-buffer)
|
||||
(setq pos (point-min))
|
||||
(while (setq next (next-single-property-change pos 'face))
|
||||
(put-text-property
|
||||
(+ start (1- pos)) (+ start next) 'face
|
||||
(get-text-property pos 'face) org-buffer)
|
||||
(setq pos next)))
|
||||
(add-text-properties
|
||||
start end
|
||||
'(font-lock-fontified t fontified t font-lock-multiline t))
|
||||
(set-buffer-modified-p modified))
|
||||
t) ;; Tell `org-fontify-meta-lines-and-blocks' that we fontified
|
||||
|
||||
(defun org-src-fontify-block ()
|
||||
"Fontify code block at point."
|
||||
(interactive)
|
||||
(save-excursion
|
||||
(let ((org-src-fontify-natively t)
|
||||
(info (org-edit-src-find-region-and-lang)))
|
||||
(font-lock-fontify-region (nth 0 info) (nth 1 info)))))
|
||||
|
||||
(defun org-src-fontify-buffer ()
|
||||
"Fontify all code blocks in the current buffer"
|
||||
(interactive)
|
||||
(org-babel-map-src-blocks nil
|
||||
(org-src-fontify-block)))
|
||||
|
||||
(defun org-src-get-lang-mode (lang)
|
||||
"Return major mode that should be used for LANG.
|
||||
LANG is a string, and the returned major mode is a symbol."
|
||||
(intern
|
||||
(concat
|
||||
((lambda (l) (if (symbolp l) (symbol-name l) l))
|
||||
(or (cdr (assoc lang org-src-lang-modes)) lang)) "-mode")))
|
||||
|
||||
(provide 'org-src)
|
||||
|
||||
|
|
|
@ -149,8 +149,7 @@ With prefix arg STOP, stop it entirely."
|
|||
"Insert a H:MM:SS string from the timer into the buffer.
|
||||
The first time this command is used, the timer is started. When used with
|
||||
a \\[universal-argument] prefix, force restarting the timer.
|
||||
When used with a double prefix argument \
|
||||
\\[universal-argument] \\universal-argument], change all the timer string
|
||||
When used with a double prefix argument \\[universal-argument], change all the timer string
|
||||
in the region by a fixed amount. This can be used to recalibrate a timer
|
||||
that was not started at the correct moment.
|
||||
|
||||
|
@ -166,9 +165,13 @@ it in the buffer."
|
|||
(defun org-timer-value-string ()
|
||||
(format org-timer-format (org-timer-secs-to-hms (floor (org-timer-seconds)))))
|
||||
|
||||
(defvar org-timer-timer-is-countdown nil)
|
||||
(defun org-timer-seconds ()
|
||||
(- (org-float-time (or org-timer-pause-time (current-time)))
|
||||
(org-float-time org-timer-start-time)))
|
||||
(if org-timer-timer-is-countdown
|
||||
(- (org-float-time org-timer-start-time)
|
||||
(org-float-time (current-time)))
|
||||
(- (org-float-time (or org-timer-pause-time (current-time)))
|
||||
(org-float-time org-timer-start-time))))
|
||||
|
||||
;;;###autoload
|
||||
(defun org-timer-change-times-in-region (beg end delta)
|
||||
|
@ -378,8 +381,14 @@ replace any running timer."
|
|||
secs nil `(lambda ()
|
||||
(setq org-timer-current-timer nil)
|
||||
(org-notify ,(format "%s: time out" hl) t)
|
||||
(setq org-timer-timer-is-countdown nil)
|
||||
(org-timer-set-mode-line 'off)
|
||||
(run-hooks 'org-timer-done-hook))))
|
||||
(run-hooks 'org-timer-set-hook))
|
||||
(run-hooks 'org-timer-set-hook)
|
||||
(setq org-timer-timer-is-countdown t
|
||||
org-timer-start-time
|
||||
(time-add (current-time) (seconds-to-time (* mins 60))))
|
||||
(org-timer-set-mode-line 'on))
|
||||
(message "No timer set"))))))
|
||||
|
||||
(provide 'org-timer)
|
||||
|
|
12
lisp/org.el
12
lisp/org.el
|
@ -5022,13 +5022,19 @@ will be prompted for."
|
|||
'(display t invisible t intangible t))
|
||||
t)))
|
||||
|
||||
(defvar org-src-fontify-natively t
|
||||
"When non-nil, fontify code in code blocks.")
|
||||
|
||||
(defun org-fontify-meta-lines-and-blocks (limit)
|
||||
"Fontify #+ lines and blocks, in the correct ways."
|
||||
(let ((case-fold-search t))
|
||||
(if (re-search-forward
|
||||
"^\\([ \t]*#\\+\\(\\([a-zA-Z]+:?\\| \\|$\\)\\(_\\([a-zA-Z]+\\)\\)?\\)\\(.*\\)\\)"
|
||||
"^\\([ \t]*#\\+\\(\\([a-zA-Z]+:?\\| \\|$\\)\\(_\\([a-zA-Z]+\\)\\)?\\)[ \t]*\\(\\([^ \t\n]*\\)[ \t]*\\(.*\\)\\)\\)"
|
||||
limit t)
|
||||
(let ((beg (match-beginning 0))
|
||||
(block-start (match-end 0))
|
||||
(block-end nil)
|
||||
(lang (match-string 7))
|
||||
(beg1 (line-beginning-position 2))
|
||||
(dc1 (downcase (match-string 2)))
|
||||
(dc3 (downcase (match-string 3)))
|
||||
|
@ -5053,6 +5059,7 @@ will be prompted for."
|
|||
(concat "^[ \t]*#\\+end" (match-string 4) "\\>.*")
|
||||
nil t) ;; on purpose, we look further than LIMIT
|
||||
(setq end (match-end 0) end1 (1- (match-beginning 0)))
|
||||
(setq block-end (match-beginning 0))
|
||||
(when quoting
|
||||
(remove-text-properties beg end
|
||||
'(display t invisible t intangible t)))
|
||||
|
@ -5063,6 +5070,8 @@ will be prompted for."
|
|||
(add-text-properties end1 (+ end 1) '(face org-meta-line))
|
||||
; for end_src
|
||||
(cond
|
||||
((and lang org-src-fontify-natively)
|
||||
(org-src-font-lock-fontify-block lang block-start block-end))
|
||||
(quoting
|
||||
(add-text-properties beg1 (+ end1 1) '(face
|
||||
org-block)))
|
||||
|
@ -9890,6 +9899,7 @@ on the system \"/user@host:\"."
|
|||
(setq level (org-reduced-level
|
||||
(- (match-end 1) (match-beginning 1)))
|
||||
txt (org-link-display-format (match-string 4))
|
||||
txt (replace-regexp-in-string " *\[[0-9]+/[0-9]+\]$" "" txt)
|
||||
re (format org-complex-heading-regexp-format
|
||||
(regexp-quote (match-string 4))))
|
||||
(when org-refile-use-outline-path
|
||||
|
|
Loading…
Reference in New Issue