Implement completion for some export structure elements.
This is an experimental feature and does not really fit into Org, so it may go away in the future.
This commit is contained in:
parent
5d675ca8bd
commit
ed25bd08fa
|
@ -1,3 +1,9 @@
|
|||
2008-05-07 Carsten Dominik <dominik@science.uva.nl>
|
||||
|
||||
* lisp/org.el (org-complete-expand-structure-template): New,
|
||||
experimental function.
|
||||
(org-structure-template-alist): New, experimental option.
|
||||
(org-complete): Call `org-complete-expand-structure-template'.
|
||||
|
||||
2008-05-06 Bastien Guerry <bzg@altern.org>
|
||||
|
||||
|
|
|
@ -2350,7 +2350,7 @@ PUB-DIR is set, use this as the publishing directory."
|
|||
table-buffer table-orig-buffer
|
||||
ind item-type starter didclose
|
||||
rpl path desc descp desc1 desc2 link
|
||||
snumber fnc
|
||||
snumber fnc item-tag
|
||||
)
|
||||
|
||||
(let ((inhibit-read-only t))
|
||||
|
@ -2760,7 +2760,7 @@ lang=\"%s\" xml:lang=\"%s\">
|
|||
starter (if (match-beginning 2)
|
||||
(substring (match-string 2 line) 0 -1))
|
||||
line (substring line (match-beginning 5))
|
||||
item-tag)
|
||||
item-tag nil)
|
||||
(if (string-match "\\(.*?\\) ::[ \t]*" line)
|
||||
(setq item-type "d"
|
||||
item-tag (match-string 1 line)
|
||||
|
|
41
lisp/org.el
41
lisp/org.el
|
@ -7581,24 +7581,31 @@ This function can be used in a hook."
|
|||
|
||||
(defcustom org-structure-template-alist
|
||||
'(
|
||||
("s" "#+begin_src ?\n\n#+end_src" "#+<src lang=\"?\">\n\n</src>")
|
||||
("e" "#+begin_example\n?\n#+end_example" "<example>\n?\n</example>")
|
||||
("q" "#+begin_quote\n?\n#+end_quote" "<quote>\n?\n</quote>")
|
||||
("v" "#+begin_verse\n?\n#+end_verse" "<verse>\n?\n</verse>")
|
||||
("l" "#+begin_latex\n?\n#+end_latex" "<literal style=\"latex\">\n?\n</literal>")
|
||||
("L" "#+latex: " "<literal style=\"latex\">?</literal>")
|
||||
("h" "#+begin_html\n?\n#+end_html" "<literal style=\"latex\">\n?\n</literal>")
|
||||
("H" "#+html: " "<literal style=\"latex\">?</literal>")
|
||||
("s" "#+begin_src ?\n\n#+end_src")
|
||||
("e" "#+begin_example\n?\n#+end_example")
|
||||
("q" "#+begin_quote\n?\n#+end_quote")
|
||||
("v" "#+begin_verse\n?\n#+end_verse")
|
||||
("l" "#+begin_latex\n?\n#+end_latex")
|
||||
("L" "#+latex: ")
|
||||
("h" "#+begin_html\n?\n#+end_html")
|
||||
("H" "#+html: ")
|
||||
("a" "#+begin_ascii\n?\n#+end_ascii")
|
||||
("A" "#+ascii: ")
|
||||
("i" "#+include: " "<include file=\"?\">")
|
||||
("i" "#+include: %file ?")
|
||||
)
|
||||
"FIXME"
|
||||
:group 'org ;?????????????????
|
||||
:type 'sexp)
|
||||
"Structure completion elements.
|
||||
This is a list of abbreviation keys and values. The value gets inserted
|
||||
it you type @samp{.} followed by the key and then the completion key,
|
||||
usually `M-TAB'. %file will be replaced by a file name after prompting
|
||||
for the file uning completion.
|
||||
This is an experimental feature, it is undecided if it is going to stay in."
|
||||
:group 'org-completion
|
||||
:type '(repeat
|
||||
(string :tag "Key") (string :tag "Template")))
|
||||
|
||||
(defun org-complete-expand-structure-template (start cell)
|
||||
(let ((rpl (cdr cell)))
|
||||
"Expand a structure template."
|
||||
(let ((rpl (nth 1 cell)))
|
||||
(delete-region start (point))
|
||||
(when (string-match "\\`#\\+" rpl)
|
||||
(cond
|
||||
|
@ -7607,6 +7614,14 @@ This function can be used in a hook."
|
|||
(delete-region (point-at-bol) (point)))
|
||||
(t (newline))))
|
||||
(setq start (point))
|
||||
(if (string-match "%file" rpl)
|
||||
(setq rpl (replace-match
|
||||
(concat
|
||||
"\""
|
||||
(save-match-data
|
||||
(abbreviate-file-name (read-file-name "Include file: ")))
|
||||
"\"")
|
||||
t t rpl)))
|
||||
(insert rpl)
|
||||
(if (re-search-backward "\\?" start t) (delete-char 1))))
|
||||
|
||||
|
|
Loading…
Reference in New Issue