@enjoys/context-engine 1.0.3 → 1.0.5
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,225 @@
|
|
|
1
|
+
{
|
|
2
|
+
"language": "powershell",
|
|
3
|
+
"completions": [
|
|
4
|
+
{
|
|
5
|
+
"label": "function",
|
|
6
|
+
"kind": 15,
|
|
7
|
+
"detail": "Function",
|
|
8
|
+
"documentation": {
|
|
9
|
+
"value": "Define a PowerShell function."
|
|
10
|
+
},
|
|
11
|
+
"insertText": "function ${1:Name} {\n param(\n [Parameter(Mandatory)]\n [string]$${2:Param}\n )\n ${3:# body}\n}",
|
|
12
|
+
"insertTextRules": 4,
|
|
13
|
+
"sortText": "00_func"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"label": "if",
|
|
17
|
+
"kind": 15,
|
|
18
|
+
"detail": "If statement",
|
|
19
|
+
"documentation": {
|
|
20
|
+
"value": "Conditional if statement."
|
|
21
|
+
},
|
|
22
|
+
"insertText": "if (${1:condition}) {\n ${2:# commands}\n}",
|
|
23
|
+
"insertTextRules": 4,
|
|
24
|
+
"sortText": "00_if"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"label": "if-else",
|
|
28
|
+
"kind": 15,
|
|
29
|
+
"detail": "If-else",
|
|
30
|
+
"documentation": {
|
|
31
|
+
"value": "If-else conditional."
|
|
32
|
+
},
|
|
33
|
+
"insertText": "if (${1:condition}) {\n ${2:# true}\n} else {\n ${3:# false}\n}",
|
|
34
|
+
"insertTextRules": 4,
|
|
35
|
+
"sortText": "00_ifelse"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"label": "foreach",
|
|
39
|
+
"kind": 15,
|
|
40
|
+
"detail": "ForEach loop",
|
|
41
|
+
"documentation": {
|
|
42
|
+
"value": "Iterate over a collection."
|
|
43
|
+
},
|
|
44
|
+
"insertText": "foreach ($${1:item} in $${2:collection}) {\n ${3:# body}\n}",
|
|
45
|
+
"insertTextRules": 4,
|
|
46
|
+
"sortText": "01_foreach"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"label": "for",
|
|
50
|
+
"kind": 15,
|
|
51
|
+
"detail": "For loop",
|
|
52
|
+
"documentation": {
|
|
53
|
+
"value": "Traditional for loop."
|
|
54
|
+
},
|
|
55
|
+
"insertText": "for ($${1:i} = 0; $${1:i} -lt ${2:10}; $${1:i}++) {\n ${3:# body}\n}",
|
|
56
|
+
"insertTextRules": 4,
|
|
57
|
+
"sortText": "01_for"
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"label": "try-catch",
|
|
61
|
+
"kind": 15,
|
|
62
|
+
"detail": "Try-catch",
|
|
63
|
+
"documentation": {
|
|
64
|
+
"value": "Error handling block."
|
|
65
|
+
},
|
|
66
|
+
"insertText": "try {\n ${1:# commands}\n} catch {\n Write-Error $_.Exception.Message\n}",
|
|
67
|
+
"insertTextRules": 4,
|
|
68
|
+
"sortText": "01_try"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"label": "switch",
|
|
72
|
+
"kind": 15,
|
|
73
|
+
"detail": "Switch statement",
|
|
74
|
+
"documentation": {
|
|
75
|
+
"value": "Switch pattern matching."
|
|
76
|
+
},
|
|
77
|
+
"insertText": "switch ($${1:var}) {\n '${2:value1}' { ${3:# action} }\n '${4:value2}' { ${5:# action} }\n default { ${6:# default} }\n}",
|
|
78
|
+
"insertTextRules": 4,
|
|
79
|
+
"sortText": "01_switch"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"label": "param block",
|
|
83
|
+
"kind": 15,
|
|
84
|
+
"detail": "Parameter block",
|
|
85
|
+
"documentation": {
|
|
86
|
+
"value": "Script/function parameter block."
|
|
87
|
+
},
|
|
88
|
+
"insertText": "param(\n [Parameter(Mandatory)]\n [string]$${1:Name},\n\n [Parameter()]\n [int]$${2:Count} = ${3:10}\n)",
|
|
89
|
+
"insertTextRules": 4,
|
|
90
|
+
"sortText": "02_param"
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"label": "Get-Content",
|
|
94
|
+
"kind": 14,
|
|
95
|
+
"detail": "Read file",
|
|
96
|
+
"documentation": {
|
|
97
|
+
"value": "Read the contents of a file."
|
|
98
|
+
},
|
|
99
|
+
"insertText": "Get-Content -Path ${1:file.txt}",
|
|
100
|
+
"insertTextRules": 4,
|
|
101
|
+
"sortText": "03_gc"
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"label": "Set-Content",
|
|
105
|
+
"kind": 14,
|
|
106
|
+
"detail": "Write file",
|
|
107
|
+
"documentation": {
|
|
108
|
+
"value": "Write content to a file."
|
|
109
|
+
},
|
|
110
|
+
"insertText": "Set-Content -Path ${1:file.txt} -Value ${2:$content}",
|
|
111
|
+
"insertTextRules": 4,
|
|
112
|
+
"sortText": "03_sc"
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"label": "Get-ChildItem",
|
|
116
|
+
"kind": 14,
|
|
117
|
+
"detail": "List files (ls/dir)",
|
|
118
|
+
"documentation": {
|
|
119
|
+
"value": "List files and directories."
|
|
120
|
+
},
|
|
121
|
+
"insertText": "Get-ChildItem -Path ${1:.} -Recurse",
|
|
122
|
+
"insertTextRules": 4,
|
|
123
|
+
"sortText": "03_gci"
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
"label": "Invoke-WebRequest",
|
|
127
|
+
"kind": 14,
|
|
128
|
+
"detail": "HTTP request (curl)",
|
|
129
|
+
"documentation": {
|
|
130
|
+
"value": "Make an HTTP request."
|
|
131
|
+
},
|
|
132
|
+
"insertText": "Invoke-WebRequest -Uri ${1:https://api.example.com} -Method ${2:Get}",
|
|
133
|
+
"insertTextRules": 4,
|
|
134
|
+
"sortText": "03_iwr"
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"label": "Select-Object",
|
|
138
|
+
"kind": 14,
|
|
139
|
+
"detail": "Select properties",
|
|
140
|
+
"documentation": {
|
|
141
|
+
"value": "Select specific properties from objects."
|
|
142
|
+
},
|
|
143
|
+
"insertText": "| Select-Object ${1:Name, Length}",
|
|
144
|
+
"insertTextRules": 4,
|
|
145
|
+
"sortText": "04_select"
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"label": "Where-Object",
|
|
149
|
+
"kind": 14,
|
|
150
|
+
"detail": "Filter objects",
|
|
151
|
+
"documentation": {
|
|
152
|
+
"value": "Filter objects by condition."
|
|
153
|
+
},
|
|
154
|
+
"insertText": "| Where-Object { $_.${1:Name} -${2:eq} ${3:value} }",
|
|
155
|
+
"insertTextRules": 4,
|
|
156
|
+
"sortText": "04_where"
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
"label": "ForEach-Object",
|
|
160
|
+
"kind": 14,
|
|
161
|
+
"detail": "Pipeline foreach",
|
|
162
|
+
"documentation": {
|
|
163
|
+
"value": "Process each item in the pipeline."
|
|
164
|
+
},
|
|
165
|
+
"insertText": "| ForEach-Object { ${1:$_} }",
|
|
166
|
+
"insertTextRules": 4,
|
|
167
|
+
"sortText": "04_foreachobj"
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
"label": "Get-Service",
|
|
171
|
+
"kind": 14,
|
|
172
|
+
"detail": "List services",
|
|
173
|
+
"documentation": {
|
|
174
|
+
"value": "Get Windows services."
|
|
175
|
+
},
|
|
176
|
+
"insertText": "Get-Service | Where-Object { $_.Status -eq '${1:Running}' }",
|
|
177
|
+
"insertTextRules": 4,
|
|
178
|
+
"sortText": "05_service"
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
"label": "Start-Process",
|
|
182
|
+
"kind": 14,
|
|
183
|
+
"detail": "Start process",
|
|
184
|
+
"documentation": {
|
|
185
|
+
"value": "Start a new process."
|
|
186
|
+
},
|
|
187
|
+
"insertText": "Start-Process -FilePath ${1:notepad} -ArgumentList ${2:file.txt}",
|
|
188
|
+
"insertTextRules": 4,
|
|
189
|
+
"sortText": "05_start"
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
"label": "Get-Process",
|
|
193
|
+
"kind": 14,
|
|
194
|
+
"detail": "List processes",
|
|
195
|
+
"documentation": {
|
|
196
|
+
"value": "Get running processes."
|
|
197
|
+
},
|
|
198
|
+
"insertText": "Get-Process | Sort-Object -Property CPU -Descending | Select-Object -First ${1:10}",
|
|
199
|
+
"insertTextRules": 4,
|
|
200
|
+
"sortText": "05_process"
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
"label": "New-Item",
|
|
204
|
+
"kind": 14,
|
|
205
|
+
"detail": "Create file/directory",
|
|
206
|
+
"documentation": {
|
|
207
|
+
"value": "Create a new file or directory."
|
|
208
|
+
},
|
|
209
|
+
"insertText": "New-Item -Path ${1:path} -ItemType ${2:Directory}",
|
|
210
|
+
"insertTextRules": 4,
|
|
211
|
+
"sortText": "05_newitem"
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
"label": "hashtable",
|
|
215
|
+
"kind": 15,
|
|
216
|
+
"detail": "Hash table",
|
|
217
|
+
"documentation": {
|
|
218
|
+
"value": "Create a hash table (dictionary)."
|
|
219
|
+
},
|
|
220
|
+
"insertText": "$${1:hash} = @{\n ${2:Key1} = '${3:Value1}'\n ${4:Key2} = '${5:Value2}'\n}",
|
|
221
|
+
"insertTextRules": 4,
|
|
222
|
+
"sortText": "02_hash"
|
|
223
|
+
}
|
|
224
|
+
]
|
|
225
|
+
}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
{
|
|
2
|
+
"language": "protobuf",
|
|
3
|
+
"completions": [
|
|
4
|
+
{
|
|
5
|
+
"label": "syntax",
|
|
6
|
+
"kind": 15,
|
|
7
|
+
"detail": "Proto3 syntax",
|
|
8
|
+
"documentation": {
|
|
9
|
+
"value": "Declare proto3 syntax."
|
|
10
|
+
},
|
|
11
|
+
"insertText": "syntax = \"proto3\";",
|
|
12
|
+
"insertTextRules": 4,
|
|
13
|
+
"sortText": "00_syntax"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"label": "package",
|
|
17
|
+
"kind": 15,
|
|
18
|
+
"detail": "Package declaration",
|
|
19
|
+
"documentation": {
|
|
20
|
+
"value": "Declare the package namespace."
|
|
21
|
+
},
|
|
22
|
+
"insertText": "package ${1:mypackage};",
|
|
23
|
+
"insertTextRules": 4,
|
|
24
|
+
"sortText": "00_package"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"label": "import",
|
|
28
|
+
"kind": 15,
|
|
29
|
+
"detail": "Import proto file",
|
|
30
|
+
"documentation": {
|
|
31
|
+
"value": "Import definitions from another proto file."
|
|
32
|
+
},
|
|
33
|
+
"insertText": "import \"${1:google/protobuf/timestamp.proto}\";",
|
|
34
|
+
"insertTextRules": 4,
|
|
35
|
+
"sortText": "00_import"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"label": "option go_package",
|
|
39
|
+
"kind": 15,
|
|
40
|
+
"detail": "Go package option",
|
|
41
|
+
"documentation": {
|
|
42
|
+
"value": "Set the Go package path."
|
|
43
|
+
},
|
|
44
|
+
"insertText": "option go_package = \"${1:github.com/user/project/pb}\";",
|
|
45
|
+
"insertTextRules": 4,
|
|
46
|
+
"sortText": "00_option"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"label": "message",
|
|
50
|
+
"kind": 7,
|
|
51
|
+
"detail": "Message type",
|
|
52
|
+
"documentation": {
|
|
53
|
+
"value": "Define a protobuf message."
|
|
54
|
+
},
|
|
55
|
+
"insertText": "message ${1:Name} {\n ${2:string name} = 1;\n ${3:int32 id} = 2;\n}",
|
|
56
|
+
"insertTextRules": 4,
|
|
57
|
+
"sortText": "01_message"
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"label": "enum",
|
|
61
|
+
"kind": 13,
|
|
62
|
+
"detail": "Enum type",
|
|
63
|
+
"documentation": {
|
|
64
|
+
"value": "Define an enum."
|
|
65
|
+
},
|
|
66
|
+
"insertText": "enum ${1:Status} {\n ${1:STATUS}_UNSPECIFIED = 0;\n ${1:STATUS}_${2:ACTIVE} = 1;\n ${1:STATUS}_${3:INACTIVE} = 2;\n}",
|
|
67
|
+
"insertTextRules": 4,
|
|
68
|
+
"sortText": "01_enum"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"label": "service",
|
|
72
|
+
"kind": 7,
|
|
73
|
+
"detail": "gRPC service",
|
|
74
|
+
"documentation": {
|
|
75
|
+
"value": "Define a gRPC service."
|
|
76
|
+
},
|
|
77
|
+
"insertText": "service ${1:UserService} {\n rpc ${2:GetUser}(${3:GetUserRequest}) returns (${4:GetUserResponse});\n rpc ${5:ListUsers}(${6:ListUsersRequest}) returns (${7:ListUsersResponse});\n}",
|
|
78
|
+
"insertTextRules": 4,
|
|
79
|
+
"sortText": "01_service"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"label": "rpc",
|
|
83
|
+
"kind": 15,
|
|
84
|
+
"detail": "RPC method",
|
|
85
|
+
"documentation": {
|
|
86
|
+
"value": "Define an RPC method."
|
|
87
|
+
},
|
|
88
|
+
"insertText": "rpc ${1:MethodName}(${2:Request}) returns (${3:Response});",
|
|
89
|
+
"insertTextRules": 4,
|
|
90
|
+
"sortText": "02_rpc"
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"label": "rpc stream",
|
|
94
|
+
"kind": 15,
|
|
95
|
+
"detail": "Streaming RPC",
|
|
96
|
+
"documentation": {
|
|
97
|
+
"value": "Define a streaming RPC method."
|
|
98
|
+
},
|
|
99
|
+
"insertText": "rpc ${1:StreamData}(${2:stream} ${3:Request}) returns (${4:stream} ${5:Response});",
|
|
100
|
+
"insertTextRules": 4,
|
|
101
|
+
"sortText": "02_rpcstream"
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"label": "repeated",
|
|
105
|
+
"kind": 14,
|
|
106
|
+
"detail": "Repeated field (list)",
|
|
107
|
+
"documentation": {
|
|
108
|
+
"value": "A repeated field is a list/array."
|
|
109
|
+
},
|
|
110
|
+
"insertText": "repeated ${1:string} ${2:items} = ${3:1};",
|
|
111
|
+
"insertTextRules": 4,
|
|
112
|
+
"sortText": "03_repeated"
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"label": "map",
|
|
116
|
+
"kind": 14,
|
|
117
|
+
"detail": "Map field",
|
|
118
|
+
"documentation": {
|
|
119
|
+
"value": "A map field for key-value pairs."
|
|
120
|
+
},
|
|
121
|
+
"insertText": "map<${1:string}, ${2:string}> ${3:metadata} = ${4:1};",
|
|
122
|
+
"insertTextRules": 4,
|
|
123
|
+
"sortText": "03_map"
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
"label": "oneof",
|
|
127
|
+
"kind": 15,
|
|
128
|
+
"detail": "Oneof field",
|
|
129
|
+
"documentation": {
|
|
130
|
+
"value": "Only one of the fields can be set at a time."
|
|
131
|
+
},
|
|
132
|
+
"insertText": "oneof ${1:payload} {\n ${2:string text} = ${3:1};\n ${4:bytes data} = ${5:2};\n}",
|
|
133
|
+
"insertTextRules": 4,
|
|
134
|
+
"sortText": "03_oneof"
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"label": "timestamp",
|
|
138
|
+
"kind": 15,
|
|
139
|
+
"detail": "Timestamp import",
|
|
140
|
+
"documentation": {
|
|
141
|
+
"value": "Use Google's Timestamp well-known type."
|
|
142
|
+
},
|
|
143
|
+
"insertText": "import \"google/protobuf/timestamp.proto\";\n\n// In message:\ngoogle.protobuf.Timestamp ${1:created_at} = ${2:1};",
|
|
144
|
+
"insertTextRules": 4,
|
|
145
|
+
"sortText": "04_timestamp"
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"label": "nested message",
|
|
149
|
+
"kind": 7,
|
|
150
|
+
"detail": "Nested message",
|
|
151
|
+
"documentation": {
|
|
152
|
+
"value": "Define a message inside another message."
|
|
153
|
+
},
|
|
154
|
+
"insertText": "message ${1:Outer} {\n message ${2:Inner} {\n ${3:string value} = 1;\n }\n ${2:Inner} ${4:inner} = 1;\n}",
|
|
155
|
+
"insertTextRules": 4,
|
|
156
|
+
"sortText": "04_nested"
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
"label": "CRUD service",
|
|
160
|
+
"kind": 15,
|
|
161
|
+
"detail": "Full CRUD service",
|
|
162
|
+
"documentation": {
|
|
163
|
+
"value": "Complete CRUD gRPC service template."
|
|
164
|
+
},
|
|
165
|
+
"insertText": "service ${1:UserService} {\n rpc Create${1:User}(Create${1:User}Request) returns (${1:User});\n rpc Get${1:User}(Get${1:User}Request) returns (${1:User});\n rpc List${1:User}s(List${1:User}sRequest) returns (List${1:User}sResponse);\n rpc Update${1:User}(Update${1:User}Request) returns (${1:User});\n rpc Delete${1:User}(Delete${1:User}Request) returns (google.protobuf.Empty);\n}",
|
|
166
|
+
"insertTextRules": 4,
|
|
167
|
+
"sortText": "05_crud"
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
"label": "proto file template",
|
|
171
|
+
"kind": 15,
|
|
172
|
+
"detail": "Complete proto file",
|
|
173
|
+
"documentation": {
|
|
174
|
+
"value": "Full proto3 file template."
|
|
175
|
+
},
|
|
176
|
+
"insertText": "syntax = \"proto3\";\n\npackage ${1:mypackage};\n\noption go_package = \"${2:github.com/user/project/pb}\";\n\nmessage ${3:MyMessage} {\n string ${4:name} = 1;\n int32 ${5:id} = 2;\n}",
|
|
177
|
+
"insertTextRules": 4,
|
|
178
|
+
"sortText": "06_template"
|
|
179
|
+
}
|
|
180
|
+
]
|
|
181
|
+
}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
{
|
|
2
|
+
"language": "ssh_config",
|
|
3
|
+
"completions": [
|
|
4
|
+
{
|
|
5
|
+
"label": "Host block",
|
|
6
|
+
"kind": 15,
|
|
7
|
+
"detail": "SSH host configuration",
|
|
8
|
+
"documentation": {
|
|
9
|
+
"value": "Configure settings for a specific host or pattern."
|
|
10
|
+
},
|
|
11
|
+
"insertText": "Host ${1:myserver}\n HostName ${2:192.168.1.100}\n User ${3:root}\n Port ${4:22}\n IdentityFile ${5:~/.ssh/id_rsa}",
|
|
12
|
+
"insertTextRules": 4,
|
|
13
|
+
"sortText": "00_host"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"label": "Host *",
|
|
17
|
+
"kind": 15,
|
|
18
|
+
"detail": "Global defaults",
|
|
19
|
+
"documentation": {
|
|
20
|
+
"value": "Set default options for all hosts."
|
|
21
|
+
},
|
|
22
|
+
"insertText": "Host *\n ServerAliveInterval 60\n ServerAliveCountMax 3\n AddKeysToAgent yes",
|
|
23
|
+
"insertTextRules": 4,
|
|
24
|
+
"sortText": "00_hostall"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"label": "HostName",
|
|
28
|
+
"kind": 14,
|
|
29
|
+
"detail": "Real hostname/IP",
|
|
30
|
+
"documentation": {
|
|
31
|
+
"value": "The actual hostname or IP address to connect to."
|
|
32
|
+
},
|
|
33
|
+
"insertText": "HostName ${1:example.com}",
|
|
34
|
+
"insertTextRules": 4,
|
|
35
|
+
"sortText": "01_hostname"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"label": "User",
|
|
39
|
+
"kind": 14,
|
|
40
|
+
"detail": "Login user",
|
|
41
|
+
"documentation": {
|
|
42
|
+
"value": "The username to log in as."
|
|
43
|
+
},
|
|
44
|
+
"insertText": "User ${1:root}",
|
|
45
|
+
"insertTextRules": 4,
|
|
46
|
+
"sortText": "01_user"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"label": "Port",
|
|
50
|
+
"kind": 14,
|
|
51
|
+
"detail": "SSH port",
|
|
52
|
+
"documentation": {
|
|
53
|
+
"value": "The port number to connect on."
|
|
54
|
+
},
|
|
55
|
+
"insertText": "Port ${1:22}",
|
|
56
|
+
"insertTextRules": 4,
|
|
57
|
+
"sortText": "01_port"
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"label": "IdentityFile",
|
|
61
|
+
"kind": 14,
|
|
62
|
+
"detail": "Private key path",
|
|
63
|
+
"documentation": {
|
|
64
|
+
"value": "Path to the private key file for authentication."
|
|
65
|
+
},
|
|
66
|
+
"insertText": "IdentityFile ${1:~/.ssh/id_ed25519}",
|
|
67
|
+
"insertTextRules": 4,
|
|
68
|
+
"sortText": "01_identity"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"label": "ProxyJump",
|
|
72
|
+
"kind": 14,
|
|
73
|
+
"detail": "Jump host (bastion)",
|
|
74
|
+
"documentation": {
|
|
75
|
+
"value": "Connect through a jump/bastion host."
|
|
76
|
+
},
|
|
77
|
+
"insertText": "ProxyJump ${1:bastion}",
|
|
78
|
+
"insertTextRules": 4,
|
|
79
|
+
"sortText": "02_proxyjump"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"label": "LocalForward",
|
|
83
|
+
"kind": 14,
|
|
84
|
+
"detail": "Port forward (local)",
|
|
85
|
+
"documentation": {
|
|
86
|
+
"value": "Forward a local port to a remote destination."
|
|
87
|
+
},
|
|
88
|
+
"insertText": "LocalForward ${1:8080} ${2:localhost}:${3:80}",
|
|
89
|
+
"insertTextRules": 4,
|
|
90
|
+
"sortText": "02_localfwd"
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"label": "RemoteForward",
|
|
94
|
+
"kind": 14,
|
|
95
|
+
"detail": "Port forward (remote)",
|
|
96
|
+
"documentation": {
|
|
97
|
+
"value": "Forward a remote port to a local destination."
|
|
98
|
+
},
|
|
99
|
+
"insertText": "RemoteForward ${1:9090} ${2:localhost}:${3:3000}",
|
|
100
|
+
"insertTextRules": 4,
|
|
101
|
+
"sortText": "02_remotefwd"
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"label": "DynamicForward",
|
|
105
|
+
"kind": 14,
|
|
106
|
+
"detail": "SOCKS proxy",
|
|
107
|
+
"documentation": {
|
|
108
|
+
"value": "Set up a SOCKS proxy on a local port."
|
|
109
|
+
},
|
|
110
|
+
"insertText": "DynamicForward ${1:1080}",
|
|
111
|
+
"insertTextRules": 4,
|
|
112
|
+
"sortText": "02_dynamicfwd"
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"label": "ForwardAgent",
|
|
116
|
+
"kind": 14,
|
|
117
|
+
"detail": "Agent forwarding",
|
|
118
|
+
"documentation": {
|
|
119
|
+
"value": "Forward the SSH agent to the remote host."
|
|
120
|
+
},
|
|
121
|
+
"insertText": "ForwardAgent yes",
|
|
122
|
+
"insertTextRules": 4,
|
|
123
|
+
"sortText": "03_fwdagent"
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
"label": "ServerAliveInterval",
|
|
127
|
+
"kind": 14,
|
|
128
|
+
"detail": "Keep-alive interval",
|
|
129
|
+
"documentation": {
|
|
130
|
+
"value": "Send a keep-alive packet every N seconds."
|
|
131
|
+
},
|
|
132
|
+
"insertText": "ServerAliveInterval ${1:60}",
|
|
133
|
+
"insertTextRules": 4,
|
|
134
|
+
"sortText": "03_alive"
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"label": "StrictHostKeyChecking",
|
|
138
|
+
"kind": 14,
|
|
139
|
+
"detail": "Host key checking",
|
|
140
|
+
"documentation": {
|
|
141
|
+
"value": "Control host key verification behavior."
|
|
142
|
+
},
|
|
143
|
+
"insertText": "StrictHostKeyChecking ${1:ask}",
|
|
144
|
+
"insertTextRules": 4,
|
|
145
|
+
"sortText": "03_strict"
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"label": "bastion/jump host",
|
|
149
|
+
"kind": 15,
|
|
150
|
+
"detail": "Bastion host setup",
|
|
151
|
+
"documentation": {
|
|
152
|
+
"value": "Configure access through a bastion/jump host."
|
|
153
|
+
},
|
|
154
|
+
"insertText": "Host ${1:bastion}\n HostName ${2:bastion.example.com}\n User ${3:admin}\n IdentityFile ~/.ssh/id_ed25519\n\nHost ${4:internal-server}\n HostName ${5:10.0.1.50}\n User ${6:deploy}\n ProxyJump ${1:bastion}",
|
|
155
|
+
"insertTextRules": 4,
|
|
156
|
+
"sortText": "04_bastion"
|
|
157
|
+
}
|
|
158
|
+
]
|
|
159
|
+
}
|