neovim/runtime
Justin M. Keyes ce0fddf5ae
feat: try to recover from missing tempdir #22573
Problem:
If vim_tempdir mysteriously goes missing (typically by "antivirus" on
Windows), any plugins using tempname() will be broken for the rest of
the session. #1432 #9833 https://groups.google.com/g/vim_use/c/ef55jNm5czI
Steps:
    mkdir foo
    TMPDIR=./foo nvim
    :echo tempname()
    !rm -r foo
    :echo tempname()
    tempname() still uses the foo path even though it was deleted.

Solution:
- Don't assume that vim_tempdir exists.
- If it goes missing once, retry vim_mktempdir and log (silently) an error.
- If it goes missing again, retry vim_mktempdir and show an error.

Rejected in Vim for performance reasons:
  https://groups.google.com/g/vim_use/c/qgRob9SWDv8/m/FAOFVVcDTv0J
  https://groups.google.com/g/vim_dev/c/cogp-Vye4oo/m/d_SVFXBbnnoJ
But, logging shows that `vim_gettempdir` is not called frequently.

Fixes #1432
Fixes #9833
Fixes #11250
Related: stdpath("run") f50135a32e
2023-03-09 05:07:36 -08:00
..
autoload refactor(runtime): use vim.version to compare versions #22550 2023-03-07 06:28:53 -08:00
colors fix(runtime): use g:terminal_color_{0-15} in colorschemes (#20637) 2022-10-17 15:24:37 +01:00
compiler vim-patch:86b4816766d9 (#21314) 2022-12-08 16:33:38 +01:00
doc feat: try to recover from missing tempdir #22573 2023-03-09 05:07:36 -08:00
ftplugin vim-patch:partial:dd60c365cd26 (#22437) 2023-02-28 09:34:27 +01:00
indent vim-patch:partial:dd60c365cd26 (#22437) 2023-02-28 09:34:27 +01:00
keymap vim-patch:6c391a74fe90 (#15654) 2021-09-13 16:33:41 +02:00
lua fix(treesitter): is_in_node_range (#22582) 2023-03-08 23:45:43 +00:00
macros vim-patch:4072ba571bab 2021-05-01 22:29:03 -04:00
pack/dist/opt dist: transpile cfilter.vim => cfilter.lua #21662 2023-01-08 12:31:38 -08:00
plugin feat(treesitter): add :InspectTree command (#22477) 2023-03-02 18:03:11 +01:00
queries feat(treesitter): use upstream format for injection queries 2023-03-08 11:03:11 +00:00
spell feat(runtime): import cleanadd.vim from Vim (#17699) 2022-03-13 04:52:45 +00:00
syntax vim-patch:partial:dd60c365cd26 (#22437) 2023-02-28 09:34:27 +01:00
tools vim-patch:e80086446cc2 (#19848) 2022-08-20 10:04:55 +02:00
tutor docs(tutor): fix TODO line demo (#21965) 2023-01-25 09:46:00 +08:00
bugreport.vim vim-patch:314dd79cac2a 2019-07-29 20:50:07 +02:00
CMakeLists.txt refactor(build): make installation of runtime/ more effective 2023-03-07 20:16:52 +01:00
delmenu.vim vim-patch:9.0.0141: "delmenu" does not remove autocmmands (#19646) 2022-08-05 12:23:41 +02:00
filetype.lua feat(runtime)!: remove filetype.vim (#20428) 2022-10-17 08:52:40 +02:00
ftoff.vim
ftplugin.vim feat(runtime): Allow lua to be used in ftplugin 2021-06-11 01:01:02 +06:00
ftplugof.vim
indent.vim feat(runtime): Allow lua to be used in indent 2021-06-11 01:01:02 +06:00
indoff.vim
macmap.vim
makemenu.vim vim-patch:95a9dd1efc5a 2021-04-27 09:21:32 -04:00
menu.vim feat!: remove hardcopy 2023-01-03 10:07:43 +00:00
mswin.vim vim-patch:d47d52232bf2 2019-07-29 20:50:07 +02:00
neovim.ico feat(windows): show icon in terminal titlebar, taskbar #20607 2022-10-13 05:48:12 -07:00
nvim.appdata.xml dist: use valid application id in nvim.appdata.xml #22046 2023-02-15 15:11:49 -08:00
nvim.desktop build(nvim.desktop): central Kurdish translation #17065 2022-05-13 11:58:22 -07:00
nvim.png Dist: make icon a proper square (#9716) 2019-03-11 21:00:12 +01:00
optwin.vim feat(ui): add 'statuscolumn' option 2023-01-09 17:12:06 +00:00
synmenu.vim vim-patch:3c053a1a5ad2 (#20679) 2022-10-17 08:19:48 +02:00