Commit Graph

57 Commits

Author SHA1 Message Date
Dan Davison 962a1e0608 org-babel: fix inline source block regexp
This satisfies the requirements that
1. the src_lang{} construct is preceded by whitespace
2. this whitespace is not consumed by the replacement text
2009-10-26 21:51:43 -06:00
Dan Davison 512b376bb5 org-babel: allow multiple spaces/tabs between "src" and lang 2009-10-26 21:51:42 -06:00
Dan Davison 2f82ee771a org-babel: use %s to format inline result when it is a string.
This avoids returning quote characters with the string.
2009-10-26 21:51:41 -06:00
Dan Davison 3fa8c7dfff org-babel: enforce canonical (lang body params) order of arguments 2009-10-26 21:51:39 -06:00
Eric Schulte 1771e61cfc org-babel-exp: simplification of org-babel-lob-mode 2009-10-25 12:52:17 -06:00
Eric Schulte 6851f07f92 org-babel-exp: adding org-babel-lob-mode for fontification of lob lines 2009-10-25 10:47:12 -06:00
Dan Davison 70a5963563 org-babel: avoid false positive matches for inline and #+lob constructs
This forces the #+lob regexp to match at the beginning of a line (with
optional preceding whitespace), and requires inline code blocks to be
surrounded by some whitespace.
2009-10-25 10:47:07 -06:00
Dan Davison 5f1ea1ce70 org-babel: By default, don't use session for inline blocks 2009-10-25 10:47:06 -06:00
Dan Davison ed0f4a36e9 org-babel: Export code and/or results of #+lob function calls.
Currently, python fontification is used for export of these lines, due
to some similarity between python function call syntax and #+lob call
syntax. This is implemented as a language type "babel", mapped to
python in org-src-lang-modes.
2009-10-24 15:27:43 -06:00
Eric Schulte 824c8c0dba org-babel: behaviour-neutral changes anticipating subsequent work on export
merging original change by Dan Davison which generalizes the types
  of blocks exported by org-babel to include the following types
  - inline
  - lob
  - block
2009-10-23 16:02:29 -06:00
Eric Schulte 6ef0dd44bd org-babel-exp: exporting inline src blocks now respects different :results type 2009-10-23 16:02:28 -06:00
Eric Schulte 4539c8998c org-babel-exp when exporting blocks, don't return results as string
rather execute normally using org-babel-insert-results to insert the
  results in the buffer
2009-10-23 16:02:27 -06:00
Eric Schulte 62c8d0a835 org-babel: foreign-file references work, export is fully functional
1) source blocks can now reference source-blocks in other files using
   the filename:sourcename syntax

2) on export all references are now made to explicitly point to the
   original buffer using the filename:sourcename syntax.  This ensures
   that all references are correctly resolved on export, even when the
   referenced source block has already been processed.
2009-10-23 16:02:24 -06:00
Eric Schulte 540fa74513 org-babel-exp.el is now working for inline blocks 2009-10-23 16:02:23 -06:00
Dan Davison c168c6ccaa org-babel: improve prompt when choosing file to tangle 2009-10-20 10:17:42 -04:00
Dan Davison 32cfddf7b1 org-babel: fix #+lob line regexp 2009-10-20 09:48:03 -04:00
Dan Davison 68a1240db8 org-babel: ensure that result is returned when using :results output
One half of this patch is a revert of c167a4ac32.

These changes are necessary so that :results output works correctly
with #+lob calls. For example the following example did not work:

--------------------------------------------------
3. :results output org -> doesn't work with #+lob:
--------------------------------------------------
\#+srcname: randthree(n,max)
\#+begin_src ruby
number = n
maximum = max
puts "* Random numbers\n" +
"Here are some random numbers: " +
(1..number).collect {|x| (rand * maximum).ceil }.join(", ") +
"."
\#+end_src

\#+lob: randthree(n=3,max=10) :results output org
2009-10-20 09:24:15 -04:00
Dan Davison 64c26c6561 org-babel: remove prompt characters from R output
When evaluating R code in a persistent session, lines of output
typically start with a single prompt character. However, under certain
circumstances, lines start with a concatenation of (primary and
secondary) prompt characters separated by spaces. This seems to be
related to having blank lines in the input. This fix ensures that all
such prompt characters are removed from the output.
2009-10-19 23:34:13 -04:00
Dan Davison 4dba8ad21f org-babel: a bug in reference-resolution caused by a typo 2009-10-19 23:33:13 -04:00
Dan Davison 0d10946cff org-babel: nested calls inherit header args from enclosing scopes
And when merging header args, those from enclosing scopes take
precedence. For example, output to file from a source block is
implemented by (a) sending the output to file, and (b) having the
source block return the file name as its result. Before this change,
the file name returned could be set by a referenced source block (a
nested call), regardless of the value of the :file header arg of the
top-level source block.
2009-10-19 23:33:03 -04:00
Dan Davison 6c0c2039dd org-babel: make [:file filename] imply [:exports results]
Unless :exports is already none or both. This allows users to export
file output simply by adding a [:file filename] header arg.
2009-10-19 23:32:22 -04:00
Dan Davison 286bf35fe5 org-babel: bugfix: tighten up regexp
Prior to this, reference resolution could fail with quoted
strings. E.g. this didn't work:

\#+srcname: py-id(a=1)
\#+begin_src python
  a
\#+end_src

\#+lob: py-id(a="1")
2009-10-19 23:32:14 -04:00
Dan Davison 5219f4a410 org-babel: make org-babel-tangle-file interactive 2009-10-19 21:45:15 -04:00
Dan Davison 351f52192d org-babel: extend the way header args are taken from properties
This change allows org-file-properties to supply header args, and also
allows property inheritance if it has been enabled. Header-args
aquired from the item (or by inheritance) have precedence over those
aquired from org-file-properties.
2009-10-19 21:45:01 -04:00
Dan Davison 8ca34cba0b org-babel: alter R tangling defaults
Use "#!/usr/bin/env Rscript", and use ".R" instead of ".r".
2009-10-19 21:44:41 -04:00
Dan Davison 8b52bf09e0 org-babel: capture graphical output from R
If a [:file filename.ext] header arg is provided, then all graphical
output from the source block is captured on disk, and output of the
source block is a link to the resulting file, as with the
graphics-only languages such as gnuplot, ditaa, dot, asymptote. An
attempt is made to find a graphics device corresponding to the file
extension (currently .png, .jpg, .jpeg, .tiff, .bmp, .pdf, .ps,
.postscript are recognised); if that fails, png format output is
created.

Additionally, values for several arguments to the R graphics
device can be passed using header args:

:width :height :bg :units :pointsize
:antialias :quality :compression :res :type
:family :title :fonts :version :paper :encoding
:pagecentre :colormodel :useDingbats :horizontal

Arguments to the R graphics device that are not supported as header
args can be passed as a string in R argument syntax, using the header
arg :R-dev-args

An example block is (although both bg and fg can be passed directly as
header args)

\#+begin_src R :file z.pdf :width 8 :height 8 :R-dev-args bg="olivedrab", fg="hotpink"
  plot(matrix(rnorm(100), ncol=2), type="l")
\#+end_src
2009-10-19 21:44:28 -04:00
Eric Schulte 4d374b27d2 org-babel: :noweb header argument now expands noweb references before source-block evaluation 2009-10-19 12:12:19 -06:00
Eric Schulte 3db817fb02 org-babel: now supports pp results (emacs-lisp, ruby, python) 2009-10-18 16:18:34 -06:00
Eric Schulte c167a4ac32 org-babel: emacs-lisp now returns nothing when ":results output" 2009-10-18 16:18:27 -06:00
Eric Schulte 4abe8f7ea0 org-babel: added "table" results header argument as more readable alias for "vector" 2009-10-18 12:13:42 -06:00
Eric Schulte 28e6ff8d66 org-babel: adding python support (along the same lines as ruby) 2009-10-16 17:05:31 -06:00
Eric Schulte 770305a650 org-babel: adding ruby support for returning "code" results 2009-10-16 17:05:13 -06:00
Eric Schulte 430a3bf6ad org-babel: "code" results type for returning results in of source code syntax
This includes the required changes to org-babel.el and a
language-specific implementation for emacs-lisp.  The emacs-lisp
changes are from a patch by Benny Andresen.
2009-10-16 17:04:55 -06:00
Eric Schulte b0c1758c2a org-babel: dot improvements
for more information on the dot family of tools see
http://www.graphviz.org/
2009-10-14 16:03:40 -06:00
Eric Schulte 0444ca8661 org-babel: haskell lhs2tex export now responds to prefix argument 2009-10-09 11:44:27 -06:00
Dan Davison e079584e56 org-babel: make tangling honour org-src-preserve-indentation
This allows python code to be tangled (i.e. extracted) correctly by
org-babel-tangle. Previously, if e.g. methods of a class were in
separate blocks, then they would be incorrectly indented as top-level
functions in the tangled output.
2009-10-08 12:29:37 -04:00
Eric Schulte c0d54a9a6b org-babel: Haskell lhs export: ensure all \[begin|end]{code} statements start at the first column 2009-10-07 16:01:24 -06:00
Eric Schulte 27df66d8da org-babel: added :session to the header-arguments allowed in headline properties 2009-10-07 12:46:23 -06:00
Eric Schulte 407bf3b816 org-babel: haskell lhs export now displays errors and configurable org-babel-haskell-lhs2tex-command 2009-10-04 17:49:01 -06:00
Eric Schulte 63b360041f org-babel: org-babel-haskell can now export to .lhs literate Haskell
this commit adds the function `org-babel-haskell-export-to-lhs'

   for information on lhs see http://people.cs.uu.nl/andres/lhs2tex/
2009-10-04 16:41:45 -06:00
Benjamin Andresen ce4aad900a org-babel: add langs/org-babel-screen.el 2009-10-04 10:22:30 -06:00
Dan Davison fe5c0d96c6 org-babel: tightening up insertion of results
Previously, altering the name of a source block, followed by C-c C-c,
did not alter the name of the corresponding results.
2009-09-30 07:19:15 -06:00
Dan Davison ab7a58aaff org-babel: change regexp parsing of #+srcname line
One thing that was going wrong was that if #+srcname: was provided
with no subsequent name, the name was taken from the next line.
2009-09-30 07:19:14 -06:00
Dan Davison 92934c7c9b org-babel: allow #+lob line to be terminated by end-of-buffer 2009-09-30 07:19:13 -06:00
Dan Davison 10ea3ad10b org-babel: make :file header arg imply :results file 2009-09-28 18:55:41 -06:00
Dan Davison 7c32bc5672 org-babel: allow header args to be specified on #+lob line 2009-09-28 18:55:39 -06:00
Eric Schulte 3f1be49a04 adding org-babel-load-in-session-maybe bound to Meta-Up (currently only for Haskell) 2009-09-24 21:58:49 -06:00
Eric Schulte 0fa8a7feac fleshed out org-babel-haskell-prep-session (called with Meta-Down inside source block) 2009-09-24 21:58:48 -06:00
Eric Schulte 4cb3e3704e org-babel: cleaned up code that inserts results 2009-09-22 19:49:49 -06:00
Eric Schulte 63b0f3878e org-babel is better at evaluating indented code blocks 2009-09-16 19:33:10 -06:00