aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/main.c
diff options
context:
space:
mode:
authorJames McCoy <jamessan@jamessan.com>2017-08-22 09:53:02 -0400
committerGitHub <noreply@github.com>2017-08-22 09:53:02 -0400
commit1d175f3448a6630d6825c02d7f1b90ad0f7b0a7a (patch)
tree56432497a1df2af1756e845fa48a44fb86427727 /src/nvim/main.c
parent9ff0cc70855fc3eb11ad0162ee02e742f354d360 (diff)
parent41d180abb4693814be5833b0907e111ce46b3791 (diff)
downloadrneovim-1d175f3448a6630d6825c02d7f1b90ad0f7b0a7a.tar.gz
rneovim-1d175f3448a6630d6825c02d7f1b90ad0f7b0a7a.tar.bz2
rneovim-1d175f3448a6630d6825c02d7f1b90ad0f7b0a7a.zip
Merge pull request #7201 from jamessan/vim-8.0.0308
vim-patch:8.0.0308,8.0.0325,8.0.0326,8.0.0437,8.0.0612,8.0.0680
Diffstat (limited to 'src/nvim/main.c')
-rw-r--r--src/nvim/main.c23
1 files changed, 21 insertions, 2 deletions
diff --git a/src/nvim/main.c b/src/nvim/main.c
index a665ad1de2..f601fd7ea3 100644
--- a/src/nvim/main.c
+++ b/src/nvim/main.c
@@ -1291,10 +1291,29 @@ static void set_window_layout(mparm_T *paramp)
static void load_plugins(void)
{
if (p_lpl) {
- source_runtime((char_u *)"plugin/**/*.vim", DIP_ALL | DIP_NOAFTER); // NOLINT
+ char_u *rtp_copy = NULL;
+
+ // First add all package directories to 'runtimepath', so that their
+ // autoload directories can be found. Only if not done already with a
+ // :packloadall command.
+ // Make a copy of 'runtimepath', so that source_runtime does not use the
+ // pack directories.
+ if (!did_source_packages) {
+ rtp_copy = vim_strsave(p_rtp);
+ add_pack_start_dirs();
+ }
+
+ source_in_path(rtp_copy == NULL ? p_rtp : rtp_copy,
+ (char_u *)"plugin/**/*.vim", // NOLINT
+ DIP_ALL | DIP_NOAFTER);
TIME_MSG("loading plugins");
+ xfree(rtp_copy);
- ex_packloadall(NULL);
+ // Only source "start" packages if not done already with a :packloadall
+ // command.
+ if (!did_source_packages) {
+ load_start_packages();
+ }
TIME_MSG("loading packages");
source_runtime((char_u *)"plugin/**/*.vim", DIP_ALL | DIP_AFTER);