-
Notifications
You must be signed in to change notification settings - Fork 28
/
Copy pathvim.d.tl
2110 lines (2030 loc) · 61 KB
/
vim.d.tl
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
-- vim: ft=teal expandtab sw=3 ts=3
global record vim
-- TODO: Either find a way to generate these or at least find a comprehensive list to put a bunch of 'TODO' stub definitions here
-- Sadly, there doesn't seem to be a nice way to serialize all of these
-- since they're lazily brought in as you call them
-- this might be the only way since user defined functions are also called here
-- ex vim.fn["MyPlugin#MyFunction"]() so
-- VIM_fn = record -- if record maps were a thing
-- {string:function(...: any): (any)}
-- mode: function(): Mode
-- ...
-- end
-- TODO:
-- vim.treesitter
fn: {string:function(...: any): (any)}
cmd: function(cmd: string)
call: function(func: string, ...: any)
call: function(string, ...: any): any
enum Mode
"n" -- Normal
"no" -- Operator-pending
"nov" -- Operator-pending (forced charwise |o_v|)
"noV" -- Operator-pending (forced linewise |o_V|)
"no" -- Operator-pending (forced blockwise |o_CTRL-V|)
"niI" -- Normal using |i_CTRL-O| in |Insert-mode|
"niR" -- Normal using |i_CTRL-O| in |Replace-mode|
"niV" -- Normal using |i_CTRL-O| in |Virtual-Replace-mode|
"v" -- Visual by character
"V" -- Visual by line
"" -- Visual blockwise
"s" -- Select by character
"S" -- Select by line
"" -- Select blockwise
"i" -- Insert
"ic" -- Insert mode completion |compl-generic|
"ix" -- Insert mode |i_CTRL-X| completion
"R" -- Replace |R|
"Rc" -- Replace mode completion |compl-generic|
"Rv" -- Virtual Replace |gR|
"Rx" -- Replace mode |i_CTRL-X| completion
"c" -- Command-line editing
"cv" -- Vim Ex mode |gQ|
"ce" -- Normal Ex mode |Q|
"r" -- Hit-enter prompt
"rm" -- The -- more -- prompt
"r?" -- |:confirm| query of some sort
"!" -- Shell or external command is executing
"t" -- Terminal mode: keys go to the job
end
record InspectOptions
depth: integer
newline: string
indent: string
process: function
end
inspect: function(any, InspectOptions): string
record log
record levels
DEBUG: integer
INFO: integer
HINT: integer
WARN: integer
ERROR: integer
end
end
notify: function(msg: string, log_level: integer, opts: table)
notify_once: function(msg: string, level: integer, opt: table)
paste: function({string}, integer): boolean
schedule_wrap: function(function): function
deep_equal: function(any, any): boolean
deepcopy: function<T>(T): T
defer_fn: function(function, integer)
startswith: function(string, string): boolean
endswith: function(string, string): boolean
gsplit: function(string, string, boolean): function(): string
is_callable: function(any): boolean
list_extend: function<T>({T}, {T}, integer, integer): {T}
list_extend: function<T, K>({T}, {K}, integer, integer): {T|K}
list_slice: function<T>({T}, integer, integer): {T}
pesc: function(string): string
split: function(string, string, boolean): {string}
wait: function(integer)
tbl_add_reverse_lookup: function(table)
tbl_contains: function<T>({T}, T): boolean
tbl_count: function(table): integer
enum ExtendBehavior
"error"
"keep"
"force"
end
tbl_extend: function(ExtendBehavior, table, table, ...: table): table
tbl_extend: function<T>(ExtendBehavior, {T:any}, {T:any}, ...: {T:any}): {T:any}
tbl_extend: function<T>(ExtendBehavior, {any:T}, {any:T}, ...: {any:T}): {any:T}
tbl_extend: function<T,V>(ExtendBehavior, {T:V}, {T:V}, ...: {T:V}): {T:V}
tbl_deep_extend: function(ExtendBehavior, table, table, ...: table): table
tbl_deep_extend: function<T>(ExtendBehavior, {T:any}, {T:any}, ...: {T:any}): {T:any}
tbl_deep_extend: function<T>(ExtendBehavior, {any:T}, {any:T}, ...: {any:T}): {any:T}
tbl_deep_extend: function<T,V>(ExtendBehavior, {T:V}, {T:V}, ...: {T:V}): {T:V}
tbl_filter: function<T>(function(T): (boolean), {T})
tbl_filter: function(function(any): (boolean), {any})
tbl_flatten: function<T>({T|{T}}): {T}
tbl_flatten: function({any|{any}}): {any}
tbl_isempty: function(table): boolean
tbl_islist: function(table): boolean
tbl_keys: function<T>({T:any}): {T}
tbl_values: function<T>({any:T}): {T}
tbl_map: function<A, B, C>(function(B): (C), {A:B}): {A:C}
tbl_map: function(function(any): (any), table): table
trim: function(string): string
enum TypeName
"table" "t"
"string" "s"
"number" "n"
"boolean" "b"
"function" "f"
"nil"
"thread"
"userdata"
end
-- Technically, this should be a union of tuples since the types are dependent and this allows for invalid combos
validate: function({string:{any, TypeName | {TypeName} | function(any): (boolean, string), boolean | string}})
-- should be {string:{any, TypeName, boolean} | {any, function(any): (boolean, string)}, string}}
record Regex
match_str: function(Regex, string): integer, integer
match_line: function(Regex, integer, integer, integer, integer): integer, integer
end
regex: function(string): Regex
diff: function(a: string, b: string): string
-- TODO
-- diff: function(a: string, b: string, options: DiffOptions): string | {integer}
record VersionInfo
api_compatible: integer
api_level: integer
api_prerelease: integer
major: integer
minor: integer
patch: integer
end
version: function(): VersionInfo
uri_from_bufnr: function(bufnr: integer): string
uri_from_fname: function(path: string): string
uri_to_bufnr: function(uri: string): integer
uri_to_fname: function(uri: string): string
pretty_print: function(obj: any): string
region: function(bufnr: integer, pos1: {integer}, pos2: {integer}, regtype: string, inclusive: boolean): {integer:{integer}}
record filetype
-- TODO - replace table with options record
add: function(filetypes: table)
match: function(name: string, bufnr: integer)
end
record mpack
encode: function(obj: any): string
decode: function(str: string): any
end
record spell
check: function(str: string): {{string | integer}}
end
-- TODO: these are a pitiful approximation of luv's types
-- once Teal has some form of type inheritance/composition and luv.d.tl is written
-- just steal from that
record loop
cwd: function(): string
sleep: function(integer)
record Handle
close: function(Handle)
is_closing: function(Timer)
end
record Pipe
read_start: function(Pipe, function(string, string))
read_stop: function(Pipe)
close: function(Pipe)
end
record Process
close: function(Process)
end
record Timer
start: function(Timer, integer, integer, function)
close: function(Timer)
stop: function(Timer)
is_closing: function(Timer)
end
new_timer: function(): Timer
new_pipe: function(boolean): Pipe
-- TODO: the rest of these
record SpawnOptions
cwd: string
args: {string}
stdio: {Pipe, Pipe, Pipe}
end
spawn: function(string, SpawnOptions, function): Process
read_start: function(Pipe, function(string, string))
record Fs userdata end
fs_open: function(string, string|integer, integer): integer, string, string
fs_open: function(string, string|integer, integer, function(string, integer)): Fs
fs_close: function(integer): boolean, string, string
fs_close: function(integer, function(string, boolean)): Fs
fs_read: function(integer, integer, integer): string, string, string
fs_read: function(integer, integer, integer, function(string, integer)): Fs
fs_write: function(integer, string|{string}, integer): integer, string, string
fs_write: function(integer, string|{string}, integer, function(string, integer)): Fs
record FsStat
record Time
sec: integer
nsec: integer
end
dev: integer
mode: integer
nlink: integer
uid: integer
gid: integer
rdev: integer
ino: integer
size: integer
blksize: integer
blocks: integer
flags: integer
gen: integer
atime: Time
mtime: Time
ctime: Time
birthtime: Time
type: string
end
fs_stat: function(string): FsStat, string, string
fs_stat: function(string, function(string, FsStat))
fs_lstat: function(string): FsStat, string, string
fs_lstat: function(string, function(string, FsStat))
fs_fstat: function(integer): FsStat, string, string
fs_fstat: function(integer, function(string, FsStat))
fs_scandir: function(string, function(string, Fs)): Fs, string, string
fs_scandir_next: function(Fs): string, string, string
fs_mkdir: function(string, integer): boolean, string, string
fs_mkdir: function(string, integer, function(string, boolean)): Fs
end
in_fast_event: function(): boolean
type NIL = record userdata end -- special nil for filling tables
empty_dict: function(): table
on_key: function(function(string), integer): integer
rpcnotify: function(integer, string, ...: string)
rpcrequest: function(integer, string, ...: string)
stricmp: function(string, string): integer
str_utfindex: function(string, integer): integer, integer
str_byteindex: function(string, integer, boolean): integer
schedule: function(function)
schedule_wrap: function(function): function
type_idx: boolean
val_idx: boolean
types: {string|integer:string|integer}
record keymap
record DelOptions
buffer: boolean | integer
end
record SetOptions
buffer: boolean | integer
callback: function
desc: string
expr: boolean
nowait: boolean
remap: boolean
replace_keycodes: boolean
script: boolean
silent: boolean
unique: boolean
end
set: function(mode: string|{string}, lhs: string, rhs: string|function(), opts: SetOptions)
del: function(modes: string|{string}, lhs: string, opts: DelOptions)
end
record EventData --TODO: this is a vim thing, so types aren't really documented
abort: any
chan: integer
cmdlevel: any
cmdtype: any
cwd: string
inclusive: boolean
scope: any
operator: any
regcontents: any
regname: any
regtype: any
visual: any
completed_item: any
height: any
width: any
row: integer
col: integer
size: any
scrollbar: any
changed_window: any
end
record highlight
record Opts
higroup: string
timeout: integer
on_macro: boolean
on_visual: boolean
event: EventData
end
on_yank: function(Opts)
range: function(
bufnr: integer,
ns: integer,
higroup: string,
start: {integer, integer},
finish: {integer, integer},
rtype: any,
inclusive: boolean
)
end
record diagnostic
record Severity -- would be great if this could be a tuplerecord
{string}
ERROR: integer
WARN: integer
INFO: integer
HINT: integer
E: integer
W: integer
I: integer
H: integer
end
severity: Severity
record Diagnostic
lnum: integer -- The starting line of the diagnostic
end_lnum: integer -- The final line of the diagnostic
col: integer -- The starting column of the diagnostic
end_col: integer -- The final column of the diagnostic
severity: integer -- The severity of the diagnostic |vim.diagnostic.severity|
message: string -- The diagnostic text
source: string -- The source of the diagnostic
end
record ConfigOpts
record UnderlineOpts
severity: integer -- vim.diagnostic.severity
end
record VirtualTextOpts
severity: integer -- vim.diagnostic.severity
source: string
format: function(diagnostic: Diagnostic): string
end
record SignsOpts
severity: integer
priority: integer
end
underline: boolean|UnderlineOpts
virtual_text: boolean|VirtualTextOpts
signs: boolean|SignsOpts
float: OpenFloatOpts
update_in_insert: boolean
severity_sort: boolean
end
record GetOpts
namespace: integer
lnum: integer
severity: integer -- vim.diagnostic.severity
end
record GotoOpts
namespace: integer
cursor_position: {integer, integer}
wrap: boolean
severity: integer -- vim.diagnostic.severity
float: boolean|OpenFloatOpts
win_id: integer
end
record OpenFloatOpts
enum Scope
"buffer"
"line"
"cursor"
end
namespace: integer
scope: Scope
pos: integer|{integer, integer}
severity_sort: boolean
severity: integer -- vim.diagnostic.severity
header: string|{string, string}
source: string
format: function(diagnostic: Diagnostic): string
prefix: string|{string, string}|function(diagnostic: Diagnostic, i: integer, total: integer): string, string
end
record SetLocListOpts
namespace: integer
winnr: integer
open: boolean
title: string
severity: integer -- vim.diagnostic.severity
end
record SetQfListOpts
namespace: integer
open: boolean
title: string
severity: integer -- vim.diagnostic.severity
end
config: function(opts: ConfigOpts, namespace: integer)
disable: function(bufnr: integer, namespace: integer)
enable: function(bufnr: integer, namespace: integer)
fromqflist: function(list: {any}): {Diagnostic}
get: function(bufnr: integer, opts: GetOpts)
get_namespace: function(namespace: integer): {string:integer}
get_namespace: function(namespace: integer): {{string:integer}}
get_next: function(opts: GotoOpts): Diagnostic
get_next_pos: function(opts: GotoOpts): {integer, integer}
get_prev: function(opts: GotoOpts): Diagnostic
get_prev_pos: function(opts: GotoOpts): {integer, integer}
goto_next: function(opts: GotoOpts)
goto_prev: function(opts: GotoOpts)
hide: function(namespace: integer, bufnr: integer)
match: function(str: string, pat: string, groups: {string}, severity_map: {string:string}, defaults: {string:any}): Diagnostic
open_float: function(opts: OpenFloatOpts): {integer, integer}
reset: function(namespace: integer, bufnr: integer)
set: function(namespace: integer, bufnr: integer, diagnostics: {Diagnostic}, opts: ConfigOpts)
setloclist: function(opts: SetLocListOpts)
setqflist: function(opts: SetQfListOpts)
show: function(namespace: integer, bufnr: integer, diagnostics: {Diagnostic}, opts: ConfigOpts)
toqflist: function({Diagnostic}): {string:any}
end
record lsp
record buf
hover: function
end
buf_attach_client: function(bufnr: integer, client_id: integer)
buf_get_clients: function(bufnr: integer)
buf_is_attached: function(bufnr: integer, client_id: integer)
buf_notify: function(bufnr: integer, method: string, params: string): boolean
buf_request: function(bufnr: integer, method: string, params: table, handler: function): {integer:integer}, function
buf_request_sync: function(bufnr: integer, method: string, params: table, timeout_ms: integer): {integer:integer}, string
record Client
request: function(Client)
end
client: function(): Client
end
-- TODO:
-- vim.opt
-- vim.opt_global
-- vim.opt_local
g: {string:any}
t: {string:any}
v: {string:any}
b: {string:any}
w: {string:any}
env: {string:any}
record AllOptions
acd: boolean
ai: boolean
al: number
aleph: number
allowrevins: boolean
ambiwidth: string
ambw: string
ar: boolean
arab: boolean
arabic: boolean
arabicshape: boolean
ari: boolean
arshape: boolean
autochdir: boolean
autoindent: boolean
autoread: boolean
autowrite: boolean
autowriteall: boolean
aw: boolean
awa: boolean
background: string
backspace: string
backup: boolean
backupcopy: string
backupdir: string
backupext: string
backupskip: string
bdir: string
belloff: string
bex: string
bg: string
bh: string
bin: boolean
binary: boolean
bk: boolean
bkc: string
bl: boolean
bo: string
bomb: boolean
breakat: string
breakindent: boolean
breakindentopt: string
bri: boolean
briopt: string
brk: string
browsedir: string
bs: string
bsdir: string
bsk: string
bt: string
bufhidden: string
buflisted: boolean
buftype: string
casemap: string
cb: string
cc: string
ccv: string
cd: string
cdh: boolean
cdhome: boolean
cdpath: string
cedit: string
cf: boolean
cfu: string
ch: number
channel: number
charconvert: string
ci: boolean
cin: boolean
cindent: boolean
cink: string
cinkeys: string
cino: string
cinoptions: string
cinscopedecls: string
cinsd: string
cinw: string
cinwords: string
clipboard: string
cmdheight: number
cmdwinheight: number
cmp: string
cms: string
co: number
cocu: string
cole: number
colorcolumn: string
columns: number
com: string
comments: string
commentstring: string
compatible: boolean
complete: string
completefunc: string
completeopt: string
completeslash: string
concealcursor: string
conceallevel: number
confirm: boolean
copyindent: boolean
cot: string
cp: boolean
cpo: string
cpoptions: string
cpt: string
crb: boolean
csl: string
cuc: boolean
cul: boolean
culopt: string
cursorbind: boolean
cursorcolumn: boolean
cursorline: boolean
cursorlineopt: string
cwh: number
debug: string
deco: boolean
def: string
define: string
delcombine: boolean
dex: string
dg: boolean
dict: string
dictionary: string
diff: boolean
diffexpr: string
diffopt: string
digraph: boolean
dip: string
dir: string
directory: string
display: string
dy: string
ea: boolean
ead: string
eadirection: string
eb: boolean
ed: boolean
edcompatible: boolean
ef: string
efm: string
ei: string
emo: boolean
emoji: boolean
enc: string
encoding: string
endoffile: boolean
endofline: boolean
eof: boolean
eol: boolean
ep: string
equalalways: boolean
equalprg: string
errorbells: boolean
errorfile: string
errorformat: string
et: boolean
eventignore: string
ex: boolean
expandtab: boolean
exrc: boolean
fcl: string
fcs: string
fdc: string
fde: string
fdi: string
fdl: number
fdls: number
fdm: string
fdn: number
fdo: string
fdt: string
fen: boolean
fenc: string
fencs: string
fex: string
ff: string
ffs: string
fic: boolean
fileencoding: string
fileencodings: string
fileformat: string
fileformats: string
fileignorecase: boolean
filetype: string
fillchars: string
fixendofline: boolean
fixeol: boolean
flp: string
fml: number
fmr: string
fo: string
foldclose: string
foldcolumn: string
foldenable: boolean
foldexpr: string
foldignore: string
foldlevel: number
foldlevelstart: number
foldmarker: string
foldmethod: string
foldminlines: number
foldnestmax: number
foldopen: string
foldtext: string
formatexpr: string
formatlistpat: string
formatoptions: string
formatprg: string
fp: string
fs: boolean
fsync: boolean
ft: string
gcr: string
gd: boolean
gdefault: boolean
gfm: string
gfn: string
gfw: string
go: string
gp: string
grepformat: string
grepprg: string
gtl: string
gtt: string
guicursor: string
guifont: string
guifontwide: string
guioptions: string
guitablabel: string
guitabtooltip: string
helpfile: string
helpheight: number
helplang: string
hf: string
hh: number
hi: number
hid: boolean
hidden: boolean
highlight: string
history: number
hk: boolean
hkmap: boolean
hkmapp: boolean
hkp: boolean
hl: string
hlg: string
hls: boolean
hlsearch: boolean
ic: boolean
icm: string
icon: boolean
iconstring: string
ignorecase: boolean
im: boolean
imc: boolean
imcmdline: boolean
imd: boolean
imdisable: boolean
imi: number
iminsert: number
ims: number
imsearch: number
inc: string
inccommand: string
include: string
includeexpr: string
incsearch: boolean
inde: string
indentexpr: string
indentkeys: string
indk: string
inex: string
inf: boolean
infercase: boolean
insertmode: boolean
is: boolean
isf: string
isfname: string
isi: string
isident: string
isk: string
iskeyword: string
isp: string
isprint: string
joinspaces: boolean
jop: string
js: boolean
jumpoptions: string
keymap: string
keymodel: string
keywordprg: string
km: string
kmp: string
kp: string
langmap: string
langmenu: string
langnoremap: boolean
langremap: boolean
laststatus: number
lazyredraw: boolean
lbr: boolean
lcs: string
linebreak: boolean
lines: number
linespace: number
lisp: boolean
lispoptions: string
lispwords: string
list: boolean
listchars: string
lm: string
lmap: string
lnr: boolean
loadplugins: boolean
lop: string
lpl: boolean
lrm: boolean
ls: number
lsp: number
lw: string
lz: boolean
ma: boolean
magic: boolean
makeef: string
makeencoding: string
makeprg: string
mat: number
matchpairs: string
matchtime: number
maxcombine: number
maxfuncdepth: number
maxmapdepth: number
maxmempattern: number
mco: number
mef: string
menc: string
menuitems: number
mfd: number
mh: boolean
mis: number
mkspellmem: string
ml: boolean
mle: boolean
mls: number
mmd: number
mmp: number
mod: boolean
modeline: boolean
modelineexpr: boolean
modelines: number
modifiable: boolean
modified: boolean
more: boolean
mouse: string
mousef: boolean
mousefocus: boolean
mousehide: boolean
mousem: string
mousemev: boolean
mousemodel: string
mousemoveevent: boolean
mouses: string
mousescroll: string
mouseshape: string
mouset: number
mousetime: number
mp: string
mps: string
msm: string
nf: string
nrformats: string
nu: boolean
number: boolean
numberwidth: number
nuw: number
odev: boolean
ofu: string
omnifunc: string
opendevice: boolean
operatorfunc: string
opfunc: string
pa: string
packpath: string
para: string
paragraphs: string
paste: boolean
pastetoggle: string
patchexpr: string
patchmode: string
path: string
pb: number
pex: string
ph: number
pi: boolean
pm: string
pp: string
preserveindent: boolean
previewheight: number
previewwindow: boolean
prompt: boolean
pt: string
pumblend: number
pumheight: number
pumwidth: number
pvh: number
pvw: boolean
pw: number
pyx: number
pyxversion: number
qe: string
qftf: string
quickfixtextfunc: string
quoteescape: string
rdb: string
rdt: number
re: number
readonly: boolean
redrawdebug: string
redrawtime: number
regexpengine: number
relativenumber: boolean
remap: boolean
report: number
revins: boolean
ri: boolean
rightleft: boolean
rightleftcmd: string
rl: boolean
rlc: string
rnu: boolean
ro: boolean
rtp: string
ru: boolean
ruf: string
ruler: boolean
rulerformat: string
runtimepath: string
sb: boolean
sbo: string
sbr: string
sc: boolean
scb: boolean
scbk: number
scl: string
scr: number
scroll: number
scrollback: number
scrollbind: boolean
scrolljump: number
scrolloff: number
scrollopt: string
scs: boolean
sd: string
sdf: string
sect: string
sections: string
secure: boolean
sel: string
selection: string
selectmode: string
sessionoptions: string
sft: boolean
sh: string
shada: string
shadafile: string
shcf: string
shell: string
shellcmdflag: string
shellpipe: string
shellquote: string
shellredir: string
shellslash: boolean
shelltemp: boolean
shellxescape: string
shellxquote: string
shiftround: boolean
shiftwidth: number
shm: string
shortmess: string
showbreak: string
showcmd: boolean
showcmdloc: string
showfulltag: boolean
showmatch: boolean
showmode: boolean
showtabline: number
shq: string
si: boolean
sidescroll: number
sidescrolloff: number
signcolumn: string
siso: number