vim9script job function handler not recognized

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

vim9script job function handler not recognized

Ni Va
Hi,

I got not recognized function handler starting a job in vim9script.


"
Error detected while processing function <SNR>24_ZipUpDir:
line   60:
E700: Unknown function: MyHandlerCallback       
"

And this is the vim9script:

"
  vim9script

  var jobid: job
  var options: dict<any>

  # Job Part {{{
  def MyHandlerExit(channel: channel, msg: string): void
job_stop(jobid)
echomsg 'Exiting ' .. string(msg) .. ' ' .. string(@z)

def MyHandlerCallback2(channel: channel, msg: string)
  echomsg string(msg)
enddef

options = { "callback": function('MyHandlerCallback2') }
     job_start(cmd, options)
  enddef

  def MyHandlerCallback(channel: channel, msg: string): void
  echomsg string(msg)
  enddef

   options = { 'callback': function('MyHandlerCallback'), 'exit_cb':  function('MyHandlerExit'), 'timeout':  30000 }
   jobid = job_start(cmd, options) | echomsg 'jobid: ' .. string(jobid)

"

Thank for help
NiVa

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/vim_use/ba0259f3-1ef2-4a29-9c4d-8929e18d8820n%40googlegroups.com.
Reply | Threaded
Open this post in threaded view
|

Re: vim9script job function handler not recognized

Bram Moolenaar

Ni Va wrote:

> I got not recognized function handler starting a job in vim9script.
>
>
> *"*
> *Error detected while processing function <SNR>24_ZipUpDir:*
> *line   60:*
> *E700: Unknown function: MyHandlerCallback  *    
> "
>
> And this is the vim9script:
>
> "
>   vim9script
>
>   var jobid: job
>   var options: dict<any>
>
>   # Job Part {{{
>   def MyHandlerExit(channel: channel, msg: string): void
> job_stop(jobid)
> echomsg 'Exiting ' .. string(msg) .. ' ' .. string(@z)
>
> def MyHandlerCallback2(channel: channel, msg: string)
>   echomsg string(msg)
> enddef
>
> options = { "callback": function('MyHandlerCallback2') }
>      job_start(cmd, options)
>   enddef
>
>   def MyHandlerCallback(channel: channel, msg: string): void
>   echomsg string(msg)
>   enddef
>
>    options = { 'callback': function('MyHandlerCallback'), 'exit_cb':  
> function('MyHandlerExit'), 'timeout':  30000 }
>    jobid = job_start(cmd, options) | echomsg 'jobid: ' .. string(jobid)
>
> "

"cmd" is not defined.  But you probably want to remove function() and
use MyHandlerCallback directly.  The function will be defined
script-local, and using it as a string won't work inside job-start().

You don't need the ": void" for the function, not returning anything is
the default.

--
Contrary to popular belief, it's often your clothing that gets promoted, not
you.
                                (Scott Adams - The Dilbert principle)

 /// Bram Moolenaar -- [hidden email] -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/vim_use/202103191913.12JJDX3a1595047%40masaka.moolenaar.net.
Reply | Threaded
Open this post in threaded view
|

Re: vim9script job function handler not recognized

Ni Va
Hi Bram,


I was inspired by testdir/test_vim9script...vim  and write these lines. 
I wonder how can this job can be monitored during its running life  maybe by callback or another job.



"
  # Zip command line
  @z = stampedDir .. archiveName 
  var archive_cmd: string = sevenZ.exe .. sevenZ.exclusion  .. ' a "' .. @z .. '" "' .. archiveSourcePath .. '"' .. sevenZ.compression


  # Zip's job
  var jobid: job
  var source: list<number>

  def Out_cb(...l: any)
      eval [][0]
  enddef
  def Exit_cb(...l: any)
sleep 1m
source += l
echomsg 'Exiting ' .. string(l) .. ' ' .. string(@z)
  enddef

  jobid = job_start(archive_cmd, { out_cb: Out_cb, exit_cb:  Exit_cb, mode: 'raw', timeout: 30000 } )
  echomsg 'jobid: ' .. string(jobid)
"


Le vendredi 19 mars 2021 à 20:13:46 UTC+1, Bram Moolenaar a écrit :

Ni Va wrote:

> I got not recognized function handler starting a job in vim9script.
>
>
> *"*
> *Error detected while processing function <SNR>24_ZipUpDir:*
> *line 60:*
> *E700: Unknown function: MyHandlerCallback *
> "
>
> And this is the vim9script:
>
> "
> vim9script
>
> var jobid: job
> var options: dict<any>
>
> # Job Part {{{
> def MyHandlerExit(channel: channel, msg: string): void
> job_stop(jobid)
> echomsg 'Exiting ' .. string(msg) .. ' ' .. string(@z)
>
> def MyHandlerCallback2(channel: channel, msg: string)
> echomsg string(msg)
> enddef
>
> options = { "callback": function('MyHandlerCallback2') }
> job_start(cmd, options)
> enddef
>
> def MyHandlerCallback(channel: channel, msg: string): void
> echomsg string(msg)
> enddef
>
> options = { 'callback': function('MyHandlerCallback'), 'exit_cb':
> function('MyHandlerExit'), 'timeout': 30000 }
> jobid = job_start(cmd, options) | echomsg 'jobid: ' .. string(jobid)
>
> "

"cmd" is not defined. But you probably want to remove function() and
use MyHandlerCallback directly. The function will be defined
script-local, and using it as a string won't work inside job-start().

You don't need the ": void" for the function, not returning anything is
the default.

--
Contrary to popular belief, it's often your clothing that gets promoted, not
you.
(Scott Adams - The Dilbert principle)

/// Bram Moolenaar -- [hidden email] -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/vim_use/df1c4bb3-ddae-49ab-9c94-c6415135625dn%40googlegroups.com.