unrepl

discussing specification of an edn-based repl and its implementations.
2018-03-07T11:42:13.000037Z

Should :set-source (optionally?) include the namespace?

2018-03-07T11:47:03.000340Z

Eval is now an operator compatible with vim-sexp.

๐Ÿ‘ 1
dominicm 2018-03-07T11:47:47.000331Z

Woohoo ๐Ÿ™‚

2018-03-07T11:54:13.000129Z

The other flavours will go away.

2018-03-07T12:28:21.000462Z

Maybe?

2018-03-07T12:29:43.000236Z

I need now five calls for eval. Set nspace. Set source. Eval. Revert nspace. Revert source.

2018-03-07T12:30:20.000307Z

That feels clunky.

cgrand 2018-03-07T12:36:15.000438Z

and are youd doing the eval on the user connection?

cgrand 2018-03-07T12:46:16.000203Z

@kotarak says >>> I need now five calls for eval. Set nspace. Set source. Eval. Revert nspace. Revert source.

cgrand 2018-03-07T12:47:19.000283Z

all of that to evaluate a selection in a buffer

cgrand 2018-03-07T12:49:47.000145Z

Evaluating from a buffer is different from the typical repl interaction because: 1/ itโ€™s framed (I usually expect evaluation to fail if selection is malformed) 2/ it overrides most of the repl context

cgrand 2018-03-07T12:50:28.000264Z

Should this happen on the user connection? why? why not?

2018-03-07T12:52:15.000015Z

For me it happens at the tooling connection. The user connection is never touched. Maybe the revert could be saved...

cgrand 2018-03-07T12:52:29.000327Z

From a UX point of view, is it integrated with the repl buffer/transcript?

2018-03-07T12:52:52.000308Z

No.

cgrand 2018-03-07T12:53:16.000195Z

Just to be clear: these questions are meant for all of us, not Meikel alone

2018-03-07T12:53:22.000160Z

Side-band transmission. Only user interaction is repl buffer relevant.

2018-03-07T12:54:49.000471Z

You got actually another point! Syntax check! So it would be actually six evals.

cgrand 2018-03-07T12:55:32.000260Z

syntax check? Isnโ€™t this what I mean in 1/?

2018-03-07T12:57:29.000082Z

Yes. I don't do it, yet. ๐Ÿ˜

2018-03-07T13:17:25.000092Z

That's what I do and will do. It was not that it necessarily has to be that way. (Just to be clear. )

cgrand 2018-03-07T14:33:48.000430Z

Now you get :read events for everything that is consumed

cgrand 2018-03-07T14:34:15.000305Z

whitespace โœ… malformed code โœ…

cgrand 2018-03-07T14:34:59.000266Z

:read events should cover the entire input

cgrand 2018-03-07T14:36:29.000450Z

also thereโ€™s a new :file key in the :read payload

2018-03-07T15:02:09.000582Z

Malformed code? How can I resume? Eg. when a trailing paren is missing? I don't know in which state things are when the tooling repl evals some code (eg. a defn) on the users behalf. So I can't resume. The connection has to be reestablished.

2018-03-07T15:03:09.000520Z

For me the tooling connection is the master where everything is auxed from. So this would be rather annoying.

2018-03-07T15:10:19.000671Z

Yes. So I still have to check the readability of the snippet.

2018-03-07T16:24:56.000227Z

Goto considered harmful. ;-)

2018-03-07T16:27:43.000523Z

Read from string also has the problem of missing source info.

2018-03-07T16:30:29.000299Z

For now I do syntax check ( and report problems). Problem remaining is that only the last result is reported for several forms in one request. Similar for problems. So this is not really framing.

2018-03-07T16:36:31.000588Z

Urk. Not even the last, but only the first. :face_palm: I have to implement read tracking. I will see how vim and :offset agree.

cgrand 2018-03-07T17:04:29.000333Z

@kotarak all my commits since yesterday are baby steps towards an hopefully better solution.

2018-03-07T17:23:56.000163Z

I was syncing on prompt. But there might be newlines.....

2018-03-07T23:08:21.000437Z

How about allowing to set the id part of the responses? That way the clients could identify their frames without changing anything on stream input. Similar to set-source. So far the provided id is of no use to me... (unrepl/do (start-frame)) (form1)(form2) ... (formN) (unrepl/do (end-frame)) ... start-frame returns an id, which is used in the forms' responses. end-frame acts as an await to identify when all forms are done evaling.