@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,203 +1,907 @@
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
- ]
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
+ "label": "FS",
204
+ "kind": 14,
205
+ "detail": "Field Separator",
206
+ "documentation": {
207
+ "value": "Input field separator variable."
208
+ },
209
+ "insertText": "FS",
210
+ "insertTextRules": 0,
211
+ "sortText": "02_bvar"
212
+ },
213
+ {
214
+ "label": "OFS",
215
+ "kind": 14,
216
+ "detail": "Output Field Sep",
217
+ "documentation": {
218
+ "value": "Output field separator."
219
+ },
220
+ "insertText": "OFS",
221
+ "insertTextRules": 0,
222
+ "sortText": "02_bvar"
223
+ },
224
+ {
225
+ "label": "RS",
226
+ "kind": 14,
227
+ "detail": "Record Separator",
228
+ "documentation": {
229
+ "value": "Input record separator."
230
+ },
231
+ "insertText": "RS",
232
+ "insertTextRules": 0,
233
+ "sortText": "02_bvar"
234
+ },
235
+ {
236
+ "label": "ORS",
237
+ "kind": 14,
238
+ "detail": "Output Record Sep",
239
+ "documentation": {
240
+ "value": "Output record separator."
241
+ },
242
+ "insertText": "ORS",
243
+ "insertTextRules": 0,
244
+ "sortText": "02_bvar"
245
+ },
246
+ {
247
+ "label": "NR",
248
+ "kind": 14,
249
+ "detail": "Record Number",
250
+ "documentation": {
251
+ "value": "Current record (line) number."
252
+ },
253
+ "insertText": "NR",
254
+ "insertTextRules": 0,
255
+ "sortText": "02_bvar"
256
+ },
257
+ {
258
+ "label": "NF",
259
+ "kind": 14,
260
+ "detail": "Field Count",
261
+ "documentation": {
262
+ "value": "Number of fields in current record."
263
+ },
264
+ "insertText": "NF",
265
+ "insertTextRules": 0,
266
+ "sortText": "02_bvar"
267
+ },
268
+ {
269
+ "label": "FNR",
270
+ "kind": 14,
271
+ "detail": "File Record Number",
272
+ "documentation": {
273
+ "value": "Record number in current file."
274
+ },
275
+ "insertText": "FNR",
276
+ "insertTextRules": 0,
277
+ "sortText": "02_bvar"
278
+ },
279
+ {
280
+ "label": "FILENAME",
281
+ "kind": 14,
282
+ "detail": "Current Filename",
283
+ "documentation": {
284
+ "value": "Name of the current input file."
285
+ },
286
+ "insertText": "FILENAME",
287
+ "insertTextRules": 0,
288
+ "sortText": "02_bvar"
289
+ },
290
+ {
291
+ "label": "ARGC",
292
+ "kind": 14,
293
+ "detail": "Argument Count",
294
+ "documentation": {
295
+ "value": "Number of command-line arguments."
296
+ },
297
+ "insertText": "ARGC",
298
+ "insertTextRules": 0,
299
+ "sortText": "02_bvar"
300
+ },
301
+ {
302
+ "label": "ARGV",
303
+ "kind": 14,
304
+ "detail": "Argument Vector",
305
+ "documentation": {
306
+ "value": "Array of command-line arguments."
307
+ },
308
+ "insertText": "ARGV",
309
+ "insertTextRules": 0,
310
+ "sortText": "02_bvar"
311
+ },
312
+ {
313
+ "label": "ENVIRON",
314
+ "kind": 14,
315
+ "detail": "Environment",
316
+ "documentation": {
317
+ "value": "Array of environment variables."
318
+ },
319
+ "insertText": "ENVIRON[\"${1:PATH}\"]",
320
+ "insertTextRules": 4,
321
+ "sortText": "02_bvar"
322
+ },
323
+ {
324
+ "label": "RSTART",
325
+ "kind": 14,
326
+ "detail": "Match Start",
327
+ "documentation": {
328
+ "value": "Start of string matched by match()."
329
+ },
330
+ "insertText": "RSTART",
331
+ "insertTextRules": 0,
332
+ "sortText": "02_bvar"
333
+ },
334
+ {
335
+ "label": "RLENGTH",
336
+ "kind": 14,
337
+ "detail": "Match Length",
338
+ "documentation": {
339
+ "value": "Length of string matched by match()."
340
+ },
341
+ "insertText": "RLENGTH",
342
+ "insertTextRules": 0,
343
+ "sortText": "02_bvar"
344
+ },
345
+ {
346
+ "label": "SUBSEP",
347
+ "kind": 14,
348
+ "detail": "Subscript Sep",
349
+ "documentation": {
350
+ "value": "Multi-dimensional array subscript separator."
351
+ },
352
+ "insertText": "SUBSEP",
353
+ "insertTextRules": 0,
354
+ "sortText": "02_bvar"
355
+ },
356
+ {
357
+ "label": "length",
358
+ "kind": 1,
359
+ "detail": "length()",
360
+ "documentation": {
361
+ "value": "Length of string or array."
362
+ },
363
+ "insertText": "length(${1:string})",
364
+ "insertTextRules": 4,
365
+ "sortText": "01_fn"
366
+ },
367
+ {
368
+ "label": "substr",
369
+ "kind": 1,
370
+ "detail": "substr()",
371
+ "documentation": {
372
+ "value": "Extract substring."
373
+ },
374
+ "insertText": "substr(${1:string}, ${2:start}, ${3:length})",
375
+ "insertTextRules": 4,
376
+ "sortText": "01_fn"
377
+ },
378
+ {
379
+ "label": "index",
380
+ "kind": 1,
381
+ "detail": "index()",
382
+ "documentation": {
383
+ "value": "Find substring position."
384
+ },
385
+ "insertText": "index(${1:string}, \"${2:target}\")",
386
+ "insertTextRules": 4,
387
+ "sortText": "01_fn"
388
+ },
389
+ {
390
+ "label": "sub",
391
+ "kind": 1,
392
+ "detail": "sub()",
393
+ "documentation": {
394
+ "value": "Substitute first match."
395
+ },
396
+ "insertText": "sub(/${1:pattern}/, \"${2:replacement}\", ${3:target})",
397
+ "insertTextRules": 4,
398
+ "sortText": "01_fn"
399
+ },
400
+ {
401
+ "label": "match",
402
+ "kind": 1,
403
+ "detail": "match()",
404
+ "documentation": {
405
+ "value": "Match regex, set RSTART/RLENGTH."
406
+ },
407
+ "insertText": "match(${1:string}, /${2:pattern}/)",
408
+ "insertTextRules": 4,
409
+ "sortText": "01_fn"
410
+ },
411
+ {
412
+ "label": "sprintf",
413
+ "kind": 1,
414
+ "detail": "sprintf()",
415
+ "documentation": {
416
+ "value": "Format string."
417
+ },
418
+ "insertText": "sprintf(\"${1:%s=%d}\", ${2:name}, ${3:val})",
419
+ "insertTextRules": 4,
420
+ "sortText": "01_fn"
421
+ },
422
+ {
423
+ "label": "tolower",
424
+ "kind": 1,
425
+ "detail": "tolower()",
426
+ "documentation": {
427
+ "value": "Convert to lowercase."
428
+ },
429
+ "insertText": "tolower(${1:string})",
430
+ "insertTextRules": 4,
431
+ "sortText": "01_fn"
432
+ },
433
+ {
434
+ "label": "toupper",
435
+ "kind": 1,
436
+ "detail": "toupper()",
437
+ "documentation": {
438
+ "value": "Convert to uppercase."
439
+ },
440
+ "insertText": "toupper(${1:string})",
441
+ "insertTextRules": 4,
442
+ "sortText": "01_fn"
443
+ },
444
+ {
445
+ "label": "sin",
446
+ "kind": 1,
447
+ "detail": "sin()",
448
+ "documentation": {
449
+ "value": "Sine function."
450
+ },
451
+ "insertText": "sin(${1:x})",
452
+ "insertTextRules": 4,
453
+ "sortText": "01_fn"
454
+ },
455
+ {
456
+ "label": "cos",
457
+ "kind": 1,
458
+ "detail": "cos()",
459
+ "documentation": {
460
+ "value": "Cosine function."
461
+ },
462
+ "insertText": "cos(${1:x})",
463
+ "insertTextRules": 4,
464
+ "sortText": "01_fn"
465
+ },
466
+ {
467
+ "label": "atan2",
468
+ "kind": 1,
469
+ "detail": "atan2()",
470
+ "documentation": {
471
+ "value": "Arctangent."
472
+ },
473
+ "insertText": "atan2(${1:y}, ${2:x})",
474
+ "insertTextRules": 4,
475
+ "sortText": "01_fn"
476
+ },
477
+ {
478
+ "label": "exp",
479
+ "kind": 1,
480
+ "detail": "exp()",
481
+ "documentation": {
482
+ "value": "Exponential."
483
+ },
484
+ "insertText": "exp(${1:x})",
485
+ "insertTextRules": 4,
486
+ "sortText": "01_fn"
487
+ },
488
+ {
489
+ "label": "log",
490
+ "kind": 1,
491
+ "detail": "log()",
492
+ "documentation": {
493
+ "value": "Natural logarithm."
494
+ },
495
+ "insertText": "log(${1:x})",
496
+ "insertTextRules": 4,
497
+ "sortText": "01_fn"
498
+ },
499
+ {
500
+ "label": "sqrt",
501
+ "kind": 1,
502
+ "detail": "sqrt()",
503
+ "documentation": {
504
+ "value": "Square root."
505
+ },
506
+ "insertText": "sqrt(${1:x})",
507
+ "insertTextRules": 4,
508
+ "sortText": "01_fn"
509
+ },
510
+ {
511
+ "label": "int",
512
+ "kind": 1,
513
+ "detail": "int()",
514
+ "documentation": {
515
+ "value": "Truncate to integer."
516
+ },
517
+ "insertText": "int(${1:x})",
518
+ "insertTextRules": 4,
519
+ "sortText": "01_fn"
520
+ },
521
+ {
522
+ "label": "rand",
523
+ "kind": 1,
524
+ "detail": "rand()",
525
+ "documentation": {
526
+ "value": "Random number 0..1."
527
+ },
528
+ "insertText": "rand()",
529
+ "insertTextRules": 4,
530
+ "sortText": "01_fn"
531
+ },
532
+ {
533
+ "label": "srand",
534
+ "kind": 1,
535
+ "detail": "srand()",
536
+ "documentation": {
537
+ "value": "Seed random number."
538
+ },
539
+ "insertText": "srand(${1:})",
540
+ "insertTextRules": 4,
541
+ "sortText": "01_fn"
542
+ },
543
+ {
544
+ "label": "system",
545
+ "kind": 1,
546
+ "detail": "system()",
547
+ "documentation": {
548
+ "value": "Execute shell command."
549
+ },
550
+ "insertText": "system(\"${1:command}\")",
551
+ "insertTextRules": 4,
552
+ "sortText": "01_fn"
553
+ },
554
+ {
555
+ "label": "mktime",
556
+ "kind": 1,
557
+ "detail": "mktime()",
558
+ "documentation": {
559
+ "value": "Convert time to timestamp."
560
+ },
561
+ "insertText": "mktime(\"${1:2024 01 01 00 00 00}\")",
562
+ "insertTextRules": 4,
563
+ "sortText": "01_fn"
564
+ },
565
+ {
566
+ "label": "strftime",
567
+ "kind": 1,
568
+ "detail": "strftime()",
569
+ "documentation": {
570
+ "value": "Format timestamp."
571
+ },
572
+ "insertText": "strftime(\"${1:%Y-%m-%d}\", ${2:systime()})",
573
+ "insertTextRules": 4,
574
+ "sortText": "01_fn"
575
+ },
576
+ {
577
+ "label": "systime",
578
+ "kind": 1,
579
+ "detail": "systime()",
580
+ "documentation": {
581
+ "value": "Current epoch time."
582
+ },
583
+ "insertText": "systime()",
584
+ "insertTextRules": 4,
585
+ "sortText": "01_fn"
586
+ },
587
+ {
588
+ "label": "close",
589
+ "kind": 1,
590
+ "detail": "close()",
591
+ "documentation": {
592
+ "value": "Close file/pipe."
593
+ },
594
+ "insertText": "close(\"${1:file}\")",
595
+ "insertTextRules": 4,
596
+ "sortText": "01_fn"
597
+ },
598
+ {
599
+ "label": "while loop",
600
+ "kind": 28,
601
+ "detail": "While loop",
602
+ "documentation": {
603
+ "value": "While loop."
604
+ },
605
+ "insertText": "while (${1:condition}) {\n ${2:# body}\n}",
606
+ "insertTextRules": 4,
607
+ "sortText": "02_ctrl"
608
+ },
609
+ {
610
+ "label": "do-while",
611
+ "kind": 28,
612
+ "detail": "Do-while loop",
613
+ "documentation": {
614
+ "value": "Do-while loop."
615
+ },
616
+ "insertText": "do {\n ${1:# body}\n} while (${2:condition})",
617
+ "insertTextRules": 4,
618
+ "sortText": "02_ctrl"
619
+ },
620
+ {
621
+ "label": "function",
622
+ "kind": 28,
623
+ "detail": "User function",
624
+ "documentation": {
625
+ "value": "Define a function."
626
+ },
627
+ "insertText": "function ${1:name}(${2:args}) {\n ${3:# body}\n return ${4:result}\n}",
628
+ "insertTextRules": 4,
629
+ "sortText": "02_func"
630
+ },
631
+ {
632
+ "label": "next",
633
+ "kind": 28,
634
+ "detail": "Skip record",
635
+ "documentation": {
636
+ "value": "Skip to next input record."
637
+ },
638
+ "insertText": "next",
639
+ "insertTextRules": 4,
640
+ "sortText": "02_ctrl"
641
+ },
642
+ {
643
+ "label": "exit",
644
+ "kind": 28,
645
+ "detail": "Exit",
646
+ "documentation": {
647
+ "value": "Exit awk script."
648
+ },
649
+ "insertText": "exit ${1:0}",
650
+ "insertTextRules": 4,
651
+ "sortText": "02_ctrl"
652
+ },
653
+ {
654
+ "label": "delete",
655
+ "kind": 28,
656
+ "detail": "Delete array element",
657
+ "documentation": {
658
+ "value": "Delete element from array."
659
+ },
660
+ "insertText": "delete ${1:arr}[${2:key}]",
661
+ "insertTextRules": 4,
662
+ "sortText": "02_ctrl"
663
+ },
664
+ {
665
+ "label": "pipe output",
666
+ "kind": 28,
667
+ "detail": "Pipe to command",
668
+ "documentation": {
669
+ "value": "Pipe output to external command."
670
+ },
671
+ "insertText": "print ${1:data} | \"${2:sort -n}\"",
672
+ "insertTextRules": 4,
673
+ "sortText": "05_pipe"
674
+ },
675
+ {
676
+ "label": "pipe input",
677
+ "kind": 28,
678
+ "detail": "Read from command",
679
+ "documentation": {
680
+ "value": "Read from external command."
681
+ },
682
+ "insertText": "while (\"${1:command}\" | getline ${2:line}) {\n ${3:print line}\n}",
683
+ "insertTextRules": 4,
684
+ "sortText": "05_pipe"
685
+ },
686
+ {
687
+ "label": "redirect output",
688
+ "kind": 28,
689
+ "detail": "Write to file",
690
+ "documentation": {
691
+ "value": "Redirect output to file."
692
+ },
693
+ "insertText": "print ${1:data} > \"${2:output.txt}\"",
694
+ "insertTextRules": 4,
695
+ "sortText": "05_redir"
696
+ },
697
+ {
698
+ "label": "append output",
699
+ "kind": 28,
700
+ "detail": "Append to file",
701
+ "documentation": {
702
+ "value": "Append output to file."
703
+ },
704
+ "insertText": "print ${1:data} >> \"${2:output.txt}\"",
705
+ "insertTextRules": 4,
706
+ "sortText": "05_redir"
707
+ },
708
+ {
709
+ "label": "multi-file",
710
+ "kind": 28,
711
+ "detail": "Multiple files",
712
+ "documentation": {
713
+ "value": "Process multiple files differently."
714
+ },
715
+ "insertText": "FNR == 1 { ${1:# first line of each file} }\n{ ${2:print FILENAME, $0} }",
716
+ "insertTextRules": 4,
717
+ "sortText": "06_pattern"
718
+ },
719
+ {
720
+ "label": "skip header",
721
+ "kind": 28,
722
+ "detail": "Skip CSV header",
723
+ "documentation": {
724
+ "value": "Skip first line header."
725
+ },
726
+ "insertText": "NR == 1 { next }\n{ ${1:print $1, $2} }",
727
+ "insertTextRules": 4,
728
+ "sortText": "06_pattern"
729
+ },
730
+ {
731
+ "label": "unique lines",
732
+ "kind": 28,
733
+ "detail": "Unique values",
734
+ "documentation": {
735
+ "value": "Print unique lines."
736
+ },
737
+ "insertText": "!seen[$0]++",
738
+ "insertTextRules": 4,
739
+ "sortText": "06_pattern"
740
+ },
741
+ {
742
+ "label": "max value",
743
+ "kind": 28,
744
+ "detail": "Find maximum",
745
+ "documentation": {
746
+ "value": "Find max value in column."
747
+ },
748
+ "insertText": "$${1:1} > max { max = $${1:1} }\nEND { print \"Max:\", max }",
749
+ "insertTextRules": 4,
750
+ "sortText": "06_pattern"
751
+ },
752
+ {
753
+ "label": "min value",
754
+ "kind": 28,
755
+ "detail": "Find minimum",
756
+ "documentation": {
757
+ "value": "Find min value."
758
+ },
759
+ "insertText": "NR == 1 || $${1:1} < min { min = $${1:1} }\nEND { print \"Min:\", min }",
760
+ "insertTextRules": 4,
761
+ "sortText": "06_pattern"
762
+ },
763
+ {
764
+ "label": "average",
765
+ "kind": 28,
766
+ "detail": "Average column",
767
+ "documentation": {
768
+ "value": "Compute average of column."
769
+ },
770
+ "insertText": "{ sum += $${1:1}; count++ }\nEND { print \"Average:\", sum/count }",
771
+ "insertTextRules": 4,
772
+ "sortText": "06_pattern"
773
+ },
774
+ {
775
+ "label": "frequency",
776
+ "kind": 28,
777
+ "detail": "Frequency count",
778
+ "documentation": {
779
+ "value": "Count and sort frequencies."
780
+ },
781
+ "insertText": "{ count[$${1:1}]++ }\nEND {\n for (k in count)\n print count[k], k | \"sort -rn\"\n}",
782
+ "insertTextRules": 4,
783
+ "sortText": "06_pattern"
784
+ },
785
+ {
786
+ "label": "transpose",
787
+ "kind": 28,
788
+ "detail": "Transpose columns",
789
+ "documentation": {
790
+ "value": "Transpose rows to columns."
791
+ },
792
+ "insertText": "{\n for (i = 1; i <= NF; i++)\n a[i] = a[i] ? a[i] OFS $i : $i\n}\nEND {\n for (i = 1; i <= NF; i++)\n print a[i]\n}",
793
+ "insertTextRules": 4,
794
+ "sortText": "06_pattern"
795
+ },
796
+ {
797
+ "label": "tab separated",
798
+ "kind": 28,
799
+ "detail": "TSV processing",
800
+ "documentation": {
801
+ "value": "Process tab-separated data."
802
+ },
803
+ "insertText": "BEGIN { FS = OFS = \"\\t\" }\n{ ${1:print $1, $2} }",
804
+ "insertTextRules": 4,
805
+ "sortText": "06_pattern"
806
+ },
807
+ {
808
+ "label": "JSON output",
809
+ "kind": 28,
810
+ "detail": "Simple JSON",
811
+ "documentation": {
812
+ "value": "Output simple JSON array."
813
+ },
814
+ "insertText": "BEGIN { print \"[\" }\n{ if (NR > 1) printf \",\"; printf \" \\\"%s\\\"\", $${1:1} }\nEND { print \"\\n]\" }",
815
+ "insertTextRules": 4,
816
+ "sortText": "06_pattern"
817
+ },
818
+ {
819
+ "label": "range pattern",
820
+ "kind": 28,
821
+ "detail": "Range match",
822
+ "documentation": {
823
+ "value": "Match between two patterns."
824
+ },
825
+ "insertText": "/^${1:START}/,/^${2:END}/ { ${3:print} }",
826
+ "insertTextRules": 4,
827
+ "sortText": "06_pattern"
828
+ },
829
+ {
830
+ "label": "column alignment",
831
+ "kind": 28,
832
+ "detail": "Align columns",
833
+ "documentation": {
834
+ "value": "Print aligned columns."
835
+ },
836
+ "insertText": "{ printf \"%-${1:20}s %${2:10}s\\n\", $${3:1}, $${4:2} }",
837
+ "insertTextRules": 4,
838
+ "sortText": "05_format"
839
+ },
840
+ {
841
+ "label": "header footer",
842
+ "kind": 28,
843
+ "detail": "Header/footer",
844
+ "documentation": {
845
+ "value": "Print header and footer."
846
+ },
847
+ "insertText": "BEGIN { printf \"%-20s %10s\\n\", \"${1:Name}\", \"${2:Value}\"; print \"------------------------------\" }\n{ printf \"%-20s %10s\\n\", $${3:1}, $${4:2} }\nEND { print \"------------------------------\"; print \"Total:\", NR, \"records\" }",
848
+ "insertTextRules": 4,
849
+ "sortText": "05_format"
850
+ },
851
+ {
852
+ "label": "gsub",
853
+ "kind": 1,
854
+ "detail": "gsub()",
855
+ "documentation": {
856
+ "value": "Global substitution."
857
+ },
858
+ "insertText": "gsub(/${1:pattern}/, \"${2:replacement}\", ${3:target})",
859
+ "insertTextRules": 4,
860
+ "sortText": "01_fn"
861
+ },
862
+ {
863
+ "label": "split",
864
+ "kind": 1,
865
+ "detail": "split()",
866
+ "documentation": {
867
+ "value": "Split string into array."
868
+ },
869
+ "insertText": "split(${1:string}, ${2:arr}, \"${3:,}\")",
870
+ "insertTextRules": 4,
871
+ "sortText": "01_fn"
872
+ },
873
+ {
874
+ "label": "getline",
875
+ "kind": 1,
876
+ "detail": "getline",
877
+ "documentation": {
878
+ "value": "Read next line."
879
+ },
880
+ "insertText": "getline ${1:line} < \"${2:file}\"",
881
+ "insertTextRules": 4,
882
+ "sortText": "01_fn"
883
+ },
884
+ {
885
+ "label": "sum column",
886
+ "kind": 28,
887
+ "detail": "Sum column",
888
+ "documentation": {
889
+ "value": "Sum a column."
890
+ },
891
+ "insertText": "{ sum += $${1:1} }\nEND { print \"Sum:\", sum }",
892
+ "insertTextRules": 4,
893
+ "sortText": "06_pattern"
894
+ },
895
+ {
896
+ "label": "word count",
897
+ "kind": 28,
898
+ "detail": "Count words",
899
+ "documentation": {
900
+ "value": "Count total words."
901
+ },
902
+ "insertText": "{ words += NF }\nEND { print \"Words:\", words }",
903
+ "insertTextRules": 4,
904
+ "sortText": "06_pattern"
905
+ }
906
+ ]
203
907
  }