@enjoys/context-engine 1.4.1 → 1.4.2

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.
Files changed (424) hide show
  1. package/data/codeLens/awk.json +1 -1
  2. package/data/codeLens/azcli.json +10 -10
  3. package/data/codeLens/c.json +1 -1
  4. package/data/codeLens/caddy.json +1 -1
  5. package/data/codeLens/crontab.json +1 -1
  6. package/data/codeLens/doctest.json +10 -10
  7. package/data/codeLens/hcl.json +1 -1
  8. package/data/codeLens/html.json +1 -1
  9. package/data/codeLens/lua.json +1 -1
  10. package/data/codeLens/nginx.json +1 -1
  11. package/data/codeLens/pla.json +10 -10
  12. package/data/codeLens/xml.json +1 -1
  13. package/data/commands/angular.json +670 -312
  14. package/data/commands/c.json +30 -30
  15. package/data/commands/cpp.json +30 -30
  16. package/data/commands/crontab.json +25 -30
  17. package/data/commands/cypher.json +26 -30
  18. package/data/commands/dockerfile.json +26 -2
  19. package/data/commands/doctest.json +23 -24
  20. package/data/commands/dotenv.json +24 -11
  21. package/data/commands/ecl.json +26 -30
  22. package/data/commands/flow9.json +24 -24
  23. package/data/commands/freemarker2.json +24 -18
  24. package/data/commands/graphql.json +25 -11
  25. package/data/commands/html.json +25 -11
  26. package/data/commands/ini.json +26 -12
  27. package/data/commands/javascript.json +29 -30
  28. package/data/commands/less.json +25 -29
  29. package/data/commands/lexon.json +23 -11
  30. package/data/commands/liquid.json +26 -11
  31. package/data/commands/m3.json +26 -12
  32. package/data/commands/manifest.json +35 -731
  33. package/data/commands/markdown.json +26 -12
  34. package/data/commands/mdx.json +23 -10
  35. package/data/commands/mips.json +26 -18
  36. package/data/commands/msdax.json +23 -11
  37. package/data/commands/nestjs.json +516 -273
  38. package/data/commands/nextjs.json +250 -123
  39. package/data/commands/objective-c.json +26 -24
  40. package/data/commands/pascal.json +27 -24
  41. package/data/commands/pascaligo.json +26 -24
  42. package/data/commands/perl.json +30 -30
  43. package/data/commands/pla.json +23 -11
  44. package/data/commands/postiats.json +26 -24
  45. package/data/commands/powerquery.json +23 -11
  46. package/data/commands/powershell.json +28 -30
  47. package/data/commands/protobuf.json +27 -30
  48. package/data/commands/qsharp.json +26 -30
  49. package/data/commands/razor.json +25 -29
  50. package/data/commands/react.json +244 -210
  51. package/data/commands/redshift.json +27 -18
  52. package/data/commands/restructuredtext.json +29 -30
  53. package/data/commands/sb.json +23 -11
  54. package/data/commands/scheme.json +25 -18
  55. package/data/commands/scss.json +26 -29
  56. package/data/commands/shadcn.json +564 -410
  57. package/data/commands/sol.json +27 -30
  58. package/data/commands/sparql.json +25 -11
  59. package/data/commands/sql.json +16 -2
  60. package/data/commands/ssh_config.json +31 -30
  61. package/data/commands/st.json +23 -11
  62. package/data/commands/systemverilog.json +26 -24
  63. package/data/commands/tailwindcss.json +60 -53
  64. package/data/commands/tcl.json +23 -18
  65. package/data/commands/toml.json +25 -11
  66. package/data/commands/twig.json +23 -10
  67. package/data/commands/vb.json +27 -24
  68. package/data/commands/wgsl.json +24 -11
  69. package/data/commands/yaml.json +29 -30
  70. package/data/completion/awk.json +906 -202
  71. package/data/completion/azcli.json +886 -237
  72. package/data/completion/bicep.json +862 -367
  73. package/data/completion/crontab.json +906 -202
  74. package/data/completion/dotenv.json +895 -169
  75. package/data/completion/graphql.json +895 -180
  76. package/data/completion/hcl.json +906 -191
  77. package/data/completion/ini.json +906 -136
  78. package/data/completion/json.json +895 -169
  79. package/data/completion/lexon.json +856 -295
  80. package/data/completion/makefile.json +906 -202
  81. package/data/completion/markdown.json +906 -224
  82. package/data/completion/mdx.json +895 -87
  83. package/data/completion/mips.json +872 -377
  84. package/data/completion/perl.json +961 -202
  85. package/data/completion/pla.json +895 -154
  86. package/data/completion/powershell.json +906 -224
  87. package/data/completion/protobuf.json +884 -180
  88. package/data/completion/ssh_config.json +906 -158
  89. package/data/completion/xml.json +906 -158
  90. package/data/definition/abap.json +127 -1
  91. package/data/definition/apex.json +97 -1
  92. package/data/definition/coffee.json +51 -1
  93. package/data/definition/dart.json +105 -1
  94. package/data/definition/elixir.json +115 -1
  95. package/data/definition/flow9.json +208 -1
  96. package/data/definition/freemarker2.json +283 -1
  97. package/data/definition/html.json +853 -558
  98. package/data/definition/java.json +1127 -183
  99. package/data/definition/kotlin.json +72 -1
  100. package/data/definition/r.json +692 -83
  101. package/data/definition/ruby.json +789 -669
  102. package/data/definition/rust.json +852 -206
  103. package/data/definition/sb.json +339 -1
  104. package/data/definition/st.json +367 -1
  105. package/data/documentRangeFormatting/nestjs.json +57 -17
  106. package/data/documentRangeFormatting/nextjs.json +57 -17
  107. package/data/documentRangeFormatting/react.json +82 -78
  108. package/data/documentSymbol/abap.json +54 -12
  109. package/data/documentSymbol/apex.json +40 -10
  110. package/data/documentSymbol/awk.json +15 -1
  111. package/data/documentSymbol/bicep.json +39 -39
  112. package/data/documentSymbol/c.json +1 -1
  113. package/data/documentSymbol/clojure.json +46 -46
  114. package/data/documentSymbol/css.json +96 -96
  115. package/data/documentSymbol/dart.json +109 -19
  116. package/data/documentSymbol/dockerfile.json +1 -1
  117. package/data/documentSymbol/elixir.json +39 -39
  118. package/data/documentSymbol/go.json +1 -1
  119. package/data/documentSymbol/graphql.json +1 -1
  120. package/data/documentSymbol/hcl.json +1 -1
  121. package/data/documentSymbol/html.json +29 -1
  122. package/data/documentSymbol/java.json +1 -1
  123. package/data/documentSymbol/javascript.json +1 -1
  124. package/data/documentSymbol/julia.json +46 -46
  125. package/data/documentSymbol/kotlin.json +74 -14
  126. package/data/documentSymbol/less.json +25 -25
  127. package/data/documentSymbol/lua.json +22 -1
  128. package/data/documentSymbol/makefile.json +15 -1
  129. package/data/documentSymbol/markdown.json +36 -1
  130. package/data/documentSymbol/mysql.json +32 -32
  131. package/data/documentSymbol/nginx.json +1 -1
  132. package/data/documentSymbol/pascal.json +46 -46
  133. package/data/documentSymbol/perl.json +1 -1
  134. package/data/documentSymbol/pgsql.json +39 -39
  135. package/data/documentSymbol/php.json +1 -1
  136. package/data/documentSymbol/powershell.json +1 -1
  137. package/data/documentSymbol/protobuf.json +1 -1
  138. package/data/documentSymbol/python.json +1 -1
  139. package/data/documentSymbol/r.json +67 -67
  140. package/data/documentSymbol/redshift.json +60 -18
  141. package/data/documentSymbol/ruby.json +1 -1
  142. package/data/documentSymbol/rust.json +1 -1
  143. package/data/documentSymbol/scala.json +116 -20
  144. package/data/documentSymbol/scheme.json +25 -25
  145. package/data/documentSymbol/scss.json +39 -39
  146. package/data/documentSymbol/shell.json +1 -1
  147. package/data/documentSymbol/sql.json +1 -1
  148. package/data/documentSymbol/swift.json +88 -16
  149. package/data/documentSymbol/typescript.json +1 -1
  150. package/data/documentSymbol/vb.json +53 -53
  151. package/data/documentSymbol/yaml.json +1 -1
  152. package/data/foldingRange/angular.json +100 -99
  153. package/data/foldingRange/nestjs.json +94 -26
  154. package/data/foldingRange/nextjs.json +94 -26
  155. package/data/foldingRange/react.json +118 -120
  156. package/data/foldingRange/shadcn.json +94 -93
  157. package/data/formatting/abap.json +19 -11
  158. package/data/formatting/angular.json +63 -21
  159. package/data/formatting/apex.json +19 -11
  160. package/data/formatting/awk.json +1 -1
  161. package/data/formatting/azcli.json +18 -18
  162. package/data/formatting/bicep.json +18 -18
  163. package/data/formatting/c.json +1 -1
  164. package/data/formatting/caddy.json +1 -1
  165. package/data/formatting/cameligo.json +18 -18
  166. package/data/formatting/clojure.json +18 -18
  167. package/data/formatting/coffee.json +18 -18
  168. package/data/formatting/cpp.json +1 -1
  169. package/data/formatting/crontab.json +1 -1
  170. package/data/formatting/csharp.json +1 -1
  171. package/data/formatting/css.json +73 -73
  172. package/data/formatting/cypher.json +18 -18
  173. package/data/formatting/dart.json +43 -15
  174. package/data/formatting/docker-compose.json +24 -24
  175. package/data/formatting/dockerfile.json +1 -1
  176. package/data/formatting/doctest.json +18 -18
  177. package/data/formatting/dotenv.json +1 -1
  178. package/data/formatting/ecl.json +18 -18
  179. package/data/formatting/elixir.json +43 -18
  180. package/data/formatting/flow9.json +18 -18
  181. package/data/formatting/freemarker2.json +18 -18
  182. package/data/formatting/go.json +1 -1
  183. package/data/formatting/graphql.json +1 -1
  184. package/data/formatting/hcl.json +26 -1
  185. package/data/formatting/html.json +26 -1
  186. package/data/formatting/ini.json +1 -1
  187. package/data/formatting/java.json +1 -1
  188. package/data/formatting/javascript.json +1 -1
  189. package/data/formatting/julia.json +18 -18
  190. package/data/formatting/kotlin.json +33 -13
  191. package/data/formatting/less.json +48 -18
  192. package/data/formatting/lexon.json +18 -18
  193. package/data/formatting/liquid.json +18 -18
  194. package/data/formatting/lua.json +1 -1
  195. package/data/formatting/m3.json +18 -18
  196. package/data/formatting/makefile.json +1 -1
  197. package/data/formatting/markdown.json +26 -1
  198. package/data/formatting/mdx.json +18 -18
  199. package/data/formatting/mips.json +18 -18
  200. package/data/formatting/msdax.json +18 -18
  201. package/data/formatting/mysql.json +43 -18
  202. package/data/formatting/nginx.json +1 -1
  203. package/data/formatting/objective-c.json +18 -18
  204. package/data/formatting/pascal.json +18 -18
  205. package/data/formatting/pascaligo.json +18 -18
  206. package/data/formatting/perl.json +1 -1
  207. package/data/formatting/pgsql.json +43 -18
  208. package/data/formatting/php.json +1 -1
  209. package/data/formatting/pla.json +18 -18
  210. package/data/formatting/postiats.json +18 -18
  211. package/data/formatting/powerquery.json +18 -18
  212. package/data/formatting/powershell.json +1 -1
  213. package/data/formatting/protobuf.json +1 -1
  214. package/data/formatting/python.json +1 -1
  215. package/data/formatting/qsharp.json +18 -18
  216. package/data/formatting/r.json +32 -32
  217. package/data/formatting/razor.json +18 -18
  218. package/data/formatting/redis-cli.json +1 -1
  219. package/data/formatting/redis.json +18 -18
  220. package/data/formatting/redshift.json +43 -18
  221. package/data/formatting/restructuredtext.json +18 -18
  222. package/data/formatting/ruby.json +1 -1
  223. package/data/formatting/rust.json +1 -1
  224. package/data/formatting/sb.json +18 -18
  225. package/data/formatting/scala.json +48 -16
  226. package/data/formatting/scheme.json +18 -18
  227. package/data/formatting/scss.json +48 -18
  228. package/data/formatting/shadcn.json +63 -61
  229. package/data/formatting/shell.json +1 -1
  230. package/data/formatting/sol.json +18 -18
  231. package/data/formatting/sparql.json +18 -18
  232. package/data/formatting/sql.json +1 -1
  233. package/data/formatting/ssh_config.json +1 -1
  234. package/data/formatting/st.json +18 -18
  235. package/data/formatting/swift.json +58 -18
  236. package/data/formatting/systemd.json +1 -1
  237. package/data/formatting/systemverilog.json +18 -18
  238. package/data/formatting/tcl.json +18 -18
  239. package/data/formatting/toml.json +1 -1
  240. package/data/formatting/twig.json +18 -18
  241. package/data/formatting/typescript.json +1 -1
  242. package/data/formatting/vb.json +18 -18
  243. package/data/formatting/wgsl.json +18 -18
  244. package/data/formatting/xml.json +26 -1
  245. package/data/formatting/yaml.json +1 -1
  246. package/data/hover/apex.json +281 -6
  247. package/data/hover/awk.json +251 -6
  248. package/data/hover/crontab.json +251 -6
  249. package/data/hover/dotenv.json +242 -4
  250. package/data/hover/graphql.json +251 -6
  251. package/data/hover/lexon.json +250 -5
  252. package/data/hover/markdown.json +226 -9
  253. package/data/hover/mdx.json +250 -5
  254. package/data/hover/perl.json +251 -6
  255. package/data/hover/pla.json +264 -5
  256. package/data/hover/powershell.json +252 -7
  257. package/data/hover/protobuf.json +251 -6
  258. package/data/hover/redis.json +355 -40
  259. package/data/hover/ssh_config.json +251 -6
  260. package/data/hover/xml.json +231 -7
  261. package/data/inlineCompletions/c.json +49 -1
  262. package/data/inlineCompletions/cpp.json +61 -1
  263. package/data/inlineCompletions/csharp.json +73 -1
  264. package/data/inlineCompletions/css.json +125 -125
  265. package/data/inlineCompletions/dart.json +136 -26
  266. package/data/inlineCompletions/elixir.json +34 -34
  267. package/data/inlineCompletions/go.json +67 -1
  268. package/data/inlineCompletions/html.json +1 -1
  269. package/data/inlineCompletions/java.json +67 -1
  270. package/data/inlineCompletions/javascript.json +97 -1
  271. package/data/inlineCompletions/kotlin.json +88 -18
  272. package/data/inlineCompletions/less.json +76 -28
  273. package/data/inlineCompletions/lua.json +37 -1
  274. package/data/inlineCompletions/mysql.json +34 -34
  275. package/data/inlineCompletions/pgsql.json +34 -34
  276. package/data/inlineCompletions/php.json +43 -1
  277. package/data/inlineCompletions/python.json +73 -1
  278. package/data/inlineCompletions/ruby.json +49 -1
  279. package/data/inlineCompletions/rust.json +61 -1
  280. package/data/inlineCompletions/scala.json +130 -25
  281. package/data/inlineCompletions/scss.json +34 -34
  282. package/data/inlineCompletions/shell.json +1 -1
  283. package/data/inlineCompletions/sql.json +43 -1
  284. package/data/inlineCompletions/swift.json +112 -22
  285. package/data/inlineCompletions/typescript.json +97 -1
  286. package/data/linkedEditingRange/azcli.json +6 -6
  287. package/data/linkedEditingRange/crontab.json +6 -6
  288. package/data/linkedEditingRange/docker-compose.json +6 -6
  289. package/data/linkedEditingRange/doctest.json +6 -6
  290. package/data/linkedEditingRange/dotenv.json +13 -6
  291. package/data/linkedEditingRange/ini.json +13 -6
  292. package/data/linkedEditingRange/json.json +13 -6
  293. package/data/linkedEditingRange/lexon.json +6 -6
  294. package/data/linkedEditingRange/mips.json +6 -6
  295. package/data/linkedEditingRange/msdax.json +6 -6
  296. package/data/linkedEditingRange/nestjs.json +18 -10
  297. package/data/linkedEditingRange/nextjs.json +24 -11
  298. package/data/linkedEditingRange/pla.json +6 -6
  299. package/data/linkedEditingRange/react.json +74 -75
  300. package/data/linkedEditingRange/redis-cli.json +6 -6
  301. package/data/linkedEditingRange/redis.json +6 -6
  302. package/data/linkedEditingRange/ssh_config.json +6 -6
  303. package/data/linkedEditingRange/systemd.json +6 -6
  304. package/data/linkedEditingRange/toml.json +13 -6
  305. package/data/linkedEditingRange/wgsl.json +6 -6
  306. package/data/linkedEditingRange/xml.json +13 -13
  307. package/data/linkedEditingRange/yaml.json +13 -6
  308. package/data/onTypeFormatting/angular.json +63 -14
  309. package/data/onTypeFormatting/nestjs.json +64 -16
  310. package/data/onTypeFormatting/nextjs.json +72 -17
  311. package/data/onTypeFormatting/react.json +148 -127
  312. package/data/onTypeFormatting/shadcn.json +63 -54
  313. package/data/rangeSemanticTokens/angular.json +196 -140
  314. package/data/rangeSemanticTokens/nestjs.json +195 -27
  315. package/data/rangeSemanticTokens/nextjs.json +199 -28
  316. package/data/rangeSemanticTokens/react.json +77 -216
  317. package/data/rangeSemanticTokens/shadcn.json +203 -140
  318. package/data/rename/angular.json +121 -131
  319. package/data/rename/nestjs.json +122 -32
  320. package/data/rename/nextjs.json +116 -31
  321. package/data/rename/react.json +133 -88
  322. package/data/rename/shadcn.json +73 -79
  323. package/data/selectionRange/abap.json +58 -34
  324. package/data/selectionRange/angular.json +126 -95
  325. package/data/selectionRange/apex.json +58 -34
  326. package/data/selectionRange/awk.json +56 -34
  327. package/data/selectionRange/azcli.json +43 -24
  328. package/data/selectionRange/bicep.json +56 -34
  329. package/data/selectionRange/c.json +62 -39
  330. package/data/selectionRange/caddy.json +53 -34
  331. package/data/selectionRange/cameligo.json +56 -34
  332. package/data/selectionRange/clojure.json +57 -34
  333. package/data/selectionRange/coffee.json +59 -34
  334. package/data/selectionRange/cpp.json +73 -44
  335. package/data/selectionRange/crontab.json +39 -29
  336. package/data/selectionRange/csharp.json +69 -39
  337. package/data/selectionRange/css.json +95 -55
  338. package/data/selectionRange/cypher.json +57 -34
  339. package/data/selectionRange/dart.json +65 -34
  340. package/data/selectionRange/docker-compose.json +54 -34
  341. package/data/selectionRange/dockerfile.json +56 -34
  342. package/data/selectionRange/doctest.json +47 -24
  343. package/data/selectionRange/dotenv.json +33 -24
  344. package/data/selectionRange/ecl.json +58 -34
  345. package/data/selectionRange/elixir.json +63 -34
  346. package/data/selectionRange/flow9.json +57 -34
  347. package/data/selectionRange/freemarker2.json +58 -34
  348. package/data/selectionRange/go.json +64 -39
  349. package/data/selectionRange/graphql.json +58 -34
  350. package/data/selectionRange/hcl.json +56 -34
  351. package/data/selectionRange/html.json +63 -34
  352. package/data/selectionRange/ini.json +38 -24
  353. package/data/selectionRange/java.json +68 -39
  354. package/data/selectionRange/javascript.json +65 -39
  355. package/data/selectionRange/julia.json +65 -39
  356. package/data/selectionRange/kotlin.json +68 -39
  357. package/data/selectionRange/less.json +58 -34
  358. package/data/selectionRange/lexon.json +38 -24
  359. package/data/selectionRange/liquid.json +58 -34
  360. package/data/selectionRange/lua.json +59 -34
  361. package/data/selectionRange/m3.json +57 -34
  362. package/data/selectionRange/makefile.json +53 -34
  363. package/data/selectionRange/markdown.json +57 -34
  364. package/data/selectionRange/mdx.json +63 -34
  365. package/data/selectionRange/mips.json +43 -29
  366. package/data/selectionRange/msdax.json +52 -34
  367. package/data/selectionRange/mysql.json +51 -34
  368. package/data/selectionRange/nestjs.json +35 -21
  369. package/data/selectionRange/nextjs.json +35 -22
  370. package/data/selectionRange/nginx.json +53 -34
  371. package/data/selectionRange/objective-c.json +64 -39
  372. package/data/selectionRange/pascal.json +53 -34
  373. package/data/selectionRange/pascaligo.json +57 -34
  374. package/data/selectionRange/perl.json +59 -34
  375. package/data/selectionRange/pgsql.json +50 -34
  376. package/data/selectionRange/php.json +65 -39
  377. package/data/selectionRange/pla.json +52 -29
  378. package/data/selectionRange/postiats.json +61 -34
  379. package/data/selectionRange/powerquery.json +56 -34
  380. package/data/selectionRange/powershell.json +65 -39
  381. package/data/selectionRange/protobuf.json +58 -34
  382. package/data/selectionRange/python.json +66 -39
  383. package/data/selectionRange/qsharp.json +62 -39
  384. package/data/selectionRange/r.json +57 -34
  385. package/data/selectionRange/razor.json +63 -34
  386. package/data/selectionRange/react.json +103 -87
  387. package/data/selectionRange/redis-cli.json +38 -24
  388. package/data/selectionRange/redis.json +38 -24
  389. package/data/selectionRange/redshift.json +49 -34
  390. package/data/selectionRange/restructuredtext.json +58 -34
  391. package/data/selectionRange/ruby.json +65 -39
  392. package/data/selectionRange/rust.json +73 -44
  393. package/data/selectionRange/sb.json +43 -29
  394. package/data/selectionRange/scala.json +65 -39
  395. package/data/selectionRange/scheme.json +52 -34
  396. package/data/selectionRange/scss.json +58 -34
  397. package/data/selectionRange/shadcn.json +120 -89
  398. package/data/selectionRange/shell.json +1 -1
  399. package/data/selectionRange/sol.json +63 -39
  400. package/data/selectionRange/sparql.json +58 -34
  401. package/data/selectionRange/sql.json +50 -34
  402. package/data/selectionRange/ssh_config.json +37 -29
  403. package/data/selectionRange/st.json +49 -29
  404. package/data/selectionRange/swift.json +73 -44
  405. package/data/selectionRange/systemd.json +47 -34
  406. package/data/selectionRange/systemverilog.json +62 -39
  407. package/data/selectionRange/tailwindcss.json +49 -34
  408. package/data/selectionRange/tcl.json +57 -34
  409. package/data/selectionRange/toml.json +49 -29
  410. package/data/selectionRange/twig.json +58 -34
  411. package/data/selectionRange/typescript.json +75 -44
  412. package/data/selectionRange/vb.json +59 -39
  413. package/data/selectionRange/wgsl.json +61 -34
  414. package/data/selectionRange/xml.json +51 -34
  415. package/data/selectionRange/yaml.json +54 -34
  416. package/data/semanticTokens/angular.json +269 -198
  417. package/data/semanticTokens/nestjs.json +245 -35
  418. package/data/semanticTokens/nextjs.json +265 -38
  419. package/data/semanticTokens/react.json +230 -215
  420. package/data/semanticTokens/shadcn.json +235 -180
  421. package/data/signatureHelp/nestjs.json +201 -128
  422. package/data/signatureHelp/nextjs.json +185 -127
  423. package/data/signatureHelp/react.json +285 -281
  424. package/package.json +1 -1
@@ -1,159 +1,907 @@
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
- ]
1
+ {
2
+ "language": "ssh_config",
3
+ "completions": [
4
+ {
5
+ "label": "Host block",
6
+ "kind": 28,
7
+ "detail": "SSH host config",
8
+ "documentation": {
9
+ "value": "Configure settings for a specific host."
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": 28,
18
+ "detail": "Global defaults",
19
+ "documentation": {
20
+ "value": "Default options for all hosts."
21
+ },
22
+ "insertText": "Host *\n ServerAliveInterval 60\n ServerAliveCountMax 3\n AddKeysToAgent yes",
23
+ "insertTextRules": 4,
24
+ "sortText": "00_host"
25
+ },
26
+ {
27
+ "label": "Host jump pattern",
28
+ "kind": 28,
29
+ "detail": "Jump host pattern",
30
+ "documentation": {
31
+ "value": "Multi-hop SSH config with bastion."
32
+ },
33
+ "insertText": "Host ${1:internal}\n HostName ${2:10.0.0.5}\n User ${3:admin}\n ProxyJump ${4:bastion}",
34
+ "insertTextRules": 4,
35
+ "sortText": "00_host"
36
+ },
37
+ {
38
+ "label": "Host wildcard",
39
+ "kind": 28,
40
+ "detail": "Wildcard host",
41
+ "documentation": {
42
+ "value": "Pattern-matched host group."
43
+ },
44
+ "insertText": "Host ${1:*.example.com}\n User ${2:deploy}\n IdentityFile ~/.ssh/${3:deploy_key}",
45
+ "insertTextRules": 4,
46
+ "sortText": "00_host"
47
+ },
48
+ {
49
+ "label": "HostName",
50
+ "kind": 14,
51
+ "detail": "Real hostname/IP",
52
+ "documentation": {
53
+ "value": "The actual hostname or IP to connect to."
54
+ },
55
+ "insertText": "HostName ${1:example.com}",
56
+ "insertTextRules": 4,
57
+ "sortText": "01_dir"
58
+ },
59
+ {
60
+ "label": "User",
61
+ "kind": 14,
62
+ "detail": "Login user",
63
+ "documentation": {
64
+ "value": "Username to log in as."
65
+ },
66
+ "insertText": "User ${1:root}",
67
+ "insertTextRules": 4,
68
+ "sortText": "01_dir"
69
+ },
70
+ {
71
+ "label": "Port",
72
+ "kind": 14,
73
+ "detail": "SSH port",
74
+ "documentation": {
75
+ "value": "Port number to connect on."
76
+ },
77
+ "insertText": "Port ${1:22}",
78
+ "insertTextRules": 4,
79
+ "sortText": "01_dir"
80
+ },
81
+ {
82
+ "label": "IdentityFile",
83
+ "kind": 14,
84
+ "detail": "Private key path",
85
+ "documentation": {
86
+ "value": "Path to private key file."
87
+ },
88
+ "insertText": "IdentityFile ${1:~/.ssh/id_ed25519}",
89
+ "insertTextRules": 4,
90
+ "sortText": "01_dir"
91
+ },
92
+ {
93
+ "label": "IdentitiesOnly",
94
+ "kind": 14,
95
+ "detail": "Only use specified keys",
96
+ "documentation": {
97
+ "value": "Only use explicitly configured identity files."
98
+ },
99
+ "insertText": "IdentitiesOnly ${1:yes}",
100
+ "insertTextRules": 4,
101
+ "sortText": "01_dir"
102
+ },
103
+ {
104
+ "label": "ProxyJump",
105
+ "kind": 14,
106
+ "detail": "Jump host",
107
+ "documentation": {
108
+ "value": "Connect through a bastion/jump host."
109
+ },
110
+ "insertText": "ProxyJump ${1:bastion}",
111
+ "insertTextRules": 4,
112
+ "sortText": "02_proxy"
113
+ },
114
+ {
115
+ "label": "ProxyCommand",
116
+ "kind": 14,
117
+ "detail": "Proxy command",
118
+ "documentation": {
119
+ "value": "Command to connect to server."
120
+ },
121
+ "insertText": "ProxyCommand ssh -W %h:%p ${1:bastion}",
122
+ "insertTextRules": 4,
123
+ "sortText": "02_proxy"
124
+ },
125
+ {
126
+ "label": "LocalForward",
127
+ "kind": 14,
128
+ "detail": "Local port forward",
129
+ "documentation": {
130
+ "value": "Forward local port to remote."
131
+ },
132
+ "insertText": "LocalForward ${1:8080} ${2:localhost}:${3:80}",
133
+ "insertTextRules": 4,
134
+ "sortText": "02_fwd"
135
+ },
136
+ {
137
+ "label": "RemoteForward",
138
+ "kind": 14,
139
+ "detail": "Remote port forward",
140
+ "documentation": {
141
+ "value": "Forward remote port to local."
142
+ },
143
+ "insertText": "RemoteForward ${1:9090} ${2:localhost}:${3:3000}",
144
+ "insertTextRules": 4,
145
+ "sortText": "02_fwd"
146
+ },
147
+ {
148
+ "label": "DynamicForward",
149
+ "kind": 14,
150
+ "detail": "SOCKS proxy",
151
+ "documentation": {
152
+ "value": "SOCKS proxy on local port."
153
+ },
154
+ "insertText": "DynamicForward ${1:1080}",
155
+ "insertTextRules": 4,
156
+ "sortText": "02_fwd"
157
+ },
158
+ {
159
+ "label": "ForwardAgent",
160
+ "kind": 14,
161
+ "detail": "Agent forwarding",
162
+ "documentation": {
163
+ "value": "Forward SSH agent to remote."
164
+ },
165
+ "insertText": "ForwardAgent ${1:yes}",
166
+ "insertTextRules": 4,
167
+ "sortText": "02_fwd"
168
+ },
169
+ {
170
+ "label": "ForwardX11",
171
+ "kind": 14,
172
+ "detail": "X11 forwarding",
173
+ "documentation": {
174
+ "value": "Enable X11 forwarding."
175
+ },
176
+ "insertText": "ForwardX11 ${1:yes}",
177
+ "insertTextRules": 4,
178
+ "sortText": "02_fwd"
179
+ },
180
+ {
181
+ "label": "ForwardX11Trusted",
182
+ "kind": 14,
183
+ "detail": "Trusted X11",
184
+ "documentation": {
185
+ "value": "Trusted X11 forwarding."
186
+ },
187
+ "insertText": "ForwardX11Trusted ${1:yes}",
188
+ "insertTextRules": 4,
189
+ "sortText": "02_fwd"
190
+ },
191
+ {
192
+ "label": "ServerAliveInterval",
193
+ "kind": 14,
194
+ "detail": "Keepalive interval",
195
+ "documentation": {
196
+ "value": "Seconds between keepalive messages."
197
+ },
198
+ "insertText": "ServerAliveInterval ${1:60}",
199
+ "insertTextRules": 4,
200
+ "sortText": "03_alive"
201
+ },
202
+ {
203
+ "label": "ServerAliveCountMax",
204
+ "kind": 14,
205
+ "detail": "Keepalive count",
206
+ "documentation": {
207
+ "value": "Max keepalive messages before disconnect."
208
+ },
209
+ "insertText": "ServerAliveCountMax ${1:3}",
210
+ "insertTextRules": 4,
211
+ "sortText": "03_alive"
212
+ },
213
+ {
214
+ "label": "TCPKeepAlive",
215
+ "kind": 14,
216
+ "detail": "TCP keepalive",
217
+ "documentation": {
218
+ "value": "Enable TCP keepalive."
219
+ },
220
+ "insertText": "TCPKeepAlive ${1:yes}",
221
+ "insertTextRules": 4,
222
+ "sortText": "03_alive"
223
+ },
224
+ {
225
+ "label": "ConnectionAttempts",
226
+ "kind": 14,
227
+ "detail": "Connection attempts",
228
+ "documentation": {
229
+ "value": "Number of connection attempts."
230
+ },
231
+ "insertText": "ConnectionAttempts ${1:3}",
232
+ "insertTextRules": 4,
233
+ "sortText": "03_conn"
234
+ },
235
+ {
236
+ "label": "ConnectTimeout",
237
+ "kind": 14,
238
+ "detail": "Connection timeout",
239
+ "documentation": {
240
+ "value": "Timeout in seconds for connection."
241
+ },
242
+ "insertText": "ConnectTimeout ${1:10}",
243
+ "insertTextRules": 4,
244
+ "sortText": "03_conn"
245
+ },
246
+ {
247
+ "label": "AddKeysToAgent",
248
+ "kind": 14,
249
+ "detail": "Add keys to agent",
250
+ "documentation": {
251
+ "value": "Automatically add keys to ssh-agent."
252
+ },
253
+ "insertText": "AddKeysToAgent ${1:yes}",
254
+ "insertTextRules": 4,
255
+ "sortText": "03_key"
256
+ },
257
+ {
258
+ "label": "UseKeychain",
259
+ "kind": 14,
260
+ "detail": "macOS keychain",
261
+ "documentation": {
262
+ "value": "Store passphrase in macOS keychain."
263
+ },
264
+ "insertText": "UseKeychain ${1:yes}",
265
+ "insertTextRules": 4,
266
+ "sortText": "03_key"
267
+ },
268
+ {
269
+ "label": "PreferredAuthentications",
270
+ "kind": 14,
271
+ "detail": "Auth methods",
272
+ "documentation": {
273
+ "value": "Preferred authentication methods."
274
+ },
275
+ "insertText": "PreferredAuthentications ${1:publickey,keyboard-interactive,password}",
276
+ "insertTextRules": 4,
277
+ "sortText": "03_auth"
278
+ },
279
+ {
280
+ "label": "PubkeyAuthentication",
281
+ "kind": 14,
282
+ "detail": "Pubkey auth",
283
+ "documentation": {
284
+ "value": "Enable public key authentication."
285
+ },
286
+ "insertText": "PubkeyAuthentication ${1:yes}",
287
+ "insertTextRules": 4,
288
+ "sortText": "03_auth"
289
+ },
290
+ {
291
+ "label": "PasswordAuthentication",
292
+ "kind": 14,
293
+ "detail": "Password auth",
294
+ "documentation": {
295
+ "value": "Enable password authentication."
296
+ },
297
+ "insertText": "PasswordAuthentication ${1:no}",
298
+ "insertTextRules": 4,
299
+ "sortText": "03_auth"
300
+ },
301
+ {
302
+ "label": "KbdInteractiveAuthentication",
303
+ "kind": 14,
304
+ "detail": "Keyboard auth",
305
+ "documentation": {
306
+ "value": "Keyboard-interactive authentication."
307
+ },
308
+ "insertText": "KbdInteractiveAuthentication ${1:no}",
309
+ "insertTextRules": 4,
310
+ "sortText": "03_auth"
311
+ },
312
+ {
313
+ "label": "ChallengeResponseAuthentication",
314
+ "kind": 14,
315
+ "detail": "Challenge auth",
316
+ "documentation": {
317
+ "value": "Challenge-response authentication."
318
+ },
319
+ "insertText": "ChallengeResponseAuthentication ${1:no}",
320
+ "insertTextRules": 4,
321
+ "sortText": "03_auth"
322
+ },
323
+ {
324
+ "label": "GSSAPIAuthentication",
325
+ "kind": 14,
326
+ "detail": "GSSAPI auth",
327
+ "documentation": {
328
+ "value": "GSSAPI/Kerberos authentication."
329
+ },
330
+ "insertText": "GSSAPIAuthentication ${1:no}",
331
+ "insertTextRules": 4,
332
+ "sortText": "03_auth"
333
+ },
334
+ {
335
+ "label": "Compression",
336
+ "kind": 14,
337
+ "detail": "Compression",
338
+ "documentation": {
339
+ "value": "Enable compression."
340
+ },
341
+ "insertText": "Compression ${1:yes}",
342
+ "insertTextRules": 4,
343
+ "sortText": "04_opt"
344
+ },
345
+ {
346
+ "label": "LogLevel",
347
+ "kind": 14,
348
+ "detail": "Log level",
349
+ "documentation": {
350
+ "value": "Logging verbosity."
351
+ },
352
+ "insertText": "LogLevel ${1:INFO}",
353
+ "insertTextRules": 4,
354
+ "sortText": "04_opt"
355
+ },
356
+ {
357
+ "label": "StrictHostKeyChecking",
358
+ "kind": 14,
359
+ "detail": "Host key check",
360
+ "documentation": {
361
+ "value": "Strict host key checking policy."
362
+ },
363
+ "insertText": "StrictHostKeyChecking ${1:ask}",
364
+ "insertTextRules": 4,
365
+ "sortText": "04_opt"
366
+ },
367
+ {
368
+ "label": "UserKnownHostsFile",
369
+ "kind": 14,
370
+ "detail": "Known hosts file",
371
+ "documentation": {
372
+ "value": "Path to known_hosts file."
373
+ },
374
+ "insertText": "UserKnownHostsFile ${1:~/.ssh/known_hosts}",
375
+ "insertTextRules": 4,
376
+ "sortText": "04_opt"
377
+ },
378
+ {
379
+ "label": "GlobalKnownHostsFile",
380
+ "kind": 14,
381
+ "detail": "Global known hosts",
382
+ "documentation": {
383
+ "value": "System-wide known_hosts file."
384
+ },
385
+ "insertText": "GlobalKnownHostsFile ${1:/etc/ssh/ssh_known_hosts}",
386
+ "insertTextRules": 4,
387
+ "sortText": "04_opt"
388
+ },
389
+ {
390
+ "label": "HashKnownHosts",
391
+ "kind": 14,
392
+ "detail": "Hash known hosts",
393
+ "documentation": {
394
+ "value": "Hash hostnames in known_hosts."
395
+ },
396
+ "insertText": "HashKnownHosts ${1:yes}",
397
+ "insertTextRules": 4,
398
+ "sortText": "04_opt"
399
+ },
400
+ {
401
+ "label": "BatchMode",
402
+ "kind": 14,
403
+ "detail": "Batch mode",
404
+ "documentation": {
405
+ "value": "Disable password/passphrase prompting."
406
+ },
407
+ "insertText": "BatchMode ${1:yes}",
408
+ "insertTextRules": 4,
409
+ "sortText": "04_opt"
410
+ },
411
+ {
412
+ "label": "VisualHostKey",
413
+ "kind": 14,
414
+ "detail": "Visual host key",
415
+ "documentation": {
416
+ "value": "Display ASCII art host key."
417
+ },
418
+ "insertText": "VisualHostKey ${1:yes}",
419
+ "insertTextRules": 4,
420
+ "sortText": "04_opt"
421
+ },
422
+ {
423
+ "label": "Ciphers",
424
+ "kind": 14,
425
+ "detail": "Ciphers",
426
+ "documentation": {
427
+ "value": "Allowed ciphers."
428
+ },
429
+ "insertText": "Ciphers ${1:chacha20-poly1305@openssh.com,aes256-gcm@openssh.com}",
430
+ "insertTextRules": 4,
431
+ "sortText": "04_crypto"
432
+ },
433
+ {
434
+ "label": "MACs",
435
+ "kind": 14,
436
+ "detail": "MACs",
437
+ "documentation": {
438
+ "value": "Allowed MAC algorithms."
439
+ },
440
+ "insertText": "MACs ${1:hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com}",
441
+ "insertTextRules": 4,
442
+ "sortText": "04_crypto"
443
+ },
444
+ {
445
+ "label": "KexAlgorithms",
446
+ "kind": 14,
447
+ "detail": "Key exchange",
448
+ "documentation": {
449
+ "value": "Key exchange algorithms."
450
+ },
451
+ "insertText": "KexAlgorithms ${1:curve25519-sha256,diffie-hellman-group16-sha512}",
452
+ "insertTextRules": 4,
453
+ "sortText": "04_crypto"
454
+ },
455
+ {
456
+ "label": "HostKeyAlgorithms",
457
+ "kind": 14,
458
+ "detail": "Host key algos",
459
+ "documentation": {
460
+ "value": "Host key algorithms."
461
+ },
462
+ "insertText": "HostKeyAlgorithms ${1:ssh-ed25519,rsa-sha2-512}",
463
+ "insertTextRules": 4,
464
+ "sortText": "04_crypto"
465
+ },
466
+ {
467
+ "label": "PubkeyAcceptedAlgorithms",
468
+ "kind": 14,
469
+ "detail": "Pubkey algos",
470
+ "documentation": {
471
+ "value": "Accepted public key algorithms."
472
+ },
473
+ "insertText": "PubkeyAcceptedAlgorithms ${1:ssh-ed25519,rsa-sha2-512}",
474
+ "insertTextRules": 4,
475
+ "sortText": "04_crypto"
476
+ },
477
+ {
478
+ "label": "RekeyLimit",
479
+ "kind": 14,
480
+ "detail": "Rekey limit",
481
+ "documentation": {
482
+ "value": "Data/time limit before rekeying."
483
+ },
484
+ "insertText": "RekeyLimit ${1:1G} ${2:1h}",
485
+ "insertTextRules": 4,
486
+ "sortText": "04_crypto"
487
+ },
488
+ {
489
+ "label": "RequestTTY",
490
+ "kind": 14,
491
+ "detail": "Request TTY",
492
+ "documentation": {
493
+ "value": "Request pseudo-terminal allocation."
494
+ },
495
+ "insertText": "RequestTTY ${1:auto}",
496
+ "insertTextRules": 4,
497
+ "sortText": "04_opt"
498
+ },
499
+ {
500
+ "label": "RemoteCommand",
501
+ "kind": 14,
502
+ "detail": "Remote command",
503
+ "documentation": {
504
+ "value": "Command to execute on remote."
505
+ },
506
+ "insertText": "RemoteCommand ${1:command}",
507
+ "insertTextRules": 4,
508
+ "sortText": "04_opt"
509
+ },
510
+ {
511
+ "label": "SendEnv",
512
+ "kind": 14,
513
+ "detail": "Send environment",
514
+ "documentation": {
515
+ "value": "Send local environment variables."
516
+ },
517
+ "insertText": "SendEnv ${1:LANG LC_*}",
518
+ "insertTextRules": 4,
519
+ "sortText": "04_opt"
520
+ },
521
+ {
522
+ "label": "SetEnv",
523
+ "kind": 14,
524
+ "detail": "Set environment",
525
+ "documentation": {
526
+ "value": "Set environment on remote."
527
+ },
528
+ "insertText": "SetEnv ${1:VAR}=${2:value}",
529
+ "insertTextRules": 4,
530
+ "sortText": "04_opt"
531
+ },
532
+ {
533
+ "label": "PermitLocalCommand",
534
+ "kind": 14,
535
+ "detail": "Allow local cmd",
536
+ "documentation": {
537
+ "value": "Allow local command execution."
538
+ },
539
+ "insertText": "PermitLocalCommand ${1:yes}",
540
+ "insertTextRules": 4,
541
+ "sortText": "04_opt"
542
+ },
543
+ {
544
+ "label": "LocalCommand",
545
+ "kind": 14,
546
+ "detail": "Local command",
547
+ "documentation": {
548
+ "value": "Command to run locally after connect."
549
+ },
550
+ "insertText": "LocalCommand ${1:echo \"Connected to %h\"}",
551
+ "insertTextRules": 4,
552
+ "sortText": "04_opt"
553
+ },
554
+ {
555
+ "label": "Match",
556
+ "kind": 14,
557
+ "detail": "Match block",
558
+ "documentation": {
559
+ "value": "Conditional configuration block."
560
+ },
561
+ "insertText": "Match host ${1:*.example.com}\n ${2:User deploy}",
562
+ "insertTextRules": 4,
563
+ "sortText": "04_match"
564
+ },
565
+ {
566
+ "label": "Include",
567
+ "kind": 14,
568
+ "detail": "Include file",
569
+ "documentation": {
570
+ "value": "Include another config file."
571
+ },
572
+ "insertText": "Include ${1:~/.ssh/config.d/*}",
573
+ "insertTextRules": 4,
574
+ "sortText": "04_opt"
575
+ },
576
+ {
577
+ "label": "CanonicalizeHostname",
578
+ "kind": 14,
579
+ "detail": "Canonicalize",
580
+ "documentation": {
581
+ "value": "Canonicalize hostname."
582
+ },
583
+ "insertText": "CanonicalizeHostname ${1:yes}",
584
+ "insertTextRules": 4,
585
+ "sortText": "04_opt"
586
+ },
587
+ {
588
+ "label": "CanonicalDomains",
589
+ "kind": 14,
590
+ "detail": "Canonical domains",
591
+ "documentation": {
592
+ "value": "Domains for canonicalization."
593
+ },
594
+ "insertText": "CanonicalDomains ${1:example.com}",
595
+ "insertTextRules": 4,
596
+ "sortText": "04_opt"
597
+ },
598
+ {
599
+ "label": "ControlMaster",
600
+ "kind": 14,
601
+ "detail": "Control master",
602
+ "documentation": {
603
+ "value": "Enable SSH multiplexing."
604
+ },
605
+ "insertText": "ControlMaster ${1:auto}",
606
+ "insertTextRules": 4,
607
+ "sortText": "05_mux"
608
+ },
609
+ {
610
+ "label": "ControlPath",
611
+ "kind": 14,
612
+ "detail": "Control path",
613
+ "documentation": {
614
+ "value": "Socket path for multiplexing."
615
+ },
616
+ "insertText": "ControlPath ${1:~/.ssh/sockets/%r@%h-%p}",
617
+ "insertTextRules": 4,
618
+ "sortText": "05_mux"
619
+ },
620
+ {
621
+ "label": "ControlPersist",
622
+ "kind": 14,
623
+ "detail": "Control persist",
624
+ "documentation": {
625
+ "value": "Keep master connection alive."
626
+ },
627
+ "insertText": "ControlPersist ${1:600}",
628
+ "insertTextRules": 4,
629
+ "sortText": "05_mux"
630
+ },
631
+ {
632
+ "label": "ExitOnForwardFailure",
633
+ "kind": 14,
634
+ "detail": "Forward fail",
635
+ "documentation": {
636
+ "value": "Exit if port forwarding fails."
637
+ },
638
+ "insertText": "ExitOnForwardFailure ${1:yes}",
639
+ "insertTextRules": 4,
640
+ "sortText": "04_opt"
641
+ },
642
+ {
643
+ "label": "NumberOfPasswordPrompts",
644
+ "kind": 14,
645
+ "detail": "Password prompts",
646
+ "documentation": {
647
+ "value": "Max password prompts."
648
+ },
649
+ "insertText": "NumberOfPasswordPrompts ${1:3}",
650
+ "insertTextRules": 4,
651
+ "sortText": "04_opt"
652
+ },
653
+ {
654
+ "label": "UpdateHostKeys",
655
+ "kind": 14,
656
+ "detail": "Update host keys",
657
+ "documentation": {
658
+ "value": "Accept updated host keys."
659
+ },
660
+ "insertText": "UpdateHostKeys ${1:yes}",
661
+ "insertTextRules": 4,
662
+ "sortText": "04_opt"
663
+ },
664
+ {
665
+ "label": "AddressFamily",
666
+ "kind": 14,
667
+ "detail": "Address family",
668
+ "documentation": {
669
+ "value": "IP address family preference."
670
+ },
671
+ "insertText": "AddressFamily ${1:inet}",
672
+ "insertTextRules": 4,
673
+ "sortText": "04_opt"
674
+ },
675
+ {
676
+ "label": "BindAddress",
677
+ "kind": 14,
678
+ "detail": "Bind address",
679
+ "documentation": {
680
+ "value": "Local address to bind to."
681
+ },
682
+ "insertText": "BindAddress ${1:0.0.0.0}",
683
+ "insertTextRules": 4,
684
+ "sortText": "04_opt"
685
+ },
686
+ {
687
+ "label": "BindInterface",
688
+ "kind": 14,
689
+ "detail": "Bind interface",
690
+ "documentation": {
691
+ "value": "Local network interface to bind to."
692
+ },
693
+ "insertText": "BindInterface ${1:eth0}",
694
+ "insertTextRules": 4,
695
+ "sortText": "04_opt"
696
+ },
697
+ {
698
+ "label": "EscapeChar",
699
+ "kind": 14,
700
+ "detail": "Escape char",
701
+ "documentation": {
702
+ "value": "Escape character for session."
703
+ },
704
+ "insertText": "EscapeChar ${1:~}",
705
+ "insertTextRules": 4,
706
+ "sortText": "04_opt"
707
+ },
708
+ {
709
+ "label": "IPQoS",
710
+ "kind": 14,
711
+ "detail": "IP QoS",
712
+ "documentation": {
713
+ "value": "IP quality of service."
714
+ },
715
+ "insertText": "IPQoS ${1:lowdelay} ${2:throughput}",
716
+ "insertTextRules": 4,
717
+ "sortText": "04_opt"
718
+ },
719
+ {
720
+ "label": "NoHostAuthenticationForLocalhost",
721
+ "kind": 14,
722
+ "detail": "Skip localhost auth",
723
+ "documentation": {
724
+ "value": "Skip host auth for localhost."
725
+ },
726
+ "insertText": "NoHostAuthenticationForLocalhost ${1:yes}",
727
+ "insertTextRules": 4,
728
+ "sortText": "04_opt"
729
+ },
730
+ {
731
+ "label": "StreamLocalBindMask",
732
+ "kind": 14,
733
+ "detail": "Socket permissions",
734
+ "documentation": {
735
+ "value": "Unix socket file permissions."
736
+ },
737
+ "insertText": "StreamLocalBindMask ${1:0177}",
738
+ "insertTextRules": 4,
739
+ "sortText": "04_opt"
740
+ },
741
+ {
742
+ "label": "StreamLocalBindUnlink",
743
+ "kind": 14,
744
+ "detail": "Socket cleanup",
745
+ "documentation": {
746
+ "value": "Remove old socket before creating."
747
+ },
748
+ "insertText": "StreamLocalBindUnlink ${1:yes}",
749
+ "insertTextRules": 4,
750
+ "sortText": "04_opt"
751
+ },
752
+ {
753
+ "label": "Tag",
754
+ "kind": 14,
755
+ "detail": "Tag",
756
+ "documentation": {
757
+ "value": "Apply a tag to this host."
758
+ },
759
+ "insertText": "Tag ${1:production}",
760
+ "insertTextRules": 4,
761
+ "sortText": "04_opt"
762
+ },
763
+ {
764
+ "label": "GitHub SSH",
765
+ "kind": 28,
766
+ "detail": "GitHub SSH config",
767
+ "documentation": {
768
+ "value": "GitHub SSH configuration."
769
+ },
770
+ "insertText": "Host github.com\n HostName github.com\n User git\n IdentityFile ~/.ssh/${1:id_ed25519}\n IdentitiesOnly yes",
771
+ "insertTextRules": 4,
772
+ "sortText": "06_tpl"
773
+ },
774
+ {
775
+ "label": "GitLab SSH",
776
+ "kind": 28,
777
+ "detail": "GitLab SSH config",
778
+ "documentation": {
779
+ "value": "GitLab SSH configuration."
780
+ },
781
+ "insertText": "Host gitlab.com\n HostName gitlab.com\n User git\n IdentityFile ~/.ssh/${1:id_ed25519}\n IdentitiesOnly yes",
782
+ "insertTextRules": 4,
783
+ "sortText": "06_tpl"
784
+ },
785
+ {
786
+ "label": "AWS EC2",
787
+ "kind": 28,
788
+ "detail": "AWS EC2 host",
789
+ "documentation": {
790
+ "value": "AWS EC2 instance SSH config."
791
+ },
792
+ "insertText": "Host ${1:aws-server}\n HostName ${2:ec2-xx-xx-xx-xx.compute.amazonaws.com}\n User ${3:ec2-user}\n IdentityFile ~/.ssh/${4:aws-key.pem}",
793
+ "insertTextRules": 4,
794
+ "sortText": "06_tpl"
795
+ },
796
+ {
797
+ "label": "Multiplexing",
798
+ "kind": 28,
799
+ "detail": "SSH multiplexing",
800
+ "documentation": {
801
+ "value": "Enable connection multiplexing."
802
+ },
803
+ "insertText": "Host *\n ControlMaster auto\n ControlPath ~/.ssh/sockets/%r@%h-%p\n ControlPersist 600",
804
+ "insertTextRules": 4,
805
+ "sortText": "06_tpl"
806
+ },
807
+ {
808
+ "label": "Hardened config",
809
+ "kind": 28,
810
+ "detail": "Hardened SSH",
811
+ "documentation": {
812
+ "value": "Security-hardened SSH config."
813
+ },
814
+ "insertText": "Host *\n PasswordAuthentication no\n PubkeyAuthentication yes\n IdentitiesOnly yes\n HashKnownHosts yes\n StrictHostKeyChecking ask\n Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com\n MACs hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com\n KexAlgorithms curve25519-sha256,diffie-hellman-group16-sha512",
815
+ "insertTextRules": 4,
816
+ "sortText": "06_tpl"
817
+ },
818
+ {
819
+ "label": "Tunnel",
820
+ "kind": 28,
821
+ "detail": "SSH tunnel",
822
+ "documentation": {
823
+ "value": "SSH tunnel configuration."
824
+ },
825
+ "insertText": "Host ${1:tunnel}\n HostName ${2:remote.example.com}\n User ${3:admin}\n LocalForward ${4:5432} ${5:localhost}:${4:5432}\n ExitOnForwardFailure yes\n ServerAliveInterval 30",
826
+ "insertTextRules": 4,
827
+ "sortText": "06_tpl"
828
+ },
829
+ {
830
+ "label": "Full template",
831
+ "kind": 28,
832
+ "detail": "Complete SSH config",
833
+ "documentation": {
834
+ "value": "Full SSH config template."
835
+ },
836
+ "insertText": "# Global defaults\nHost *\n AddKeysToAgent yes\n IdentitiesOnly yes\n ServerAliveInterval 60\n ServerAliveCountMax 3\n\n# ${1:Server Name}\nHost ${2:alias}\n HostName ${3:host.example.com}\n User ${4:user}\n Port ${5:22}\n IdentityFile ~/.ssh/${6:id_ed25519}",
837
+ "insertTextRules": 4,
838
+ "sortText": "07_tpl"
839
+ },
840
+ {
841
+ "label": "FingerprintHash",
842
+ "kind": 14,
843
+ "detail": "Fingerprint hash",
844
+ "documentation": {
845
+ "value": "Hash algorithm for fingerprints."
846
+ },
847
+ "insertText": "FingerprintHash ${1:sha256}",
848
+ "insertTextRules": 4,
849
+ "sortText": "04_opt"
850
+ },
851
+ {
852
+ "label": "GatewayPorts",
853
+ "kind": 14,
854
+ "detail": "Gateway ports",
855
+ "documentation": {
856
+ "value": "Allow remote hosts to connect to forwarded ports."
857
+ },
858
+ "insertText": "GatewayPorts ${1:no}",
859
+ "insertTextRules": 4,
860
+ "sortText": "04_opt"
861
+ },
862
+ {
863
+ "label": "CertificateFile",
864
+ "kind": 14,
865
+ "detail": "Certificate file",
866
+ "documentation": {
867
+ "value": "Path to user certificate."
868
+ },
869
+ "insertText": "CertificateFile ${1:~/.ssh/id_ed25519-cert.pub}",
870
+ "insertTextRules": 4,
871
+ "sortText": "04_opt"
872
+ },
873
+ {
874
+ "label": "PKCS11Provider",
875
+ "kind": 14,
876
+ "detail": "PKCS11 provider",
877
+ "documentation": {
878
+ "value": "PKCS#11 shared library for keys."
879
+ },
880
+ "insertText": "PKCS11Provider ${1:/usr/lib/opensc-pkcs11.so}",
881
+ "insertTextRules": 4,
882
+ "sortText": "04_opt"
883
+ },
884
+ {
885
+ "label": "SecurityKeyProvider",
886
+ "kind": 14,
887
+ "detail": "Security key",
888
+ "documentation": {
889
+ "value": "FIDO security key provider."
890
+ },
891
+ "insertText": "SecurityKeyProvider ${1:internal}",
892
+ "insertTextRules": 4,
893
+ "sortText": "04_opt"
894
+ },
895
+ {
896
+ "label": "VS Code Remote",
897
+ "kind": 28,
898
+ "detail": "VS Code Remote SSH",
899
+ "documentation": {
900
+ "value": "Config for VS Code Remote SSH."
901
+ },
902
+ "insertText": "Host ${1:dev-server}\n HostName ${2:server.example.com}\n User ${3:dev}\n IdentityFile ~/.ssh/${4:id_ed25519}\n ForwardAgent yes\n ServerAliveInterval 60",
903
+ "insertTextRules": 4,
904
+ "sortText": "06_tpl"
905
+ }
906
+ ]
159
907
  }