From 7ab2e12ebc9cdab71a4751550b9026db3a4bd0cf Mon Sep 17 00:00:00 2001 From: bfredl Date: Tue, 28 Jun 2022 20:38:34 +0200 Subject: refactor(aucmd): call define_autocmd() directly for default autocmds --- src/nvim/autocmd.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/nvim/autocmd.c b/src/nvim/autocmd.c index 7301e07a06..75666c600c 100644 --- a/src/nvim/autocmd.c +++ b/src/nvim/autocmd.c @@ -2707,14 +2707,21 @@ static void do_autocmd_focusgained(bool gained) recursive = false; } -// initialization +static void define_autocmd(event_T event, char *pat, char *group, bool once, bool nested, char *cmd) +{ + AucmdExecutable exec = AUCMD_EXECUTABLE_INIT; + exec.type = CALLABLE_EX; + exec.callable.cmd = cmd; // autocmd_register() makes a copy + int group_id = augroup_add(group); + autocmd_register(0, event, pat, (int)strlen(pat), group_id, once, nested, NULL, exec); +} +/// initialization of default autocmds void init_default_autocmds(void) { // open terminals when opening files that start with term:// #define PROTO "term://" - do_cmdline_cmd("augroup nvim_terminal"); - do_cmdline_cmd("autocmd BufReadCmd " PROTO "* ++nested " + define_autocmd(EVENT_BUFREADCMD, PROTO "*", "nvim_terminal", false, true, "if !exists('b:term_title')|call termopen(" // Capture the command string "matchstr(expand(\"\"), " @@ -2723,11 +2730,8 @@ void init_default_autocmds(void) "{'cwd': expand(get(matchlist(expand(\"\"), " "'\\c\\m" PROTO "\\(.\\{-}\\)//'), 1, ''))})" "|endif"); - do_cmdline_cmd("augroup END"); #undef PROTO - // limit syntax synchronization in the command window - do_cmdline_cmd("augroup nvim_cmdwin"); - do_cmdline_cmd("autocmd! CmdwinEnter [:>] syntax sync minlines=1 maxlines=1"); - do_cmdline_cmd("augroup END"); + define_autocmd(EVENT_CMDWINENTER, "[:>]", "nvim_cmdwin", false, false, + "syntax sync minlines=1 maxlines=1"); } -- cgit