diff options
| author | bfredl <bjorn.linse@gmail.com> | 2022-06-29 00:46:25 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-06-29 00:46:25 +0200 |
| commit | 3cc8559963a7c7b6ce9a914a1ca3de0b9869d931 (patch) | |
| tree | dd8c8d31e890c5cf0bd064f68be5f6e29ed58ddc /src/nvim/autocmd.c | |
| parent | e0f605bfd8b40b45a7efc88ffa0ee6b4a8a3307a (diff) | |
| parent | 7ab2e12ebc9cdab71a4751550b9026db3a4bd0cf (diff) | |
| download | rneovim-3cc8559963a7c7b6ce9a914a1ca3de0b9869d931.tar.gz rneovim-3cc8559963a7c7b6ce9a914a1ca3de0b9869d931.tar.bz2 rneovim-3cc8559963a7c7b6ce9a914a1ca3de0b9869d931.zip | |
Merge pull request #19141 from bfredl/mapchar
refactor: define builtin mappings and autocmds without pseudo-excmds
Diffstat (limited to 'src/nvim/autocmd.c')
| -rw-r--r-- | src/nvim/autocmd.c | 20 |
1 files changed, 12 insertions, 8 deletions
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(\"<amatch>\"), " @@ -2723,11 +2730,8 @@ void init_default_autocmds(void) "{'cwd': expand(get(matchlist(expand(\"<amatch>\"), " "'\\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"); } |