-
-
Notifications
You must be signed in to change notification settings - Fork 5.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
opening a directory in a new tab from within a try block #1353
Comments
On Jan 5, 2017 07:04, "Anmol Sethi" ***@***.***> wrote:
No idea why, but try | tab split /bin | endtry doesn't work.
See junegunn/fzf.vim#102 and
https://groups.google.com/forum/#!msg/vim_use/EeQM4EWP7IY/yFrhedMDWCAJ
Because a directory is considered an error. I really wonder about the
purpose of that, and if it could be made not an error.
…---
Justin M. Keyes
|
What do you want to happen if the Perhaps an if isdirectory('/bin')
tab split /bin
endif |
@pavoljuhas that's not the point of the issue. The snippet doesn't open the directory even if it exists is the problem. |
Patch here: neovim/neovim#5933 |
Abuse NOTDONE to give some nuance to the return value of readfile(), so that open_buffer() can distinguish between "failed, lol", and "failed because the path is a directory". Before this change, Vim *already* creates a new buffer when a directory is edited. So there is no reason it should not raise BufEnter, that was an implementation of ye olde readfile(). The explicit changes in this commit merely preserve the old semantics. The "passive" change that we actually are interested in, is this line in `open_buffer()`, where `&retval` being non-FAIL allows EVENT_BUFENTER to be applied: apply_autocmds_retval(EVENT_BUFENTER, NULL, NULL, FALSE, curbuf, &retval); References vim/vim#1353
Abuse NOTDONE to give some nuance to the return value of readfile(), so that open_buffer() can distinguish between "failed, lol", and "failed because the path is a directory". Before this change, Vim *already* creates a new buffer when a directory is edited. So there is no reason it should not raise BufEnter, that was an implementation of ye olde readfile(). The line we are interested in is in `open_buffer()`, where `&retval` being non-FAIL allows EVENT_BUFENTER to be applied: apply_autocmds_retval(EVENT_BUFENTER, NULL, NULL, FALSE, curbuf, &retval); References vim/vim#1353
Abuse NOTDONE to give some nuance to the return value of readfile(), so that open_buffer() can distinguish between "failed, lol", and "failed because the path is a directory". Before this change, Vim *already* creates a new buffer when a directory is edited. So there is no reason it should not raise BufEnter, that was an implementation of ye olde readfile(). The explicit changes in this commit merely preserve the old semantics. The "passive" change that we actually are interested in, is this line in `open_buffer()`, where `&retval` being non-FAIL allows EVENT_BUFENTER to be applied: apply_autocmds_retval(EVENT_BUFENTER, NULL, NULL, FALSE, curbuf, &retval); References vim/vim#1353
Just Keyes wrote:
Patch here: neovim/neovim#5933
Perhaps someone can turn this in a Vim patch? Most of the diff is
reformatting which we don't want in Vim.
…--
Place mark here ->[ ]<- if you want a dirty monitor.
/// Bram Moolenaar -- Bram@Moolenaar.net -- 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 ///
|
I'll post a vim patch shortly. (done: #1375) |
Abuse NOTDONE to give some nuance to the return value of readfile(), so that open_buffer() can distinguish between "general failure" and "failed because the path is a directory". Before this change, Vim *already* creates a new buffer when a directory is edited. So there's no reason it should not raise BufEnter, that was an implementation detail of readfile(). Most of the changes in this commit merely preserve the old semantics. The "implicit" change that we actually are interested in, is this line in `open_buffer()`, where `&retval` being non-FAIL allows EVENT_BUFENTER to be applied: apply_autocmds_retval(EVENT_BUFENTER, NULL, NULL, FALSE, curbuf, &retval); Closes vim#1353
Abuse NOTDONE to give some nuance to the return value of readfile(), so that open_buffer() can distinguish between "failed, lol" and "failed because the path is a directory". Before this change, Vim *already* creates a new buffer when a directory is edited. So there is no reason it should not raise BufEnter, that was an implementation detail of ye olde readfile(). Most of the changes in this commit merely preserve the old semantics. The "implicit" change that we actually are interested in, is this line in `open_buffer()`, where `retval` being non-FAIL allows EVENT_BUFENTER to be applied: apply_autocmds_retval(EVENT_BUFENTER, NULL, NULL, FALSE, curbuf, &retval); References vim/vim#1353
Problem: When opening a buffer on a directory and inside a try/catch then the BufEnter event is not triggered. Solution: Return NOTDONE from readfile() for a directory and deal with the three possible return values. (Justin M. Keyes, closes vim/vim#1375, closes vim/vim#1353) vim/vim@e13b9af
Problem: When opening a buffer on a directory and inside a try/catch then the BufEnter event is not triggered. Solution: Return NOTDONE from readfile() for a directory and deal with the three possible return values. (Justin M. Keyes, closes vim/vim#1375, closes vim/vim#1353) vim/vim@e13b9af
Problem: When opening a buffer on a directory and inside a try/catch then the BufEnter event is not triggered. Solution: Return NOTDONE from readfile() for a directory and deal with the three possible return values. (Justin M. Keyes, closes vim/vim#1375, closes vim/vim#1353) vim/vim@e13b9af
Problem: When opening a buffer on a directory and inside a try/catch then the BufEnter event is not triggered. Solution: Return NOTDONE from readfile() for a directory and deal with the three possible return values. (Justin M. Keyes, closes vim/vim#1375, closes vim/vim#1353) vim/vim@e13b9af
Problem: When opening a buffer on a directory and inside a try/catch then the BufEnter event is not triggered. Solution: Return NOTDONE from readfile() for a directory and deal with the three possible return values. (Justin M. Keyes, closes vim/vim#1375, closes vim/vim#1353) vim/vim@e13b9af
Problem: When opening a buffer on a directory and inside a try/catch then the BufEnter event is not triggered. Solution: Return NOTDONE from readfile() for a directory and deal with the three possible return values. (Justin M. Keyes, closes vim/vim#1375, closes vim/vim#1353) vim/vim@e13b9af
Problem: When opening a buffer on a directory and inside a try/catch then the BufEnter event is not triggered. Solution: Return NOTDONE from readfile() for a directory and deal with the three possible return values. (Justin M. Keyes, closes vim/vim#1375, closes vim/vim#1353) vim/vim@e13b9af
Problem: When opening a buffer on a directory and inside a try/catch then the BufEnter event is not triggered. Solution: Return NOTDONE from readfile() for a directory and deal with the three possible return values. (Justin M. Keyes, closes vim/vim#1375, closes vim/vim#1353) vim/vim@e13b9af
try | tab split /bin | endtry
doesn't work.See junegunn/fzf.vim#102 and https://groups.google.com/forum/#!msg/vim_use/EeQM4EWP7IY/yFrhedMDWCAJ
The text was updated successfully, but these errors were encountered: