Re: Channel based plugins and scheduling

2019-09-16 Fir de Conversatie Bram Moolenaar
> > > I'm not familiar with Vim's internals: please can you explain the > > > different loops you're referring to here? > > > > Most callbacks are invoked from parse_queued_messages(). This is used > > when waiting for a key and when sleeping. Only timer callbacks are > > called elsewhere (and

Patch 8.1.2047

2019-09-16 Fir de Conversatie Bram Moolenaar
Patch 8.1.2047 Problem:Cannot check the current state. Solution: Add the state() function. Files: runtime/doc/eval.txt, src/misc1.c, src/proto/misc1.pro, src/evalfunc.c, src/proto/evalfunc.pro, src/main.c, src/proto/main.pro, src/channel.c, src/proto/channel.pro

Patch 8.1.2046

2019-09-16 Fir de Conversatie Bram Moolenaar
Patch 8.1.2046 Problem:SafeState may be triggered at the wrong moment. Solution: Move it up higher to after where messages are processed. Add a SafeStateAgain event to tigger there. Files: runtime/doc/autocmd.txt, src/main.c, src/proto/main.pro, src/getchar.c,

Re: Channel based plugins and scheduling

2019-09-16 Fir de Conversatie Paul Jolly
> > I'm not familiar with Vim's internals: please can you explain the > > different loops you're referring to here? > > Most callbacks are invoked from parse_queued_messages(). This is used > when waiting for a key and when sleeping. Only timer callbacks are > called elsewhere (and differently wh

Re: Channel based plugins and scheduling

2019-09-16 Fir de Conversatie Bram Moolenaar
> > > Firstly, is there still a plan for the safeState/state/whatever > > > function? Because without it, if a message arrives at a "safe" time we > > > need something unsafe to happen before it will be run? > > > > Yes, adding the state() function would be needed. It's a bit of work, > > not su

Re: Channel based plugins and scheduling

2019-09-16 Fir de Conversatie Paul Jolly
> > Firstly, is there still a plan for the safeState/state/whatever > > function? Because without it, if a message arrives at a "safe" time we > > need something unsafe to happen before it will be run? > > Yes, adding the state() function would be needed. It's a bit of work, > not sure when I get

Re: Patch 8.1.2044

2019-09-16 Fir de Conversatie Bram Moolenaar
Andy Wokula wrote: > Am 15.09.2019 um 23:02 schrieb Bram Moolenaar: > > Patch 8.1.2044 > > Problem:No easy way to process postponed work. (Paul Jolly) > > Solution: Add the SafeState autocommand event. > > Files: runtime/doc/autocmd.txt, src/main.c, src/proto/main.pro, > >

Re: Patch 8.1.2035

2019-09-16 Fir de Conversatie 'Andy Wokula' via vim_dev
Am 15.09.2019 um 21:13 schrieb Bram Moolenaar: Andy Wokula wrote: Am 15.09.2019 um 14:33 schrieb Bram Moolenaar: Patch 8.1.2035 Problem:Recognizing octal numbers is confusing. Solution: Introduce scriptversion 4: do not use octal and allow for single quote inside numbers. F

Re: Patch 8.1.2044

2019-09-16 Fir de Conversatie 'Andy Wokula' via vim_dev
Am 15.09.2019 um 23:02 schrieb Bram Moolenaar: Patch 8.1.2044 Problem:No easy way to process postponed work. (Paul Jolly) Solution: Add the SafeState autocommand event. Files: runtime/doc/autocmd.txt, src/main.c, src/proto/main.pro, src/vim.h, src/autocmd.c, src/channel.c,

Re: Channel based plugins and scheduling

2019-09-16 Fir de Conversatie Bram Moolenaar
Paul Jolly wrote: > > > Does this sound OK? > > > > I decided to give it a go and did an implementation of SafeState. > > It triggers in Normal, Insert and Command-line mode when nothing is > > pending. And when a blocking channel call has been made, where the > > state was safe before blocking

Re: Channel based plugins and scheduling

2019-09-16 Fir de Conversatie Paul Jolly
> > Does this sound OK? > > I decided to give it a go and did an implementation of SafeState. > It triggers in Normal, Insert and Command-line mode when nothing is > pending. And when a blocking channel call has been made, where the > state was safe before blocking, so that when something is postp

Re: Channel based plugins and scheduling

2019-09-16 Fir de Conversatie Bram Moolenaar
I wrote: > I was wondering where to trigger SafeState. I first thought it would be > sufficient to do this higher up, where we are going to wait for the user > to type a character and nothing is pending. Then it's safe to deal with > any callbacks. > > However, think of this scenario: >