diff options
-rw-r--r-- | runtime/doc/options.txt | 11 | ||||
-rw-r--r-- | runtime/doc/starting.txt | 6 | ||||
-rw-r--r-- | src/option.c | 8 | ||||
-rw-r--r-- | src/os_unix.h | 2 | ||||
-rw-r--r-- | src/testdir/test_xdg.vim | 4 | ||||
-rw-r--r-- | src/version.c | 2 |
6 files changed, 27 insertions, 6 deletions
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt index 806f5f0b80..795a5d014e 100644 --- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -1,4 +1,4 @@ -*options.txt* For Vim version 9.1. Last change: 2024 Mar 29 +*options.txt* For Vim version 9.1. Last change: 2024 May 02 VIM REFERENCE MANUAL by Bram Moolenaar @@ -6683,7 +6683,8 @@ A jump table for the options with a short description can be found at |Q_op|. < *'runtimepath'* *'rtp'* *vimfiles* 'runtimepath' 'rtp' string (default: - Unix: "$HOME/.vim, + Unix: "$HOME/.vim or + $XDG_CONFIG_HOME/vim, $VIM/vimfiles, $VIMRUNTIME, $VIM/vimfiles/after, @@ -6735,6 +6736,8 @@ A jump table for the options with a short description can be found at |Q_op|. And any other file searched for with the |:runtime| command. + For $XDG_CONFIG_HOME see |xdg-base-dir|. + The defaults for most systems are setup to search five locations: 1. In your home directory, for your personal preferences. 2. In a system-wide Vim directory, for preferences from the system @@ -8986,13 +8989,15 @@ A jump table for the options with a short description can be found at |Q_op|. *'viewdir'* *'vdir'* 'viewdir' 'vdir' string (default for Amiga: "home:vimfiles/view", for Win32: "$HOME/vimfiles/view", - for Unix: "$HOME/.vim/view", + for Unix: "$HOME/.vim/view" or + "$XDG_CONFIG_HOME/vim/view" for macOS: "$VIM/vimfiles/view", for VMS: "sys$login:vimfiles/view") global {not available when compiled without the |+mksession| feature} Name of the directory where to store files for |:mkview|. + For $XDG_CONFIG_HOME see |xdg-base-dir|. This option cannot be set from a |modeline| or in the |sandbox|, for security reasons. diff --git a/runtime/doc/starting.txt b/runtime/doc/starting.txt index b83a61e002..71b620a204 100644 --- a/runtime/doc/starting.txt +++ b/runtime/doc/starting.txt @@ -1,4 +1,4 @@ -*starting.txt* For Vim version 9.1. Last change: 2024 Apr 21 +*starting.txt* For Vim version 9.1. Last change: 2024 May 02 VIM REFERENCE MANUAL by Bram Moolenaar @@ -1119,8 +1119,8 @@ feature backward compatible). However, if you want to migrate to use and `~/.vim/vimrc` file. *xdg-runtime* -When the |xdg-vimrc| is used the |'runtimepath'| will be modified accordingly -to respect the |xdg-base-dir|: > +When the |xdg-vimrc| is used the 'runtimepath' and 'packpath' options will be +modified accordingly to respect the |xdg-base-dir|: > "$XDG_CONFIG_HOME/vim,$VIMRUNTIME,/after,$XDG_CONFIG_HOME/vim/after" < diff --git a/src/option.c b/src/option.c index 0cd2823851..2acc0d475f 100644 --- a/src/option.c +++ b/src/option.c @@ -417,6 +417,14 @@ set_init_xdg_rtp(void) options[opt_idx].def_val[VI_DEFAULT] = xdg_rtp; p_pp = xdg_rtp; +#if defined(XDG_VDIR) && defined(FEAT_SESSION) + if ((opt_idx = findoption((char_u *)"viewdir")) < 0) + goto theend; + + options[opt_idx].def_val[VI_DEFAULT] = (char_u *)XDG_VDIR; + p_vdir = (char_u *)XDG_VDIR; +#endif + theend: vim_free(vimrc1); vim_free(vimrc2); diff --git a/src/os_unix.h b/src/os_unix.h index 6efd8ce7a1..99184abe6c 100644 --- a/src/os_unix.h +++ b/src/os_unix.h @@ -347,6 +347,8 @@ typedef struct dsc$descriptor DESC; # define DFLT_VDIR "sys$login:vimfiles/view" # else # define DFLT_VDIR "$HOME/.vim/view" // default for 'viewdir' +# define XDG_VDIR (mch_getenv("XDG_CONFIG_HOME") ? \ + "$XDG_CONFIG_HOME/vim/view" : "~/.config/vim/view") # endif #endif diff --git a/src/testdir/test_xdg.vim b/src/testdir/test_xdg.vim index 6f35b7254a..b9ec3c7314 100644 --- a/src/testdir/test_xdg.vim +++ b/src/testdir/test_xdg.vim @@ -80,6 +80,7 @@ func Test_xdg_runtime_files() call assert_match('XfakeHOME/\.vimrc', $MYVIMRC) call filter(g:, {idx, _ -> idx =~ '^rc'}) call assert_equal(#{rc_one: 'one', rc: '.vimrc'}, g:) + call assert_match('XfakeHOME/\.vim/view', &viewdir) call writefile(v:errors, 'Xresult') quit END @@ -94,6 +95,7 @@ func Test_xdg_runtime_files() call assert_match('XfakeHOME/\.vim/vimrc', $MYVIMRC) call filter(g:, {idx, _ -> idx =~ '^rc'}) call assert_equal(#{rc_two: 'two', rc: '.vim/vimrc'}, g:) + call assert_match('XfakeHOME/\.vim/view', &viewdir) call writefile(v:errors, 'Xresult') quit END @@ -112,6 +114,7 @@ func Test_xdg_runtime_files() call assert_match('XfakeHOME/\.config/vim/vimrc', $MYVIMRC, msg) call filter(g:, {idx, _ -> idx =~ '^rc'}) call assert_equal(#{rc_three: 'three', rc: '.config/vim/vimrc'}, g:) + call assert_match('XfakeHOME/\.config/vim/view', &viewdir) call writefile(v:errors, 'Xresult') quit END @@ -128,6 +131,7 @@ func Test_xdg_runtime_files() call assert_match('XfakeHOME/xdg/vim/vimrc', $MYVIMRC, msg) call filter(g:, {idx, _ -> idx =~ '^rc'}) call assert_equal(#{rc_four: 'four', rc: 'xdg/vim/vimrc'}, g:) + call assert_match('XfakeHOME/xdg/vim/view, &viewdir) call writefile(v:errors, 'Xresult') quit END diff --git a/src/version.c b/src/version.c index 1efc0814c7..5312bfef40 100644 --- a/src/version.c +++ b/src/version.c @@ -705,6 +705,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 393, +/**/ 392, /**/ 391, |