Improved Auto-Completion
Auto-complete has been has been a big feature of the initial Studio v3 release,
however now with over a year of user feedback, there have been some improvements:
Importancy Ranking
All entries are now ranked, such that the most relevant ones are more likely to be at the top.
This is achived by placed them into 4 different categories, which are listed in the following order:
- Favourites: These are manually chosen by clicking on the heart icon and always appead on top
- Frequently Used: These are your top-5 most used entries (note that an entry is only counted when it is actually selected)
- Suggestions: These are suggestions from the game, based on what could be useful in the current situation
- Uncategorized: This is everything remaining, which doesn't fall into another category
Reduced Clutter
Entries which have seen basically no usage have been removed to reduce visual clutter.
Additionally, the popup window now attempts to take up less space.
Feedback
Please continue to share feedback about the auto-complete feature - but of course everything else too! - so that they can further be improved.
## Custom-Info Editor
The Custom-Info editor has now been upgraded from a simple textbox into a full proper editor!
That includes auto-completion, syntax-highlighting and a live preview.
With this, it should now be considerably easier to quickly create a Custom-Info template for something specific.
Additionally, the Game Info displayed in Studio is now a proper textfield, meaing you can select and copy anything from it with ease.
New Commands
RequireDependency
This command declares dependencies required for the TAS to run, which can easily be installed with a respective dialog box.
Examples:
RequireDependency, StrawberryJam2021for any versionRequireDependency, StrawberryJam2021, 1.10.0for specifically v1.10.0 or higher
ActivatedLobbyWarps
This command tracks which warp points have been activated during the TAS' execution,
which can be useful for lobby routing or sync-checking.
Example: ActivatedLobbyWarps: [4, 7]
Features
- Add accurate hitbox rendering for CommunalHelper Melvins
- Allow other mods to open a 3rd-party text window in Studio
- Add
RequireDepenencycommand - Add
ActivatedLobbyWarpscommand - Display popup when generated TAS file contains errors
- Add Favourite/Suggestion/Frequently Used entries to auto-complete menus
- Rework Custom-Info Editor into own popup
- Allow for selection of text from the Game Info box
- Add auto-complte support for StateMachine states of Player/Seeker/Oshiro
- Allow setting VirtualButton fields/properties directly
- Add BossesHelper support to
SeedRandomcommand
Bug Fixes
- Inaccuracies in RTA timer
- Deadlock when stepping back into freeze frames
- Inactive timers showing up in Info HUD when TimeRate is zero
- Properly save altered Crouch Dash and Grab modes in savestates
- Desync caused by inconsistant timings for exiting options menu
- Folder path with spaces not being correctly opened Finder on macOS
Integrate Read Commandsincorrectly skipping some lines at the start/end- Light/Dark title bar not being properly applied on Windows
- Properly style bottom-right corner tile of scrollbars on Windows (R.I.P. ugly white square)
- Undo-state getting corruped by fix-up actions
- Don't register mouse inputs while window isn't focused
- Crash if entity has a
nullscene - Use quotes if generated
consolecommand uses spaces - Avoid starting TAS when manually starting recording with TAS Recorder
- Certain entities not being watchable in the Info HUD
Tweaks
- Hide JungleHelper fireflies with Simplified Graphics
- Hide light beams with Simplified Graphics
- Hide KoseiHelper Debug Renderer with Simplified Graphics
- Enable appended Actual Collide Hitboxes by default
- Clear discovered lobby map when 'console load'ing
- Always allow for tab-completion in the auto-complete menu
Removals
- Unused clutter in parameter auto-complete for
Set/Invokecommands
Commit Details
Features
- 71ded1f Add hitbox renderer for Melvin sight lines (@psyGamer)
- 3a0e314 Studio: Display popup with all detected errors when opening a generated file (@psyGamer)
- e840f64 Studio: Track usage count of used auto-complete entries (@psyGamer) #126
- b1ef8e9 Studio: Allow marking auto-complete entries as favourites (@psyGamer) #126
- ddc1605 Studio: Rank frequently used entries higher and display temporary "icon" (@psyGamer) #126
- 6b691c9 Provide type / member suggestions from CelesteTAS (@psyGamer) #126
- a590532 Add initial suggestions, based on current entities (@psyGamer) #126
- bf05e54 Improve auto-complete suggestions for entities (@psyGamer) #126
- 118a493 Provide auto-complete suggestions for state-machine states (@psyGamer) #126
- 916abb9 Provide auto-complete support for accessing components on entities (@psyGamer) #126
- 03dde3d Add auto-complete support for EntityID filters (@psyGamer) #126
- b45748c Studio: Add vector assets for the new popup features (@psyGamer) #126
- ad367aa Studio: Display new custom icons for popup menu entries (@psyGamer) #126
- 4d443b0 Studio: Direct editing hotkeys to respective instance (@psyGamer) #127
- a8d3ff3 Studio: Add initial info-template editor with custom syntax highlighting (@psyGamer) #127
- 0516dd9 Provide auto-complete support for target-queries in the info-template editor (@psyGamer) #127
- 4c9fe61 Studio: Support info-template tables and attempt to auto-close syntax pairs (@psyGamer) #127
- e6049f8 Studio: Setup layout of form for editing info-template (@psyGamer) #127
- 633e89f Studio: Show live-preview of info-template while editing (@psyGamer) #127
- c965d1f Studio: Re-add popout window for game info display (@psyGamer) #127
- fa14efc Add auto-complete support for the 'RequireDependency' command (@psyGamer) #123
- f24bcd5 Add auto-complete support for the 'RequireDependency' command (@psyGamer) #123
- 0a40fd3 Clear map when 'console load'ing into a lobby (@psyGamer) #125
- 651ee6b Allow setting VirtualButton fields/properties directly (@psyGamer)
- 93ca1c0 Hide KoseiHelper DebugRenderer with Simplified Graphics (@psyGamer)
- eb3df87 Integrate BossesHelper's 'set_boss_seed' into 'SeedRandom' command (@psyGamer)
Bug Fixes
- 976d1e1 Inaccuracies in Melvin sight-line hitboxes (@psyGamer)
- f998913 Inconsistencies with RTA timer (@psyGamer)
- e0c39d4 Deadlock when stepping back into freeze frames (@psyGamer)
- 1c2c023 Inactive timers showing up when TimeRate == 0 (@psyGamer)
- 8b19d6a Add savestate support to altered Crouch Dash / Grab Modes (@psyGamer)
- 630e60d Desync caused by saving when exiting options menu (@psyGamer)
- 7282cab Studio: Support opening paths with spaces on macOS (@psyGamer)
- 84665f8 Desync caused by auto-saving (@psyGamer)
- eb6024e Actually macOS directory opening this time (@psyGamer)
- 98daee9 Reference own file for Play-command target line (@psyGamer)
- 9dae14e Use consistent formatting when writing file from CelesteTAS (@psyGamer)
- 02756e1 Studio: Close pop-ups when caret is moved (@psyGamer)
- 2e0fec9 Clean-up stale savestates (@psyGamer)
- 5baa18a Studio: Only skip over start/end row of Read-command if it's a label (@psyGamer)
- 9d5b81c Studio: Sizing issues with popup menu (@psyGamer) #126
- d02e8f7 Studio: Sizing of popup menu (@psyGamer) #126
- 88b39ea Studio: Off-by-one error while calculating visible entries (@psyGamer) #126
- 981f950 Properly format SubpixelComponent / SubpixelPosition values (@psyGamer) #127
- 843eaf9 Studio: Scrolling issues with info-template editor (@psyGamer) #127
- 9aa4a1f Save modified custom-info template after being sent from Studio (@psyGamer) #127
- d32adff Handle edge-cases when opening confirmation prompt from chapter select (@psyGamer) #123
- 8ad47a6 Re-cache unimportant triggers after loading savestate (@psyGamer)
- 30d093e Studio: Clamping caret with old document bounds (@psyGamer)
- 2ca27e6 Studio: Certain keybindings not being properly handled (@psyGamer)
- 37e01b9 Studio: Scrollable sizing behaviour on WPF (@psyGamer)
- 5380a0d Studio: Light/Dark title bar not being properly applied on WPF (@psyGamer)
- 89049a4 Studio: Sizing issues with the info-template dialog on WPF (@psyGamer)
- a6d6187 Studio: Reload context menu on theme change (@psyGamer)
- f09fc2c Studio: Properly update text viewers when selecting all / block (@psyGamer)
- f2a3f11 Breaking changes caused by .NET 10 SDK (@psyGamer)
- bb7093a Studio: Undo-state getting corrupted by fix-up actions (@psyGamer)
- 68eea81 Crash when auto-complete request times-out (@psyGamer)
- 2b65ab8 Refresh TargetQuery cache after mod gets hot-reloaded (@psyGamer)
- 11e8fdd Don't register mouse inputs while window isn't focused (@psyGamer)
- b8defde Crash if entity has 'null' scene (@psyGamer)
- d455e92 Use quotes if generated console command uses spaces (@psyGamer)
- 861fab1 Interop with TAS Recorder (@psyGamer)
- 14b777a Studio: Scrolling behaviour for popup menu on WPF (@psyGamer)
- 0a054eb Studio: Properly trigger context-actions menu with Alt+Enter (@psyGamer)
- 342d11d Entities TrackedAs a parent class not being able to be watched (@psyGamer)
- 840a633 Limit incomplete EntityID filters to auto-complete, to avoid breaking collection accessing (@psyGamer)
- 586b016 Studio: Auto-close single brackets inside qurey-block, instead of double brackets (@psyGamer)
- 98543fe Studio: Folding button overlapping with line numbers on exact powers of 10 (@psyGamer)
Styles
Code Refactoring
- ae25bf3 Share parsing implementations between CelesteTAS and Studio (@psyGamer)
- 2ad854b Studio: Rework how popup menus are handled in the editor (@psyGamer) #126
- cdcb4fa Studio: Use hash for auto-complete popup storage key (@psyGamer) #126
- 9389a5d Determine storage key/name of popup from game data (@psyGamer) #126
- fe62a38 Studio: Extract read-only text viewer into separate control (@psyGamer) #127
- d6c0a73 Studio: Extract text editing logic into separate control (@psyGamer) #127
- c7e22bc Studio: Extract command auto-complete menu into own base class (@psyGamer) #127
- 0fd2198 Studio: Use a TextViewer to display current game info (@psyGamer) #127
- d548bce Rework implementation of 'RequireDependency' command (@psyGamer) #123
- bccf558 Improve interop with CollabUtil2 (@psyGamer) #125
- f2b5135 Studio: Use new TextViewer control for 3rd party poppu messages (@psyGamer) #122
- 575089b Studio: Nativly perform pre-render for SkiaDrawables (@psyGamer)
Tweaks
- e098922 Hide JungeHelper fireflies with Simplified Graphics (@psyGamer)
- 1658838 Hidel light beams with Simplified Graphics (@psyGamer)
- ba16ac3 Enabled appended Actual Collide Hitboxes by default (@psyGamer)
- fa523e0 Studio: Refresh auto-complete entries in background (@psyGamer) #126
- a67b4a2 Studio: Reduce width of popup-menu, to cut off long outliers (@psyGamer) #126
- 1d5091a Include additional types / members / commands in suggested entries (@psyGamer) #126
- 1b55722 Studio: Limit vertical size of popup menu (@psyGamer) #126
- eeb0a18 Bump Everest version to 5935 (@psyGamer)
- 2234a9b Studio: Shape of "Frequently Used" icon (@psyGamer) #126
- 48118a3 Studio: Change namespace of new controls (@psyGamer) #127
- 94b69ba Studio: Reorder 'Insert X' menu entries a bit (@psyGamer) #123
- 280b935 Studio: Remove WPF hack (@psyGamer)
- 12c95e3 Studio: Improve scrollable styling for WPF dark mode (@psyGamer)
- dd142a0 Studio: Enable subpixel rendering for WPF (@psyGamer)
- 90fe8a5 Studio: Always allow tab-completion for auto-complete menu (@psyGamer)
- a229ad4 Certain target-query suggestions (@psyGamer)
- 1c7aa6d Studio: Increase default size of 3rd-party window to 600x800 (@psyGamer)
- df0d81d Studio: Move image of changelog pages out of scrollable (@psyGamer)
- 3190df8 Validate seed provided to 'SeedRandom' is correct (@psyGamer)
Removals
Performance Improvements
Builds
Continuous Integration
Commits
- d2a428b support other mods to send a popup message to studio (@LozenChen) #122
- 5737b7a add RequireDependency command (@LozenChen) #123
- f73ef02 add UI for RequireDependency command (@LozenChen) #123
- 90d86d0 feature(util): add ActiveWarps metadata command (@EnderHane) #125
- 98e8303 fix dialog (@LozenChen) #123
- 216d072 make RequireDependency auto complete more intelligent (@LozenChen) #123
- 609830a update Chinese dialog (@LozenChen) #123

