Commits

ZyX_I committed 1ac2845

@/autocommands: Extended FWC decorator argument

  • Participants
  • Parent commits 3ad6408

Comments (0)

Files changed (1)

plugin/frawor/autocommands.vim

                 \    'agiddef': 'группа уже определена дополнением %s',
             \},'"Ошибка создания группы событий %s для дополнения %s: ".v:val'))
     call extend(s:_messages, map({
-                \ 'etypenslst': 'тип события не является строкой или списком',
-                \  'invetypes': 'часть типов событий не верна',
+                \   'invetype': 'тип событий не верен: %s',
                 \   'emptycmd': 'список аргументов пуст',
                 \ 'nowrapfunc': 'отсутствует функция _f.wrapfunc '.
                 \               '(дополнение должно зависеть от '.
                 \                'plugin/frawor/functions)',
-                \     'ukncmd': 'не удалось обработать команду',
             \},'"Ошибка создания события №%u группы событий %s '.
             \   'для дополнения %s: ".v:val'))
 else
                 \    'agiddef': 'group was already defined by plugin %s',
             \}, '"Error while creating augroup %s for plugin %s: ".v:val'))
     call extend(s:_messages, map({
-                \ 'etypenslst': 'event type is neither String nor List',
-                \  'invetypes': 'some event types are not valid',
+                \   'invetype': 'event type is not valid: %s',
                 \   'emptycmd': 'arguments list is empty',
                 \ 'nowrapfunc': 'function _f.wrapfunc is absent '.
                 \               '(plugin must depend on '.
                 \                'plugin/frawor/functions)',
-                \     'ukncmd': 'failed to process command',
             \}, '"Error while processing event #%u for augroup %s '.
             \    'defined by plugin %s: ".v:val'))
 endif
     let d={}
     for [d.event, d.pattern, d.nested, d.command] in a:events
         let epc=[]
-        if type(d.event)==type("")
-            call add(epc, split(d.event, ','))
-        elseif type(d.event)==type([])
-            call add(epc, d.event)
-        endif
-        "▶3 Invalid events
-        if !empty(filter(copy(epc[0]), 'type(v:val)!='.type("").' || '.
-                    \                  'v:val=~#"\\_[^a-zA-Z]" || '.
-                    \                  '!exists("##".v:val)'))
-            call s:_f.throw('invetypes', i, a:agid, a:plugdict.id)
-        endif
-        "▲3
-        let epc[0]=join(epc[0], ",")
+        call add(epc, join(d.event, ","))
         call add(epc, escape(d.pattern, ' '))
         if d.nested
             call add(epc, 'nested')
             \                          '@FWC': ['_ _'.
             \'(#invagid(@^.0.id, .) match/\v^\w+$/ #^'.
             \ 'either not key augroups, '.
-            \        '#agiddef(., @^.0.id, augroups.(@).plid) '.
-            \           'value @^.0.id is augroups.(@^^.2).plid)'.
-            \'list tuple ((type "", []), (type ""), bool, '.
-            \            '(either ((type string, function, dictionary),'.
+            \        '#agiddef(., @<<.id, augroups.(@).plid) '.
+            \           'value @<<.id is augroups.(@^^.2).plid)'.
+            \'list tuple ((if type "" |*$"split"(. ",") () '.
+            \             'list (type "" match /\v^\w+$/ '.
+            \                   '#invetype(%, @<, @<<<.id, @) '.
+            \                                   '?=exists("##".@.@))), '.
+            \            '(type ""), '.
+            \            'bool, '.
+            \            '(either ((type string, function, dictionary), '.
             \                     '(type [] #emptycmd(%, @<, @<<<.id) '.
             \                              '?=!empty(@.@)))))',
-            \'check']})
+            \'filter']})
 "▶2 Define feature
 call s:_f.newfeature('augroup', {'cons': s:F.augroup,
             \                  'unload': s:F.augroup.del,})