vscode-liquidsoap 0.2.0 → 0.3.1

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 (344) hide show
  1. package/package.json +14 -9
  2. package/syntaxes/liquidsoap.sublime-syntax +5 -0
  3. package/syntaxes/liquidsoap.tmLanguage +8 -0
  4. package/syntaxes/liquidsoap.tmLanguage.json +46 -12
  5. package/test-suite/fetch-stdlib.js +125 -0
  6. package/test-suite/run-tests.js +544 -0
  7. package/tests/snap/libs/audio.liq.snap +20 -10
  8. package/tests/snap/libs/fades.liq.snap +3 -1
  9. package/tests/snap/libs/ffmpeg.liq.snap +10 -5
  10. package/tests/snap/libs/file.liq.snap +1 -1
  11. package/tests/snap/libs/hls.liq.snap +22 -9
  12. package/tests/snap/libs/http.liq.snap +60 -22
  13. package/tests/snap/libs/icecast.liq.snap +19 -13
  14. package/tests/snap/libs/medialib.liq.snap +5 -2
  15. package/tests/snap/libs/metadata.liq.snap +7 -3
  16. package/tests/snap/libs/playlist.liq.snap +4 -2
  17. package/tests/snap/libs/protocols.liq.snap +70 -24
  18. package/tests/snap/libs/ref.liq.snap +4 -3
  19. package/tests/snap/libs/request.liq.snap +3 -1
  20. package/tests/snap/libs/resolvers.liq.snap +5 -2
  21. package/tests/snap/libs/settings.liq.snap +11 -5
  22. package/tests/snap/libs/source.liq.snap +2 -1
  23. package/tests/snap/libs/stdlib.liq.snap +52 -52
  24. package/tests/snap/libs/string.liq.snap +6 -4
  25. package/tests/snap/libs/switches.liq.snap +2 -2
  26. package/tests/snap/libs/testing.liq.snap +3 -1
  27. package/tests/snap/libs/thread.liq.snap +3 -1
  28. package/tests/snap/libs/video.liq.snap +21 -12
  29. package/tests/snap/tests/failures/ctype.liq +0 -0
  30. package/tests/snap/tests/failures/ctype.liq.snap +69 -11
  31. package/tests/snap/tests/failures/error.liq +0 -0
  32. package/tests/snap/tests/failures/error.liq.snap +21 -10
  33. package/tests/snap/tests/failures/record-invalid-member1.liq +0 -0
  34. package/tests/snap/tests/failures/record-invalid-member1.liq.snap +26 -11
  35. package/tests/snap/tests/failures/record-invalid-member2.liq +0 -0
  36. package/tests/snap/tests/failures/record-invalid-member2.liq.snap +13 -5
  37. package/tests/snap/tests/failures/ref.liq +0 -0
  38. package/tests/snap/tests/failures/ref.liq.snap +53 -17
  39. package/tests/snap/tests/fixme/GH1170.liq +0 -0
  40. package/tests/snap/tests/fixme/GH1170.liq.snap +139 -36
  41. package/tests/snap/tests/fixme/LS527.liq.snap +89 -32
  42. package/tests/snap/tests/fixme/cross2.liq +0 -0
  43. package/tests/snap/tests/fixme/cross2.liq.snap +122 -31
  44. package/tests/snap/tests/fixme/cross3.liq +0 -0
  45. package/tests/snap/tests/fixme/cross3.liq.snap +96 -26
  46. package/tests/snap/tests/fixme/sequence-1.liq +0 -0
  47. package/tests/snap/tests/fixme/sequence-1.liq.snap +168 -49
  48. package/tests/snap/tests/fixme/sequence-2.liq.snap +163 -42
  49. package/tests/snap/tests/harbor/http.liq.snap +2246 -798
  50. package/tests/snap/tests/harbor/http2.liq.snap +447 -150
  51. package/tests/snap/tests/harbor/http3.liq.snap +238 -99
  52. package/tests/snap/tests/harbor/post.liq.snap +1416 -575
  53. package/tests/snap/tests/harbor/put.liq.snap +1416 -578
  54. package/tests/snap/tests/language/argsof.liq +0 -0
  55. package/tests/snap/tests/language/argsof.liq.snap +342 -74
  56. package/tests/snap/tests/language/bool.liq +0 -0
  57. package/tests/snap/tests/language/bool.liq.snap +129 -29
  58. package/tests/snap/tests/language/comments.liq.snap +188 -95
  59. package/tests/snap/tests/language/conversions.liq.snap +181 -68
  60. package/tests/snap/tests/language/doc.liq +0 -0
  61. package/tests/snap/tests/language/doc.liq.snap +42 -13
  62. package/tests/snap/tests/language/encoders.liq +0 -0
  63. package/tests/snap/tests/language/encoders.liq.snap +153 -39
  64. package/tests/snap/tests/language/error.liq +0 -0
  65. package/tests/snap/tests/language/error.liq.snap +677 -179
  66. package/tests/snap/tests/language/eval.liq +0 -0
  67. package/tests/snap/tests/language/eval.liq.snap +761 -308
  68. package/tests/snap/tests/language/file.liq +0 -0
  69. package/tests/snap/tests/language/file.liq.snap +326 -92
  70. package/tests/snap/tests/language/file.watch.liq +0 -0
  71. package/tests/snap/tests/language/file.watch.liq.snap +122 -30
  72. package/tests/snap/tests/language/file.watch2.liq +0 -0
  73. package/tests/snap/tests/language/file.watch2.liq.snap +147 -42
  74. package/tests/snap/tests/language/file_protocol.liq +0 -0
  75. package/tests/snap/tests/language/file_protocol.liq.snap +109 -32
  76. package/tests/snap/tests/language/functions.liq +0 -0
  77. package/tests/snap/tests/language/functions.liq.snap +189 -59
  78. package/tests/snap/tests/language/getter.liq +0 -0
  79. package/tests/snap/tests/language/getter.liq.snap +470 -133
  80. package/tests/snap/tests/language/interactive.liq +0 -0
  81. package/tests/snap/tests/language/interactive.liq.snap +254 -83
  82. package/tests/snap/tests/language/interpolation.liq +20 -0
  83. package/tests/snap/tests/language/interpolation.liq.snap +141 -0
  84. package/tests/snap/tests/language/json.liq +0 -0
  85. package/tests/snap/tests/language/json.liq.snap +1304 -738
  86. package/tests/snap/tests/language/list.liq +0 -0
  87. package/tests/snap/tests/language/list.liq.snap +1932 -883
  88. package/tests/snap/tests/language/loop.liq +0 -0
  89. package/tests/snap/tests/language/loop.liq.snap +276 -101
  90. package/tests/snap/tests/language/math.liq +0 -0
  91. package/tests/snap/tests/language/math.liq.snap +134 -26
  92. package/tests/snap/tests/language/mem_usage.liq +0 -0
  93. package/tests/snap/tests/language/mem_usage.liq.snap +66 -17
  94. package/tests/snap/tests/language/metadata.liq +0 -0
  95. package/tests/snap/tests/language/metadata.liq.snap +606 -177
  96. package/tests/snap/tests/language/null.liq +0 -0
  97. package/tests/snap/tests/language/null.liq.snap +351 -131
  98. package/tests/snap/tests/language/osc.liq +0 -0
  99. package/tests/snap/tests/language/osc.liq.snap +350 -124
  100. package/tests/snap/tests/language/pattern.liq +0 -0
  101. package/tests/snap/tests/language/pattern.liq.snap +955 -308
  102. package/tests/snap/tests/language/pp.liq +0 -0
  103. package/tests/snap/tests/language/pp.liq.snap +227 -78
  104. package/tests/snap/tests/language/predicate.liq +0 -0
  105. package/tests/snap/tests/language/predicate.liq.snap +365 -70
  106. package/tests/snap/tests/language/process.liq +0 -0
  107. package/tests/snap/tests/language/process.liq.snap +227 -99
  108. package/tests/snap/tests/language/rec.liq +0 -0
  109. package/tests/snap/tests/language/rec.liq.snap +134 -49
  110. package/tests/snap/tests/language/record.liq +0 -0
  111. package/tests/snap/tests/language/record.liq.snap +2251 -570
  112. package/tests/snap/tests/language/ref.liq +0 -0
  113. package/tests/snap/tests/language/ref.liq.snap +208 -55
  114. package/tests/snap/tests/language/regexp.liq +0 -0
  115. package/tests/snap/tests/language/regexp.liq.snap +327 -176
  116. package/tests/snap/tests/language/socket.liq.snap +279 -96
  117. package/tests/snap/tests/language/stdlib.liq +0 -0
  118. package/tests/snap/tests/language/stdlib.liq.snap +170 -51
  119. package/tests/snap/tests/language/string.liq +0 -0
  120. package/tests/snap/tests/language/string.liq.snap +1747 -860
  121. package/tests/snap/tests/language/test_cover.liq.snap +57 -20
  122. package/tests/snap/tests/language/thread.liq.snap +391 -102
  123. package/tests/snap/tests/language/time.liq +0 -0
  124. package/tests/snap/tests/language/time.liq.snap +115 -33
  125. package/tests/snap/tests/language/type_errors.liq +0 -0
  126. package/tests/snap/tests/language/type_errors.liq.snap +1042 -703
  127. package/tests/snap/tests/language/types.liq +33 -0
  128. package/tests/snap/tests/language/types.liq.snap +321 -0
  129. package/tests/snap/tests/language/typing.liq +0 -0
  130. package/tests/snap/tests/language/typing.liq.snap +1233 -405
  131. package/tests/snap/tests/language/url.liq +0 -0
  132. package/tests/snap/tests/language/url.liq.snap +84 -38
  133. package/tests/snap/tests/language/write_cover.liq.snap +44 -15
  134. package/tests/snap/tests/language/yaml.liq.snap +252 -97
  135. package/tests/snap/tests/media/ffmpeg_add_text.liq +0 -0
  136. package/tests/snap/tests/media/ffmpeg_add_text.liq.snap +558 -120
  137. package/tests/snap/tests/media/ffmpeg_audio_decoder.liq +0 -0
  138. package/tests/snap/tests/media/ffmpeg_audio_decoder.liq.snap +228 -49
  139. package/tests/snap/tests/media/ffmpeg_complex_filter.liq +0 -0
  140. package/tests/snap/tests/media/ffmpeg_complex_filter.liq.snap +544 -68
  141. package/tests/snap/tests/media/ffmpeg_copy_and_encode_decoder.liq +0 -0
  142. package/tests/snap/tests/media/ffmpeg_copy_and_encode_decoder.liq.snap +362 -68
  143. package/tests/snap/tests/media/ffmpeg_copy_concat.liq.snap +159 -56
  144. package/tests/snap/tests/media/ffmpeg_copy_decoder.liq +0 -0
  145. package/tests/snap/tests/media/ffmpeg_copy_decoder.liq.snap +507 -121
  146. package/tests/snap/tests/media/ffmpeg_distributed_hls.liq +0 -0
  147. package/tests/snap/tests/media/ffmpeg_distributed_hls.liq.snap +645 -186
  148. package/tests/snap/tests/media/ffmpeg_filter.liq +0 -0
  149. package/tests/snap/tests/media/ffmpeg_filter.liq.snap +603 -101
  150. package/tests/snap/tests/media/ffmpeg_filter_changing_rate.liq.snap +712 -142
  151. package/tests/snap/tests/media/ffmpeg_inline_encode_decode.liq +0 -0
  152. package/tests/snap/tests/media/ffmpeg_inline_encode_decode.liq.snap +530 -131
  153. package/tests/snap/tests/media/ffmpeg_inline_encode_decode_audio.liq +0 -0
  154. package/tests/snap/tests/media/ffmpeg_inline_encode_decode_audio.liq.snap +365 -94
  155. package/tests/snap/tests/media/ffmpeg_inline_encode_decode_video.liq +0 -0
  156. package/tests/snap/tests/media/ffmpeg_inline_encode_decode_video.liq.snap +365 -94
  157. package/tests/snap/tests/media/ffmpeg_raw_and_copy_decoder.liq +0 -0
  158. package/tests/snap/tests/media/ffmpeg_raw_and_copy_decoder.liq.snap +514 -125
  159. package/tests/snap/tests/media/ffmpeg_raw_and_encode_decoder.liq +0 -0
  160. package/tests/snap/tests/media/ffmpeg_raw_and_encode_decoder.liq.snap +385 -73
  161. package/tests/snap/tests/media/ffmpeg_raw_decoder.liq +0 -0
  162. package/tests/snap/tests/media/ffmpeg_raw_decoder.liq.snap +370 -72
  163. package/tests/snap/tests/media/ffmpeg_raw_hls.liq +0 -0
  164. package/tests/snap/tests/media/ffmpeg_raw_hls.liq.snap +629 -193
  165. package/tests/snap/tests/media/ffmpeg_transparency_filter.liq.snap +538 -109
  166. package/tests/snap/tests/media/ffmpeg_video_decoder.liq +0 -0
  167. package/tests/snap/tests/media/ffmpeg_video_decoder.liq.snap +236 -59
  168. package/tests/snap/tests/media/mono.liq +0 -0
  169. package/tests/snap/tests/media/mono.liq.snap +223 -47
  170. package/tests/snap/tests/media/multitrack.liq.snap +790 -235
  171. package/tests/snap/tests/media/pcm_f32_decode.liq +0 -0
  172. package/tests/snap/tests/media/pcm_f32_decode.liq.snap +61 -12
  173. package/tests/snap/tests/media/pcm_s16_decode.liq +0 -0
  174. package/tests/snap/tests/media/pcm_s16_decode.liq.snap +61 -12
  175. package/tests/snap/tests/media/stereo.liq +0 -0
  176. package/tests/snap/tests/media/stereo.liq.snap +223 -47
  177. package/tests/snap/tests/media/stream_audio.liq.in +0 -0
  178. package/tests/snap/tests/media/stream_video.liq.in +0 -0
  179. package/tests/snap/tests/media/taglib.liq +0 -0
  180. package/tests/snap/tests/media/taglib.liq.snap +77 -26
  181. package/tests/snap/tests/media/video_size.liq +0 -0
  182. package/tests/snap/tests/media/video_size.liq.snap +305 -68
  183. package/tests/snap/tests/performance/erathostenes.liq +0 -0
  184. package/tests/snap/tests/performance/erathostenes.liq.snap +281 -62
  185. package/tests/snap/tests/performance/performance.liq.snap +99 -26
  186. package/tests/snap/tests/performance/small-record.liq +0 -0
  187. package/tests/snap/tests/performance/small-record.liq.snap +626 -320
  188. package/tests/snap/tests/regression/115-1.liq +0 -0
  189. package/tests/snap/tests/regression/115-1.liq.snap +74 -15
  190. package/tests/snap/tests/regression/115-2.liq +0 -0
  191. package/tests/snap/tests/regression/115-2.liq.snap +101 -16
  192. package/tests/snap/tests/regression/AC5109.liq +0 -0
  193. package/tests/snap/tests/regression/AC5109.liq.snap +216 -78
  194. package/tests/snap/tests/regression/BUG403.liq +0 -0
  195. package/tests/snap/tests/regression/BUG403.liq.snap +136 -33
  196. package/tests/snap/tests/regression/GH-action-919422659.liq +0 -0
  197. package/tests/snap/tests/regression/GH-action-919422659.liq.snap +105 -34
  198. package/tests/snap/tests/regression/GH1129.liq +0 -0
  199. package/tests/snap/tests/regression/GH1129.liq.snap +351 -153
  200. package/tests/snap/tests/regression/GH1146.liq +0 -0
  201. package/tests/snap/tests/regression/GH1146.liq.snap +82 -27
  202. package/tests/snap/tests/regression/GH1151.liq +0 -0
  203. package/tests/snap/tests/regression/GH1151.liq.snap +55 -25
  204. package/tests/snap/tests/regression/GH1159.liq +0 -0
  205. package/tests/snap/tests/regression/GH1159.liq.snap +97 -30
  206. package/tests/snap/tests/regression/GH1279.liq +0 -0
  207. package/tests/snap/tests/regression/GH1279.liq.snap +270 -108
  208. package/tests/snap/tests/regression/GH1327.liq +0 -0
  209. package/tests/snap/tests/regression/GH1327.liq.snap +380 -134
  210. package/tests/snap/tests/regression/GH2585.liq.snap +110 -45
  211. package/tests/snap/tests/regression/GH2602.liq.snap +116 -30
  212. package/tests/snap/tests/regression/GH2756-2.liq.snap +361 -104
  213. package/tests/snap/tests/regression/GH2756.liq.snap +419 -119
  214. package/tests/snap/tests/regression/GH2758.liq.snap +113 -30
  215. package/tests/snap/tests/regression/GH2842.liq.snap +151 -50
  216. package/tests/snap/tests/regression/GH2850.liq.snap +358 -146
  217. package/tests/snap/tests/regression/GH2867.liq.snap +46 -15
  218. package/tests/snap/tests/regression/GH2871.liq.snap +86 -30
  219. package/tests/snap/tests/regression/GH2872.liq.snap +103 -32
  220. package/tests/snap/tests/regression/GH2897.liq.snap +123 -33
  221. package/tests/snap/tests/regression/GH2902.liq.snap +326 -109
  222. package/tests/snap/tests/regression/GH2926.liq.snap +121 -39
  223. package/tests/snap/tests/regression/GH3093.liq.snap +46 -11
  224. package/tests/snap/tests/regression/GH3121.liq.snap +138 -36
  225. package/tests/snap/tests/regression/GH3132.liq.snap +146 -43
  226. package/tests/snap/tests/regression/GH3224.liq.snap +18 -10
  227. package/tests/snap/tests/regression/GH3239-2.liq.snap +154 -34
  228. package/tests/snap/tests/regression/GH3239.liq.snap +149 -33
  229. package/tests/snap/tests/regression/GH3276.liq.snap +164 -53
  230. package/tests/snap/tests/regression/GH3316.liq.snap +229 -55
  231. package/tests/snap/tests/regression/LS268.liq +0 -0
  232. package/tests/snap/tests/regression/LS268.liq.snap +102 -19
  233. package/tests/snap/tests/regression/LS354-1.liq +0 -0
  234. package/tests/snap/tests/regression/LS354-1.liq.snap +117 -28
  235. package/tests/snap/tests/regression/LS354-2.liq +0 -0
  236. package/tests/snap/tests/regression/LS354-2.liq.snap +154 -56
  237. package/tests/snap/tests/regression/LS460.liq +0 -0
  238. package/tests/snap/tests/regression/LS460.liq.snap +145 -49
  239. package/tests/snap/tests/regression/LS503.liq +0 -0
  240. package/tests/snap/tests/regression/LS503.liq.snap +71 -24
  241. package/tests/snap/tests/regression/default_format.liq.snap +43 -7
  242. package/tests/snap/tests/regression/external-encoder.liq.snap +72 -28
  243. package/tests/snap/tests/regression/ffmpeg-copy-encode.liq.snap +167 -62
  244. package/tests/snap/tests/regression/ffmpeg-copy-input-http.liq.snap +55 -13
  245. package/tests/snap/tests/regression/ffmpeg-naming-convention.liq.snap +371 -126
  246. package/tests/snap/tests/regression/infallible-shutdown.liq +0 -0
  247. package/tests/snap/tests/regression/infallible-shutdown.liq.snap +26 -6
  248. package/tests/snap/tests/regression/init-error.liq +0 -0
  249. package/tests/snap/tests/regression/init-error.liq.snap +70 -10
  250. package/tests/snap/tests/regression/initial_request_queue.liq.snap +69 -14
  251. package/tests/snap/tests/regression/input_rtmp.liq +0 -0
  252. package/tests/snap/tests/regression/input_rtmp.liq.snap +28 -7
  253. package/tests/snap/tests/regression/metadata_cache.liq +0 -0
  254. package/tests/snap/tests/regression/metadata_cache.liq.snap +173 -56
  255. package/tests/snap/tests/regression/playlist-id.liq +0 -0
  256. package/tests/snap/tests/regression/playlist-id.liq.snap +126 -56
  257. package/tests/snap/tests/regression/replaygain.liq.snap +53 -11
  258. package/tests/snap/tests/regression/shoutcast-args.liq.snap +52 -24
  259. package/tests/snap/tests/regression/unified-pcm-types.liq.snap +91 -28
  260. package/tests/snap/tests/regression/video-only.liq.snap +121 -33
  261. package/tests/snap/tests/streams/195.liq +0 -0
  262. package/tests/snap/tests/streams/195.liq.snap +63 -26
  263. package/tests/snap/tests/streams/197.liq +0 -0
  264. package/tests/snap/tests/streams/197.liq.snap +129 -40
  265. package/tests/snap/tests/streams/autostart.liq +0 -0
  266. package/tests/snap/tests/streams/autostart.liq.snap +147 -37
  267. package/tests/snap/tests/streams/cross-override.liq.snap +338 -92
  268. package/tests/snap/tests/streams/cross-persist-override.liq.snap +342 -92
  269. package/tests/snap/tests/streams/cross.liq +0 -0
  270. package/tests/snap/tests/streams/cross.liq.snap +343 -90
  271. package/tests/snap/tests/streams/crossfade.liq +0 -0
  272. package/tests/snap/tests/streams/crossfade.liq.snap +476 -128
  273. package/tests/snap/tests/streams/ctype1.liq +0 -0
  274. package/tests/snap/tests/streams/ctype1.liq.snap +89 -26
  275. package/tests/snap/tests/streams/ctype2.liq +0 -0
  276. package/tests/snap/tests/streams/ctype2.liq.snap +114 -30
  277. package/tests/snap/tests/streams/dtmf.liq +0 -0
  278. package/tests/snap/tests/streams/dtmf.liq.snap +129 -32
  279. package/tests/snap/tests/streams/dtmf_pcm_s16.liq +0 -0
  280. package/tests/snap/tests/streams/dtmf_pcm_s16.liq.snap +161 -38
  281. package/tests/snap/tests/streams/fades-overrides.liq.snap +472 -121
  282. package/tests/snap/tests/streams/fades-persistent-override.liq.snap +482 -121
  283. package/tests/snap/tests/streams/ffmpeg-errors.liq.snap +108 -30
  284. package/tests/snap/tests/streams/ffmpeg-trim.liq.snap +63 -18
  285. package/tests/snap/tests/streams/file_output.liq.snap +131 -33
  286. package/tests/snap/tests/streams/harbor_kick_client.liq.snap +235 -72
  287. package/tests/snap/tests/streams/harbor_metadata.liq.snap +206 -96
  288. package/tests/snap/tests/streams/hls_custom_tags.liq.snap +407 -125
  289. package/tests/snap/tests/streams/hls_id3v2.liq.snap +742 -257
  290. package/tests/snap/tests/streams/huge-playlist.liq +0 -0
  291. package/tests/snap/tests/streams/huge-playlist.liq.snap +125 -40
  292. package/tests/snap/tests/streams/icecast_ssl.liq.snap +134 -42
  293. package/tests/snap/tests/streams/icecast_ssl_tls.liq.snap +164 -55
  294. package/tests/snap/tests/streams/icecast_tls.liq.snap +163 -53
  295. package/tests/snap/tests/streams/icecast_tls_ssl.liq.snap +164 -55
  296. package/tests/snap/tests/streams/image.liq +0 -0
  297. package/tests/snap/tests/streams/image.liq.snap +44 -10
  298. package/tests/snap/tests/streams/many-playlists.liq +0 -0
  299. package/tests/snap/tests/streams/many-playlists.liq.snap +142 -48
  300. package/tests/snap/tests/streams/merge_metadata.liq.snap +224 -63
  301. package/tests/snap/tests/streams/never.liq +0 -0
  302. package/tests/snap/tests/streams/never.liq.snap +56 -11
  303. package/tests/snap/tests/streams/on_frame.liq +0 -0
  304. package/tests/snap/tests/streams/on_frame.liq.snap +81 -23
  305. package/tests/snap/tests/streams/on_metadata.liq +0 -0
  306. package/tests/snap/tests/streams/on_metadata.liq.snap +103 -37
  307. package/tests/snap/tests/streams/on_track.liq +0 -0
  308. package/tests/snap/tests/streams/on_track.liq.snap +69 -18
  309. package/tests/snap/tests/streams/playlist-watch.liq +0 -0
  310. package/tests/snap/tests/streams/playlist-watch.liq.snap +195 -56
  311. package/tests/snap/tests/streams/radio.liq +0 -0
  312. package/tests/snap/tests/streams/radio.liq.snap +72 -17
  313. package/tests/snap/tests/streams/radio2.liq +0 -0
  314. package/tests/snap/tests/streams/radio2.liq.snap +143 -48
  315. package/tests/snap/tests/streams/random.liq +0 -0
  316. package/tests/snap/tests/streams/random.liq.snap +395 -171
  317. package/tests/snap/tests/streams/replaygain.liq +0 -0
  318. package/tests/snap/tests/streams/replaygain.liq.snap +62 -19
  319. package/tests/snap/tests/streams/request.liq +0 -0
  320. package/tests/snap/tests/streams/request.liq.snap +361 -145
  321. package/tests/snap/tests/streams/rotate.liq +0 -0
  322. package/tests/snap/tests/streams/rotate.liq.snap +421 -151
  323. package/tests/snap/tests/streams/say.liq +0 -0
  324. package/tests/snap/tests/streams/say.liq.snap +139 -32
  325. package/tests/snap/tests/streams/seek_track_map.liq.snap +143 -48
  326. package/tests/snap/tests/streams/sharing.liq +0 -0
  327. package/tests/snap/tests/streams/sharing.liq.snap +109 -25
  328. package/tests/snap/tests/streams/sine.detect.full_conv.liq +0 -0
  329. package/tests/snap/tests/streams/sine.detect.full_conv.liq.snap +127 -33
  330. package/tests/snap/tests/streams/sine.detect.liq +0 -0
  331. package/tests/snap/tests/streams/sine.detect.liq.snap +71 -20
  332. package/tests/snap/tests/streams/sine.detect.pcm_f32.liq +0 -0
  333. package/tests/snap/tests/streams/sine.detect.pcm_f32.liq.snap +95 -26
  334. package/tests/snap/tests/streams/sine.detect.pcm_s16.liq +0 -0
  335. package/tests/snap/tests/streams/sine.detect.pcm_s16.liq.snap +95 -26
  336. package/tests/snap/tests/streams/smart-crossfade.liq +0 -0
  337. package/tests/snap/tests/streams/smart-crossfade.liq.snap +101 -25
  338. package/tests/snap/tests/streams/srt_listen_callback.liq.snap +149 -38
  339. package/tests/snap/tests/streams/srt_multiple_outputs.liq.snap +146 -35
  340. package/tests/snap/tests/streams/srt_passphrase.liq.snap +92 -27
  341. package/tests/snap/tests/streams/srt_raw_pcm.liq.snap +134 -43
  342. package/tests/snap/tests/streams/stretch-clock-propagation.liq +0 -0
  343. package/tests/snap/tests/streams/stretch-clock-propagation.liq.snap +86 -20
  344. package/tests/snap/tests/test.liq +0 -0
package/package.json CHANGED
@@ -5,9 +5,9 @@
5
5
  "publisher": "savonet",
6
6
  "repository": "https://github.com/savonet/vscode-liquidsoap.git",
7
7
  "homepage": "https://github.com/savonet/vscode-liquidsoap",
8
- "version": "0.2.0",
8
+ "version": "0.3.1",
9
9
  "engines": {
10
- "vscode": "^1.82.0"
10
+ "vscode": "^1.98.0"
11
11
  },
12
12
  "icon": "assets/logo.png",
13
13
  "license": "MIT",
@@ -16,6 +16,15 @@
16
16
  "Formatters"
17
17
  ],
18
18
  "main": "dist/extension.js",
19
+ "scripts": {
20
+ "release": "pnpm build && vsce publish",
21
+ "build": "webpack --config webpack.config.js",
22
+ "typecheck": "tsc --noEmit",
23
+ "update:snapshots": "vscode-tmgrammar-snap --updateSnapshot tests/snap/**/*.liq",
24
+ "test:fetch-stdlib": "node test-suite/fetch-stdlib.js",
25
+ "test": "node test-suite/run-tests.js",
26
+ "test:full": "npm run test:fetch-stdlib && npm run test"
27
+ },
19
28
  "contributes": {
20
29
  "languages": [
21
30
  {
@@ -45,14 +54,10 @@
45
54
  "prettier": "^3.5.3",
46
55
  "ts-loader": "^9.5.2",
47
56
  "typescript": "^5.8.2",
57
+ "vscode-oniguruma": "^1.7.0",
58
+ "vscode-textmate": "^9.0.0",
48
59
  "vscode-tmgrammar-test": "^0.1.3",
49
60
  "webpack": "^5.98.0",
50
61
  "webpack-cli": "^5.1.4"
51
- },
52
- "scripts": {
53
- "release": "pnpm build && vsce publish",
54
- "build": "webpack --config webpack.config.js",
55
- "typecheck": "tsc --noEmit",
56
- "update:snapshots": "vscode-tmgrammar-snap --updateSnapshot tests/snap/**/*.liq"
57
62
  }
58
- }
63
+ }
@@ -370,6 +370,11 @@ contexts:
370
370
  pop: true
371
371
  - match: \\/
372
372
  scope: constant.character.escape.liquidsoap
373
+ - match: '\{([a-z_]*)\|'
374
+ push:
375
+ - meta_scope: string.unquoted.raw.liquidsoap
376
+ - match: '\|\1\}'
377
+ pop: true
373
378
  types:
374
379
  - match: \b(int|float|unit|bool)(?:(\?)|\b)
375
380
  captures:
@@ -1109,6 +1109,14 @@
1109
1109
  <key>name</key>
1110
1110
  <string>string.regexp.liquidsoap</string>
1111
1111
  </dict>
1112
+ <dict>
1113
+ <key>name</key>
1114
+ <string>string.unquoted.raw.liquidsoap</string>
1115
+ <key>begin</key>
1116
+ <string>\{([a-z_]*)\|</string>
1117
+ <key>end</key>
1118
+ <string>\|\1\}</string>
1119
+ </dict>
1112
1120
  </array>
1113
1121
  </dict>
1114
1122
  <key>string-escapes</key>
@@ -13,7 +13,11 @@
13
13
  "patterns": [
14
14
  {
15
15
  "name": "keyword.other.liquidsoap",
16
- "match": "(%ifdef|%ifndef|%ifversion|%ifnversion|%ifencoder|%ifnencoder|%else|%endif)\\b"
16
+ "match": "(%ifdef|%ifndef|%ifversion|%ifnversion|%ifencoder|%ifnencoder|%else|%endif|%include_extra|%include)\\b"
17
+ },
18
+ {
19
+ "name": "keyword.other.liquidsoap",
20
+ "match": "\\bopen\\b"
17
21
  },
18
22
  {
19
23
  "name": "keyword.control.function.declaration.liquidsoap",
@@ -23,6 +27,10 @@
23
27
  "name": "keyword.operator.boolean.liquidsoap",
24
28
  "match": "\\b(and|or|not)\\b"
25
29
  },
30
+ {
31
+ "name": "keyword.operator.arithmetic.liquidsoap",
32
+ "match": "\\bmod\\b"
33
+ },
26
34
  {
27
35
  "name": "keyword.operator.spread.liquidsoap",
28
36
  "match": "\\.\\.\\."
@@ -35,6 +43,10 @@
35
43
  "name": "keyword.operator.arithmetic.liquidsoap",
36
44
  "match": "[+\\-/*]\\.?"
37
45
  },
46
+ {
47
+ "name": "keyword.operator.concat.liquidsoap",
48
+ "match": "\\^"
49
+ },
38
50
  {
39
51
  "name": "keyword.operator.compare.liquidsoap",
40
52
  "match": "(>=|<=|>|<|==|!=)"
@@ -47,6 +59,10 @@
47
59
  "name": "keyword.operator.coalesce.liquidsoap",
48
60
  "match": "\\?\\?"
49
61
  },
62
+ {
63
+ "name": "keyword.operator.dereference.liquidsoap",
64
+ "match": "!(?=[a-zA-Z_])"
65
+ },
50
66
  {
51
67
  "comment": "comma separator",
52
68
  "name": "keyword.other.liquidsoap punctuation.comma punctuation.separator.comma",
@@ -214,6 +230,10 @@
214
230
  },
215
231
  "patterns": [{ "include": "#expressions" }]
216
232
  },
233
+ {
234
+ "match": "\\bfinally\\b",
235
+ "name": "keyword.control.liquidsoap"
236
+ },
217
237
  { "include": "$self" }
218
238
  ]
219
239
  },
@@ -276,7 +296,7 @@
276
296
  "types": {
277
297
  "patterns": [
278
298
  {
279
- "match": "\\b(int|float|unit|bool)(?:(\\?)|\\b)",
299
+ "match": "\\b(int|float|unit|bool|string|never|ref)(?:(\\?)|\\b)",
280
300
  "captures": {
281
301
  "1": { "name": "storage.type.ground.liquidsoap" },
282
302
  "2": { "name": "keyword.other.liquidsoap" }
@@ -410,11 +430,11 @@
410
430
  "name": "constant.numeric.decimal.float.liquidsoap"
411
431
  },
412
432
  {
413
- "match": "\\b0(x|X)[0-9][0-9a-fA-F_]+\\b",
433
+ "match": "\\b0(x|X)[0-9a-fA-F][0-9a-fA-F_]*\\b",
414
434
  "name": "constant.numeric.hexadecimal.integer.liquidsoap"
415
435
  },
416
436
  {
417
- "match": "\\b0(o|O)[0-9][0-9_]+\\b",
437
+ "match": "\\b0(o|O)[0-7][0-7_]*\\b",
418
438
  "name": "constant.numeric.octal.integer.liquidsoap"
419
439
  },
420
440
  {
@@ -472,6 +492,14 @@
472
492
  {
473
493
  "match": "@argsof",
474
494
  "name": "comment.doc.argsof.liquidsoap"
495
+ },
496
+ {
497
+ "match": "@flag",
498
+ "name": "comment.doc.flag.liquidsoap"
499
+ },
500
+ {
501
+ "match": "@docof",
502
+ "name": "comment.doc.docof.liquidsoap"
475
503
  }
476
504
  ]
477
505
  },
@@ -499,6 +527,11 @@
499
527
  }
500
528
  ],
501
529
  "name": "string.regexp.liquidsoap"
530
+ },
531
+ {
532
+ "name": "string.unquoted.raw.liquidsoap",
533
+ "begin": "\\{([a-z_]*)\\|",
534
+ "end": "\\|\\1\\}"
502
535
  }
503
536
  ]
504
537
  },
@@ -509,16 +542,17 @@
509
542
  "match": "\\\\."
510
543
  },
511
544
  {
512
- "name": "string.interpolation.liquidsoap",
545
+ "name": "meta.interpolation.liquidsoap",
546
+ "contentName": "meta.embedded.line.liquidsoap",
513
547
  "begin": "#\\{",
514
548
  "end": "\\}",
515
- "patterns": [
516
- {
517
- "name": "string.interpolation.escape.liquidsoap",
518
- "match": "\\\\}"
519
- },
520
- { "include": "#expressions" }
521
- ]
549
+ "beginCaptures": {
550
+ "0": { "name": "punctuation.section.interpolation.begin.liquidsoap" }
551
+ },
552
+ "endCaptures": {
553
+ "0": { "name": "punctuation.section.interpolation.end.liquidsoap" }
554
+ },
555
+ "patterns": [{ "include": "#expressions" }]
522
556
  }
523
557
  ]
524
558
  },
@@ -0,0 +1,125 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * Fetches liquidsoap standard library files from GitHub for testing
5
+ */
6
+
7
+ const https = require("https");
8
+ const fs = require("fs");
9
+ const path = require("path");
10
+
11
+ const GITHUB_API = "https://api.github.com";
12
+ const REPO_OWNER = "savonet";
13
+ const REPO_NAME = "liquidsoap";
14
+ const LIBS_PATH = "src/libs";
15
+ const OUTPUT_DIR = path.join(__dirname, "stdlib");
16
+
17
+ async function fetchJson(url) {
18
+ return new Promise((resolve, reject) => {
19
+ const options = {
20
+ headers: {
21
+ "User-Agent": "vscode-liquidsoap-test-suite",
22
+ Accept: "application/vnd.github.v3+json",
23
+ },
24
+ };
25
+
26
+ https
27
+ .get(url, options, (res) => {
28
+ let data = "";
29
+ res.on("data", (chunk) => (data += chunk));
30
+ res.on("end", () => {
31
+ if (res.statusCode === 200) {
32
+ resolve(JSON.parse(data));
33
+ } else {
34
+ reject(
35
+ new Error(`HTTP ${res.statusCode}: ${data.substring(0, 200)}`)
36
+ );
37
+ }
38
+ });
39
+ })
40
+ .on("error", reject);
41
+ });
42
+ }
43
+
44
+ async function fetchRaw(url) {
45
+ return new Promise((resolve, reject) => {
46
+ https
47
+ .get(url, { headers: { "User-Agent": "vscode-liquidsoap-test-suite" } }, (res) => {
48
+ if (res.statusCode === 301 || res.statusCode === 302) {
49
+ fetchRaw(res.headers.location).then(resolve).catch(reject);
50
+ return;
51
+ }
52
+ let data = "";
53
+ res.on("data", (chunk) => (data += chunk));
54
+ res.on("end", () => {
55
+ if (res.statusCode === 200) {
56
+ resolve(data);
57
+ } else {
58
+ reject(new Error(`HTTP ${res.statusCode}`));
59
+ }
60
+ });
61
+ })
62
+ .on("error", reject);
63
+ });
64
+ }
65
+
66
+ async function getDirectoryContents(dirPath) {
67
+ const url = `${GITHUB_API}/repos/${REPO_OWNER}/${REPO_NAME}/contents/${dirPath}`;
68
+ return fetchJson(url);
69
+ }
70
+
71
+ async function downloadFile(file, outputPath) {
72
+ console.log(` Downloading: ${file.name}`);
73
+ const content = await fetchRaw(file.download_url);
74
+ fs.writeFileSync(outputPath, content, "utf8");
75
+ }
76
+
77
+ async function processDirectory(dirPath, outputDir) {
78
+ const contents = await getDirectoryContents(dirPath);
79
+
80
+ for (const item of contents) {
81
+ const itemOutputPath = path.join(outputDir, item.name);
82
+
83
+ if (item.type === "dir") {
84
+ fs.mkdirSync(itemOutputPath, { recursive: true });
85
+ await processDirectory(item.path, itemOutputPath);
86
+ } else if (item.name.endsWith(".liq")) {
87
+ await downloadFile(item, itemOutputPath);
88
+ }
89
+ }
90
+ }
91
+
92
+ async function main() {
93
+ console.log("Fetching liquidsoap standard library files...\n");
94
+
95
+ // Clean and create output directory
96
+ if (fs.existsSync(OUTPUT_DIR)) {
97
+ fs.rmSync(OUTPUT_DIR, { recursive: true });
98
+ }
99
+ fs.mkdirSync(OUTPUT_DIR, { recursive: true });
100
+
101
+ try {
102
+ await processDirectory(LIBS_PATH, OUTPUT_DIR);
103
+ console.log("\nDone! Files saved to:", OUTPUT_DIR);
104
+
105
+ // Count files
106
+ const countFiles = (dir) => {
107
+ let count = 0;
108
+ for (const item of fs.readdirSync(dir)) {
109
+ const fullPath = path.join(dir, item);
110
+ if (fs.statSync(fullPath).isDirectory()) {
111
+ count += countFiles(fullPath);
112
+ } else if (item.endsWith(".liq")) {
113
+ count++;
114
+ }
115
+ }
116
+ return count;
117
+ };
118
+ console.log(`Total .liq files: ${countFiles(OUTPUT_DIR)}`);
119
+ } catch (err) {
120
+ console.error("Error:", err.message);
121
+ process.exit(1);
122
+ }
123
+ }
124
+
125
+ main();