Hi Mr.Emotionless precise machine!
2016-4-10(Sun) 1:16:31 UTC+9 ZyX:
> 2015-02-05 17:46 GMT+03:00 h_east:
> > Hi Enno,
> >
> > 2015/2/5(Thu) 18:25:49 UTC+9 Enno:
> >> Le jeudi 5 février 2015 05:12:19 UTC+1, h_east a écrit :
> >> > Hi Enno,
> >> >
> >> > 2015/2/4(Wed) 20:42:57 UTC+9 Enno:
> >> > > How about
> >> > >
> >> > > let b:isLoc = len(getloclist(0)) > 0 ? 1 : 0
> >> > >
> >> > > inside of a qf filetype window. See :h getloclist() that explains
> >> > >
> >> > > For a location list window, the displayed location list is returned.
> >> > >
> >> > > All credit to romainl at
> >> > > https://github.com/romainl/dotvim/blob/44e87b3fbb829145a23bd5b2be1807cc958308e5/bundle/qf/after/ftplugin/qf.vim
> >> >
> >> > A location list can be associated with a quickfix window.
> >> > In this case, it can not be determined correctly in this work-around.
> >> >
> >> > Try this:
> >> > - move Vim source-code directory.
> >> > $ cd vim/src
> >> > - run vim (no vimrc, no plugin)
> >> > $ vim -N -u NONE screen.c
> >> >
> >> > :vimgrep screen *.c
> >> > :copen
> >> > :echo len(getloclist(0)) " on quickfix window
> >> > 0 " Correct
> >> > :lvimgrep update_screen *.c
> >> > :wincmd w
> >> > :lopen
> >> > :echo len(getloclist(0)) " on location list window
> >> > 75 " Correct
> >> > :wincmd k
> >> > :echo len(getloclist(0)) " on quickfix window
> >> > 75 " Not correct!
> >> >
> >> >
> >> > Our patch always returns correct value.
> >> > Thanks for the response.
> >> >
> >> > Best regards,
> >> > Hirohito Higashi (a.k.a h_east)
> >>
> >> Hello Hirohito,
> >>
> >> Yep, this check has several issues. Yours stands, as well as that it fails
> >> when the qflist is empty.
> >>
> >> More stable seems the following workaround attachched below, originally
> >> from
> >>
> >> https://groups.google.com/forum/#!msg/vim_use/sfRlnrOwN2M/JAdzwHe51qYJ
> >>
> >> but at the same time, it shows that this patch is called for.
> >>
> >> --
> >>
> >> In ~/.vim/ftplugin/qf.vim:
> >>
> >> if exists('s:processing')
> >> finish
> >> endif
> >> let listbufnr = bufnr("%")
> >> let numwindows = winnr('$')
> >> let altwin = winnr('#')
> >> let curwin = winnr()
> >> let s:processing = 1
> >> copen
> >> if curwin == winnr()
> >> call setbufvar(listbufnr, 'isQuickfix', '1')
> >> endif
> >> " close the quickfix list if it was closed when we began
> >> if numwindows != winnr('$')
> >> cclose
> >> endif
> >> " return to quickfix/location list
> >> exe altwin 'wincmd w'
> >> exe curwin 'wincmd w'
> >> unlet s:processing
> >>
> >> Then a buffer of file type qf is a quickfix list if b:isQuickfix exists.
> >
> > I like simple way.
> > I dislike work-around.
> > I dislike complex way.
> >
> > Our patch is very simple.
> > In fact, This patch is only two line.
>
> You forgot documentation. I guess this will add at least five lines
> (empty line, tag, description (two lines), empty line).
Huh? Is this your humor?
It's not so much fun.
Thanks.
> More with
> examples. See `:h b:current_syntax-variable`, but this should be put
> somewhere in quickfix.c: e.g. somewhere under `:h w:quickfix_title`,
> but please attach tag to the paragraph with description, *not* to the
> :copen command like w:quickfix_title (e.g. I would suggest using
> b:current_syntax as a reference, but place it where w:quickfix_title
> is placed).
>
> >
> >> set_internal_string_var("b:qflisttype", (curwin->w_llist_ref
>
> And also tests. I am not familiar with that part of Vim, but
> `curwin->w_llist_ref == NULL` looks suspicious: what if you *first*
> create a location list and then from the same window create a location
> list? This and the opposite (first quickfix) should be tested.
>
> >> == NULL) ? "quickfix" :
> >> "location");
> >
> > What's dislike you this patch?
> >
> > Let's go the simple way :-)
>
> There is also a question whether this shoud be `b:qflisttype` or
> `w:qflisttype`. w:quickfix_title is attached to the window.
>
> >
> > Best regards,
> > Hirohito Higashi (a.k.a h_east)
> >
> > --
> > --
> > 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.
--
--
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.