factoriomod-debug 1.1.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md ADDED
@@ -0,0 +1,644 @@
1
+ # Changelog
2
+
3
+ [<img height='36' style='border:0px;height:36px;' src='https://az743702.vo.msecnd.net/cdn/kofi2.png?v=2' border='0' alt='Buy Me a Coffee at ko-fi.com'/>](https://ko-fi.com/X8X41IE4T)
4
+
5
+ ## 1.1.24
6
+
7
+ * Sumneko 3rd party library package:
8
+ * Generated docs are no longer in workspace, instead a 3rd party library package is built in workspace-storage to reduce clutter and better support multi-root workspaces. Note this will not automatically clean up the old files/settings you may have had, to avoid clobbering any customizations.
9
+ * Includes [FactorioSumnekoLuaPlugin](https://github.com/JanSharp/FactorioSumnekoLuaPlugin) automatically
10
+ * Includes some additional static library files for `serpent`, `mod-gui`, `util`, etc
11
+ * Additional tweaks to libraries (`math`, `package`, `debug`, etc...) to reflect factorio's changes to Lua builtin libraries
12
+ * Generated docs now use `@enum` tags for `defines`
13
+ * Removed generated type aliases for bare event names. Use `EventData.eventname` instead (introduced 1.1.16).
14
+ * Callable classes now use `@overload` tags
15
+ * Locale:
16
+ * Added syntax highlighting for `__FLUID__name__`, and move/click controls
17
+ * Added snippet for `__FLUID__name__`
18
+
19
+ ## 1.1.23
20
+
21
+ * Fixed library management incorrectly truncating the end of the array
22
+ * Convert Locale and Changelog support to LSP
23
+ * Small DAP protocol fixes
24
+ * Go To Definition and Completion support for locale keys in Lua
25
+ * Fixed an issue where preparing debug views of a table could inadvertantly cause it to rehash ("invalid key to next" when iterating while deleting)
26
+ * Tasks all converted to standalone processes:
27
+ * No longer automatically runs `compile` tasks before debug session. Use `preLaunchTask` if you want these tasks still run.
28
+ * Publish subtasks have been reordered for easier recovery from failed uploads
29
+ * Default publish branch now follows the value of `git config init.defaultBranch`
30
+ * Disabled `checkGlobals` in simulations by default.
31
+ * Fixed an incorrect warning when unregistering/reregistering command handlers.
32
+
33
+ ## 1.1.22
34
+
35
+ * Add `global` back to `Lua.diagnostics.globals`
36
+ * Offer to regenerate docs when they seem to be out of date
37
+ * Generate operators for sumneko 3.5
38
+ * Option to not generate docs when selecting a version
39
+ * Bundle extension with esbuild (overall ~1/4 download size)
40
+ * WIP support for running debug adapter and some mod management commands outside vscode for other editors/debug adapter clients
41
+
42
+ ## 1.1.21
43
+
44
+ * Support v3 json docs
45
+ * Some overlay corrections to `BlueprintControlBehavior`
46
+ * Automatically manage data and docs links in `Lua.workspace.library`
47
+ * General cleanup of docs generator
48
+ * Added command to clear saved API key
49
+
50
+ ## 1.1.20
51
+
52
+ * Fix some ts->js files with inconsistent file case
53
+
54
+ ## 1.1.19
55
+
56
+ * Added missing config definition for `factorio.workspace.library`
57
+ * Support `${env:ENVVAR}` in path settings
58
+ * Correctly generate `enum` concept types
59
+ * Migrate API keys to secure storage from settings
60
+ * Clarify prompts on manaul factorio version configuration
61
+ * New default numeric type option: Use `alias` for numeric types which exactly match `number` (or `integer` if enabled), and `class` otherwise
62
+
63
+ ## 1.1.18
64
+
65
+ * Restored incorrectly removed definiton for `modsPath` in launch.json
66
+ * Use `integer` as the base type for factorio's int builtins
67
+
68
+ ## 1.1.17
69
+
70
+ * Doc Generation Options:
71
+ * Alias or class for specialized number types
72
+ * Version for online doc links
73
+ * Correctly handle no `.vscode/factorio` dir in cleanup before generation
74
+ * `LuaObject` as base class for all classes, instead of union of all classes
75
+ * `__debugchildren` has been replaced by `__debugcontents`
76
+ * Debug console evals that return multiple results will show all results
77
+
78
+ ## 1.1.16
79
+
80
+ * Generate an indexed type for `defines.prototypes`
81
+ * Factorio Version Selector
82
+ * Generate Sumneko EmmyLua typdefs in multiple files, and automatically when switching versions
83
+ * Correctly locate files in `core` and `base` when debugging
84
+ * `__DebugAdapter.dumpIgnore(source:string|string[])` to disable dumping (disassembly, breakpoint validation) for specific files. This is useful for very large data files where stepping is not relevant and dumping is expensive (long hang when `require`ing the file).
85
+ * Moved event data types to `EventData.eventname` type names, with (temporary) aliases from `eventname` for compatiblity
86
+ * Improved generation of union and table_or_array concepts and defines types
87
+ * Correctly locate files in user scenarios
88
+ * Removed `__DebugAdapter.levelPath` stub
89
+
90
+ ## 1.1.15
91
+
92
+ * Terminate sessions instead of hanging when failing to read JSON docs
93
+ * Read correct JSON docs path on mac
94
+
95
+ ## 1.1.14
96
+
97
+ * Load LuaObject type data from Factorio's JSON docs for listing properties when debugging
98
+ * List some property-like function on LuaObjects as fetchable properties
99
+ * `__DebugAdapter.stepIgnore()` now handles both tables and functions. `__DebugAdapter.stepIgnoreAll()` has been removed.
100
+ * Updated Sumneko EmmyLua typdef generator for Sumneko 3
101
+
102
+ ## 1.1.13
103
+
104
+ * Added `__REMARK_COLOR_BEGIN__` and `__REMARK_COLOR_END__` to locale highlighter
105
+ * Publishing mods now uses the new Mod Portal Upload API.
106
+
107
+ ## 1.1.12
108
+
109
+ * __DebugAdapter.terminate() to end session from script
110
+ * __DebugAdapter.raise_event(event,data,modname) to call event handlers directly for testing
111
+ * Updated LuaObject recongition for debug views to reflect implementation detail changes in Factorio's API (no longer uses `__self`)
112
+ * Don't accept `nil` filters on custom-input events
113
+ * TypeDef generator now accepts Factorio Machine-Readable-Docs V2
114
+ * Various disassembler view fixes
115
+
116
+ ## 1.1.11
117
+
118
+ * Don't offer ! and version in depencency snippets
119
+ * Add overlay for tweaks to generated typedefs
120
+ * Various disassembler fixes
121
+ * Support "Loaded Sources" view
122
+ * Significant (~2x) speedup in profiling, noise reduction on line timers
123
+ * Profiler can now measure `on_load`
124
+
125
+ ## 1.1.10
126
+
127
+ * Correctly capture raw `remote` for debugger internal use before replacing it with wrapper
128
+ * New Command "Generate Typedefs" to convert json docs to EmmyLua docs (and configure general workspace settings)
129
+
130
+ ## 1.1.9
131
+
132
+ * Correctly reverse-lookup `defines.inventory.artillery_wagon_ammo`
133
+ * Warn when using `math.randomseed()` which is disabled in Factorio
134
+ * Warn when replacing an existing event handler
135
+ * Correctly handle empty `info.json` files in workspace
136
+
137
+ ## 1.1.8
138
+
139
+ * Mod name and title lengths are now limited to 100 characters
140
+ * Correctly validate `~` unordered mod dependencies
141
+ * Snippet for creating dependency entries
142
+
143
+ ## 1.1.7
144
+
145
+ * Fixed `failed locating source` for unpacked mods located through modsPath
146
+
147
+ ## 1.1.6
148
+
149
+ * Fixed steam detection on mac/linux
150
+ * Additional diagnostics for failures while locating source for mods
151
+
152
+ ## 1.1.5
153
+
154
+ * Added `no_git_tag` option in `info.json`
155
+ * Re-enabled expandable log items from `__DebugAdapter.print()`
156
+ * Expand embedded expressions in printed strings as variables
157
+ * Use "loose" semver parsing in various places, to handle extra leading zeros
158
+ * Converted "Output" window messages to debug console output
159
+ * Activate Zip Explorer extension before trying to run commands from it
160
+ * Added setting `factorio.package.defaultPublishBranch`
161
+
162
+ ## 1.1.4
163
+
164
+ * Update class data to Factorio 1.1.12
165
+ * Fixed "attempt to index local 'lastframe' (a nil value)" when calling `__DebugAdapter.breakpoint`
166
+ * Use Command text as source when available
167
+ * Disassemble Lua if no source is available
168
+ * Correctly resolve `@__core__` paths
169
+ * Fixed `script.on_event` would silently ignore filters when registering lists of events
170
+
171
+ ## 1.1.3
172
+
173
+ * Step-in on api access that raises events will step into handlers
174
+ * Fixed "attempt to index local 'lastframe' (a nil value)" when breaking on exception
175
+ * Removed break-on-exception when not running in Instrument Mode
176
+ * If selected frame has a local or upval `_ENV`, evals will use it instead of the global environment
177
+ * Removed Event Check
178
+ * Expand functions's upvals as children in Variables view
179
+ * `__DebugAdapter.levelPath` is no longer required, as it can be filled automatically from `script.level`
180
+
181
+ ## 1.1.2
182
+
183
+ * Show best-guess arguments for `__index` and `__newindex` in stack trace
184
+ * Collect and display stacks for some api calls that can raise events
185
+ * Display enum properties of LuaObjects as names from `defines.*`
186
+ * Metatable field `__debugtype` to set the displayed typename of an object
187
+ * Show table keys with virtual children `<key>` and `<value>` and rename with unique names
188
+ * Upload task now looks for zips in the correct place when Package is configured to place them outside the mod folder
189
+ * Launch option `adjustModSettings` to update/clear mod settings before launching a debug session
190
+ * Don't hang when `info.json` with `null` exists in workspace
191
+ * Don't set extension filter on factorioPath prompt on non-windows
192
+ * Update class data to Factorio 1.1.6
193
+
194
+ ## 1.1.1
195
+
196
+ * Fix setting breakpoints during simulations
197
+
198
+ ## 1.1.0
199
+
200
+ * Always use `-F -` for tags, even when empty
201
+ * Fix infinite recursion when cleaning long refs
202
+ * Disabled expandable log items from `__DebugAdapter.print({...})` by default due to issues with vscode debug console
203
+ * Updated class data and mod for Factorio 1.1.0
204
+
205
+ ## 0.18.49
206
+
207
+ * Correctly highlight empty plural
208
+ * Fixed crash if an on_tick handler with no argument has a LuaObject in its first temporary when building callstack
209
+ * Ignore info.json in scenarios/saves
210
+
211
+ ## 0.18.48
212
+
213
+ * Fix error when mods replace builtin `print` incorrectly
214
+
215
+ ## 0.18.47
216
+
217
+ * Pretty-print mod-list.json when adjusting mods
218
+ * Stricter check for LuaObjects in isUnsafeLong()
219
+
220
+ ## 0.18.46
221
+
222
+ * Removed Locale highlighter rule for unrecognized rich text tags
223
+ * Fixed script error when setting checkEvents or checkGlobals
224
+
225
+ ## 0.18.45
226
+
227
+ * Capture `debug` in case someone overwites it
228
+
229
+ ## 0.18.44
230
+
231
+ * Reworked locale highlighter
232
+ * Locale Snippets for various tags/variables
233
+ * Correctly highlight locale variable `__CONTROL_MOVE__`
234
+ * CodeAction to merge duplicate locale sections
235
+
236
+ ## 0.18.43
237
+
238
+ * Correctly include `profile-control.lua` when debugadapter itself is not hooked
239
+
240
+ ## 0.18.42
241
+
242
+ * Fix flamegraph not building trees correctly
243
+ * Configuration options for various extra diagnostics
244
+ * `postpublish` task
245
+ * Open Changelog command in packages view
246
+ * Eval now correctly uses the last matching local instead of the first
247
+ * Rename shadowed locals in Variables view so they display correctly
248
+ * Fixed not correctly differentiating multiple varRefs for the same table with `extra` property set
249
+ * Mark generated variables as `virtual`
250
+
251
+ ## 0.18.41
252
+
253
+ * Debug console supports `__modname__` prefix while in break
254
+ * Better error reporting for tasks.json tasks
255
+ * Branch name configuration for Publish was not correctly applied
256
+ * Timeout on queued stdin commands configurable, raised default to 2s
257
+ * Restrict tasks to operate only on the latest version of a mod
258
+ * Support `~` in launch.json path options
259
+
260
+ ## 0.18.40
261
+
262
+ * Fixed incorrect vars showing when first retreived after stopping on first stop in a lua state
263
+
264
+ ## 0.18.39
265
+
266
+ * Fixed incorrect vars showing when first retreived after stopping
267
+
268
+ ## 0.18.38
269
+
270
+ * Fixed debug session not ending when factorio closes
271
+ * More consistent use of URIs for path mapping
272
+ * Debug console supports `__modname__` prefix when named Lua State is available (correctly this time...)
273
+
274
+ ## 0.18.37
275
+
276
+ * Return original unwrapped handler from `script.get_event_handler`
277
+ * Fixed various missing stepIgnores
278
+ * stepIgnore and stepIgnoreAll now return the function/table passed in, for convenience
279
+ * Most objects printed with `__DebugAdapter.print(obj)` will be expandable in debug console as long as the source Lua State is still active
280
+ * Pause button able to break into long running code
281
+ * General code cleanup
282
+ * Optional arguments `upStack` and `category` on `__DebugAdapter.print()`
283
+ * Debug console can be used while running - it will run in the active Lua State for settings/data or in `level` if available for control.
284
+ * Correctly display and offer more color formats in locale
285
+ * Task "adjustMods" can be used to reconfigure mods from vscode
286
+ * Fix infinite loop in eval _ENV lookups when function outlives the eval that created it
287
+ * Support vscode vars in launch.json config
288
+ * Debug console supports `__modname__` prefix when named Lua State is available
289
+ * Branch name for Publish is configurable
290
+
291
+ ## 0.18.36
292
+
293
+ * Profiler flamegraph label more reliable
294
+ * Don't show flamegraph panel when tracking call trees not enabled
295
+
296
+ ## 0.18.35
297
+
298
+ * Profiler flamegraph works correctly on VSCode 1.48
299
+
300
+ ## 0.18.34
301
+
302
+ * Add locale vars `__CONTROL_STYLE_BEGIN__` and `__CONTROL_STYLE_END__` (for real this time)
303
+ * Locale var `__ALT_CONTROL__` correctly matches two args
304
+ * Fix breakpoints not loading initially in settings stage
305
+ * Added profiler flamegraph of call trees
306
+ * Profiler options to select line/function/calltree timers
307
+ * `__DebugAdapter.defineGlobal(name)` to disable warning on global access
308
+ * Profiler remote interface
309
+
310
+ ## 0.18.33
311
+
312
+ * Add locale vars `__CONTROL_STYLE_BEGIN__` and `__CONTROL_STYLE_END__`
313
+ * Add options to configure created mod zip location, and automatically remove after successful publish
314
+ * Detect and offer to disable prototype caching, which conflicts with part of debugger init
315
+ * Added `compile` task which is run in `package` and before launching debug session
316
+ * Added variable $MODNAME to git templates
317
+ * Added setting "factorio.package.tagName"
318
+ * Deprecated setting "factorio.package.tagVPrefix"
319
+
320
+ ## 0.18.32
321
+
322
+ * Updated class data to Factorio 1.0.0
323
+ * Temporarily unlisted property LuaItemStack::blueprint_icons to avoid crash when reading it in Factorio 1.0.0
324
+
325
+ ## 0.18.31
326
+
327
+ * Allow 1.x in various compatibility version tests
328
+
329
+ ## 0.18.30
330
+
331
+ * Remove special case for `__self` in eval env
332
+ * Support(ish) launching Factorio with a native debugger
333
+
334
+ ## 0.18.29
335
+
336
+ * Use `rawget` when identifying tables for inspection
337
+ * Remove duplicate `@` in function descriptions
338
+ * Steam support
339
+
340
+ ## 0.18.28
341
+
342
+ * Include factorioPath="" in initialConfigurations
343
+ * Better error when calling remote interfaces or methods that don't exist
344
+ * Merged Factorio Mod Packages views into one. Depending on configuration, you may need to reactivate the view after this update.
345
+ * Factorio Mod Packages view has an icon when used as a standalone panel
346
+ * Sorted Factorio Mod Packages view alphabetically
347
+ * Correctly catch `error(nil)`
348
+ * Correctly wrap `script.on_nth_tick` when given an array of ticks
349
+
350
+ ## 0.18.27
351
+
352
+ * More correct heuristic for attempting to translate tables as LocalisedString, gracefully handle translation failure.
353
+
354
+ ## 0.18.26
355
+
356
+ * Updated Mod Portal login procedure to work with the new Portal
357
+
358
+ ## 0.18.25
359
+
360
+ * Report errors and more detail when searching for mods for path mapping
361
+
362
+ ## 0.18.24
363
+
364
+ * Nicer log() hook on Factorio >= 0.18.34
365
+ * Ignore Unicode BOM in Changelog files
366
+ * Cleaned up path mapping between factorio/vscode
367
+ * Now supports non-versioned unzipped mods
368
+ * Correctly loads unzipped mods from mods from modsPath~=workspace before zipped mods
369
+ * Correctly parse mod paths with __ in paths
370
+ * Load only used zips when launching debug
371
+ * Clear previously loaded zips before reloading
372
+ * If using manual require in settings stage, it may now be needed to list debugadapter as an optional dependency to ensure Modules event is completed first. Instrument mode handles this automatically.
373
+ * Updated class data to Factorio 0.18.34
374
+ * Wrap new script.raise_* methods to pass call stack, matching raise_event wrapper
375
+ * Don't omit source on stepIgnore stack frames
376
+
377
+ ## 0.18.23
378
+
379
+ * Correctly encode Infinity, -Infinity and NaN in json
380
+ * Set stepIgnore on log hook functions
381
+ * Support new metamethod `__debugvisualize(self)` for formatting values for [hediet.debug-visualizer](https://marketplace.visualstudio.com/items?itemName=hediet.debug-visualizer)
382
+ * Debug line and visualizer for noise expressions
383
+ * Warn on first assignment to undefined Lua global variables
384
+
385
+ ## 0.18.22
386
+
387
+ * Changed automatic zip exclusion when packaging from `**/*.zip` to `**/modname_*.zip`, to prevent excluding `blueprint.zip` in scenarios.
388
+
389
+ ## 0.18.21
390
+
391
+ * Fixed incorrect regex in info.json schema
392
+
393
+ ## 0.18.20
394
+
395
+ * Use Lua Registry to enforce certain libraries are singletons even when package.loaded is cleared in data stage
396
+ * Correctly report parse errors in timed eval requests
397
+ * Don't flag spaces in mod names in dependencies as errors (old mods with spaces exist)
398
+ * Profile line timers now include called function time, added function timers
399
+ * Incremental dumping of profile timers to reduce stutter while profiling
400
+ * Reworked profile line timer coloring options
401
+
402
+ ## 0.18.19
403
+
404
+ * Capture `print` and `localised_print` in `profile.lua` for compatiblity with mods that overwrite them
405
+ * Better calculation of profile column width
406
+ * Fix an error in prior update's change to display of array-like tables
407
+
408
+ ## 0.18.18
409
+
410
+ * Removed StreamSplitter
411
+ * On Factorio>=0.18.24, use `localised_print` to translate various output:
412
+ * Error messages, including multi-line output
413
+ * LocalisedStrings and LuaProfilers in Variables view
414
+ * LocalisedStrings in `log` hook and `__DebugAdapter.print`
415
+ * LocalisedStrings in Debug Console output or errors
416
+ * Duration of Debug Console commands, timers for profiling
417
+ * Alternate hook mode for live-ish profiling in control stage
418
+ * Correctly identify tailcalls in `log` hook and `__DebugAdapter.print`, instead of incorrect callsite
419
+ * Use a more permissive JSON schema for `info.json` inside `data`
420
+ * Correctly exclude locale `info.json` files from mod/data schema
421
+ * Support [hediet.debug-visualizer](https://marketplace.visualstudio.com/items?itemName=hediet.debug-visualizer), with eval context "visualize" and user-provided visualization converters
422
+ * Print type of invalid objects in json
423
+ * Correctly show children of tables with large gaps in array segment
424
+ * Live terminal output for mod scripts in packaging tasks
425
+ * Updated class data to Factorio 0.18.24
426
+
427
+
428
+ ## 0.18.17
429
+
430
+ * Fix `Version` task failing when symbols in `info.json` cannot be loaded
431
+ * Correct order of comment syntax rules for Locale files
432
+ * Show warnings for various problems in Locale files
433
+ * Fixed F5 while running would queue up incorrect commands
434
+ * Display `[Variables Currently Unavailable]` when variables cannot be displayed for the current stack frame
435
+ * Don't pre-load mod zips when launching without debugger
436
+
437
+ ## 0.18.16
438
+
439
+ * Add allowDisableBaseMod to disable protection on `base` in `adjustMods`
440
+ * Hook `log()` to produce Output events with clickable source links. Launch args `hookLog` and `keepOldLog` can adjust this behavior.
441
+ * Error hint for missing config.ini
442
+ * Launch Args to selectively install hooks in Settings, Data and per-mod in Control stage. Settings and Data now default off and must be enabled if desired, Control defaults to hook all mods.
443
+ * Launch Arg factorioPath is no longer required - if absent or empty, will prompt for location
444
+ * More correct handling of tables with unusual numeric keys
445
+ * Follow `terminal.integrated.shell.*` and `terminal.integrated.automationShell.*` settings
446
+
447
+ ## 0.18.15
448
+
449
+ * SIGKILL for second attempt to kill Factorio when ending a debug session
450
+ * Fix rawlen() fix incorrectly applied to LuaCustomTable
451
+ * Add adjustMods and disableExtraMods to launch args
452
+ * Step inside zip files with slevesque.vscode-zipexplorer
453
+
454
+ ## 0.18.14
455
+
456
+ * Include JSON Scheme for clusterio instances.json file
457
+ * Use rawlen() in Variables views to correctly handle objects with incorrect __len metamethods
458
+
459
+ ## 0.18.13
460
+
461
+ * Catch rare condition in Increment Version command where no symbols are found in info.json
462
+ * Correctly report missing paths in config.ini
463
+ * Don't attempt to translate errors outside of events
464
+ * Updated class data to Factorio 0.18.18
465
+ * Correctly update level script path after path hint
466
+
467
+ ## 0.18.12
468
+
469
+ * Accept top level null in scenario/campaign info.json
470
+ * Highlight comment and invalid lines in locale
471
+ * Provide default GitLens config for changelogs
472
+ * Use annotated git tags. Optionally prefix version with 'v' and include commit message.
473
+ * Always include trailing slash on `--mod-directory`
474
+ * Updated class data to Factorio 0.18.17
475
+
476
+ ## 0.18.11
477
+
478
+ * Updated class data to Factorio 0.18.13
479
+ * Auto-generated git commits now set configurable author, and message templates configurable
480
+ * Use `terminal.integrated.env.{platform}` settings to provide additional env vars to mod scripts
481
+
482
+ ## 0.18.10
483
+
484
+ * Updated Debug Adapter Protocol capabilities report
485
+ * Updated class data to Factorio 0.18.12
486
+
487
+ ## 0.18.9
488
+
489
+ * Fix config.ini failing to auto-detect in many scenarios
490
+ * Improved logging of what files are auto-detected where
491
+
492
+ ## 0.18.8
493
+
494
+ * Fix typo in Increment Version command label
495
+ * Fix not always killing Factorio on Macs
496
+ * Read config.ini for mods/data paths. Removed dataPath in launch config, added configPath. modsPath and configPath also set the corresponding command line args.
497
+ * Don't recheck info.json during a debug session, only when starting a new session.
498
+ * Fixed crash when running remote.call() in /c
499
+ * Don't attempt to catch an exception if there is no locatable source to show it at (eg. console commands)
500
+
501
+ ## 0.18.7
502
+
503
+ * Correctly handle `script.on_nth_tick(nil)`
504
+
505
+ ## 0.18.6
506
+
507
+ * Don't add `--instrument-mod` to command line args when launching without debug
508
+
509
+ ## 0.18.5
510
+
511
+ * Updated class data to Factorio 0.18.10
512
+ * Use Instrument Mode by default (Requires Factorio >= 0.18.10)
513
+ * Force canonical-name requires for public-facing files (debugadapter.lua and variables.lua)
514
+
515
+ ## 0.18.4
516
+
517
+ * Added __DebugAdapter.breakpoint(mesg)
518
+ * `\n` escape in locale is now `constant.character.escape.factorio-locale`
519
+ * Hook `pcall` and `xpcall` and allow optionally breaking on caught exception
520
+ * Use environment vars FACTORIO_PORTAL_USERNAME and FACTORIO_PORTAL_PASSWORD when not configured in settings
521
+ * provide environment var FACTORIO_MODNAME and FACTORIO_MODVERSION to all mod scripts
522
+ * explicitly save files edited by tasks, instead of saveAll
523
+ * packages view may be moved to SCM section
524
+ * fixed Package command not waiting to finish building zip before returning, which caused it to sometimes pick up edits made later by Publish
525
+
526
+ ## 0.18.3
527
+
528
+ * non-standard category in changelog as Hint instead of Information
529
+ * Factorio 0.18.2 added LuaEntityPrototype::inserter_pickup_position and inserter_drop_position
530
+ * evil translation hack to display translated LocalisedString errors
531
+ * changelog linter error for line prefix with no content
532
+ * remove changelog diagnostics when a file is removed
533
+ * allow two-part version in info.json dependencies
534
+ * automatically package and publish mods
535
+
536
+ ## 0.18.2
537
+
538
+ * Changelog separator line is keyword.control
539
+ * correctly highlight changelog version number with only two numeric parts
540
+ * changelog linter
541
+ * color widget on [color=...] tags in locale
542
+ * add support for proposed "Instrument Mode", disabled by default
543
+ * fix incorrect link in campaign schema to scenario schema
544
+ * outline for locale and changelog
545
+ * improved highlighting of plurals in locale files
546
+ * correctly highlight inside enclosing tags in locale
547
+
548
+ ## 0.18.1
549
+
550
+ * __DebugAdapter.print(notstring) will print the object's `describe` lineitem
551
+ * don't trim log messages
552
+ * fix debugging data stage after entrypoint changes, for real this time
553
+ * JSON Schemas for info.json, description.json, server-settings.json, map-settings.json, map-gen-settings.json
554
+ * Syntax highlighting for Locale *.cfg and changelog.txt files
555
+ * Factorio 0.18.1 added LuaSurface::brightness_visual_weights
556
+ * Keep output channel open and reuse between sessions
557
+
558
+ ## 0.18.0
559
+
560
+ * Update for Factorio 0.18
561
+ * use `script.active_mods` to remove last dependencies on `game`. Enables stepping in control.lua main chunk and on_load, and break-on-exception in on_load. Removed various workarounds for not having this.
562
+ * use LuaObject.object_name to classify objects. Detailed views of LuaStructs.
563
+
564
+ ## 0.17.8
565
+
566
+ * better hide frames with no available source
567
+ * fix debugging data stage after entrypoint changes
568
+ * allow extra args to factorio
569
+ * evaluate names for most variables
570
+
571
+ ## 0.17.7
572
+
573
+ * stepIgnoreAll(t) function to ignore all functions in table
574
+ * __DebugAdapter.print() supports `{...}` to fill varargs in string.
575
+ * escape 13 in breakpoints
576
+ * omit frame source for C functions in call stack
577
+ * break-on-exception in most events and improved entrypoint identification
578
+ * warn if mod registers probably-incomplete sets of events
579
+ * jump to location in stacktrace works
580
+
581
+ ## 0.17.6
582
+
583
+ * correctly bracket strings ending in partial close brackets
584
+ * paged display of large array-like objects
585
+ * escape 26 in breakpoints
586
+ * disable profiler and coverage when enabling debugadapter
587
+ * disable debugadapter mod on "Run Without Debugging"
588
+ * better display of custom commands and custom-input event handlers
589
+ * reorder scopes in Variables window to be generally innermost to outermost
590
+ * optimized remote.call hook
591
+
592
+ ## 0.17.5
593
+
594
+ * mark various internals as stepIgnore
595
+ * binary format for breakpoints, divided up one file per command, to fit better in 250 char limit of debug.debug()
596
+ * more consistently update breakpoints before resuming execution
597
+
598
+ ## 0.17.4
599
+
600
+ * include for loop internals in `<temporaries>` section
601
+ * bring my own json to remove many dependencies on `game` object
602
+ * optimizations
603
+ * name `(main chunk)` in stack traces
604
+ * set breakpoints earlier (still can't attach before `game` is available though)
605
+ * varargs sorted into special child of Local scope, after fixed args
606
+ * automatically install and enable/disable mod
607
+ * works if `require`d into data or settings stage
608
+ * accumulate stderr until newline, then strip debug prompts and return non-empty strings
609
+ * better handling of paths
610
+ * "Factorio Mod Debug" output channel listing various info about what paths it found
611
+ * detect `mod-list.json` inside workspace and use its location as modsPath
612
+
613
+ ## 0.17.3
614
+
615
+ * don't remove leading '/' from workspace paths on non-windows
616
+ * better path guess on mac
617
+ * don't try to instrument remote.call during on_load
618
+
619
+ ## 0.17.2
620
+
621
+ * more improved escaping
622
+ * search for mods inside vscode workspace first, then modsPath
623
+ * top level scope for factorio `global`
624
+ * filter temporaries to special child of Local scope
625
+ * filter "built in" globals to special child of Global scope
626
+ * fix display of eval _ENV
627
+ * unquote string keys when possible in table describe
628
+
629
+ ## 0.17.1
630
+
631
+ * docs improvements
632
+ * tail calls in stack trace
633
+ * provide escapes `{[}` -> `{` and `{]}` -> `}` in interpolated strings
634
+ * support condition and hitCondition in breakpoints
635
+ * improved escaping of various strings
636
+ * don't allow setting `self` (the current object) inside string interpolation for debug lineitems
637
+ * describe main chunk functions
638
+ * mask dostring full-source chunk names as "=(dostring)"
639
+ * omit numeric keys when possible in table describe
640
+ * add `__DebugAdapter.dumpBreakpoints` to manually list breapoints
641
+
642
+ ## 0.17.0
643
+
644
+ * Initial Release
package/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) justarandomgeek, Jan Mischak, Nexela
2
+ based on `Mock Debug` Copyright (c) Microsoft Corporation
3
+
4
+ MIT License
5
+
6
+ Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ of this software and associated documentation files (the "Software"), to deal
8
+ in the Software without restriction, including without limitation the rights
9
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ copies of the Software, and to permit persons to whom the Software is
11
+ furnished to do so, subject to the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be included in all
14
+ copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ SOFTWARE.