1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
let files = filter(globpath(&rtp, 'ftplugin/typescript.vim', 1, 1), { _, v -> v !~ "vim-polyglot" && v !~ $VIMRUNTIME && v !~ "after" })
if len(files) > 0
exec 'source ' . files[0]
finish
endif
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'typescript') == -1
" set Vi-incompatible, compiler and commentstring
if exists("b:did_ftplugin")
finish
endif
let b:did_ftplugin = 1
let s:cpo_save = &cpo
set cpo-=C
compiler typescript
setlocal commentstring=//\ %s
" 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
" setlocal foldmethod=syntax
let &cpo = s:cpo_save
unlet s:cpo_save
function! TsIncludeExpr(file)
if (filereadable(a:file))
return l:file
else
let l:file2=substitute(a:file,'$','/index.ts','g')
return l:file2
endif
endfunction
set path+=./node_modules/**,node_modules/**
set include=import\_s.\\zs[^'\"]*\\ze
set includeexpr=TsIncludeExpr(v:fname)
set suffixesadd+=.ts
"
" TagBar
"
let g:tagbar_type_typescript = {
\ 'ctagstype' : 'typescript',
\ 'kinds' : [
\ 'c:classes',
\ 'a:abstract classes',
\ 't:types',
\ 'n:modules',
\ 'f:functions',
\ 'v:variables',
\ 'l:varlambdas',
\ 'm:members',
\ 'i:interfaces',
\ 'e:enums'
\ ],
\ 'sro' : '.',
\ 'kind2scope' : {
\ 'c' : 'classes',
\ 'a' : 'abstract classes',
\ 't' : 'types',
\ 'f' : 'functions',
\ 'v' : 'variables',
\ 'l' : 'varlambdas',
\ 'm' : 'members',
\ 'i' : 'interfaces',
\ 'e' : 'enums'
\ },
\ 'scope2kind' : {
\ 'classes' : 'c',
\ 'abstract classes' : 'a',
\ 'types' : 't',
\ 'functions' : 'f',
\ 'variables' : 'v',
\ 'varlambdas' : 'l',
\ 'members' : 'm',
\ 'interfaces' : 'i',
\ 'enums' : 'e'
\ }
\ }
" In case you've updated/customized your ~/.ctags and prefer to use it.
if get(g:, 'typescript_use_builtin_tagbar_defs', 1)
let g:tagbar_type_typescript.deffile = expand('<sfile>:p:h:h') . '/ctags/typescript.ctags'
endif
endif
|