Ihor Radchenko <yantar92@posteo.net> writes:

Hunter Jozwiak <hunter.t.joz@gmail.com> writes:

+ (host (cdr (assq :host params))) + (port (cdr (assq :port params)))

Please declare these new scheme-specific header argument in `org-babel-header-args:scheme'. See `org-babel-header-args:C' for an example. This is necessary for header argument completion to work.

Okay. Is there a way to tighten these inputs further? I have them set to :any for the moment, but I wonder if there is a way to leverage the values for `geiser-repl-default-host` and `geiser-repl-default-port`.

Org-mode currently does not provide completion for header argument values. (see `pcomplete/org-mode/block-option/src')

If Org were to support such completion, you could theoretically allow special values for :host/:port like default:

#+beginsrc scheme :host default :port default … #+endsrc

to use `geiser-repl-default-host'/`…-port'.

Then, you could add these values as (default :any).

- (and (not (string= session "none")) session)))) ; session + (and (not (string= session "none")) session) host port))) ; session

This does not look right. Your change will disable session support completely when host and port are not provided.
Is there a way to test this and pinpoint the problem?

Hmm. I just realized that I am reading that line wrongly - host and port are additional arguments passed to `org-babel-scheme-execute-with-geiser', not a part of (and (not …) host port)

So, my only comment remaining is to put each argument in its own line, like it is done for all the previous arguments:

(org-babel-scheme-execute-with-geiser full-body ; code (string= result-type "output") ; output? impl ; implementation (and (not (string= session "none")) session) ; session host ; repl host name port) ; repl port

That will make the code more readable.

Here is an updated patch.