[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] links-9.0 v3
From: |
John Kitchin |
Subject: |
Re: [O] links-9.0 v3 |
Date: |
Thu, 14 Jul 2016 21:12:50 -0400 |
User-agent: |
mu4e 0.9.16; emacs 25.1.50.1 |
Here are my current suggestions for the org-link 9.0. Let me know what
the best way to send these might be. It looks like it might be 21
patches right now. Thanks,
17 files changed, 187 insertions(+), 87 deletions(-)
contrib/orgmanual.org | 27 +++++----
doc/org.texi | 27 +++++----
etc/ORG-NEWS | 2 +
lisp/org-bbdb.el | 8 ++-
lisp/org-bibtex.el | 5 +-
lisp/org-docview.el | 6 +-
lisp/org-element.el | 4 +-
lisp/org-eshell.el | 5 +-
lisp/org-gnus.el | 3 +-
lisp/org-id.el | 2 +-
lisp/org-info.el | 8 ++-
lisp/org-irc.el | 4 +-
lisp/org-mhe.el | 3 +-
lisp/org-rmail.el | 3 +-
lisp/org-w3m.el | 2 +-
lisp/org.el | 163 ++++++++++++++++++++++++++++++++++++++------------
lisp/ox.el | 2 +-
modified contrib/orgmanual.org
@@ -3300,12 +3300,16 @@ can define them in the file with
,#+LINK: google http://www.google.com/search?q=%s
#+end_src
-{{{noindent}}} In-buffer completion (see [[Completion]]) can be used after
-{{{samp([)}}} to complete link abbreviations. You may also define a
-function ~org-PREFIX-complete-link~ that implements special (e.g.,
-completion) support for inserting such a link with {{{kbd(C-c C-l)}}}.
-Such a function should not accept any arguments, and return the full
-link with prefix.
+{{{noindent}}} In-buffer completion (see [[Completion]]) can be used
+after {{{samp([)}}} to complete link abbreviations. You may also
+define a function that implements special (e.g., completion) support
+for inserting such a link with {{{kbd(C-c C-l)}}}. Such a function
+should not accept any arguments, and return the full link with
+prefix. You can set the link completion function like this:
+
+#+BEGIN_SRC emacs-lisp
+(org-link-set-parameter "type" :complete #'some-completion-function)
+#+END_SRC
** Search options
:PROPERTIES:
@@ -16998,10 +17002,9 @@ description when the link is later inserted into an
Org buffer with
{{{kbd(C-c C-l)}}}.
When it makes sense for your new link type, you may also define a
-function ~org-PREFIX-complete-link~ that implements special (e.g.,
-completion) support for inserting such a link with {{{kbd(C-c C-l)}}}.
-Such a function should not accept any arguments, and return the full
-link with prefix.
+function that implements special (e.g., completion) support for
+inserting such a link with {{{kbd(C-c C-l)}}}. Such a function should
+not accept any arguments, and return the full link with prefix.
** Context-sensitive commands
:PROPERTIES:
@@ -19181,8 +19184,8 @@ from the list of stored links. To keep it in the list
later use, use a
triple {{{kbd(C-u)}}} prefix argument to {{{kbd(C-c C-l)}}}, or
configure the option ~org-keep-stored-link-after-insertion~.
-[fn:37] This works by calling a special function
-~org-PREFIX-complete-link~.
+[fn:37] This works if a function has been defined in the :complete
+property of a link in ~org-link-parameters~.
[fn:38] See the variable ~org-display-internal-link-with-indirect-buffer~.
modified doc/org.texi
@@ -3711,11 +3711,11 @@ them with @key{up} and @key{down} (or @kbd{M-p/n}).
valid link prefixes like @samp{http:} or @samp{ftp:}, including the prefixes
defined through link abbreviations (@pxref{Link abbreviations}). If you
press @key{RET} after inserting only the @var{prefix}, Org will offer
-specific completion support for some link address@hidden works by
-calling a special function @code{org-PREFIX-complete-link}.} For
-example, if you type @kbd{file @key{RET}}, file name completion (alternative
-access: @kbd{C-u C-c C-l}, see below) will be offered, and after @kbd{bbdb
address@hidden you can complete contact names.
+specific completion support for some link address@hidden works if a
+completion function is defined in the :complete property of a link in
address@hidden For example, if you type @kbd{file @key{RET}},
+file name completion (alternative access: @kbd{C-u C-c C-l}, see below) will
+be offered, and after @kbd{bbdb @key{RET}} you can complete contact names.
@orgkey C-u C-c C-l
@cindex file name completion
@cindex completion, of file names
@@ -3887,10 +3887,13 @@ can define them in the file with
@noindent
In-buffer completion (@pxref{Completion}) can be used after @samp{[} to
-complete link abbreviations. You may also define a function
address@hidden that implements special (e.g., completion)
-support for inserting such a link with @kbd{C-c C-l}. Such a function should
-not accept any arguments, and return the full link with prefix.
+complete link abbreviations. You may also define a function that implements
+special (e.g., completion) support for inserting such a link with @kbd{C-c
+C-l}. Such a function should not accept any arguments, and return the full
+link with prefix. You can add a completion function to a link like this:
+
address@hidden(org-link-set-parameters ``type'' :complete #'some-function)}
+
@node Search options
@section Search options in file links
@@ -18005,9 +18008,9 @@ the link description when the link is later inserted
into an Org
buffer with @kbd{C-c C-l}.
When it makes sense for your new link type, you may also define a function
address@hidden that implements special (e.g., completion)
-support for inserting such a link with @kbd{C-c C-l}. Such a function should
-not accept any arguments, and return the full link with prefix.
+that implements special (e.g., completion) support for inserting such a link
+with @kbd{C-c C-l}. Such a function should not accept any arguments, and
+return the full link with prefix.
@node Adding export back-ends
@section Adding export back-ends
modified etc/ORG-NEWS
@@ -353,6 +353,8 @@ first footnote.
*** The ~org-block~ face is inherited by ~src-blocks~
This works also when =org-src-fontify-natively= is non-nil. It is also
possible to specify per-languages faces. See the manual for details.
+*** Links are now customizable
+Links can now have custom colors, tooltips, keymaps, display behavior, etc...
Links are now centralized in ~org-link-parameters~.
** New functions
*** ~org-next-line-empty-p~
It replaces the deprecated ~next~ argument to ~org-previous-line-empty-p~.
modified lisp/org-bbdb.el
@@ -194,10 +194,12 @@ date year)."
:group 'org-bbdb-anniversaries
:require 'bbdb)
-
;; Install the link type
-(org-add-link-type "bbdb" 'org-bbdb-open 'org-bbdb-export)
-(add-hook 'org-store-link-functions 'org-bbdb-store-link)
+(org-link-set-parameters "bbdb"
+ :follow #'org-bbdb-open
+ :export #'org-bbdb-export
+ :complete #'org-bbdb-complete-link
+ :store #'org-bbdb-store-link)
;; Implementation
(defun org-bbdb-store-link ()
modified lisp/org-bibtex.el
@@ -452,8 +452,9 @@ With optional argument OPTIONAL, also prompt for optional
fields."
;;; Bibtex link functions
-(org-add-link-type "bibtex" 'org-bibtex-open)
-(add-hook 'org-store-link-functions 'org-bibtex-store-link)
+(org-link-set-parameters "bibtex"
+ :follow #'org-bibtex-open
+ :store #'org-bibtex-store-link)
(defun org-bibtex-open (path)
"Visit the bibliography entry on PATH."
modified lisp/org-docview.el
@@ -49,8 +49,10 @@
(declare-function doc-view-goto-page "doc-view" (page))
(declare-function image-mode-window-get "image-mode" (prop &optional winprops))
-(org-add-link-type "docview" 'org-docview-open 'org-docview-export)
-(add-hook 'org-store-link-functions 'org-docview-store-link)
+(org-link-set-parameters "docview"
+ :follow #'org-docview-open
+ :export #'org-docview-export
+ :store #'org-docview-store-link)
(defun org-docview-export (link description format)
"Export a docview link from Org files."
modified lisp/org-element.el
@@ -185,7 +185,7 @@ specially in `org-element--object-lex'.")
"\\)\\)")
org-element--object-regexp
(mapconcat #'identity
- (let ((link-types (regexp-opt org-link-types)))
+ (let ((link-types (regexp-opt (org-link-types))))
(list
;; Sub/superscript.
"\\(?:[_^][-{(*+.,[:alnum:]]\\)"
@@ -3108,7 +3108,7 @@ Assume point is at the beginning of the link."
(string-match "\\`\\.\\.?/" raw-link))
(setq type "file")
(setq path raw-link))
- ;; Explicit type (http, irc, bbdb...). See `org-link-types'.
+ ;; Explicit type (http, irc, bbdb...).
((string-match org-link-types-re raw-link)
(setq type (match-string 1 raw-link))
(setq path (substring raw-link (match-end 0))))
modified lisp/org-eshell.el
@@ -27,8 +27,9 @@
(require 'eshell)
(require 'esh-mode)
-(org-add-link-type "eshell" 'org-eshell-open)
-(add-hook 'org-store-link-functions 'org-eshell-store-link)
+(org-link-set-parameters "eshell"
+ :follow #'org-eshell-open
+ :store #'org-eshell-store-link)
(defun org-eshell-open (link)
"Switch to am eshell buffer and execute a command line.
modified lisp/org-gnus.el
@@ -74,8 +74,7 @@ this variable to t."
:type 'boolean)
;; Install the link type
-(org-add-link-type "gnus" 'org-gnus-open)
-(add-hook 'org-store-link-functions 'org-gnus-store-link)
+(org-link-set-parameters "gnus" :follow #'org-gnus-open :store
#'org-gnus-store-link)
;; Implementation
modified lisp/org-id.el
@@ -675,7 +675,7 @@ optional argument MARKERP, return the position as a new
marker."
(move-marker m nil)
(org-show-context)))
-(org-add-link-type "id" 'org-id-open)
+(org-link-set-parameters "id" :follow #'org-id-open)
(provide 'org-id)
modified lisp/org-info.el
@@ -40,8 +40,10 @@
(defvar Info-current-node)
;; Install the link type
-(org-add-link-type "info" 'org-info-open 'org-info-export)
-(add-hook 'org-store-link-functions 'org-info-store-link)
+(org-link-set-parameters "info"
+ :follow #'org-info-open
+ :export #'org-info-export
+ :store #'org-info-store-link)
;; Implementation
(defun org-info-store-link ()
@@ -113,7 +115,7 @@ emacs related documents. See
`org-info-official-gnu-document' and
(defun org-info-export (path desc format)
"Export an info link.
-See `org-add-link-type' for details about PATH, DESC and FORMAT."
+See `org-link-parameters' for details about PATH, DESC and FORMAT."
(when (eq format 'html)
(or (string-match "\\(.*\\)[#:]:?\\(.*\\)" path)
(string-match "\\(.*\\)" path))
modified lisp/org-irc.el
@@ -71,9 +71,7 @@
;; Generic functions/config (extend these for other clients)
-(add-to-list 'org-store-link-functions 'org-irc-store-link)
-
-(org-add-link-type "irc" 'org-irc-visit nil)
+(org-link-set-parameters "irc" :follow #'org-irc-visit :store
#'org-irc-store-link)
(defun org-irc-visit (link)
"Parse LINK and dispatch to the correct function based on the client found."
modified lisp/org-mhe.el
@@ -74,8 +74,7 @@ supported by MH-E."
(defvar mh-search-regexp-builder)
;; Install the link type
-(org-add-link-type "mhe" 'org-mhe-open)
-(add-hook 'org-store-link-functions 'org-mhe-store-link)
+(org-link-set-parameters "mhe" :follow #'org-mhe-open :store
#'org-mhe-store-link)
;; Implementation
(defun org-mhe-store-link ()
modified lisp/org-rmail.el
@@ -43,8 +43,7 @@
(defvar rmail-file-name) ; From rmail.el
;; Install the link type
-(org-add-link-type "rmail" 'org-rmail-open)
-(add-hook 'org-store-link-functions 'org-rmail-store-link)
+(org-link-set-parameters "rmail" :follow #'org-rmail-open :store
#'org-rmail-store-link)
;; Implementation
(defun org-rmail-store-link ()
modified lisp/org-w3m.el
@@ -46,7 +46,7 @@
(defvar w3m-current-url)
(defvar w3m-current-title)
-(add-hook 'org-store-link-functions 'org-w3m-store-link)
+(org-link-set-parameters "w3m" :store #'org-w3m-store-link)
(defun org-w3m-store-link ()
"Store a link to a w3m buffer."
(when (eq major-mode 'w3m-mode)
modified lisp/org.el
@@ -1803,10 +1803,11 @@ activation. The function must accept (link-start
link-end path bracketp)
as arguments."
:group 'org-link
:type '(alist :tag "Link display paramters"
- :value-type (plist)))
+ :value-type plist))
(defun org-link-get-parameter (type key)
- "Get TYPE link property for KEY."
+ "Get TYPE link property for KEY.
+TYPE is a string and KEY is a plist keyword."
(plist-get
(cdr (assoc type org-link-parameters))
key))
@@ -1815,11 +1816,7 @@ as arguments."
"Set link TYPE properties to PARAMETERS.
PARAMETERS should be :key val pairs."
(let ((data (assoc type org-link-parameters)))
- (if data
- (cl-loop for (key val) on parameters by #'cddr
- do
- (setf (cl-getf (cdr data) key)
- val))
+ (if data (setcdr data (org-combine-plists (cdr data) parameters))
(push (cons type parameters) org-link-parameters)
(org-make-link-regexps)
(org-element-update-syntax))))
@@ -5728,9 +5725,6 @@ the rounding returns a past time."
(require 'font-lock)
(defconst org-non-link-chars "]\t\n\r<>")
-(defvar org-link-types '("http" "https" "ftp" "mailto" "file" "file+emacs"
- "file+sys" "news" "shell" "elisp" "doi" "message"
- "help"))
(defvar org-link-types-re nil
"Matches a link that has a url-like prefix like \"http:\"")
(defvar org-link-re-with-space nil
@@ -5797,8 +5791,8 @@ stacked delimiters is N. Escaping delimiters is not
possible."
(defun org-make-link-regexps ()
"Update the link regular expressions.
-This should be called after the variable `org-link-types' has changed."
- (let ((types-re (regexp-opt org-link-types t)))
+This should be called after the variable `org-link-parameters' has changed."
+ (let ((types-re (regexp-opt (org-link-types) t)))
(setq org-link-types-re
(concat "\\`" types-re ":")
org-link-re-with-space
@@ -5836,7 +5830,7 @@ This should be called after the variable `org-link-types'
has changed."
org-bracket-link-analytic-regexp++
(concat
"\\[\\["
- "\\(" (regexp-opt (cons "coderef" org-link-types) t) ":\\)?"
+ "\\(" (regexp-opt (cons "coderef" (org-link-types)) t) ":\\)?"
"\\([^]]+\\)"
"\\]"
"\\(\\[" "\\([^]]+\\)" "\\]\\)?"
@@ -5934,17 +5928,57 @@ prompted for."
"Add link properties for plain links."
(when (and (re-search-forward org-plain-link-re limit t)
(not (org-in-src-block-p)))
- (let ((face (get-text-property (max (1- (match-beginning 0)) (point-min))
- 'face))
- (link (match-string-no-properties 0)))
+
+ (let* ((face (get-text-property (max (1- (match-beginning 0)) (point-min))
+ 'face))
+ (link (match-string-no-properties 0))
+ (type (match-string-no-properties 1))
+ (path (match-string-no-properties 2))
+ (link-start (match-beginning 0))
+ (link-end (match-end 0))
+ (link-face (org-link-get-parameter type :face))
+ (help-echo (org-link-get-parameter type :help-echo))
+ (htmlize-link (org-link-get-parameter type :htmlize-link))
+ (activate-func (org-link-get-parameter type :activate-func)))
(unless (if (consp face) (memq 'org-tag face) (eq 'org-tag face))
(org-remove-flyspell-overlays-in (match-beginning 0) (match-end 0))
(add-text-properties (match-beginning 0) (match-end 0)
- (list 'mouse-face 'highlight
- 'face 'org-link
- 'htmlize-link `(:uri ,link)
- 'keymap org-mouse-map))
+ (list
+ 'mouse-face (or (org-link-get-parameter type
:mouse-face)
+ 'highlight)
+ 'face (cond
+ ;; A function that returns a face
+ ((functionp link-face)
+ (funcall link-face path))
+ ;; a face
+ ((facep link-face)
+ link-face)
+ ;; An anonymous face
+ ((consp link-face)
+ link-face)
+ ;; default
+ (t
+ 'org-link))
+ 'help-echo (cond
+ ((stringp help-echo)
+ help-echo)
+ ((functionp help-echo)
+ help-echo)
+ (t
+ (concat "LINK: "
+ (save-match-data
+ (org-link-unescape
link)))))
+ 'htmlize-link (cond
+ ((functionp htmlize-link)
+ (funcall htmlize-link path))
+ (t
+ `(:uri ,link)))
+ 'keymap (or (org-link-get-parameter type :keymap)
+ org-mouse-map)
+ 'org-link-start (match-beginning 0)))
(org-rear-nonsticky-at (match-end 0))
+ (when activate-func
+ (funcall activate-func link-start link-end path nil))
t))))
(defun org-activate-code (limit)
@@ -6134,14 +6168,67 @@ by a #."
(when (and (re-search-forward org-bracket-link-regexp limit t)
(not (org-in-src-block-p)))
(let* ((hl (match-string-no-properties 1))
- (help (concat "LINK: " (save-match-data (org-link-unescape hl))))
- (ip (list 'invisible 'org-link
- 'keymap org-mouse-map 'mouse-face 'highlight
- 'font-lock-multiline t 'help-echo help
- 'htmlize-link `(:uri ,hl)))
- (vp (list 'keymap org-mouse-map 'mouse-face 'highlight
- 'font-lock-multiline t 'help-echo help
- 'htmlize-link `(:uri ,hl))))
+ (type (save-match-data
+ (and (string-match org-plain-link-re hl)
+ (match-string-no-properties 1 hl))))
+ (path (save-match-data
+ (and (string-match org-plain-link-re hl)
+ (match-string-no-properties 2 hl))))
+ (link-start (match-beginning 0))
+ (link-end (match-end 0))
+ (bracketp t)
+ (help-echo (org-link-get-parameter type :help-echo))
+ (help (cond
+ ((stringp help-echo)
+ help-echo)
+ ((functionp help-echo)
+ help-echo)
+ (t
+ (concat "LINK: "
+ (save-match-data
+ (org-link-unescape hl))))))
+ (link-face (org-link-get-parameter type :face))
+ (face (cond
+ ;; A function that returns a face
+ ((functionp link-face)
+ (funcall link-face path))
+ ;; a face
+ ((facep link-face)
+ link-face)
+ ;; An anonymous face
+ ((consp link-face)
+ link-face)
+ ;; default
+ (t
+ 'org-link)))
+ (keymap (or (org-link-get-parameter type :keymap)
+ org-mouse-map))
+ (mouse-face (or (org-link-get-parameter type :mouse-face)
+ 'highlight))
+ (htmlize (org-link-get-parameter type :htmlize-link))
+ (htmlize-link (cond
+ ((functionp htmlize)
+ (funcall htmlize))
+ (t
+ `(:uri ,(format "%s:%s" type path)))))
+ (activate-func (org-link-get-parameter type :activate-func))
+ ;; invisible part
+ (ip (list 'invisible (or
+ (org-link-get-parameter type :display)
+ 'org-link)
+ 'face face
+ 'keymap keymap
+ 'mouse-face mouse-face
+ 'font-lock-multiline t
+ 'help-echo help
+ 'htmlize-link htmlize-link))
+ ;; visible part
+ (vp (list 'keymap keymap
+ 'face face
+ 'mouse-face mouse-face
+ 'font-lock-multiline t
+ 'help-echo help
+ 'htmlize-link htmlize-link)))
;; We need to remove the invisible property here. Table narrowing
;; may have made some of this invisible.
(org-remove-flyspell-overlays-in (match-beginning 0) (match-end 0))
@@ -6161,6 +6248,8 @@ by a #."
(org-rear-nonsticky-at (match-end 1))
(add-text-properties (match-end 1) (match-end 0) ip)
(org-rear-nonsticky-at (match-end 0)))
+ (when activate-func
+ (funcall activate-func link-start link-end path bracketp))
t)))
(defun org-activate-dates (limit)
@@ -6432,8 +6521,8 @@ needs to be inserted at a specific position in the
font-lock sequence.")
;; Links
(when (memq 'tag lk) '(org-activate-tags (1 'org-tag prepend)))
(when (memq 'angle lk) '(org-activate-angle-links (0 'org-link t)))
- (when (memq 'plain lk) '(org-activate-plain-links (0 'org-link t)))
- (when (memq 'bracket lk) '(org-activate-bracket-links (0 'org-link
t)))
+ (when (memq 'plain lk) '(org-activate-plain-links (0 'org-link)))
+ (when (memq 'bracket lk) '(org-activate-bracket-links (0 'org-link)))
(when (memq 'radio lk) '(org-activate-target-links (1 'org-link t)))
(when (memq 'date lk) '(org-activate-dates (0 'org-date t)))
(when (memq 'footnote lk) '(org-activate-footnote-links))
@@ -10367,7 +10456,7 @@ Use TAB to complete link prefixes, then RET for
type-specific completion support
(and (window-live-p cw) (select-window cw)))
(setq all-prefixes (append (mapcar 'car abbrevs)
(mapcar 'car org-link-abbrev-alist)
- org-link-types))
+ (org-link-types)))
(unwind-protect
;; Fake a link history, containing the stored links.
(let ((org--links-history
@@ -10471,7 +10560,7 @@ Use TAB to complete link prefixes, then RET for
type-specific completion support
(defun org-link-try-special-completion (type)
"If there is completion support for link type TYPE, offer it."
- (let ((fun (intern (concat "org-" type "-complete-link"))))
+ (let ((fun (org-link-get-parameter type :complete)))
(if (functionp fun)
(funcall fun)
(read-string "Link (no completion support): " (concat type ":")))))
@@ -10773,7 +10862,7 @@ link in a property drawer line."
((equal type "file")
(if (string-match "[*?{]" (file-name-nondirectory path))
(dired path)
- ;; Look into `org-link-protocols' in order to find
+ ;; Look into `org-link-parameters' in order to find
;; a DEDICATED-FUNCTION to open file. The function
;; will be applied on raw link instead of parsed
;; link due to the limitation in `org-add-link-type'
@@ -10787,7 +10876,7 @@ link in a property drawer line."
(let* ((option (org-element-property :search-option link))
(app (org-element-property :application link))
(dedicated-function
- (nth 1 (assoc app org-link-protocols))))
+ (org-link-get-parameter type :follow)))
(if dedicated-function
(funcall dedicated-function
(concat path
@@ -10802,8 +10891,8 @@ link in a property drawer line."
(list (string-to-number option)))
(t (list nil
(org-link-unescape option)))))))))
- ((assoc type org-link-protocols)
- (funcall (nth 1 (assoc type org-link-protocols)) path))
+ ((functionp (org-link-get-parameter type :follow))
+ (funcall (org-link-get-parameter type :follow) path))
((equal type "help")
(let ((f-or-v (intern path)))
(cond ((fboundp f-or-v) (describe-function f-or-v))
@@ -10852,7 +10941,7 @@ link in a property drawer line."
(user-error "Abort"))))
((equal type "id")
(require 'org-id)
- (funcall (nth 1 (assoc "id" org-link-protocols)) path))
+ (funcall (org-link-get-parameter type :follow) path))
((member type '("coderef" "custom-id" "fuzzy" "radio"))
(unless (run-hook-with-args-until-success
'org-open-link-functions path)
modified lisp/ox.el
@@ -4116,7 +4116,7 @@ The function ignores links with an implicit type (e.g.,
(let ((type (org-element-property :type link)))
(unless (or (member type '("coderef" "custom-id" "fuzzy" "radio"))
(not backend))
- (let ((protocol (nth 2 (assoc type org-link-protocols))))
+ (let ((protocol (org-link-get-parameter type :export)))
(and (functionp protocol)
(funcall protocol
(org-link-unescape (org-element-property :path link))
[back]
Nicolas Goaziou writes:
> John Kitchin <address@hidden> writes:
>
>> Here are the new revisions that implement the previous solution you
>> suggested and that incorporate the commit merges as far as I can see.
>
> Thank you.
>
>> +(defcustom org-link-parameters
>> + '(("file" :complete 'org-file-complete-link)
>
> #'org-file-complete-link
>
>> + ("file+emacs" :follow (lambda (path) (org-open-file path '(4))))
>> + ("file+sys" :follow (lambda (path) (org-open-file path 'system)))
>
> This will ignore so-called "option" part, e.g.
>
> [[file:test.org::3]]
>
> :follow functions need to extract it somehow.
>
> Once this issue is resolved, I think the whole change-set can be pushed
> to master, AFAIC.
--
Professor John Kitchin
Doherty Hall A207F
Department of Chemical Engineering
Carnegie Mellon University
Pittsburgh, PA 15213
412-268-7803
@johnkitchin
http://kitchingroup.cheme.cmu.edu
- Re: [O] links-9.0 v3, (continued)
- Re: [O] links-9.0 v3, Nicolas Goaziou, 2016/07/07
- Re: [O] links-9.0 v3, John Kitchin, 2016/07/07
- Re: [O] links-9.0 v3, Nicolas Goaziou, 2016/07/07
- Re: [O] links-9.0 v3, John Kitchin, 2016/07/07
- Re: [O] links-9.0 v3, Nicolas Goaziou, 2016/07/08
- Re: [O] links-9.0 v3, John Kitchin, 2016/07/07
- Re: [O] links-9.0 v3, Nicolas Goaziou, 2016/07/08
- Re: [O] links-9.0 v3, John Kitchin, 2016/07/08
- Re: [O] links-9.0 v3, John Kitchin, 2016/07/09
- Re: [O] links-9.0 v3, Nicolas Goaziou, 2016/07/18
- Re: [O] links-9.0 v3,
John Kitchin <=
- Re: [O] links-9.0 v3, Nicolas Goaziou, 2016/07/18
- Re: [O] links-9.0 v3, John Kitchin, 2016/07/18
- Re: [O] links-9.0 v3, Nicolas Goaziou, 2016/07/18
- Re: [O] links-9.0 v3, John Kitchin, 2016/07/18
- Re: [O] links-9.0 v3, Nicolas Goaziou, 2016/07/18
- Re: [O] links-9.0 v3, John Kitchin, 2016/07/18