EMACS_MODELINE |
= |
/-\*-\s*(?:(?!mode)[\w-]+\s*:\s*(?:[\w+-]+)\s*;?\s*)*(?:mode\s*:)?\s*([\w+-]+)\s*(?:;\s*(?!mode)[\w-]+\s*:\s*[\w+-]+\s*)*;?\s*-\*-/i |
|
- jneen
- regexen stolen from linguist
|
VIM_MODELINE_1 |
= |
/(?:vim|vi|ex):\s*(?:ft|filetype|syntax)=(\w+)\s?/i |
|
First form vim modeline [text]{white}{vi:|vim:|ex:}[white]{options} ex:
‘vim: syntax=ruby‘
|
VIM_MODELINE_2 |
= |
/(?:vim|vi|Vim|ex):\s*se(?:t)?.*\s(?:ft|filetype|syntax)=(\w+)\s?.*:/i |
|
Second form vim modeline (compatible with some versions of Vi)
- text]{white}{vi:|vim:|Vim:|ex:}[white]se[t
- {options}:[text]
ex: ‘vim set syntax=ruby:’
|
MODELINES |
= |
[EMACS_MODELINE, VIM_MODELINE_1, VIM_MODELINE_2] |