2016-4-10(Sun) 2:18:18 UTC+9 ZyX:
> 2016-04-09 20:10 GMT+03:00 h_east <[email protected]>:
> > 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.
>
> It is not only a humor. Your “two-line patch” is missing tests and
> documentation and thus can be included in neither Vim nor Neovim. And
> with them it will no longer be two-line.]
"Core part of" patch is two-lines.
Does not matter.
>
> >
> > 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.
--
--
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.