@enjoys/context-engine 1.0.3 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/data/completion/awk.json +203 -0
- package/data/completion/crontab.json +203 -0
- package/data/completion/dotenv.json +170 -0
- package/data/completion/graphql.json +181 -0
- package/data/completion/hcl.json +192 -0
- package/data/completion/ini.json +137 -0
- package/data/completion/json.json +170 -0
- package/data/completion/makefile.json +203 -0
- package/data/completion/markdown.json +225 -0
- package/data/completion/nginx.json +280 -0
- package/data/completion/perl.json +203 -0
- package/data/completion/powershell.json +225 -0
- package/data/completion/protobuf.json +181 -0
- package/data/completion/ssh_config.json +159 -0
- package/data/completion/systemd.json +170 -0
- package/data/completion/xml.json +159 -0
- package/data/completion/zsh.json +214 -0
- package/data/defination/awk.json +125 -0
- package/data/defination/crontab.json +107 -0
- package/data/defination/dotenv.json +71 -0
- package/data/defination/graphql.json +119 -0
- package/data/defination/hcl.json +125 -0
- package/data/defination/ini.json +77 -0
- package/data/defination/json.json +83 -0
- package/data/defination/makefile.json +113 -0
- package/data/defination/markdown.json +107 -0
- package/data/defination/nginx.json +131 -0
- package/data/defination/perl.json +101 -0
- package/data/defination/powershell.json +119 -0
- package/data/defination/protobuf.json +119 -0
- package/data/defination/ssh_config.json +89 -0
- package/data/defination/systemd.json +107 -0
- package/data/defination/xml.json +83 -0
- package/data/defination/zsh.json +113 -0
- package/data/hover/awk.json +47 -0
- package/data/hover/crontab.json +47 -0
- package/data/hover/dotenv.json +47 -0
- package/data/hover/graphql.json +47 -0
- package/data/hover/hcl.json +75 -0
- package/data/hover/ini.json +68 -0
- package/data/hover/json.json +89 -0
- package/data/hover/makefile.json +68 -0
- package/data/hover/markdown.json +68 -0
- package/data/hover/nginx.json +89 -0
- package/data/hover/perl.json +47 -0
- package/data/hover/powershell.json +54 -0
- package/data/hover/protobuf.json +47 -0
- package/data/hover/ssh_config.json +47 -0
- package/data/hover/systemd.json +54 -0
- package/data/hover/xml.json +61 -0
- package/data/hover/zsh.json +61 -0
- package/data/manifest.json +210 -6
- package/package.json +1 -1
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
{
|
|
2
|
+
"language": "awk",
|
|
3
|
+
"completions": [
|
|
4
|
+
{
|
|
5
|
+
"label": "shebang",
|
|
6
|
+
"kind": 15,
|
|
7
|
+
"detail": "Awk shebang",
|
|
8
|
+
"documentation": {
|
|
9
|
+
"value": "Awk script shebang line."
|
|
10
|
+
},
|
|
11
|
+
"insertText": "#!/usr/bin/awk -f\n\n${1:{ print }}",
|
|
12
|
+
"insertTextRules": 4,
|
|
13
|
+
"sortText": "00_shebang"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"label": "BEGIN-END",
|
|
17
|
+
"kind": 15,
|
|
18
|
+
"detail": "BEGIN/END blocks",
|
|
19
|
+
"documentation": {
|
|
20
|
+
"value": "Run code before and after processing input."
|
|
21
|
+
},
|
|
22
|
+
"insertText": "BEGIN {\n ${1:FS = \",\"}\n}\n{\n ${2:print $0}\n}\nEND {\n ${3:print NR \" lines\"}\n}",
|
|
23
|
+
"insertTextRules": 4,
|
|
24
|
+
"sortText": "00_begin"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"label": "print fields",
|
|
28
|
+
"kind": 15,
|
|
29
|
+
"detail": "Print specific fields",
|
|
30
|
+
"documentation": {
|
|
31
|
+
"value": "Print selected columns from input."
|
|
32
|
+
},
|
|
33
|
+
"insertText": "{ print $${1:1}, $${2:2} }",
|
|
34
|
+
"insertTextRules": 4,
|
|
35
|
+
"sortText": "01_print"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"label": "pattern match",
|
|
39
|
+
"kind": 15,
|
|
40
|
+
"detail": "Pattern/action",
|
|
41
|
+
"documentation": {
|
|
42
|
+
"value": "Execute action when pattern matches."
|
|
43
|
+
},
|
|
44
|
+
"insertText": "/${1:pattern}/ { ${2:print $0} }",
|
|
45
|
+
"insertTextRules": 4,
|
|
46
|
+
"sortText": "01_pattern"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"label": "field separator",
|
|
50
|
+
"kind": 15,
|
|
51
|
+
"detail": "Set field separator",
|
|
52
|
+
"documentation": {
|
|
53
|
+
"value": "Set the input field separator."
|
|
54
|
+
},
|
|
55
|
+
"insertText": "BEGIN { FS = \"${1:,}\" }",
|
|
56
|
+
"insertTextRules": 4,
|
|
57
|
+
"sortText": "02_fs"
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"label": "if",
|
|
61
|
+
"kind": 15,
|
|
62
|
+
"detail": "If statement",
|
|
63
|
+
"documentation": {
|
|
64
|
+
"value": "Conditional if."
|
|
65
|
+
},
|
|
66
|
+
"insertText": "if (${1:condition}) {\n ${2:# action}\n}",
|
|
67
|
+
"insertTextRules": 4,
|
|
68
|
+
"sortText": "02_if"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"label": "if-else",
|
|
72
|
+
"kind": 15,
|
|
73
|
+
"detail": "If-else",
|
|
74
|
+
"documentation": {
|
|
75
|
+
"value": "Conditional if-else."
|
|
76
|
+
},
|
|
77
|
+
"insertText": "if (${1:condition}) {\n ${2:# true}\n} else {\n ${3:# false}\n}",
|
|
78
|
+
"insertTextRules": 4,
|
|
79
|
+
"sortText": "02_ifelse"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"label": "for loop",
|
|
83
|
+
"kind": 15,
|
|
84
|
+
"detail": "For loop",
|
|
85
|
+
"documentation": {
|
|
86
|
+
"value": "C-style for loop."
|
|
87
|
+
},
|
|
88
|
+
"insertText": "for (${1:i} = ${2:1}; ${1:i} <= ${3:NF}; ${1:i}++) {\n ${4:print $i}\n}",
|
|
89
|
+
"insertTextRules": 4,
|
|
90
|
+
"sortText": "02_for"
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"label": "for-in",
|
|
94
|
+
"kind": 15,
|
|
95
|
+
"detail": "For-in loop (arrays)",
|
|
96
|
+
"documentation": {
|
|
97
|
+
"value": "Iterate over array keys."
|
|
98
|
+
},
|
|
99
|
+
"insertText": "for (${1:key} in ${2:arr}) {\n ${3:print key, arr[key]}\n}",
|
|
100
|
+
"insertTextRules": 4,
|
|
101
|
+
"sortText": "02_forin"
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"label": "associative array",
|
|
105
|
+
"kind": 15,
|
|
106
|
+
"detail": "Array/hash",
|
|
107
|
+
"documentation": {
|
|
108
|
+
"value": "Use an associative array."
|
|
109
|
+
},
|
|
110
|
+
"insertText": "${1:count}[$${2:1}]${3:++}",
|
|
111
|
+
"insertTextRules": 4,
|
|
112
|
+
"sortText": "03_array"
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"label": "sum column",
|
|
116
|
+
"kind": 15,
|
|
117
|
+
"detail": "Sum a column",
|
|
118
|
+
"documentation": {
|
|
119
|
+
"value": "Sum values in a specific column."
|
|
120
|
+
},
|
|
121
|
+
"insertText": "{ sum += $${1:1} }\nEND { print \"Total:\", sum }",
|
|
122
|
+
"insertTextRules": 4,
|
|
123
|
+
"sortText": "04_sum"
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
"label": "count occurrences",
|
|
127
|
+
"kind": 15,
|
|
128
|
+
"detail": "Count values",
|
|
129
|
+
"documentation": {
|
|
130
|
+
"value": "Count occurrences of each unique value."
|
|
131
|
+
},
|
|
132
|
+
"insertText": "{ count[$${1:1}]++ }\nEND {\n for (k in count)\n print k, count[k]\n}",
|
|
133
|
+
"insertTextRules": 4,
|
|
134
|
+
"sortText": "04_count"
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"label": "printf",
|
|
138
|
+
"kind": 14,
|
|
139
|
+
"detail": "Formatted print",
|
|
140
|
+
"documentation": {
|
|
141
|
+
"value": "Print with format specifiers."
|
|
142
|
+
},
|
|
143
|
+
"insertText": "printf \"${1:%-20s %10d\\n}\", $${2:1}, $${3:2}",
|
|
144
|
+
"insertTextRules": 4,
|
|
145
|
+
"sortText": "05_printf"
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"label": "gsub",
|
|
149
|
+
"kind": 14,
|
|
150
|
+
"detail": "Global substitution",
|
|
151
|
+
"documentation": {
|
|
152
|
+
"value": "Replace all occurrences of a pattern."
|
|
153
|
+
},
|
|
154
|
+
"insertText": "gsub(/${1:pattern}/, \"${2:replacement}\", $${3:0})",
|
|
155
|
+
"insertTextRules": 4,
|
|
156
|
+
"sortText": "05_gsub"
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
"label": "split",
|
|
160
|
+
"kind": 14,
|
|
161
|
+
"detail": "Split string",
|
|
162
|
+
"documentation": {
|
|
163
|
+
"value": "Split a string into an array."
|
|
164
|
+
},
|
|
165
|
+
"insertText": "split($${1:0}, ${2:arr}, \"${3:,}\")",
|
|
166
|
+
"insertTextRules": 4,
|
|
167
|
+
"sortText": "05_split"
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
"label": "getline",
|
|
171
|
+
"kind": 14,
|
|
172
|
+
"detail": "Read next line",
|
|
173
|
+
"documentation": {
|
|
174
|
+
"value": "Read the next input line."
|
|
175
|
+
},
|
|
176
|
+
"insertText": "getline ${1:line} < \"${2:file}\"",
|
|
177
|
+
"insertTextRules": 4,
|
|
178
|
+
"sortText": "05_getline"
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
"label": "NR NF",
|
|
182
|
+
"kind": 14,
|
|
183
|
+
"detail": "Record/Field count",
|
|
184
|
+
"documentation": {
|
|
185
|
+
"value": "NR = current line number, NF = number of fields."
|
|
186
|
+
},
|
|
187
|
+
"insertText": "{ print NR, NF, $0 }",
|
|
188
|
+
"insertTextRules": 4,
|
|
189
|
+
"sortText": "06_nrnf"
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
"label": "CSV processing",
|
|
193
|
+
"kind": 15,
|
|
194
|
+
"detail": "Process CSV file",
|
|
195
|
+
"documentation": {
|
|
196
|
+
"value": "Parse and process CSV data."
|
|
197
|
+
},
|
|
198
|
+
"insertText": "BEGIN { FS = \",\" }\nNR > 1 {\n ${1:print $1, $2}\n}",
|
|
199
|
+
"insertTextRules": 4,
|
|
200
|
+
"sortText": "07_csv"
|
|
201
|
+
}
|
|
202
|
+
]
|
|
203
|
+
}
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
{
|
|
2
|
+
"language": "crontab",
|
|
3
|
+
"completions": [
|
|
4
|
+
{
|
|
5
|
+
"label": "cron expression",
|
|
6
|
+
"kind": 15,
|
|
7
|
+
"detail": "Cron schedule",
|
|
8
|
+
"documentation": {
|
|
9
|
+
"value": "A cron expression: minute hour day-of-month month day-of-week command."
|
|
10
|
+
},
|
|
11
|
+
"insertText": "${1:0} ${2:*} ${3:*} ${4:*} ${5:*} ${6:command}",
|
|
12
|
+
"insertTextRules": 4,
|
|
13
|
+
"sortText": "00_expr"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"label": "every minute",
|
|
17
|
+
"kind": 15,
|
|
18
|
+
"detail": "Every minute",
|
|
19
|
+
"documentation": {
|
|
20
|
+
"value": "Run a command every minute."
|
|
21
|
+
},
|
|
22
|
+
"insertText": "* * * * * ${1:command}",
|
|
23
|
+
"insertTextRules": 4,
|
|
24
|
+
"sortText": "01_everymin"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"label": "every 5 minutes",
|
|
28
|
+
"kind": 15,
|
|
29
|
+
"detail": "Every 5 minutes",
|
|
30
|
+
"documentation": {
|
|
31
|
+
"value": "Run every 5 minutes."
|
|
32
|
+
},
|
|
33
|
+
"insertText": "*/5 * * * * ${1:command}",
|
|
34
|
+
"insertTextRules": 4,
|
|
35
|
+
"sortText": "01_every5"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"label": "every hour",
|
|
39
|
+
"kind": 15,
|
|
40
|
+
"detail": "Every hour",
|
|
41
|
+
"documentation": {
|
|
42
|
+
"value": "Run at the start of every hour."
|
|
43
|
+
},
|
|
44
|
+
"insertText": "0 * * * * ${1:command}",
|
|
45
|
+
"insertTextRules": 4,
|
|
46
|
+
"sortText": "01_hourly"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"label": "daily at midnight",
|
|
50
|
+
"kind": 15,
|
|
51
|
+
"detail": "Daily at midnight",
|
|
52
|
+
"documentation": {
|
|
53
|
+
"value": "Run once daily at midnight."
|
|
54
|
+
},
|
|
55
|
+
"insertText": "0 0 * * * ${1:command}",
|
|
56
|
+
"insertTextRules": 4,
|
|
57
|
+
"sortText": "01_daily"
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"label": "daily at specific time",
|
|
61
|
+
"kind": 15,
|
|
62
|
+
"detail": "Daily at time",
|
|
63
|
+
"documentation": {
|
|
64
|
+
"value": "Run daily at a specific hour and minute."
|
|
65
|
+
},
|
|
66
|
+
"insertText": "${1:30} ${2:2} * * * ${3:command}",
|
|
67
|
+
"insertTextRules": 4,
|
|
68
|
+
"sortText": "01_dailytime"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"label": "weekly (Sunday)",
|
|
72
|
+
"kind": 15,
|
|
73
|
+
"detail": "Weekly on Sunday",
|
|
74
|
+
"documentation": {
|
|
75
|
+
"value": "Run once a week on Sunday at midnight."
|
|
76
|
+
},
|
|
77
|
+
"insertText": "0 0 * * 0 ${1:command}",
|
|
78
|
+
"insertTextRules": 4,
|
|
79
|
+
"sortText": "02_weekly"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"label": "monthly",
|
|
83
|
+
"kind": 15,
|
|
84
|
+
"detail": "Monthly (1st)",
|
|
85
|
+
"documentation": {
|
|
86
|
+
"value": "Run on the first of every month."
|
|
87
|
+
},
|
|
88
|
+
"insertText": "0 0 1 * * ${1:command}",
|
|
89
|
+
"insertTextRules": 4,
|
|
90
|
+
"sortText": "02_monthly"
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"label": "weekdays only",
|
|
94
|
+
"kind": 15,
|
|
95
|
+
"detail": "Weekdays at 9 AM",
|
|
96
|
+
"documentation": {
|
|
97
|
+
"value": "Run Monday through Friday at 9 AM."
|
|
98
|
+
},
|
|
99
|
+
"insertText": "0 9 * * 1-5 ${1:command}",
|
|
100
|
+
"insertTextRules": 4,
|
|
101
|
+
"sortText": "02_weekdays"
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"label": "with logging",
|
|
105
|
+
"kind": 15,
|
|
106
|
+
"detail": "Cron with logging",
|
|
107
|
+
"documentation": {
|
|
108
|
+
"value": "Run a command and log output to a file."
|
|
109
|
+
},
|
|
110
|
+
"insertText": "${1:0 2 * * *} ${2:command} >> ${3:/var/log/cronjob.log} 2>&1",
|
|
111
|
+
"insertTextRules": 4,
|
|
112
|
+
"sortText": "03_logging"
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"label": "with lock (flock)",
|
|
116
|
+
"kind": 15,
|
|
117
|
+
"detail": "Prevent overlap",
|
|
118
|
+
"documentation": {
|
|
119
|
+
"value": "Use flock to prevent overlapping runs."
|
|
120
|
+
},
|
|
121
|
+
"insertText": "*/5 * * * * flock -n /tmp/${1:job}.lock ${2:command}",
|
|
122
|
+
"insertTextRules": 4,
|
|
123
|
+
"sortText": "03_flock"
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
"label": "MAILTO",
|
|
127
|
+
"kind": 14,
|
|
128
|
+
"detail": "Email recipient",
|
|
129
|
+
"documentation": {
|
|
130
|
+
"value": "Set the email address for cron output."
|
|
131
|
+
},
|
|
132
|
+
"insertText": "MAILTO=${1:admin@example.com}",
|
|
133
|
+
"insertTextRules": 4,
|
|
134
|
+
"sortText": "04_mailto"
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"label": "PATH",
|
|
138
|
+
"kind": 14,
|
|
139
|
+
"detail": "PATH variable",
|
|
140
|
+
"documentation": {
|
|
141
|
+
"value": "Set the PATH for cron commands."
|
|
142
|
+
},
|
|
143
|
+
"insertText": "PATH=/usr/local/bin:/usr/bin:/bin",
|
|
144
|
+
"insertTextRules": 4,
|
|
145
|
+
"sortText": "04_path"
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"label": "SHELL",
|
|
149
|
+
"kind": 14,
|
|
150
|
+
"detail": "Shell variable",
|
|
151
|
+
"documentation": {
|
|
152
|
+
"value": "Set the shell for cron commands."
|
|
153
|
+
},
|
|
154
|
+
"insertText": "SHELL=/bin/bash",
|
|
155
|
+
"insertTextRules": 4,
|
|
156
|
+
"sortText": "04_shell"
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
"label": "@reboot",
|
|
160
|
+
"kind": 14,
|
|
161
|
+
"detail": "Run on reboot",
|
|
162
|
+
"documentation": {
|
|
163
|
+
"value": "Run once when the system starts/reboots."
|
|
164
|
+
},
|
|
165
|
+
"insertText": "@reboot ${1:command}",
|
|
166
|
+
"insertTextRules": 4,
|
|
167
|
+
"sortText": "05_reboot"
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
"label": "@daily",
|
|
171
|
+
"kind": 14,
|
|
172
|
+
"detail": "Run daily",
|
|
173
|
+
"documentation": {
|
|
174
|
+
"value": "Run once a day (equivalent to 0 0 * * *)."
|
|
175
|
+
},
|
|
176
|
+
"insertText": "@daily ${1:command}",
|
|
177
|
+
"insertTextRules": 4,
|
|
178
|
+
"sortText": "05_daily"
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
"label": "@hourly",
|
|
182
|
+
"kind": 14,
|
|
183
|
+
"detail": "Run hourly",
|
|
184
|
+
"documentation": {
|
|
185
|
+
"value": "Run once an hour (equivalent to 0 * * * *)."
|
|
186
|
+
},
|
|
187
|
+
"insertText": "@hourly ${1:command}",
|
|
188
|
+
"insertTextRules": 4,
|
|
189
|
+
"sortText": "05_hourly"
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
"label": "@weekly",
|
|
193
|
+
"kind": 14,
|
|
194
|
+
"detail": "Run weekly",
|
|
195
|
+
"documentation": {
|
|
196
|
+
"value": "Run once a week (equivalent to 0 0 * * 0)."
|
|
197
|
+
},
|
|
198
|
+
"insertText": "@weekly ${1:command}",
|
|
199
|
+
"insertTextRules": 4,
|
|
200
|
+
"sortText": "05_weekly"
|
|
201
|
+
}
|
|
202
|
+
]
|
|
203
|
+
}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
{
|
|
2
|
+
"language": "dotenv",
|
|
3
|
+
"completions": [
|
|
4
|
+
{
|
|
5
|
+
"label": "KEY=value",
|
|
6
|
+
"kind": 15,
|
|
7
|
+
"detail": "Environment variable",
|
|
8
|
+
"documentation": {
|
|
9
|
+
"value": "Define an environment variable."
|
|
10
|
+
},
|
|
11
|
+
"insertText": "${1:KEY}=${2:value}",
|
|
12
|
+
"insertTextRules": 4,
|
|
13
|
+
"sortText": "00_kv"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"label": "# comment",
|
|
17
|
+
"kind": 15,
|
|
18
|
+
"detail": "Comment",
|
|
19
|
+
"documentation": {
|
|
20
|
+
"value": "A comment line."
|
|
21
|
+
},
|
|
22
|
+
"insertText": "# ${1:comment}",
|
|
23
|
+
"insertTextRules": 4,
|
|
24
|
+
"sortText": "00_comment"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"label": "quoted value",
|
|
28
|
+
"kind": 15,
|
|
29
|
+
"detail": "Quoted value",
|
|
30
|
+
"documentation": {
|
|
31
|
+
"value": "A value with double quotes (supports variable expansion in some tools)."
|
|
32
|
+
},
|
|
33
|
+
"insertText": "${1:KEY}=\"${2:value}\"",
|
|
34
|
+
"insertTextRules": 4,
|
|
35
|
+
"sortText": "00_quoted"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"label": "DATABASE_URL",
|
|
39
|
+
"kind": 6,
|
|
40
|
+
"detail": "Database connection URL",
|
|
41
|
+
"documentation": {
|
|
42
|
+
"value": "Database connection string."
|
|
43
|
+
},
|
|
44
|
+
"insertText": "DATABASE_URL=${1:postgres://user:password@localhost:5432/dbname}",
|
|
45
|
+
"insertTextRules": 4,
|
|
46
|
+
"sortText": "01_db"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"label": "PORT",
|
|
50
|
+
"kind": 6,
|
|
51
|
+
"detail": "Server port",
|
|
52
|
+
"documentation": {
|
|
53
|
+
"value": "Application server port number."
|
|
54
|
+
},
|
|
55
|
+
"insertText": "PORT=${1:3000}",
|
|
56
|
+
"insertTextRules": 4,
|
|
57
|
+
"sortText": "01_port"
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"label": "NODE_ENV",
|
|
61
|
+
"kind": 6,
|
|
62
|
+
"detail": "Node environment",
|
|
63
|
+
"documentation": {
|
|
64
|
+
"value": "Node.js environment mode."
|
|
65
|
+
},
|
|
66
|
+
"insertText": "NODE_ENV=${1:production}",
|
|
67
|
+
"insertTextRules": 4,
|
|
68
|
+
"sortText": "01_nodeenv"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"label": "SECRET_KEY",
|
|
72
|
+
"kind": 6,
|
|
73
|
+
"detail": "Secret key",
|
|
74
|
+
"documentation": {
|
|
75
|
+
"value": "Application secret/signing key."
|
|
76
|
+
},
|
|
77
|
+
"insertText": "SECRET_KEY=${1:your-secret-key-here}",
|
|
78
|
+
"insertTextRules": 4,
|
|
79
|
+
"sortText": "01_secret"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"label": "API_KEY",
|
|
83
|
+
"kind": 6,
|
|
84
|
+
"detail": "API key",
|
|
85
|
+
"documentation": {
|
|
86
|
+
"value": "Third-party API key."
|
|
87
|
+
},
|
|
88
|
+
"insertText": "${1:SERVICE}_API_KEY=${2:your-api-key}",
|
|
89
|
+
"insertTextRules": 4,
|
|
90
|
+
"sortText": "01_apikey"
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"label": "REDIS_URL",
|
|
94
|
+
"kind": 6,
|
|
95
|
+
"detail": "Redis URL",
|
|
96
|
+
"documentation": {
|
|
97
|
+
"value": "Redis connection string."
|
|
98
|
+
},
|
|
99
|
+
"insertText": "REDIS_URL=${1:redis://localhost:6379}",
|
|
100
|
+
"insertTextRules": 4,
|
|
101
|
+
"sortText": "02_redis"
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"label": "SMTP settings",
|
|
105
|
+
"kind": 15,
|
|
106
|
+
"detail": "SMTP email config",
|
|
107
|
+
"documentation": {
|
|
108
|
+
"value": "SMTP server configuration for email."
|
|
109
|
+
},
|
|
110
|
+
"insertText": "SMTP_HOST=${1:smtp.gmail.com}\nSMTP_PORT=${2:587}\nSMTP_USER=${3:user@example.com}\nSMTP_PASS=${4:password}",
|
|
111
|
+
"insertTextRules": 4,
|
|
112
|
+
"sortText": "02_smtp"
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"label": "AWS credentials",
|
|
116
|
+
"kind": 15,
|
|
117
|
+
"detail": "AWS credentials",
|
|
118
|
+
"documentation": {
|
|
119
|
+
"value": "AWS access credentials."
|
|
120
|
+
},
|
|
121
|
+
"insertText": "AWS_ACCESS_KEY_ID=${1:your-access-key}\nAWS_SECRET_ACCESS_KEY=${2:your-secret-key}\nAWS_REGION=${3:us-east-1}",
|
|
122
|
+
"insertTextRules": 4,
|
|
123
|
+
"sortText": "02_aws"
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
"label": "LOG_LEVEL",
|
|
127
|
+
"kind": 6,
|
|
128
|
+
"detail": "Log level",
|
|
129
|
+
"documentation": {
|
|
130
|
+
"value": "Application logging level."
|
|
131
|
+
},
|
|
132
|
+
"insertText": "LOG_LEVEL=${1:info}",
|
|
133
|
+
"insertTextRules": 4,
|
|
134
|
+
"sortText": "02_log"
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"label": "CORS_ORIGIN",
|
|
138
|
+
"kind": 6,
|
|
139
|
+
"detail": "CORS origin",
|
|
140
|
+
"documentation": {
|
|
141
|
+
"value": "Allowed CORS origins."
|
|
142
|
+
},
|
|
143
|
+
"insertText": "CORS_ORIGIN=${1:http://localhost:3000}",
|
|
144
|
+
"insertTextRules": 4,
|
|
145
|
+
"sortText": "02_cors"
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"label": "JWT_SECRET",
|
|
149
|
+
"kind": 6,
|
|
150
|
+
"detail": "JWT secret",
|
|
151
|
+
"documentation": {
|
|
152
|
+
"value": "JSON Web Token signing secret."
|
|
153
|
+
},
|
|
154
|
+
"insertText": "JWT_SECRET=${1:your-jwt-secret}\nJWT_EXPIRES_IN=${2:7d}",
|
|
155
|
+
"insertTextRules": 4,
|
|
156
|
+
"sortText": "02_jwt"
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
"label": ".env template",
|
|
160
|
+
"kind": 15,
|
|
161
|
+
"detail": "Full .env template",
|
|
162
|
+
"documentation": {
|
|
163
|
+
"value": "A common .env file template."
|
|
164
|
+
},
|
|
165
|
+
"insertText": "# Application\nNODE_ENV=development\nPORT=3000\n\n# Database\nDATABASE_URL=postgres://user:pass@localhost:5432/mydb\n\n# Auth\nJWT_SECRET=change-me-in-production\n\n# External Services\n# API_KEY=your-key-here",
|
|
166
|
+
"insertTextRules": 4,
|
|
167
|
+
"sortText": "03_template"
|
|
168
|
+
}
|
|
169
|
+
]
|
|
170
|
+
}
|