Re: [O] Edit whole session with org-edit-src-edit

2017-10-10 Thread Nicolas Goaziou
Hello,

"Yury G. Kudryashov"  writes:

> I propose the following feature:
>
> 1. When the temporary buffer is created,
>
>- the whole session (or all the code with that will go to one file
>  when tangling) is written to the buffer;
>- all the code except for the current block is marked as read-only.
>
> 2. When writing the temporary buffer back to the main file, drop the
>  read-only regions.

This is an interesting idea. However that could slow down src block
editing so it would need to be explicitly required by the user (e.g.,
with an optional argument).

Also, it should be necessary to mark somehow the read-only parts or it
could be confusing. Maybe with some glyph in the margin.

> Unfortunately, I'm new to (e)lisp, so I'm not sure whether I'll manage
> to implement these features myself.

You can only know if you try. You will find help on this mailing list
whenever you hit a road block.

Regards,

-- 
Nicolas Goaziou



Re: [O] Edit whole session with org-edit-src-edit

2017-10-09 Thread urkud
Hello,

On October 8, 2017 10:40:09 PM EDT, "Berry, Charles"  wrote:
>
>> On Oct 8, 2017, at 3:58 PM, Yury G. Kudryashov 
>wrote:
>> 
>> Hello,
>> 
>> I want to use orgmode for literate programming with Coq.
>> I like the "edit in major mode" org-edit-src-edit feature, but it
>> exports only the current src block to the temprorary buffer, so it's
>> impossible to debug the file in the temporary buffer using coq-mode
>> (proofgeneral) "phrase by phrase" execution.
>> 
>> I think that some other languages may have similar problems. Say,
>> code completion works better, if the whole file is available.
>
>
>I used the babel jump facility proposed here:
It doesn't help, if I want to debug a Coq proof using proofgeneral. I need to 
feed to coqtop all the text that should go before the current "phrase" in a 
file.
-- 
Sent from my Android device with K-9 Mail. Please excuse my brevity.



Re: [O] Edit whole session with org-edit-src-edit

2017-10-08 Thread Berry, Charles

> On Oct 8, 2017, at 3:58 PM, Yury G. Kudryashov  wrote:
> 
> Hello,
> 
> I want to use orgmode for literate programming with Coq.
> I like the "edit in major mode" org-edit-src-edit feature, but it
> exports only the current src block to the temprorary buffer, so it's
> impossible to debug the file in the temporary buffer using coq-mode
> (proofgeneral) "phrase by phrase" execution.
> 
> I think that some other languages may have similar problems. Say,
> code completion works better, if the whole file is available.


I used the babel jump facility proposed here:

From: Andrew Kirkpatrick 
Subject: Jumping between source blocks in a file
Message-ID: 
Archived-At: 

It is not `all blocks in one buffer', but by jumping from one to the next I get 
much the same effect.  Any changes in a block get written back to the org 
buffer when you jump to the next block.  Binding the `*-next' function to 
meta-down and `*-previous' to `meta-up' makes navigation intuitive.

HTH,

Chuck





[O] Edit whole session with org-edit-src-edit

2017-10-08 Thread Yury G. Kudryashov
Hello,

I want to use orgmode for literate programming with Coq.
I like the "edit in major mode" org-edit-src-edit feature, but it
exports only the current src block to the temprorary buffer, so it's
impossible to debug the file in the temporary buffer using coq-mode
(proofgeneral) "phrase by phrase" execution.

I think that some other languages may have similar problems. Say,
code completion works better, if the whole file is available.

I propose the following feature:

1. When the temporary buffer is created,

   - the whole session (or all the code with that will go to one file
 when tangling) is written to the buffer;
   - all the code except for the current block is marked as read-only.

2. When writing the temporary buffer back to the main file, drop the
 read-only regions.

An even more useful (though may be harder to implement) version:

1. When the temporary buffer is created,

   - then whole session is written to the temporary buffer;
   - before each block, a commented line with some meta-data (original
 buffer, line range, src-block #+NAME attribute) is inserted;
   - these commented lines are made read-only, while the blocks are left
 read-write.

2. When writing back, each block is rewritten.

This way a user may have file headers (#include in C/C++, imports in
Python etc) in one #src block, and easily modify it while editing some
"main" code in a temporary buffer.

Unfortunately, I'm new to (e)lisp, so I'm not sure whether I'll manage
to implement these features myself.
-- 
Sincerely yours,
Yury G. Kudryashov