emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Thomas S. Dye <tsd@tsdye.com>
To: Lawrence Bottorff <borgauf@gmail.com>
Cc: emacs-orgmode Mailinglist <emacs-orgmode@gnu.org>
Subject: Re: Babel: How to call code in one org file into another org file
Date: Fri, 30 Oct 2015 17:08:12 -1000	[thread overview]
Message-ID: <m2a8qzspk3.fsf@tsdye.com> (raw)
In-Reply-To: <CAFAhFSXY90XvO5VvUD5FH+ES-UQqqq+nTwOgqph7E5p3mrW01w@mail.gmail.com>

Aloha Lawrence,

Lawrence Bottorff <borgauf@gmail.com> writes:

> Doing M-x org-babel-lob-files called up a customization buffer that allowed
> me to put in many separate file paths. I did this for ../a.org and ../b.org.
>
> a.org:
>
> #+name: myadd
> #+begin_src lisp :session
> (defun myadd (x y)
>   (+ x y))
> #+end_src
>
> b.org:
>
> #+name: multi_x2
> #+begin_src lisp :session
> (defun multi_x2 (x)
>   (* 2 x))
> #+end_src
>
> then in c.org:
>
> #+name: add&multi_x2
> #+begin_src lisp :session
> (defun add&multi_x2 (x y)
>   (multi_x2 (myadd x y)))
> #+end_src
>
> but upon C-c C-c in c.org SLIME didn't know about myadd or multi_x2 ...
> until I did C-c C-c in both a.org and b.org for the respective functions.
> Then c.org's add&multi_x2 knew about the helper functions. That is
> wonderful and allows a very distributed and modular approach to org-mode LP
> for Lisp. However, it would be nice if I didn't have to acquaint my SLIME
> session by hand all of my ingested babel-lob files. Any way to have this
> happen automatically upon C-c C-c-ing my main org file? I found this
> <https://lists.gnu.org/archive/html/emacs-orgmode/2010-09/msg01172.html>
> discussion,
> but I don't believe it really addresses my wish.

I would use local variables for this--something like (untested):

# eval: (org-babel-lob-ingest path/to/your/file)
# eval: (sbe "my-add")
# eval: (sbe "multi_x2")

Computer savvy Org moders don't like eval because anything can happen,
but if you're willing to trust yourself, then it shouldn't cause any
problems.

With this near the bottom of your file, whenever you open the file your
other org files will be loaded into the Library of Babel where you can
load up function definitions as needed.

Of course, you'll need to have slime running when you open the file.

hth,
Tom

-- 
Thomas S. Dye
http://www.tsdye.com

  parent reply	other threads:[~2015-10-31  3:08 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-30 20:21 Babel: How to call code in one org file into another org file Lawrence Bottorff
2015-10-30 20:53 ` John Kitchin
2015-10-30 20:55 ` Thomas S. Dye
2015-10-30 22:57   ` briangpowell .
2015-10-31  0:14   ` Lawrence Bottorff
     [not found]     ` <m21tcbx2iy.fsf@andrew.cmu.edu>
2015-10-31  2:12       ` Lawrence Bottorff
2015-10-31  2:15         ` Lawrence Bottorff
2015-10-31  3:08     ` Thomas S. Dye [this message]
2015-10-31  3:58       ` Lawrence Bottorff
2015-10-31 15:41         ` Nick Dokos
2015-10-31 16:17           ` Lawrence Bottorff
2015-10-31 16:34             ` Nick Dokos
2015-10-31 16:51               ` Lawrence Bottorff
2015-11-02  7:09                 ` Eric S Fraga
2015-11-02 13:36                   ` Nick Dokos
2015-10-31  9:57 ` Rasmus
  -- strict thread matches above, loose matches on Subject: below --
2015-10-31  2:24 John Kitchin
2015-10-31  2:33 ` Lawrence Bottorff

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m2a8qzspk3.fsf@tsdye.com \
    --to=tsd@tsdye.com \
    --cc=borgauf@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).