" Vim filetype plugin file " Language: Javascript " Maintainer: Doug Kearns " Last Change: 2020 Jun 23 " Contributor: Romain Lafourcade if exists("b:did_ftplugin") finish endif let b:did_ftplugin = 1 let s:cpo_save = &cpo set cpo-=C " Set 'formatoptions' to break comment lines but not other lines, " and insert the comment leader when hitting or using "o". setlocal formatoptions-=t formatoptions+=croql " Set completion with CTRL-X CTRL-O to autoloaded function. if exists('&ofu') setlocal omnifunc=javascriptcomplete#CompleteJS endif " Set 'comments' to format dashed lists in comments. setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,:// setlocal commentstring=//%s " Change the :browse e filter to primarily show JavaScript-related files. if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter") let b:browsefilter = \ "JavaScript Files (*.js)\t*.js\n" \ .. "JSX Files (*.jsx)\t*.jsx\n" \ .. "JavaScript Modules (*.es, *.es6, *.cjs, *.mjs, *.jsm)\t*.es;*.es6;*.cjs;*.mjs;*.jsm\n" \ .. "Vue Templates (*.vue)\t*.vue\n" \ .. "JSON Files (*.json)\t*.json\n" \ .. "All Files (*.*)\t*.*\n" endif " The following suffixes should be implied when resolving filenames setlocal suffixesadd+=.js,.jsx,.es,.es6,.cjs,.mjs,.jsm,.vue,.json " The following suffixes should have low priority " .snap jest snapshot setlocal suffixes+=.snap " Remove irrelevant part of 'path'. " User is expected to augment it with contextually-relevant paths setlocal path-=/usr/include " Matchit configuration if exists("loaded_matchit") let b:match_ignorecase = 0 let b:match_words = \ '\:\,' \ .. '<\@<=\([^ \t>/]\+\)\%(\s\+[^>]*\%([^/]>\|$\)\|>\|$\):<\@<=/\1>,' \ .. '<\@<=\%([^ \t>/]\+\)\%(\s\+[^/>]*\|$\):/>' endif " Set 'define' to a comprehensive value let &l:define = \ '\(^\s*(*async\s\+function\|(*function\)' \ .. '\|^\s*\(\*\|static\|async\|get\|set\|\i\+\.\)' \ .. '\|^\s*\(\ze\i\+\)\(([^)]*).*{$\|\s*[:=,]\)' \ .. '\|^\s*\(export\s\+\|export\s\+default\s\+\)*\(var\|let\|const\|function\|class\)' \ .. '\|\' let b:undo_ftplugin = \ "setl fo< ofu< com< cms< sua< su< def< pa<" \ .. "| unlet! b:browsefilter b:match_ignorecase b:match_words" let &cpo = s:cpo_save unlet s:cpo_save " vim: textwidth=78 tabstop=8 shiftwidth=4 softtabstop=4 expandtab