aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nvim/ex_docmd.c10
-rw-r--r--src/nvim/main.c8
2 files changed, 7 insertions, 11 deletions
diff --git a/src/nvim/ex_docmd.c b/src/nvim/ex_docmd.c
index 0387bd1ad7..7655659107 100644
--- a/src/nvim/ex_docmd.c
+++ b/src/nvim/ex_docmd.c
@@ -9299,19 +9299,15 @@ static void ex_filetype(exarg_T *eap)
EMSG2(_(e_invarg2), arg);
}
-/// Same as :filetype plugin indent enable
-/// Updates the state used for :filetype without args.
+/// Do ":filetype plugin indent on" if user did not already do some
+/// permutation thereof.
void force_enable_filetype(void)
{
- if (!filetype_detect) {
+ if (!filetype_detect && !filetype_plugin && !filetype_indent) {
source_runtime((char_u *)FILETYPE_FILE, true);
filetype_detect = true;
- }
- if (!filetype_plugin) {
source_runtime((char_u *)FTPLUGIN_FILE, true);
filetype_plugin = true;
- }
- if (!filetype_indent) {
source_runtime((char_u *)INDENT_FILE, true);
filetype_indent = true;
}
diff --git a/src/nvim/main.c b/src/nvim/main.c
index b1f5a6ccad..6f5d40645a 100644
--- a/src/nvim/main.c
+++ b/src/nvim/main.c
@@ -332,12 +332,12 @@ int main(int argc, char **argv)
/* Source startup scripts. */
source_startup_scripts(&params);
- // If using the runtime (-u is not NONE), enable syntax and filetype plugins
+ // If using the runtime (-u is not NONE), enable syntax & filetype plugins.
if (params.use_vimrc != NULL && strcmp(params.use_vimrc, "NONE") != 0) {
- // Do this before syntax/syntax.vim (which calls `:filetype on`).
+ // Do ":filetype plugin indent on".
force_enable_filetype();
- // Enable syntax highlighting.
- syn_cmd("syntax"); // sources syntax/syntax.vim
+ // Enable syntax (sources syntax/syntax.vim, which calls `:filetype on`).
+ syn_cmd("syntax");
}
/*