19cf4b500SBram Moolenaar" Tests for parsing the modeline. 29cf4b500SBram Moolenaar 36d91bcb4SBram Moolenaarsource check.vim 46d91bcb4SBram Moolenaar 5cd96eef3SBram Moolenaarfunc Test_modeline_invalid() 69691f82fSBram Moolenaar " This was reading allocated memory in the past. 79cf4b500SBram Moolenaar call writefile(['vi:0', 'nothing'], 'Xmodeline') 89691f82fSBram Moolenaar let modeline = &modeline 99691f82fSBram Moolenaar set modeline 109cf4b500SBram Moolenaar call assert_fails('split Xmodeline', 'E518:') 11916a818cSBram Moolenaar 12e74331dbSBram Moolenaar " Missing end colon (ignored). 13e74331dbSBram Moolenaar call writefile(['// vim: set ts=2'], 'Xmodeline') 14e74331dbSBram Moolenaar edit Xmodeline_version 15e74331dbSBram Moolenaar call assert_equal(8, &ts) 16e74331dbSBram Moolenaar bwipe! 17e74331dbSBram Moolenaar 18e74331dbSBram Moolenaar " Missing colon at beginning (ignored). 19e74331dbSBram Moolenaar call writefile(['// vim set ts=2:'], 'Xmodeline') 20e74331dbSBram Moolenaar edit Xmodeline_version 21e74331dbSBram Moolenaar call assert_equal(8, &ts) 22e74331dbSBram Moolenaar bwipe! 23e74331dbSBram Moolenaar 24e74331dbSBram Moolenaar " Missing space after vim (ignored). 25e74331dbSBram Moolenaar call writefile(['// vim:ts=2:'], 'Xmodeline') 26e74331dbSBram Moolenaar edit Xmodeline_version 27e74331dbSBram Moolenaar call assert_equal(8, &ts) 28e74331dbSBram Moolenaar bwipe! 29e74331dbSBram Moolenaar 309691f82fSBram Moolenaar let &modeline = modeline 319cf4b500SBram Moolenaar bwipe! 327624af02SBram Moolenaar call delete('Xmodeline') 339cf4b500SBram Moolenaarendfunc 34916a818cSBram Moolenaar 35916a818cSBram Moolenaarfunc Test_modeline_filetype() 36916a818cSBram Moolenaar call writefile(['vim: set ft=c :', 'nothing'], 'Xmodeline_filetype') 37916a818cSBram Moolenaar let modeline = &modeline 38916a818cSBram Moolenaar set modeline 39916a818cSBram Moolenaar filetype plugin on 40916a818cSBram Moolenaar split Xmodeline_filetype 41916a818cSBram Moolenaar call assert_equal("c", &filetype) 42916a818cSBram Moolenaar call assert_equal(1, b:did_ftplugin) 43916a818cSBram Moolenaar call assert_equal("ccomplete#Complete", &ofu) 44916a818cSBram Moolenaar 45916a818cSBram Moolenaar bwipe! 46916a818cSBram Moolenaar call delete('Xmodeline_filetype') 47916a818cSBram Moolenaar let &modeline = modeline 48916a818cSBram Moolenaar filetype plugin off 49916a818cSBram Moolenaarendfunc 50916a818cSBram Moolenaar 51916a818cSBram Moolenaarfunc Test_modeline_syntax() 52916a818cSBram Moolenaar call writefile(['vim: set syn=c :', 'nothing'], 'Xmodeline_syntax') 53916a818cSBram Moolenaar let modeline = &modeline 54916a818cSBram Moolenaar set modeline 55916a818cSBram Moolenaar syntax enable 56916a818cSBram Moolenaar split Xmodeline_syntax 57916a818cSBram Moolenaar call assert_equal("c", &syntax) 58916a818cSBram Moolenaar call assert_equal("c", b:current_syntax) 59916a818cSBram Moolenaar 60916a818cSBram Moolenaar bwipe! 61916a818cSBram Moolenaar call delete('Xmodeline_syntax') 62916a818cSBram Moolenaar let &modeline = modeline 63916a818cSBram Moolenaar syntax off 64916a818cSBram Moolenaarendfunc 65916a818cSBram Moolenaar 66916a818cSBram Moolenaarfunc Test_modeline_keymap() 676d91bcb4SBram Moolenaar CheckFeature keymap 68916a818cSBram Moolenaar call writefile(['vim: set keymap=greek :', 'nothing'], 'Xmodeline_keymap') 69916a818cSBram Moolenaar let modeline = &modeline 70916a818cSBram Moolenaar set modeline 71916a818cSBram Moolenaar split Xmodeline_keymap 72916a818cSBram Moolenaar call assert_equal("greek", &keymap) 73916a818cSBram Moolenaar call assert_match('greek\|grk', b:keymap_name) 74916a818cSBram Moolenaar 75916a818cSBram Moolenaar bwipe! 76916a818cSBram Moolenaar call delete('Xmodeline_keymap') 77916a818cSBram Moolenaar let &modeline = modeline 78916a818cSBram Moolenaar set keymap= iminsert=0 imsearch=-1 79916a818cSBram Moolenaarendfunc 80916a818cSBram Moolenaar 81e74331dbSBram Moolenaarfunc Test_modeline_version() 82e74331dbSBram Moolenaar let modeline = &modeline 83e74331dbSBram Moolenaar set modeline 84e74331dbSBram Moolenaar 85e74331dbSBram Moolenaar " Test with vim:{vers}: (version {vers} or later). 86e74331dbSBram Moolenaar call writefile(['// vim' .. v:version .. ': ts=2:'], 'Xmodeline_version') 87e74331dbSBram Moolenaar edit Xmodeline_version 88e74331dbSBram Moolenaar call assert_equal(2, &ts) 89e74331dbSBram Moolenaar bwipe! 90e74331dbSBram Moolenaar 91e74331dbSBram Moolenaar call writefile(['// vim' .. (v:version - 100) .. ': ts=2:'], 'Xmodeline_version') 92e74331dbSBram Moolenaar edit Xmodeline_version 93e74331dbSBram Moolenaar call assert_equal(2, &ts) 94e74331dbSBram Moolenaar bwipe! 95e74331dbSBram Moolenaar 96e74331dbSBram Moolenaar call writefile(['// vim' .. (v:version + 100) .. ': ts=2:'], 'Xmodeline_version') 97e74331dbSBram Moolenaar edit Xmodeline_version 98e74331dbSBram Moolenaar call assert_equal(8, &ts) 99e74331dbSBram Moolenaar bw! 100e74331dbSBram Moolenaar 101e74331dbSBram Moolenaar " Test with vim>{vers}: (version after {vers}). 102e74331dbSBram Moolenaar call writefile(['// vim>' .. v:version .. ': ts=2:'], 'Xmodeline_version') 103e74331dbSBram Moolenaar edit Xmodeline_version 104e74331dbSBram Moolenaar call assert_equal(8, &ts) 105e74331dbSBram Moolenaar bwipe! 106e74331dbSBram Moolenaar 107e74331dbSBram Moolenaar call writefile(['// vim>' .. (v:version - 100) .. ': ts=2:'], 'Xmodeline_version') 108e74331dbSBram Moolenaar edit Xmodeline_version 109e74331dbSBram Moolenaar call assert_equal(2, &ts) 110e74331dbSBram Moolenaar bwipe! 111e74331dbSBram Moolenaar 112e74331dbSBram Moolenaar call writefile(['// vim>' .. (v:version + 100) .. ': ts=2:'], 'Xmodeline_version') 113e74331dbSBram Moolenaar edit Xmodeline_version 114e74331dbSBram Moolenaar call assert_equal(8, &ts) 115e74331dbSBram Moolenaar bwipe! 116e74331dbSBram Moolenaar 117e74331dbSBram Moolenaar " Test with vim<{vers}: (version before {vers}). 118e74331dbSBram Moolenaar call writefile(['// vim<' .. v:version .. ': ts=2:'], 'Xmodeline_version') 119e74331dbSBram Moolenaar edit Xmodeline_version 120e74331dbSBram Moolenaar call assert_equal(8, &ts) 121e74331dbSBram Moolenaar bwipe! 122e74331dbSBram Moolenaar 123e74331dbSBram Moolenaar call writefile(['// vim<' .. (v:version - 100) .. ': ts=2:'], 'Xmodeline_version') 124e74331dbSBram Moolenaar edit Xmodeline_version 125e74331dbSBram Moolenaar call assert_equal(8, &ts) 126e74331dbSBram Moolenaar bwipe! 127e74331dbSBram Moolenaar 128e74331dbSBram Moolenaar call writefile(['// vim<' .. (v:version + 100) .. ': ts=2:'], 'Xmodeline_version') 129e74331dbSBram Moolenaar edit Xmodeline_version 130e74331dbSBram Moolenaar call assert_equal(2, &ts) 131e74331dbSBram Moolenaar bwipe! 132e74331dbSBram Moolenaar 133e74331dbSBram Moolenaar " Test with vim={vers}: (version {vers} only). 134e74331dbSBram Moolenaar call writefile(['// vim=' .. v:version .. ': ts=2:'], 'Xmodeline_version') 135e74331dbSBram Moolenaar edit Xmodeline_version 136e74331dbSBram Moolenaar call assert_equal(2, &ts) 137e74331dbSBram Moolenaar bwipe! 138e74331dbSBram Moolenaar 139e74331dbSBram Moolenaar call writefile(['// vim=' .. (v:version - 100) .. ': ts=2:'], 'Xmodeline_version') 140e74331dbSBram Moolenaar edit Xmodeline_version 141e74331dbSBram Moolenaar call assert_equal(8, &ts) 142e74331dbSBram Moolenaar bwipe! 143e74331dbSBram Moolenaar 144e74331dbSBram Moolenaar call writefile(['// vim=' .. (v:version + 100) .. ': ts=2:'], 'Xmodeline_version') 145e74331dbSBram Moolenaar edit Xmodeline_version 146e74331dbSBram Moolenaar call assert_equal(8, &ts) 147e74331dbSBram Moolenaar bwipe! 148e74331dbSBram Moolenaar 149e74331dbSBram Moolenaar let &modeline = modeline 150e74331dbSBram Moolenaar call delete('Xmodeline_version') 151e74331dbSBram Moolenaarendfunc 152e74331dbSBram Moolenaar 153e74331dbSBram Moolenaarfunc Test_modeline_colon() 154e74331dbSBram Moolenaar let modeline = &modeline 155e74331dbSBram Moolenaar set modeline 156e74331dbSBram Moolenaar 157e74331dbSBram Moolenaar call writefile(['// vim: set showbreak=\: ts=2: sw=2'], 'Xmodeline_colon') 158e74331dbSBram Moolenaar edit Xmodeline_colon 159e74331dbSBram Moolenaar 160e74331dbSBram Moolenaar " backlash colon should become colon. 161e74331dbSBram Moolenaar call assert_equal(':', &showbreak) 162e74331dbSBram Moolenaar 163e74331dbSBram Moolenaar " 'ts' should be set. 164e74331dbSBram Moolenaar " 'sw' should be ignored because it is after the end colon. 165e74331dbSBram Moolenaar call assert_equal(2, &ts) 166e74331dbSBram Moolenaar call assert_equal(8, &sw) 167e74331dbSBram Moolenaar 168e74331dbSBram Moolenaar let &modeline = modeline 169e74331dbSBram Moolenaar call delete('Xmodeline_colon') 170e74331dbSBram Moolenaarendfunc 171e74331dbSBram Moolenaar 172110289e7SBram Moolenaarfunc s:modeline_fails(what, text, error) 1736d91bcb4SBram Moolenaar call CheckOption(a:what) 174916a818cSBram Moolenaar let fname = "Xmodeline_fails_" . a:what 175916a818cSBram Moolenaar call writefile(['vim: set ' . a:text . ' :', 'nothing'], fname) 176916a818cSBram Moolenaar let modeline = &modeline 177916a818cSBram Moolenaar set modeline 178916a818cSBram Moolenaar filetype plugin on 179916a818cSBram Moolenaar syntax enable 180110289e7SBram Moolenaar call assert_fails('split ' . fname, a:error) 181916a818cSBram Moolenaar call assert_equal("", &filetype) 182916a818cSBram Moolenaar call assert_equal("", &syntax) 183916a818cSBram Moolenaar 184916a818cSBram Moolenaar bwipe! 185916a818cSBram Moolenaar call delete(fname) 186916a818cSBram Moolenaar let &modeline = modeline 187916a818cSBram Moolenaar filetype plugin off 188916a818cSBram Moolenaar syntax off 189916a818cSBram Moolenaarendfunc 190916a818cSBram Moolenaar 191916a818cSBram Moolenaarfunc Test_modeline_filetype_fails() 192110289e7SBram Moolenaar call s:modeline_fails('filetype', 'ft=evil$CMD', 'E474:') 193916a818cSBram Moolenaarendfunc 194916a818cSBram Moolenaar 195916a818cSBram Moolenaarfunc Test_modeline_syntax_fails() 196110289e7SBram Moolenaar call s:modeline_fails('syntax', 'syn=evil$CMD', 'E474:') 197916a818cSBram Moolenaarendfunc 198916a818cSBram Moolenaar 199916a818cSBram Moolenaarfunc Test_modeline_keymap_fails() 200110289e7SBram Moolenaar call s:modeline_fails('keymap', 'keymap=evil$CMD', 'E474:') 201110289e7SBram Moolenaarendfunc 202110289e7SBram Moolenaar 203110289e7SBram Moolenaarfunc Test_modeline_fails_always() 204110289e7SBram Moolenaar call s:modeline_fails('backupdir', 'backupdir=Something()', 'E520:') 205110289e7SBram Moolenaar call s:modeline_fails('cdpath', 'cdpath=Something()', 'E520:') 206110289e7SBram Moolenaar call s:modeline_fails('charconvert', 'charconvert=Something()', 'E520:') 207110289e7SBram Moolenaar call s:modeline_fails('completefunc', 'completefunc=Something()', 'E520:') 208110289e7SBram Moolenaar call s:modeline_fails('cscopeprg', 'cscopeprg=Something()', 'E520:') 209110289e7SBram Moolenaar call s:modeline_fails('diffexpr', 'diffexpr=Something()', 'E520:') 210110289e7SBram Moolenaar call s:modeline_fails('directory', 'directory=Something()', 'E520:') 211110289e7SBram Moolenaar call s:modeline_fails('equalprg', 'equalprg=Something()', 'E520:') 212110289e7SBram Moolenaar call s:modeline_fails('errorfile', 'errorfile=Something()', 'E520:') 213110289e7SBram Moolenaar call s:modeline_fails('exrc', 'exrc=Something()', 'E520:') 214110289e7SBram Moolenaar call s:modeline_fails('formatprg', 'formatprg=Something()', 'E520:') 215110289e7SBram Moolenaar call s:modeline_fails('fsync', 'fsync=Something()', 'E520:') 216110289e7SBram Moolenaar call s:modeline_fails('grepprg', 'grepprg=Something()', 'E520:') 217110289e7SBram Moolenaar call s:modeline_fails('helpfile', 'helpfile=Something()', 'E520:') 218110289e7SBram Moolenaar call s:modeline_fails('imactivatefunc', 'imactivatefunc=Something()', 'E520:') 219110289e7SBram Moolenaar call s:modeline_fails('imstatusfunc', 'imstatusfunc=Something()', 'E520:') 220110289e7SBram Moolenaar call s:modeline_fails('imstyle', 'imstyle=Something()', 'E520:') 221110289e7SBram Moolenaar call s:modeline_fails('keywordprg', 'keywordprg=Something()', 'E520:') 222110289e7SBram Moolenaar call s:modeline_fails('langmap', 'langmap=Something()', 'E520:') 223110289e7SBram Moolenaar call s:modeline_fails('luadll', 'luadll=Something()', 'E520:') 224110289e7SBram Moolenaar call s:modeline_fails('makeef', 'makeef=Something()', 'E520:') 225110289e7SBram Moolenaar call s:modeline_fails('makeprg', 'makeprg=Something()', 'E520:') 22607607395SBram Moolenaar call s:modeline_fails('mkspellmem', 'mkspellmem=Something()', 'E520:') 227110289e7SBram Moolenaar call s:modeline_fails('mzschemedll', 'mzschemedll=Something()', 'E520:') 228110289e7SBram Moolenaar call s:modeline_fails('mzschemegcdll', 'mzschemegcdll=Something()', 'E520:') 2297e800c60SBram Moolenaar call s:modeline_fails('modelineexpr', 'modelineexpr', 'E520:') 230110289e7SBram Moolenaar call s:modeline_fails('omnifunc', 'omnifunc=Something()', 'E520:') 231110289e7SBram Moolenaar call s:modeline_fails('operatorfunc', 'operatorfunc=Something()', 'E520:') 232110289e7SBram Moolenaar call s:modeline_fails('perldll', 'perldll=Something()', 'E520:') 233110289e7SBram Moolenaar call s:modeline_fails('printdevice', 'printdevice=Something()', 'E520:') 234110289e7SBram Moolenaar call s:modeline_fails('patchexpr', 'patchexpr=Something()', 'E520:') 235110289e7SBram Moolenaar call s:modeline_fails('printexpr', 'printexpr=Something()', 'E520:') 236110289e7SBram Moolenaar call s:modeline_fails('pythondll', 'pythondll=Something()', 'E520:') 237e09244eeSBram Moolenaar call s:modeline_fails('pythonhome', 'pythonhome=Something()', 'E520:') 238110289e7SBram Moolenaar call s:modeline_fails('pythonthreedll', 'pythonthreedll=Something()', 'E520:') 239110289e7SBram Moolenaar call s:modeline_fails('pythonthreehome', 'pythonthreehome=Something()', 'E520:') 240110289e7SBram Moolenaar call s:modeline_fails('pyxversion', 'pyxversion=Something()', 'E520:') 241110289e7SBram Moolenaar call s:modeline_fails('rubydll', 'rubydll=Something()', 'E520:') 242110289e7SBram Moolenaar call s:modeline_fails('runtimepath', 'runtimepath=Something()', 'E520:') 243110289e7SBram Moolenaar call s:modeline_fails('secure', 'secure=Something()', 'E520:') 244110289e7SBram Moolenaar call s:modeline_fails('shell', 'shell=Something()', 'E520:') 245110289e7SBram Moolenaar call s:modeline_fails('shellcmdflag', 'shellcmdflag=Something()', 'E520:') 246110289e7SBram Moolenaar call s:modeline_fails('shellpipe', 'shellpipe=Something()', 'E520:') 247110289e7SBram Moolenaar call s:modeline_fails('shellquote', 'shellquote=Something()', 'E520:') 248110289e7SBram Moolenaar call s:modeline_fails('shellredir', 'shellredir=Something()', 'E520:') 249110289e7SBram Moolenaar call s:modeline_fails('shellxquote', 'shellxquote=Something()', 'E520:') 250110289e7SBram Moolenaar call s:modeline_fails('spellfile', 'spellfile=Something()', 'E520:') 251110289e7SBram Moolenaar call s:modeline_fails('spellsuggest', 'spellsuggest=Something()', 'E520:') 252110289e7SBram Moolenaar call s:modeline_fails('tcldll', 'tcldll=Something()', 'E520:') 253110289e7SBram Moolenaar call s:modeline_fails('titleold', 'titleold=Something()', 'E520:') 254110289e7SBram Moolenaar call s:modeline_fails('viewdir', 'viewdir=Something()', 'E520:') 255110289e7SBram Moolenaar call s:modeline_fails('viminfo', 'viminfo=Something()', 'E520:') 256110289e7SBram Moolenaar call s:modeline_fails('viminfofile', 'viminfofile=Something()', 'E520:') 257110289e7SBram Moolenaar call s:modeline_fails('winptydll', 'winptydll=Something()', 'E520:') 258110289e7SBram Moolenaar call s:modeline_fails('undodir', 'undodir=Something()', 'E520:') 259110289e7SBram Moolenaar " only check a few terminal options 260110289e7SBram Moolenaar call s:modeline_fails('t_AB', 't_AB=Something()', 'E520:') 261110289e7SBram Moolenaar call s:modeline_fails('t_ce', 't_ce=Something()', 'E520:') 262110289e7SBram Moolenaar call s:modeline_fails('t_sr', 't_sr=Something()', 'E520:') 263110289e7SBram Moolenaar call s:modeline_fails('t_8b', 't_8b=Something()', 'E520:') 264110289e7SBram Moolenaarendfunc 265110289e7SBram Moolenaar 266110289e7SBram Moolenaarfunc Test_modeline_fails_modelineexpr() 267110289e7SBram Moolenaar call s:modeline_fails('balloonexpr', 'balloonexpr=Something()', 'E992:') 268110289e7SBram Moolenaar call s:modeline_fails('foldexpr', 'foldexpr=Something()', 'E992:') 269110289e7SBram Moolenaar call s:modeline_fails('foldtext', 'foldtext=Something()', 'E992:') 270110289e7SBram Moolenaar call s:modeline_fails('formatexpr', 'formatexpr=Something()', 'E992:') 271110289e7SBram Moolenaar call s:modeline_fails('guitablabel', 'guitablabel=Something()', 'E992:') 272110289e7SBram Moolenaar call s:modeline_fails('iconstring', 'iconstring=Something()', 'E992:') 273110289e7SBram Moolenaar call s:modeline_fails('includeexpr', 'includeexpr=Something()', 'E992:') 274110289e7SBram Moolenaar call s:modeline_fails('indentexpr', 'indentexpr=Something()', 'E992:') 275110289e7SBram Moolenaar call s:modeline_fails('rulerformat', 'rulerformat=Something()', 'E992:') 276110289e7SBram Moolenaar call s:modeline_fails('statusline', 'statusline=Something()', 'E992:') 277110289e7SBram Moolenaar call s:modeline_fails('tabline', 'tabline=Something()', 'E992:') 278110289e7SBram Moolenaar call s:modeline_fails('titlestring', 'titlestring=Something()', 'E992:') 279916a818cSBram Moolenaarendfunc 28051258749SBram Moolenaar 28151258749SBram Moolenaarfunc Test_modeline_setoption_verbose() 28251258749SBram Moolenaar let modeline = &modeline 28351258749SBram Moolenaar set modeline 28451258749SBram Moolenaar 28551258749SBram Moolenaar let lines =<< trim END 28651258749SBram Moolenaar 1 vim:ts=2 28751258749SBram Moolenaar 2 two 28851258749SBram Moolenaar 3 three 28951258749SBram Moolenaar 4 four 29051258749SBram Moolenaar 5 five 29151258749SBram Moolenaar 6 six 29251258749SBram Moolenaar 7 seven 29351258749SBram Moolenaar 8 eight 29451258749SBram Moolenaar END 29551258749SBram Moolenaar call writefile(lines, 'Xmodeline') 29651258749SBram Moolenaar edit Xmodeline 29751258749SBram Moolenaar let info = split(execute('verbose set tabstop?'), "\n") 29851258749SBram Moolenaar call assert_match('^\s*Last set from modeline line 1$', info[-1]) 29951258749SBram Moolenaar bwipe! 30051258749SBram Moolenaar 30151258749SBram Moolenaar let lines =<< trim END 30251258749SBram Moolenaar 1 one 30351258749SBram Moolenaar 2 two 30451258749SBram Moolenaar 3 three 30551258749SBram Moolenaar 4 vim:ts=4 30651258749SBram Moolenaar 5 five 30751258749SBram Moolenaar 6 six 30851258749SBram Moolenaar 7 seven 30951258749SBram Moolenaar 8 eight 31051258749SBram Moolenaar END 31151258749SBram Moolenaar call writefile(lines, 'Xmodeline') 31251258749SBram Moolenaar edit Xmodeline 31351258749SBram Moolenaar let info = split(execute('verbose set tabstop?'), "\n") 31451258749SBram Moolenaar call assert_match('^\s*Last set from modeline line 4$', info[-1]) 31551258749SBram Moolenaar bwipe! 31651258749SBram Moolenaar 31751258749SBram Moolenaar let lines =<< trim END 31851258749SBram Moolenaar 1 one 31951258749SBram Moolenaar 2 two 32051258749SBram Moolenaar 3 three 32151258749SBram Moolenaar 4 four 32251258749SBram Moolenaar 5 five 32351258749SBram Moolenaar 6 six 32451258749SBram Moolenaar 7 seven 32551258749SBram Moolenaar 8 vim:ts=8 32651258749SBram Moolenaar END 32751258749SBram Moolenaar call writefile(lines, 'Xmodeline') 32851258749SBram Moolenaar edit Xmodeline 32951258749SBram Moolenaar let info = split(execute('verbose set tabstop?'), "\n") 33051258749SBram Moolenaar call assert_match('^\s*Last set from modeline line 8$', info[-1]) 33151258749SBram Moolenaar bwipe! 33251258749SBram Moolenaar 33351258749SBram Moolenaar let &modeline = modeline 33451258749SBram Moolenaar call delete('Xmodeline') 33551258749SBram Moolenaarendfunc 3366d91bcb4SBram Moolenaar 3372d6d718dSYegappan Lakshmanan" Test for the 'modeline' default value in compatible and non-compatible modes 3382d6d718dSYegappan Lakshmanan" for root and non-root accounts 3392d6d718dSYegappan Lakshmananfunc Test_modeline_default() 3402d6d718dSYegappan Lakshmanan set compatible 3412d6d718dSYegappan Lakshmanan call assert_false(&modeline) 3422d6d718dSYegappan Lakshmanan set nocompatible 3432d6d718dSYegappan Lakshmanan call assert_equal(IsRoot() ? 0 : 1, &modeline) 3442d6d718dSYegappan Lakshmanan set compatible&vi 3452d6d718dSYegappan Lakshmanan call assert_false(&modeline) 3462d6d718dSYegappan Lakshmanan set compatible&vim 3472d6d718dSYegappan Lakshmanan call assert_equal(IsRoot() ? 0 : 1, &modeline) 3482d6d718dSYegappan Lakshmanan set compatible& modeline& 3492d6d718dSYegappan Lakshmananendfunc 3502d6d718dSYegappan Lakshmanan 3512d6d718dSYegappan Lakshmanan" Some options cannot be set from the modeline when 'diff' option is set 3522d6d718dSYegappan Lakshmananfunc Test_modeline_diff_buffer() 3532d6d718dSYegappan Lakshmanan call writefile(['vim: diff foldmethod=marker wrap'], 'Xfile') 3542d6d718dSYegappan Lakshmanan set foldmethod& nowrap 3552d6d718dSYegappan Lakshmanan new Xfile 3562d6d718dSYegappan Lakshmanan call assert_equal('manual', &foldmethod) 3572d6d718dSYegappan Lakshmanan call assert_false(&wrap) 3582d6d718dSYegappan Lakshmanan set wrap& 3592d6d718dSYegappan Lakshmanan call delete('Xfile') 3602d6d718dSYegappan Lakshmanan bw 3612d6d718dSYegappan Lakshmananendfunc 3622d6d718dSYegappan Lakshmanan 363*9dcd349cSHu Jialunfunc Test_modeline_disable() 364*9dcd349cSHu Jialun set modeline 365*9dcd349cSHu Jialun call writefile(['vim: sw=2', 'vim: nomodeline', 'vim: sw=3'], 'Xmodeline_disable') 366*9dcd349cSHu Jialun edit Xmodeline_disable 367*9dcd349cSHu Jialun call assert_equal(2, &sw) 368*9dcd349cSHu Jialun call delete('Xmodeline_disable') 369*9dcd349cSHu Jialunendfunc 370*9dcd349cSHu Jialun 3716d91bcb4SBram Moolenaar" vim: shiftwidth=2 sts=2 expandtab 372