forked from aniani/vim
patch 8.0.1597: autocommand events are not sorted
Problem: Autocommand events are not sorted. Solution: Sort the autocommand events.
This commit is contained in:
@@ -766,6 +766,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
1597,
|
||||||
/**/
|
/**/
|
||||||
1596,
|
1596,
|
||||||
/**/
|
/**/
|
||||||
|
73
src/vim.h
73
src/vim.h
@@ -1251,67 +1251,92 @@ typedef struct {
|
|||||||
enum auto_event
|
enum auto_event
|
||||||
{
|
{
|
||||||
EVENT_BUFADD = 0, /* after adding a buffer to the buffer list */
|
EVENT_BUFADD = 0, /* after adding a buffer to the buffer list */
|
||||||
EVENT_BUFNEW, /* after creating any buffer */
|
|
||||||
EVENT_BUFDELETE, /* deleting a buffer from the buffer list */
|
EVENT_BUFDELETE, /* deleting a buffer from the buffer list */
|
||||||
EVENT_BUFWIPEOUT, /* just before really deleting a buffer */
|
|
||||||
EVENT_BUFENTER, /* after entering a buffer */
|
EVENT_BUFENTER, /* after entering a buffer */
|
||||||
EVENT_BUFFILEPOST, /* after renaming a buffer */
|
EVENT_BUFFILEPOST, /* after renaming a buffer */
|
||||||
EVENT_BUFFILEPRE, /* before renaming a buffer */
|
EVENT_BUFFILEPRE, /* before renaming a buffer */
|
||||||
|
EVENT_BUFHIDDEN, /* just after buffer becomes hidden */
|
||||||
EVENT_BUFLEAVE, /* before leaving a buffer */
|
EVENT_BUFLEAVE, /* before leaving a buffer */
|
||||||
|
EVENT_BUFNEW, /* after creating any buffer */
|
||||||
EVENT_BUFNEWFILE, /* when creating a buffer for a new file */
|
EVENT_BUFNEWFILE, /* when creating a buffer for a new file */
|
||||||
|
EVENT_BUFREADCMD, /* read buffer using command */
|
||||||
EVENT_BUFREADPOST, /* after reading a buffer */
|
EVENT_BUFREADPOST, /* after reading a buffer */
|
||||||
EVENT_BUFREADPRE, /* before reading a buffer */
|
EVENT_BUFREADPRE, /* before reading a buffer */
|
||||||
EVENT_BUFREADCMD, /* read buffer using command */
|
|
||||||
EVENT_BUFUNLOAD, /* just before unloading a buffer */
|
EVENT_BUFUNLOAD, /* just before unloading a buffer */
|
||||||
EVENT_BUFHIDDEN, /* just after buffer becomes hidden */
|
|
||||||
EVENT_BUFWINENTER, /* after showing a buffer in a window */
|
EVENT_BUFWINENTER, /* after showing a buffer in a window */
|
||||||
EVENT_BUFWINLEAVE, /* just after buffer removed from window */
|
EVENT_BUFWINLEAVE, /* just after buffer removed from window */
|
||||||
|
EVENT_BUFWIPEOUT, /* just before really deleting a buffer */
|
||||||
|
EVENT_BUFWRITECMD, /* write buffer using command */
|
||||||
EVENT_BUFWRITEPOST, /* after writing a buffer */
|
EVENT_BUFWRITEPOST, /* after writing a buffer */
|
||||||
EVENT_BUFWRITEPRE, /* before writing a buffer */
|
EVENT_BUFWRITEPRE, /* before writing a buffer */
|
||||||
EVENT_BUFWRITECMD, /* write buffer using command */
|
|
||||||
EVENT_CMDLINECHANGED, /* command line was modified*/
|
EVENT_CMDLINECHANGED, /* command line was modified*/
|
||||||
EVENT_CMDLINEENTER, /* after entering the command line */
|
EVENT_CMDLINEENTER, /* after entering the command line */
|
||||||
EVENT_CMDLINELEAVE, /* before leaving the command line */
|
EVENT_CMDLINELEAVE, /* before leaving the command line */
|
||||||
|
EVENT_CMDUNDEFINED, /* command undefined */
|
||||||
EVENT_CMDWINENTER, /* after entering the cmdline window */
|
EVENT_CMDWINENTER, /* after entering the cmdline window */
|
||||||
EVENT_CMDWINLEAVE, /* before leaving the cmdline window */
|
EVENT_CMDWINLEAVE, /* before leaving the cmdline window */
|
||||||
EVENT_COLORSCHEME, /* after loading a colorscheme */
|
EVENT_COLORSCHEME, /* after loading a colorscheme */
|
||||||
EVENT_COMPLETEDONE, /* after finishing insert complete */
|
EVENT_COMPLETEDONE, /* after finishing insert complete */
|
||||||
EVENT_DIRCHANGED, /* after changing directory as a result of user cmd */
|
EVENT_CURSORHOLD, /* cursor in same position for a while */
|
||||||
|
EVENT_CURSORHOLDI, /* idem, in Insert mode */
|
||||||
|
EVENT_CURSORMOVED, /* cursor was moved */
|
||||||
|
EVENT_CURSORMOVEDI, /* cursor was moved in Insert mode */
|
||||||
|
EVENT_DIRCHANGED, /* after user changed directory */
|
||||||
|
EVENT_ENCODINGCHANGED, /* after changing the 'encoding' option */
|
||||||
EVENT_EXITPRE, /* before exiting */
|
EVENT_EXITPRE, /* before exiting */
|
||||||
|
EVENT_FILEAPPENDCMD, /* append to a file using command */
|
||||||
EVENT_FILEAPPENDPOST, /* after appending to a file */
|
EVENT_FILEAPPENDPOST, /* after appending to a file */
|
||||||
EVENT_FILEAPPENDPRE, /* before appending to a file */
|
EVENT_FILEAPPENDPRE, /* before appending to a file */
|
||||||
EVENT_FILEAPPENDCMD, /* append to a file using command */
|
EVENT_FILECHANGEDRO, /* before first change to read-only file */
|
||||||
EVENT_FILECHANGEDSHELL, /* after shell command that changed file */
|
EVENT_FILECHANGEDSHELL, /* after shell command that changed file */
|
||||||
EVENT_FILECHANGEDSHELLPOST, /* after (not) reloading changed file */
|
EVENT_FILECHANGEDSHELLPOST, /* after (not) reloading changed file */
|
||||||
EVENT_FILECHANGEDRO, /* before first change to read-only file */
|
EVENT_FILEREADCMD, /* read from a file using command */
|
||||||
EVENT_FILEREADPOST, /* after reading a file */
|
EVENT_FILEREADPOST, /* after reading a file */
|
||||||
EVENT_FILEREADPRE, /* before reading a file */
|
EVENT_FILEREADPRE, /* before reading a file */
|
||||||
EVENT_FILEREADCMD, /* read from a file using command */
|
|
||||||
EVENT_FILETYPE, /* new file type detected (user defined) */
|
EVENT_FILETYPE, /* new file type detected (user defined) */
|
||||||
|
EVENT_FILEWRITECMD, /* write to a file using command */
|
||||||
EVENT_FILEWRITEPOST, /* after writing a file */
|
EVENT_FILEWRITEPOST, /* after writing a file */
|
||||||
EVENT_FILEWRITEPRE, /* before writing a file */
|
EVENT_FILEWRITEPRE, /* before writing a file */
|
||||||
EVENT_FILEWRITECMD, /* write to a file using command */
|
|
||||||
EVENT_FILTERREADPOST, /* after reading from a filter */
|
EVENT_FILTERREADPOST, /* after reading from a filter */
|
||||||
EVENT_FILTERREADPRE, /* before reading from a filter */
|
EVENT_FILTERREADPRE, /* before reading from a filter */
|
||||||
EVENT_FILTERWRITEPOST, /* after writing to a filter */
|
EVENT_FILTERWRITEPOST, /* after writing to a filter */
|
||||||
EVENT_FILTERWRITEPRE, /* before writing to a filter */
|
EVENT_FILTERWRITEPRE, /* before writing to a filter */
|
||||||
EVENT_FOCUSGAINED, /* got the focus */
|
EVENT_FOCUSGAINED, /* got the focus */
|
||||||
EVENT_FOCUSLOST, /* lost the focus to another app */
|
EVENT_FOCUSLOST, /* lost the focus to another app */
|
||||||
|
EVENT_FUNCUNDEFINED, /* if calling a function which doesn't exist */
|
||||||
EVENT_GUIENTER, /* after starting the GUI */
|
EVENT_GUIENTER, /* after starting the GUI */
|
||||||
EVENT_GUIFAILED, /* after starting the GUI failed */
|
EVENT_GUIFAILED, /* after starting the GUI failed */
|
||||||
EVENT_INSERTCHANGE, /* when changing Insert/Replace mode */
|
EVENT_INSERTCHANGE, /* when changing Insert/Replace mode */
|
||||||
|
EVENT_INSERTCHARPRE, /* before inserting a char */
|
||||||
EVENT_INSERTENTER, /* when entering Insert mode */
|
EVENT_INSERTENTER, /* when entering Insert mode */
|
||||||
EVENT_INSERTLEAVE, /* when leaving Insert mode */
|
EVENT_INSERTLEAVE, /* when leaving Insert mode */
|
||||||
EVENT_MENUPOPUP, /* just before popup menu is displayed */
|
EVENT_MENUPOPUP, /* just before popup menu is displayed */
|
||||||
|
EVENT_OPTIONSET, /* option was set */
|
||||||
EVENT_QUICKFIXCMDPOST, /* after :make, :grep etc. */
|
EVENT_QUICKFIXCMDPOST, /* after :make, :grep etc. */
|
||||||
EVENT_QUICKFIXCMDPRE, /* before :make, :grep etc. */
|
EVENT_QUICKFIXCMDPRE, /* before :make, :grep etc. */
|
||||||
EVENT_QUITPRE, /* before :quit */
|
EVENT_QUITPRE, /* before :quit */
|
||||||
|
EVENT_REMOTEREPLY, /* upon string reception from a remote vim */
|
||||||
EVENT_SESSIONLOADPOST, /* after loading a session file */
|
EVENT_SESSIONLOADPOST, /* after loading a session file */
|
||||||
|
EVENT_SHELLCMDPOST, /* after ":!cmd" */
|
||||||
|
EVENT_SHELLFILTERPOST, /* after ":1,2!cmd", ":w !cmd", ":r !cmd". */
|
||||||
|
EVENT_SOURCECMD, /* sourcing a Vim script using command */
|
||||||
|
EVENT_SOURCEPRE, /* before sourcing a Vim script */
|
||||||
|
EVENT_SPELLFILEMISSING, /* spell file missing */
|
||||||
EVENT_STDINREADPOST, /* after reading from stdin */
|
EVENT_STDINREADPOST, /* after reading from stdin */
|
||||||
EVENT_STDINREADPRE, /* before reading from stdin */
|
EVENT_STDINREADPRE, /* before reading from stdin */
|
||||||
|
EVENT_SWAPEXISTS, /* found existing swap file */
|
||||||
EVENT_SYNTAX, /* syntax selected */
|
EVENT_SYNTAX, /* syntax selected */
|
||||||
|
EVENT_TABCLOSED, /* after closing a tab page */
|
||||||
|
EVENT_TABENTER, /* after entering a tab page */
|
||||||
|
EVENT_TABLEAVE, /* before leaving a tab page */
|
||||||
|
EVENT_TABNEW, /* when entering a new tab page */
|
||||||
EVENT_TERMCHANGED, /* after changing 'term' */
|
EVENT_TERMCHANGED, /* after changing 'term' */
|
||||||
|
EVENT_TERMINALOPEN, /* after a terminal buffer was created */
|
||||||
EVENT_TERMRESPONSE, /* after setting "v:termresponse" */
|
EVENT_TERMRESPONSE, /* after setting "v:termresponse" */
|
||||||
|
EVENT_TEXTCHANGED, /* text was modified not in Insert mode */
|
||||||
|
EVENT_TEXTCHANGEDI, /* text was modified in Insert mode */
|
||||||
|
EVENT_TEXTCHANGEDP, /* TextChangedI with popup menu visible */
|
||||||
|
EVENT_TEXTYANKPOST, /* after some text was yanked */
|
||||||
EVENT_USER, /* user defined autocommand */
|
EVENT_USER, /* user defined autocommand */
|
||||||
EVENT_VIMENTER, /* after starting Vim */
|
EVENT_VIMENTER, /* after starting Vim */
|
||||||
EVENT_VIMLEAVE, /* before exiting Vim */
|
EVENT_VIMLEAVE, /* before exiting Vim */
|
||||||
@@ -1320,33 +1345,7 @@ enum auto_event
|
|||||||
EVENT_WINENTER, /* after entering a window */
|
EVENT_WINENTER, /* after entering a window */
|
||||||
EVENT_WINLEAVE, /* before leaving a window */
|
EVENT_WINLEAVE, /* before leaving a window */
|
||||||
EVENT_WINNEW, /* when entering a new window */
|
EVENT_WINNEW, /* when entering a new window */
|
||||||
EVENT_ENCODINGCHANGED, /* after changing the 'encoding' option */
|
|
||||||
EVENT_INSERTCHARPRE, /* before inserting a char */
|
|
||||||
EVENT_CURSORHOLD, /* cursor in same position for a while */
|
|
||||||
EVENT_CURSORHOLDI, /* idem, in Insert mode */
|
|
||||||
EVENT_FUNCUNDEFINED, /* if calling a function which doesn't exist */
|
|
||||||
EVENT_REMOTEREPLY, /* upon string reception from a remote vim */
|
|
||||||
EVENT_SWAPEXISTS, /* found existing swap file */
|
|
||||||
EVENT_SOURCEPRE, /* before sourcing a Vim script */
|
|
||||||
EVENT_SOURCECMD, /* sourcing a Vim script using command */
|
|
||||||
EVENT_SPELLFILEMISSING, /* spell file missing */
|
|
||||||
EVENT_CURSORMOVED, /* cursor was moved */
|
|
||||||
EVENT_CURSORMOVEDI, /* cursor was moved in Insert mode */
|
|
||||||
EVENT_TABENTER, /* after entering a tab page */
|
|
||||||
EVENT_TABLEAVE, /* before leaving a tab page */
|
|
||||||
EVENT_TABNEW, /* when entering a new tab page */
|
|
||||||
EVENT_TABCLOSED, /* after closing a tab page */
|
|
||||||
EVENT_SHELLCMDPOST, /* after ":!cmd" */
|
|
||||||
EVENT_SHELLFILTERPOST, /* after ":1,2!cmd", ":w !cmd", ":r !cmd". */
|
|
||||||
EVENT_TEXTCHANGED, /* text was modified not in Insert mode */
|
|
||||||
EVENT_TEXTCHANGEDI, /* text was modified in Insert mode without
|
|
||||||
popup menu visible */
|
|
||||||
EVENT_TEXTCHANGEDP, /* text was modified in Insert mode with popup
|
|
||||||
menu visible */
|
|
||||||
EVENT_CMDUNDEFINED, /* command undefined */
|
|
||||||
EVENT_OPTIONSET, /* option was set */
|
|
||||||
EVENT_TEXTYANKPOST, /* after some text was yanked */
|
|
||||||
EVENT_TERMINALOPEN, /* after a terminal buffer was created */
|
|
||||||
NUM_EVENTS /* MUST be the last one */
|
NUM_EVENTS /* MUST be the last one */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user