mirror of
https://github.com/neovim/neovim.git
synced 2024-12-26 14:11:15 -07:00
4fa6aa90ad
Port javascript and javascript react ftplugins only.
76 lines
2.5 KiB
VimL
76 lines
2.5 KiB
VimL
" Vim filetype plugin file
|
|
" Language: Javascript
|
|
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
|
" Last Change: 2020 Jun 23
|
|
" Contributor: Romain Lafourcade <romainlafourcade@gmail.com>
|
|
|
|
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 <CR> 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 =
|
|
\ '\<do\>:\<while\>,'
|
|
\ .. '<\@<=\([^ \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\)'
|
|
\ .. '\|\<as\>'
|
|
|
|
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
|