2018-01-09 18:59 GMT+03:00 Yegappan Lakshmanan <yegapp...@gmail.com>: > Hi Nikolay, > > On Mon, Jan 8, 2018 at 11:41 PM, Nikolay Aleksandrovich Pavlov > <zyx....@gmail.com> wrote: >> 2018-01-08 9:23 GMT+03:00 Yegappan Lakshmanan <yegapp...@gmail.com>: >>> Hi, >>> >>> Which value you can use as the default value for a job >>> type variable? I see that there is a test_null_job() function >>> that returns a null job value (but it is supposed to be used >>> only for testing). But I don't see any other way to initialize >>> a variable to a null job value. Am I missing something? >> >> There is no such a thing as “abstract default value” in VimL, no >> matter the type; to define something like this language would need to >> have either constructions in which case return values of those >> constructors called without arguments may be named “default value for >> the type” (e.g. `list()` in Python returning empty list without >> arguments) or be typed without support for uninitialized variables >> (probably, only in part of the language) in which case whatever they >> are initialized to when not explicitly initialized define “default >> value for the type” (e.g. in C99 with `*tv = (typval_T) { .v_type = >> VAR_STRING }` everything, but `v_type` in `tv` becomes zero; another >> example is LabVIEW with “use default if unwired” terminals defaulting >> to false/empty array/etc). All other defaults come from code authors, >> for what you need to describe a task. >> >> So describe a task. >> > > I am creating a plugin that runs a command asynchronously. > This plugin supports only one asynchronous command at a time. > If the async command is already running, the plugin will stop the > current job and start a new job. > > I am using a variable to keep track of the current job. During the > plugin startup or when the job exits, I need to set this variable > to an empty or a sane value. Before starting a new job, I need to > compare this variable against some default value to check whether > a job is already running or not. As a workaround I am currently using > another variable to keep track of whether the job is running or not. > > We can use the following default values for other variable types: > Sting: "", Number: 0, List: [], Dict: {}. I am looking for some thing > similar for the Job variable.
They are by no means default values, these are *empty* values, nothing more (see `:h empty()`, this applies to number too). And VimL is not typed, you *don’t* need what you are asking for: just initialize variable to zero and check with `if var is 0`, this will yield false if `var` happens to have type other then Number or value other then zero. > > Regards, > Yegappan > > -- > -- > You received this message from the "vim_dev" 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_dev" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to vim_dev+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. -- -- You received this message from the "vim_dev" 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_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.