Mercurial > vim
annotate runtime/ftplugin/javascript.vim @ 36197:2d2d82bb66be draft default tip
Added tag v9.1.0744 for changeset 40543b042c11eb455649e4cdf4fe0eee3e0a4572
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Thu, 26 Sep 2024 16:30:46 +0200 |
parents | 7c7432a53a6c |
children |
rev | line source |
---|---|
651 | 1 " Vim filetype plugin file |
21991 | 2 " Language: Javascript |
3 " Maintainer: Doug Kearns <dougkearns@gmail.com> | |
4 " Contributor: Romain Lafourcade <romainlafourcade@gmail.com> | |
34134
8ae680be2a51
runtime(ftplugin): Use "*" browsefilter pattern to match "All Files"
Christian Brabandt <cb@256bit.org>
parents:
21991
diff
changeset
|
5 " Last Change: 2024 Jan 14 |
35324
7c7432a53a6c
patch 9.1.0464: no whitespace padding in commentstring option in ftplugins
Christian Brabandt <cb@256bit.org>
parents:
34134
diff
changeset
|
6 " 2024 May 23 by Riley Bruins <ribru17@gmail.com> ('commentstring') |
651 | 7 |
8 if exists("b:did_ftplugin") | |
21991 | 9 finish |
651 | 10 endif |
11 let b:did_ftplugin = 1 | |
12 | |
1125 | 13 let s:cpo_save = &cpo |
14 set cpo-=C | |
15 | |
16 " Set 'formatoptions' to break comment lines but not other lines, | |
21991 | 17 " and insert the comment leader when hitting <CR> or using "o". |
1125 | 18 setlocal formatoptions-=t formatoptions+=croql |
19 | |
20 " Set completion with CTRL-X CTRL-O to autoloaded function. | |
651 | 21 if exists('&ofu') |
1125 | 22 setlocal omnifunc=javascriptcomplete#CompleteJS |
651 | 23 endif |
1125 | 24 |
25 " Set 'comments' to format dashed lists in comments. | |
26 setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,:// | |
27 | |
35324
7c7432a53a6c
patch 9.1.0464: no whitespace padding in commentstring option in ftplugins
Christian Brabandt <cb@256bit.org>
parents:
34134
diff
changeset
|
28 setlocal commentstring=//\ %s |
1125 | 29 |
21991 | 30 " Change the :browse e filter to primarily show JavaScript-related files. |
31 if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter") | |
32 let b:browsefilter = | |
33 \ "JavaScript Files (*.js)\t*.js\n" | |
34 \ .. "JSX Files (*.jsx)\t*.jsx\n" | |
35 \ .. "JavaScript Modules (*.es, *.es6, *.cjs, *.mjs, *.jsm)\t*.es;*.es6;*.cjs;*.mjs;*.jsm\n" | |
36 \ .. "Vue Templates (*.vue)\t*.vue\n" | |
37 \ .. "JSON Files (*.json)\t*.json\n" | |
34134
8ae680be2a51
runtime(ftplugin): Use "*" browsefilter pattern to match "All Files"
Christian Brabandt <cb@256bit.org>
parents:
21991
diff
changeset
|
38 if has("win32") |
8ae680be2a51
runtime(ftplugin): Use "*" browsefilter pattern to match "All Files"
Christian Brabandt <cb@256bit.org>
parents:
21991
diff
changeset
|
39 let b:browsefilter ..= "All Files (*.*)\t*\n" |
8ae680be2a51
runtime(ftplugin): Use "*" browsefilter pattern to match "All Files"
Christian Brabandt <cb@256bit.org>
parents:
21991
diff
changeset
|
40 else |
8ae680be2a51
runtime(ftplugin): Use "*" browsefilter pattern to match "All Files"
Christian Brabandt <cb@256bit.org>
parents:
21991
diff
changeset
|
41 let b:browsefilter ..= "All Files (*)\t*\n" |
8ae680be2a51
runtime(ftplugin): Use "*" browsefilter pattern to match "All Files"
Christian Brabandt <cb@256bit.org>
parents:
21991
diff
changeset
|
42 endif |
1125 | 43 endif |
21991 | 44 |
45 " The following suffixes should be implied when resolving filenames | |
46 setlocal suffixesadd+=.js,.jsx,.es,.es6,.cjs,.mjs,.jsm,.vue,.json | |
47 | |
48 " The following suffixes should have low priority | |
49 " .snap jest snapshot | |
50 setlocal suffixes+=.snap | |
51 | |
52 " Remove irrelevant part of 'path'. | |
53 " User is expected to augment it with contextually-relevant paths | |
54 setlocal path-=/usr/include | |
55 | |
56 " Matchit configuration | |
57 if exists("loaded_matchit") | |
58 let b:match_ignorecase = 0 | |
59 let b:match_words = | |
60 \ '\<do\>:\<while\>,' | |
61 \ .. '<\@<=\([^ \t>/]\+\)\%(\s\+[^>]*\%([^/]>\|$\)\|>\|$\):<\@<=/\1>,' | |
62 \ .. '<\@<=\%([^ \t>/]\+\)\%(\s\+[^/>]*\|$\):/>' | |
63 endif | |
64 | |
65 " Set 'define' to a comprehensive value | |
66 let &l:define = | |
67 \ '\(^\s*(*async\s\+function\|(*function\)' | |
68 \ .. '\|^\s*\(\*\|static\|async\|get\|set\|\i\+\.\)' | |
69 \ .. '\|^\s*\(\ze\i\+\)\(([^)]*).*{$\|\s*[:=,]\)' | |
70 \ .. '\|^\s*\(export\s\+\|export\s\+default\s\+\)*\(var\|let\|const\|function\|class\)' | |
71 \ .. '\|\<as\>' | |
72 | |
73 let b:undo_ftplugin = | |
74 \ "setl fo< ofu< com< cms< sua< su< def< pa<" | |
75 \ .. "| unlet! b:browsefilter b:match_ignorecase b:match_words" | |
1125 | 76 |
77 let &cpo = s:cpo_save | |
78 unlet s:cpo_save | |
21991 | 79 |
80 " vim: textwidth=78 tabstop=8 shiftwidth=4 softtabstop=4 expandtab |