Commit graph

88 commits

Author SHA1 Message Date
Eric Schulte 832dc71f31 ob-lob: now working with the new ob-get-src-block-info
ob-get-src-block-info wasn't correctly returning the name of the
  code block

* lisp/ob-lob.el (org-babel-lob-ingest): now returns the count of
  ingested code blocks

* lisp/ob.el (org-babel-get-src-block-info): walks up possible
  additional header arg lines before checking for the code block name

  (org-babel-merge-params): can now handle empty variables gracefully
2010-10-21 13:06:00 +01:00
Eric Schulte 9931dae20a babel: exporting now working with the new ob-get-src-block-info schema
includes a simple export test

* lisp/ob-exp.el (org-babel-exp-in-export-file): wrapper for
  collecting information from within the original export file

  (org-babel-exp-src-blocks): simplified through use of the above
  macro

  (org-babel-exp-code): simplified through the use of new functions
  for parsing header arguments

  (org-babel-exp-results): simpler high-level organization, also this
  is now where the expansion of variable references takes place during
  export

* lisp/ob.el (org-babel-expand-variables): broke variable replacement
  in a parameter list into it's own function

  (org-babel-get-src-block-info): now using the above function
2010-10-21 13:05:59 +01:00
Eric Schulte 9ba9ef99a6 babel: now allows multi-line header arguments with #+headers: before code block
for example, from the test of this functionality
* multi-line header arguments
  :PROPERTIES:
  :ID:       b77c8857-6c76-4ea9-8a61-ddc2648d96c4
  :END:

  (map 'list #'list numbers letters)

| 1 | a |
| 2 | b |
| 3 | c |
| 4 | d |
| 5 | e |
| 6 | f |
| 7 | g |

* lisp/ob.el (org-babel-multi-line-header-regexp): new variable for
  matching header lines preceding code blocks

  (org-babel-src-name-w-name-regexp): now includes possible header
  lines between source name and code block

  (org-babel-get-src-block-info): now also collecting header arguments
  from preceding header lines

  (org-babel-src-block-names): updated match-string to reflect new
  value of org-babel-src-name-w-name-regexp

  (org-babel-merge-params): fixed error in variable string regexp
2010-10-21 13:05:59 +01:00
Eric Schulte 05054d5227 ensure ob-get-src-block-info returns nil if not matches
* lisp/ob.el (org-babel-get-src-block-info): small but crucial fix,
  this should return nil if not match found
2010-10-21 13:05:59 +01:00
Eric Schulte 529e7c98fd nominally working 2010-10-21 13:05:59 +01:00
Eric Schulte 9c0aae1814 more lightening -- resolving foreign functions between ob-ref and ob 2010-10-21 13:05:59 +01:00
Eric Schulte c2dce939e8 more lightening 2010-10-21 13:05:58 +01:00
Dan Davison 21e6738593 babel: Better variable names in `org-babel-initiate-session'
* ob.el (org-babel-initiate-session): Better variable names
2010-10-21 13:03:36 +01:00
Dan Davison 68b810dab5 Merge branch 'master' of git+ssh://repo.or.cz/srv/git/org-mode 2010-10-21 13:03:09 +01:00
Eric Schulte e290e9e2f4 fixed some compilation warnings
* lisp/ob.el (org-number-sequence): declared
* lisp/ob-R.el (org-number-sequence): declared
2010-10-20 14:49:41 -06:00
Dan Davison ba9236054a babel: Bug fix in `org-babel-map-src-blocks'
* ob.el (org-babel-map-src-blocks): Store correct value of `end-block'
2010-10-19 13:20:35 +01:00
Dan Davison a6d30d3b9b babel: New function to mark the body of a src block.
* ob.el (org-babel-mark-block): New function to mark the body
    of a src block in the style of `mark-defun'.

    * ob-keys.el (org-babel-key-bindings): Bind
    `org-babel-mark-block' to C-c C-v C-M-h
2010-10-19 13:19:33 +01:00
Carsten Dominik c5a8bc9db4 Improve XEmacs compatibility
* lisp/org-compat.el (org-number-sequence): New function.
* lisp/ob-R.el (org-babel-expand-body:R): Use `org-number-sequence'.
* lisp/ob.el (org-babel-where-is-src-block-result): Use `org-number-sequence'.
(org-babel-current-buffer-properties): Fix variable definition.
* lisp/ob-ref.el (org-babel-ref-index-list): Use `org-number-sequence'.
* lisp/ob-latex.el (org-babel-latex-tex-to-pdf): Use the 2-argument version
of `shell-command'.
* lisp/org-latex.el (org-export-as-pdf): Use the 2-argument version
of `shell-command'.
2010-10-18 14:23:38 +02:00
Eric Schulte 19785d667f ob: keep max line with at <=80
* lisp/ob.el (org-babel-params-from-properties): max line with at <=80
2010-10-14 07:17:08 -06:00
Dan Davison edaa4d7a6f babel: Allow header arguments set in properties to be lisp forms
* ob.el (org-babel-params-from-properties): Use
	`org-babel-read' to interpret property as header
	argument value
2010-10-14 13:15:39 +01:00
Dan Davison 82429ef406 babel: Simplify reading of header argument values
* ob.el (org-babel-parse-header-arguments): Simplify reading
	of header arg value
2010-10-14 13:15:29 +01:00
Eric Schulte 0901585105 ob: minor fix to a documentation string
* lisp/ob.el (org-babel-number-p): fixed documentation string
2010-10-06 10:50:39 -06:00
Eric Schulte 055f0e621e babel: fixing issues with org-babel-temporary-directory
Thanks to Achim Gratz

* lisp/ob.el (or): don't create org-babel-temporary-directory in batch
  as it won't be removed by emacs-kill-hook
  (org-babel-remove-temporary-directory): only try to remove this
  directory if it exists
2010-10-01 14:08:23 -06:00
Eric Schulte 773307d61a fixing byte-compilation warning in ob.el
Thanks to Achim Gratz for pointing this out

* lisp/ob.el (org-babel-temporary-directory): fixing byte-compilation
  warning in ob.el
2010-10-01 13:56:20 -06:00
Eric Schulte 2ce87e5e8c fixes compiler warning
* lisp/ob.el (org-babel-load-languages): fixes compiler warning
2010-09-30 16:19:05 -06:00
Eric Schulte a37072786c using `org-babel-temporary-directory' to collect and remove temporary files
We had stopped using this because users noticed that temporary
directories were accumulating in their /tmp directory.  I believe this
was due to repeatedly evaluating the ob.el emacs-lisp file, which
repeatedly re-defined the `org-babel-temporary-directory' variable
creating multiple directories.  This problem should be fixed by
wrapping the defvar holding this form in (unless (boundp org...)).

* lisp/ob.el (boundp): uncommenting defvar form for
  org-babel-temporary-directory
  (org-babel-temp-file): now using the org-babel-temporary-directory
  for holding new babel temporary files
  (org-babel-remove-temporary-directory): removes the babel temp dir
  when Emacs shutsdown
  (kill-emacs-hook): now removing the babel temp dir on Emacs shutdown
2010-09-30 07:39:59 -06:00
Dan Davison 6cd5777583 babel: `org-babel-get-src-block-info'
* ob.el (org-babel-get-src-block-info): remove optional
	HEADER-VARS-ONLY argument; further simplification
2010-09-27 15:08:42 +01:00
Eric Schulte 8d272b0d3b fixed bug causing extra prompt in ob-confirm-evaluate in some cases
* lisp/ob.el (org-babel-confirm-evaluate): fixed bug causing extra
  prompt in ob-confirm-evaluate in some cases
2010-09-27 07:43:33 -06:00
Eric Schulte eb0068e9cd ob-demarcate-block: visible region and completion during language selection
Thanks to Sébastien Vauban for the suggestion

* lisp/ob.el (org-babel-demarcate-block): visible region and
  completion during language selection
2010-09-27 07:18:00 -06:00
Dan Davison b7e11ff608 babel: Remove comment
* ob.el (org-babel-get-src-block-info): remove comment
2010-09-26 22:06:52 +01:00
Dan Davison ee96df5c73 babel: Simplify `org-babel-get-src-block-info'
* ob.el (org-babel-get-src-block-info): Simplify function
2010-09-26 22:06:12 +01:00
Dan Davison 8b327f2a77 babel: Fix bug in `org-babel-get-src-block-info'
* ob.el (org-babel-get-src-block-info): Form info list
	correctly when parenthesised arguments are missing
2010-09-26 21:36:24 +01:00
Dan Davison d398331b3f babel: Use org-babel-map-src-blocks' in org-babel-execute-buffer'
* ob.el (org-babel-execute-buffer): Re-implement using
	`org-babel-map-src-blocks'
2010-09-23 19:09:19 +01:00
Dan Davison ec0b3892b9 babel: New function to process file names for use in external processes
* ob.el (org-babel-process-file-name): New function
	(org-babel-maybe-remote-file): Delete function

	* ob-sql.el (org-babel-execute:sql):
	Use org-babel-process-file-name

	* ob-scheme.el (org-babel-execute:scheme):
	Use org-babel-process-file-name

	* ob-sass.el (org-babel-execute:sass):
	Use org-babel-process-file-name

	* ob-ruby.el (org-babel-ruby-evaluate):
	Use org-babel-process-file-name

	* ob-python.el (org-babel-python-evaluate-external-process):
	Use org-babel-process-file-name
	(org-babel-python-evaluate-session):
	Use org-babel-process-file-name

	* ob-plantuml.el (org-babel-execute:plantuml):
	Use org-babel-process-file-name

	* ob-perl.el (org-babel-perl-evaluate):
	Use org-babel-process-file-name

	* ob-octave.el (org-babel-octave-evaluate-external-process):
	Use org-babel-process-file-name
	(org-babel-octave-evaluate-session):
	Use org-babel-process-file-name,
	don't use org-babel-maybe-remote-file

	* ob-lisp.el (org-babel-execute:lisp):
	Use org-babel-process-file-name

	* ob-ledger.el (org-babel-execute:ledger):
	Use org-babel-process-file-name

	* ob-js.el (org-babel-execute:js):
	Use org-babel-process-file-name

	* ob-haskell.el (org-babel-haskell-export-to-lhs):
	Use org-babel-process-file-name

	* ob-gnuplot.el (org-babel-execute:gnuplot):
	Use org-babel-process-file-name

	* ob-eval.el (org-babel-eval-read-file): Don't use
	org-babel-maybe-remote-file

	* ob-dot.el (org-babel-execute:dot):
	Use org-babel-process-file-name

	* ob-ditaa.el (org-babel-execute:ditaa):
	Use org-babel-process-file-name

	* ob-clojure.el (org-babel-clojure-evaluate-external-process):
	Use org-babel-process-file-name

	* ob-asymptote.el (org-babel-execute:asymptote):
	Use org-babel-process-file-name

	* ob-R.el (org-babel-R-assign-elisp): Don't use
	org-babel-maybe-remote-file, use org-babel-process-file-name
	(org-babel-R-evaluate-external-process):
	Use org-babel-process-file-name
	(org-babel-R-evaluate-session):
	Use org-babel-process-file-name

	* ob-C.el (org-babel-C-execute):
	Use org-babel-process-file-name

In addition to passing the file path through `expand-file-name',
tramp-style remote file names are converted to conventional (local)
file paths. The reason is that, if a tramp file name was in use in
emacs, then the shell command will be executing on the remote machine
in question. Further, by default the file name is passed through
`shell-quote-argument'.
2010-09-22 22:10:13 +01:00
Eric Schulte 0ec264ddf7 org-babel-demarcate-block now works before first headline
fix suggested by Dan Davison

* lisp/ob.el (org-babel-demarcate-block): better initialization of stars
2010-09-21 09:34:50 -06:00
Eric Schulte 26b9263926 fixing compiler warnings in org-babel-demarcate-block
Thanks to Achim Gratz for pointing these out

* lisp/ob.el (org-babel-demarcate-block): fix compiler warnings
2010-09-21 07:03:12 -06:00
Eric Schulte 00eceedf0f Babel: better handling of empty space when demarcating code blocks
* lisp/ob.el (org-babel-demarcate-block): better handling of empty
  space around demarcated area
2010-09-21 06:44:17 -06:00
Eric Schulte 88b8b83951 interactive demarcation of code blocks
Thanks to Richard Riley for the initial idea and implementation

* lisp/ob.el (org-babel-demarcate-block): interactive demarcation of
  code blocks
* lisp/ob-keys.el (org-babel-key-bindings): key bindings for block
  demarcation
* doc/orgcard.tex: documentation in the ref card
2010-09-20 08:27:20 -06:00
Eric Schulte fbb828a107 ob: hash construction invariant to order of header arguments 2010-09-18 14:02:33 -04:00
Dan Davison 878d94b472 Some docstring typos 2010-09-16 20:55:25 +01:00
Eric Schulte c19a04ec9f removing org-babel-temp-directory until some issues are resolved 2010-09-13 11:55:38 -04:00
Eric Schulte 8ca802166b Babel no longer throws error when inserting an empty result
Thanks to Sébastien Vauban for pointing this out

* lisp/ob.el (org-babel-insert-result): no longer throws error when
  inserting an empty result
2010-09-08 11:50:44 -06:00
Dan Davison 0e1ff9ddbc `org-babel-do-in-edit-buffer': more lightweight test of context
* ob.el (org-babel-do-in-edit-buffer): Use
	`org-babel-where-is-src-block-head' to test for source block
	at point.
2010-09-08 13:26:39 -04:00
Eric Schulte 7dd72699a9 a new function for jumping to the head of the current code block
* lisp/ob-keys.el (org-babel-key-bindings): adding key-binding for
  `org-babel-goto-src-block-head'
* lisp/ob.el (org-babel-goto-src-block-head): jump to the head of the
  current code block
2010-09-08 00:13:12 -06:00
Eric Schulte e92a4b0813 ob: better error messages when searches for code blocks fail
* lisp/ob.el (org-babel-next-src-block): now raising more informative
  error when no further code blocks can be found
  (org-babel-previous-src-block): now raising more informative error
  when no previous code blocks can be found
2010-09-07 23:59:04 -06:00
Eric Schulte 1ebb9131ef Babel: remove existing results when nil results are returned
Thanks to Sébastien Vauban for making the case for this behavior

* lisp/ob.el (org-babel-insert-result): remove existing results when
  nil results are returned
2010-09-07 16:59:57 -06:00
Eric Schulte 1a34708ade Babel: org-babel-map-src-blocks now sets a variety of local variables
* lisp/ob.el (org-babel-map-src-blocks): now exposes much information
  about the code block in the form of let-bound local variables.
2010-09-05 13:04:58 -06:00
Dan Davison 798a78fe06 Protect against errors when operating in temporary code edit buffer
* ob.el (org-babel-do-in-edit-buffer): Use unwind-protect to
	ensure that edit buffer is exited
2010-09-04 13:36:48 -04:00
Eric Schulte 57bc4f672b Babel: tiny tweak
* lisp/ob.el (org-babel-map-src-blocks): prefer `when' to `if'
2010-09-01 23:26:47 -06:00
Dan Davison e0d9a280ea babel: docstring improvement
* ob.el (org-babel-execute-src-block): Document prefix
	argument in docstring.
2010-09-01 21:10:54 -07:00
Dan Davison d9ca67496f babel: Make `org-babel-execute-subtree' support prefix arg
* ob.el (org-babel-execute-subtree): Pass prefix arg through
	to `org-babel-execute-src-block'
2010-09-01 15:06:21 -07:00
Dan Davison 13891fce6e babel: Allow `org-babel-map-src-blocks' to operate on current buffer
* ob.el (org-babel-map-src-blocks): If FILE is nil evaluate
	BODY forms on source blocks in current buffer; restore point
	in current buffer.
2010-09-01 10:57:53 -07:00
Dan Davison 8cb53ddc1a babel: Eliminate compiler warnings
* ob.el (with-parsed-tramp-file-name): declared
	(org-babel-tramp-localname): Ensure variable name exists
	locally

	* ob-R.el (ess-eval-buffer): declared

	* ob-comint.el (with-parsed-tramp-file-name): declared
	(tramp-flush-directory-property): declared
	(org-babel-comint-eval-invisibly-and-wait-for-file): Ensure
	variable name exists locally
2010-08-30 18:20:01 -07:00
Dan Davison 9c878a8290 babel: Fix temporary file processing in the remote execution case.
* ob.el (org-babel-temp-file): Don't use babel temporary
	directory in remote case; use make-temp-file with remote file
	name so that temp file is guaranteed not to exist previously
	on remote machine.
	(org-babel-tramp-localname): New function to return local name
	portion of possibly remote file specification

	* ob-R.el (org-babel-R-evaluate-external-process): Respond to
	changes in `org-babel-temp-file'; pass local file name to
	remote R process.
	(org-babel-R-evaluate-session) Respond to
	changes in `org-babel-temp-file'; pass local file name to
	remote R process.
2010-08-30 09:35:48 -07:00
Eric Schulte de6ff60e25 fixing circular require introduced by previous changes
* lisp/ob.el (require): removing circular (require 'org)
2010-08-27 14:47:59 -06:00