mirror of
https://github.com/wailsapp/wails.git
synced 2025-05-16 08:59:29 +08:00

* Support variadic arguments and slice, pointer types * Fix computation of type namespaces * Improve comments and general formatting * Set default values correctly for composite types * Add templates for bindings Additionally: * fixes generation of tuple return type * improves imports and namespacing in JS mode * general cleanup of generated code * Simplify import list construction * Refactor type generation code Improves support for unknown types (encoded as any) and maps (using Typescript index signatures) * Support slices with pointer elements * Match encoding/json behaviour in struct parser * Update tests and example * Add tests for complex method signatures and json tag parsing * Add test `function_multiple_files` * Attempt looking up idents with missing denotation * Update test data * fix quoted bool field * Test quoted booleans * Delete old parser code * Remove old test data * Update bindgen flags * Makes call by ID the default * Add package loading code * Add static analyser * Temporarily ignore binding generation code * Add complex slice expressions test * Fix variable reference analysis * Unwrap casts to interface types * Complete code comments * Refactor static analyser * Restrict options struct usage * Update tests * Fix method selector sink and source processing * Improve Set API * Add package info collector * Rename analyser package to analyse * Improve template functions * Add index file templates * Add glue code for binding generation * Refactor collection and rendering code * Implement binding generator * Implement global index generation * Improve marshaler and alias handling * Use package path in binding calls by name * Implement model collection and rendering * Fix wrong exit condition in analyser * Fix enum rendering * Generate shortcuts for all packages. * Implement generator tests * Ignore non-pointer bound types * Treat main package specially * Compute stats * Plug new API into generate command * Support all named types * Update JS runtime * Report dual role types * Remove go1.22 syntax * Fix type assertion in TS bindings * encoding/json compliance for arrays and slices * Ignore got files in testdata * Cleanup type rendering mechanism * Update JS runtime * Implement generic models * Add missing field in renderer initialisation * Improve generic creation code * Add generic model test * Add error reporting infrastructure * Support configurable file names * Detect file naming collisions * Print final error report * New shortcut file structure + collision detection * Update test layout and data * Autoconfiguration for analyser tests * Live progress reporting * Update code comments * Fix model doc rendering * Simplify name resolution * Add test for out of tree types * Fix generic creation code * Fix potential collisions between methods and models * Fix generic class alias rendering * Report model discovery in debug mode * Add interface mode for JS * Collect interface method comments * Add interface methods test * Unwrap generic instantiations in method receivers * Fix rendering of nullable types in interface mode * Fix rendering of class aliases * Expose promise cancel method to typescript * Update test data * Update binding example * Fix rendering of aliased quoted type params * Move to strongly typed bindings * Implement lightweight analyser * Update test cases * Update binding example * Add complex instantiation test * Load full dependency tree * Rewrite collector * Update renderer to match new collector * Update generator to match new collector * Update test data * Update binding example * Configure includes and injections by language * Improve system path resolution * Support rich conditions in inject/include directives * Fix error handling in Generator.Generate * Retrieve compiled go file paths from fileset * Do not rely on struct info in struct flattening algorithm * Fix doc comment for findDeclaraion * Fix bugs in embedded field handling * Fix bugs and comments in package collection * Remove useless fields from ServiceInfo * Fix empty line at the beginning of TS indexes * Remove global index and shortcuts * Remove generation tests for individual packages * Enforce lower-case file names * Update test data * Improve error reporting * Update binding example * Reintroduce go1.22 syntax * Improve relative import path computation * Improve alias support * Add alias test * Update test data * Remove no services error * Rename global analyser test * Add workaround and test for bug in typeutil.Map * Update test data * Do not split fully qualified names * Update typeutil package and remove workaround * Unify alias/named type handling * Fix rendering of generic named class aliases * Fix rendering of array types * Minor tweaks and cleanups * Rmove namespaced export construct * Update test data * Update binding example * Break type cycles * Fix typo in comment * Fix creation code for cyclic types * Fix type of variadic params in interface mode * Update test data * Fix bad whitespace * Refactor type assertions inside bound methods * Update test data * Rename field application.Options.Bind to Services * Rename parser package to generator * Update binding example * Update test data * Update generator readme * Add typescript test harness * Move test output to new subfolder * Fix code generation bugs * Use .js extensions in TS mode imports * Update test data * Revert default generator output dir to frontend/bindings * Bump runtime package version * Update templates * Update changelog * Improve newline handling --------- Co-authored-by: Andreas Bichinger <andreas.bichinger@gmail.com>
9.7 KiB
9.7 KiB
Changelog
[Unreleased]
Added
- [darwin] add Event ApplicationShouldHandleReopen to be able to handle dock icon click by @5aaee9 in #2991
- [darwin] add getPrimaryScreen/getScreens to impl by @tmclane in #2618
- [darwin] add option for showing the toolbar in fullscreen mode on macOS by @fbbdev in #3282
- [linux] add onKeyPress logic to convert linux keypress into an accelerator @Atterpac in#3022
- [linux] add task
run:linux
by @marcus-crane in #3146 - Export
SetIcon
method by @almas1992 in PR - Improve
OnShutdown
by @almas1992 in PR - Restore
ToggleMaximise
method inWindow
interface by @fbbdev in #3281 - Added more information to
Environment()
. By @leaanthony in aba82cc based on PR by @Mai-Lapyst - Expose the
WebviewWindow.IsFocused
method on theWindow
interface by @fbbdev in #3295 - Support multiple space-separated trigger events in the WML system by @fbbdev in #3295
- Add ESM exports from the bundled JS runtime script by @fbbdev in #3295
- Add binding generator flag for using the bundled JS runtime script instead of the npm package by @fbbdev in #3334
- Implement
setIcon
on linux by @abichinger in #3354 - Add flag
-port
to dev command and support environment variableWAILS_VITE_PORT
by @abichinger in #3429 - Add tests for bound method calls by @abichinger in #3431
Fixed
- Fixed react template css to show footer by atterpac in #3477
- Fixed zombie processes when working in devmode by updating to latest refresh by Atterpac in #3320.
- Fixed appimage webkit file sourcing by Atterpac in #3306.
- Fixed Doctor apt package verify by Atterpac in #2972.
- Fixed application frozen when quit (Darwin) by @5aaee9 in #2982
- Fixed background colours of examples on Windows by mmgvh in #2750.
- Fixed default context menus by mmgvh in #2753.
- Fixed hex values for arrow keys on Darwin by jaybeecave in #3052.
- Set drag-n-drop for windows to working. Added by @pylotlight in PR
- Fixed bug for linux in doctor in the event user doesn't have proper drivers installed. Added by @pylotlight in PR
- Fix dpi scaling on start up (windows). Changed by @almas1992 in PR
- Fix replace line in
go.mod
to use relative paths. Fixes Windows paths with spaces - @leaanthony. - Fix MacOS systray click handling when no attached window by thomas-senechal in PR #3207
- Fix failing Windows build due to unknown option by thomas-senechal in PR #3208
- Fix crash on windows left clicking the systray icon when not having an attached window tw1nk in PR #3271
- Fix wrong baseURL when open window twice by @5aaee9 in PR #3273
- Fix ordering of if branches in
WebviewWindow.Restore
method by @fbbdev in #3279 - Correctly compute
startURL
across multipleGetStartURL
invocations whenFRONTEND_DEVSERVER_URL
is present. #3299 - Fix the JS type of the
Screen
struct to match its Go counterpart by @fbbdev in #3295 - Fix the
WML.Reload
method to ensure proper cleanup of registered event listeners by @fbbdev in #3295 - Fix custom context menu closing immediately on linux by @abichinger in #3330
- Fix the output path and extension of model files produced by the binding generator by @fbbdev in #3334
- Fix the import paths of model files in JS code produced by the binding generator by @fbbdev in #3334
- Fix drag-n-drop on some linux distros by @abichinger in #3346
- Fix missing task for macOS when using
wails3 task dev
by @hfoxy in #3417 - Fix registering events causing a nil map assignment by @hfoxy in #3426
- Fix unmarshaling of bound method parameters by @fbbdev in #3431
- Fix handling of multiple return values from bound methods by @fbbdev in #3431
- Fix doctor detection of npm that is not installed with system package manager by @pekim in #3458
Changed
- Update linux webkit dependency to webkit2gtk-4.1 over webkitgtk2-4.0 to support Ubuntu 24.04 LTS by atterpac in #3461
- The bundled JS runtime script is now an ESM module: script tags importing it must have the
type="module"
attribute. By @fbbdev in #3295 - The
@wailsio/runtime
package does not publish its API on thewindow.wails
object, and does not start the WML system. This has been done to improve encapsulation. The WML system can be started manually if desired by calling the newWML.Enable
method. The bundled JS runtime script still performs both operations automatically. By @fbbdev in #3295 - The Window API module
@wailsio/runtime/src/window
now exposes the containing window object as a default export. It is not possible anymore to import individual methods through ESM named or namespace import syntax. - The JS window API has been updated to match the current Go
WebviewWindow
API. Some methods have changed name or prototype, specifically:Screen
becomesGetScreen
;GetZoomLevel
/SetZoomLevel
becomeGetZoom
/SetZoom
;GetZoom
,Width
andHeight
now return values directly instead of wrapping them within objects. By @fbbdev in #3295 - The binding generator now uses calls by ID by default. The
-id
CLI option has been removed. Use the-names
CLI option to switch back to calls by name. By @fbbdev in #3468 - New binding code layout: output files were previously organised in folders named after their containing package; now full Go import paths are used, including the module path. By @fbbdev in #3468
- The struct field
application.Options.Bind
has been renamed toapplication.Options.Services
. By @fbbdev in #3468 - New syntax for binding services: service instances must now be wrapped in a call to
application.NewService
. By @fbbdev in #3468