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
//! Engine-owned abbreviation types.
/// A single abbreviation entry (insert-mode or cmdline-mode, recursive or noremap).
///
/// Mode flags: `insert` = expand in Insert mode, `cmdline` = expand in Cmdline mode.
/// `noremap` stores whether the definition was made with `noreabbrev`; expansion
/// is always literal text regardless of this flag, but it is preserved for future use.
///
/// NOTE: Abbreviations are currently per-editor (global in vim would share across
/// buffers; per-editor is equivalent for single-buffer use and is acceptable for
/// now — cross-buffer global behaviour is a follow-up).
/// Trigger kind for abbreviation expansion.
/// Classify a vim abbreviation lhs into its type.
///
/// - **Full**: every char in `lhs` is a keyword char (full-id).
/// - **End**: the last char is a keyword char, at least one other is not (end-id).
/// - **None**: the last char is a non-keyword char (non-id).