forked from aniani/vim
patch 8.1.0862: no verbose version of character classes
Problem: No verbose version of character classes.
Solution: Add [:ident:], [:keyword:] and [:fname:]. (Ozaki Kiichi,
closes #1373)
This commit is contained in:
@@ -226,7 +226,10 @@ enum
|
||||
NFA_CLASS_TAB,
|
||||
NFA_CLASS_RETURN,
|
||||
NFA_CLASS_BACKSPACE,
|
||||
NFA_CLASS_ESCAPE
|
||||
NFA_CLASS_ESCAPE,
|
||||
NFA_CLASS_IDENT,
|
||||
NFA_CLASS_KEYWORD,
|
||||
NFA_CLASS_FNAME
|
||||
};
|
||||
|
||||
/* Keep in sync with classchars. */
|
||||
@@ -1718,6 +1721,15 @@ collection:
|
||||
case CLASS_ESCAPE:
|
||||
EMIT(NFA_CLASS_ESCAPE);
|
||||
break;
|
||||
case CLASS_IDENT:
|
||||
EMIT(NFA_CLASS_IDENT);
|
||||
break;
|
||||
case CLASS_KEYWORD:
|
||||
EMIT(NFA_CLASS_KEYWORD);
|
||||
break;
|
||||
case CLASS_FNAME:
|
||||
EMIT(NFA_CLASS_FNAME);
|
||||
break;
|
||||
}
|
||||
EMIT(NFA_CONCAT);
|
||||
continue;
|
||||
@@ -2555,6 +2567,9 @@ nfa_set_code(int c)
|
||||
case NFA_CLASS_RETURN: STRCPY(code, "NFA_CLASS_RETURN"); break;
|
||||
case NFA_CLASS_BACKSPACE: STRCPY(code, "NFA_CLASS_BACKSPACE"); break;
|
||||
case NFA_CLASS_ESCAPE: STRCPY(code, "NFA_CLASS_ESCAPE"); break;
|
||||
case NFA_CLASS_IDENT: STRCPY(code, "NFA_CLASS_IDENT"); break;
|
||||
case NFA_CLASS_KEYWORD: STRCPY(code, "NFA_CLASS_KEYWORD"); break;
|
||||
case NFA_CLASS_FNAME: STRCPY(code, "NFA_CLASS_FNAME"); break;
|
||||
|
||||
case NFA_ANY: STRCPY(code, "NFA_ANY"); break;
|
||||
case NFA_IDENT: STRCPY(code, "NFA_IDENT"); break;
|
||||
@@ -4846,6 +4861,18 @@ check_char_class(int class, int c)
|
||||
if (c == '\033')
|
||||
return OK;
|
||||
break;
|
||||
case NFA_CLASS_IDENT:
|
||||
if (vim_isIDc(c))
|
||||
return OK;
|
||||
break;
|
||||
case NFA_CLASS_KEYWORD:
|
||||
if (reg_iswordc(c))
|
||||
return OK;
|
||||
break;
|
||||
case NFA_CLASS_FNAME:
|
||||
if (vim_isfilec(c))
|
||||
return OK;
|
||||
break;
|
||||
|
||||
default:
|
||||
/* should not be here :P */
|
||||
|
||||
Reference in New Issue
Block a user