Hi,

On Tue, Jul 26, 2016 at 10:15 PM, LCD 47 <[email protected]> wrote:
> On 26 July 2016, Bram Moolenaar <[email protected]> wrote:
>>
>> Lcd wrote:
>>
>> > On 25 July 2016, Yegappan Lakshmanan <[email protected]> wrote:
>> > > Hi,
>> > >
>> > > On Mon, Jul 25, 2016 at 12:27 AM, LCD 47 <[email protected]> wrote:
>> > > > On 24 July 2016, Yegappan Lakshmanan <[email protected]>
>> > > > wrote:
>> > > >> I am attaching a patch to enhance the getqflist/getloclist()
>> > > >> functions to return the title string and the
>> > > >> setqflist()/setloclist() functions to set the title string.
>> > > >>
>> > > >> After this patch is incorporated, it will be easy to add the
>> > > >> additional items (e.g. context, items, number, stack, etc.).
>> > > >>
>> > > >> The getqflist/setqflist functions now accept an optional
>> > > >> dictionary parameter. The dictionary parameter specifies which
>> > > >> items to get or set.  If the {dict} argument is specified, then
>> > > >> the getqflist function returns a dictionary.
>> > > >
>> > > >     Why a dictionary (where values are ignored), rather than a
>> > > > list, or a string of, say, comma-separated names?  Or both?
>> > > >
>> > >
>> > > This is to be consistent between the getqflist()/getloclist()
>> > > and the setqflist()/setloclist() functions. In the setqflist()
>> > > function, the value of a dictionary key specifies the value to
>> > > set. In the getqflist() function, it specifies the value to
>> > > return. For example, the following call sets the quickfix title:
>> > >
>> > >     call setqflist([], 'a', {'title' : 'example'})
>> > >
>> > > The following call returns the quickfix title:
>> > >
>> > >     call getqflist({'title' : 1})
>> >
>> >     The arguments of setqflist() are already different from those of
>> > getqflist(), so why does an extra argument has to be the same?  Why
>> > not something like this:
>> >
>> >         call getqflist('title,context,nr')
>> > or
>> >         call getqflist(['title', 'context', 'nr'])
>> >
>> > vs.
>> >
>> >         call setqflist(errors, 'r',
>> >             \ { 'title': 'My preciousss', 'context': ctx, 'nr': -1 })
>> >
>> > (BTW, { 'nr': -1 } could mean last).
>>
>> Although we can probably do a lot with a list of strings, there is a
>> tendency for builtin-functions to use a dictionary to pass optional
>> extra argumens through a dict.  A list can only use "present" flags, a
>> dictionary can also use values for the arguments.
>
>     So basically you want all plugins daring enough to use the new
> features to carry along dicts with useless values, just because some
> of these values might become useful at some unspecified point in the
> future?  Vim can nicely deal with changing the type of an argument, so
> why not use lists for now, and add dict arguments when and if there is
> an actual use for those?
>

I did make the changes to use a list argument for the getqflist() function.
Then realized that with a list, you cannot specify the quickfix list number
(to pick a specific list in the stack). With a dict, you can modify a specific
quickfix list in the stack.

- 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 [email protected].
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui