mirror of
				https://github.com/neovim/neovim.git
				synced 2025-11-04 09:44:31 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			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
 |