Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
d591e0f
Add Subsplit Editing to Run Editor
CryZe Jul 4, 2026
423ca4b
Update Subsplit Group Editing
CryZe Jul 5, 2026
d2e8ede
Update Native Subsplit Support
CryZe Jul 5, 2026
0e029cd
Show Subsplit Editor Section Separators
CryZe Jul 5, 2026
aafc02c
Refine Subsplit Editor Group Names
CryZe Jul 5, 2026
b0b6e6d
Preserve Subsplit Group Selection While Renaming
CryZe Jul 5, 2026
1469d0b
Add Subsplit Group Icons To Editor
CryZe Jul 6, 2026
37da56c
Update Native Subsplit Editor State
CryZe Jul 9, 2026
156a8d5
Preserve Pending Run Editor Time Edits
CryZe Jul 18, 2026
1277402
Update livesplit-core Subsplit Fixes
CryZe Jul 18, 2026
dd8d680
Render Run Editor Rows From Core
CryZe Jul 18, 2026
0421d8b
Update livesplit-core Run Editor Rows
CryZe Jul 18, 2026
ce1c2bb
Update livesplit-core Split Name Layout
CryZe Jul 18, 2026
acb10c1
Update livesplit-core Parsing Fixtures
CryZe Jul 18, 2026
970cfee
Remove Major Segment Styling
CryZe Jul 18, 2026
d648b97
Update livesplit-core Selection Insertion
CryZe Jul 18, 2026
d5b25d3
Update livesplit-core Group Range Editing
CryZe Jul 18, 2026
ca5cf3a
Update livesplit-core Group Error APIs
CryZe Jul 18, 2026
917e921
Update livesplit-core Subsplit Layout Parsing
CryZe Jul 21, 2026
d2022f9
Update livesplit-core Segment Group Errors
CryZe Jul 21, 2026
01dcf08
Order Subsplit Display Modes by Expansion
CryZe Jul 21, 2026
3868865
Update livesplit-core Displayed Splits Iterator
CryZe Jul 21, 2026
7ccbf07
Update livesplit-core Active Subsplit Header
CryZe Jul 21, 2026
9146892
Update livesplit-core Split Separators
CryZe Jul 21, 2026
3e6af87
Format Subsplit Run Editor
CryZe Jul 21, 2026
2d43e42
Use Merged Native Subsplit Core
CryZe Jul 21, 2026
0ff5e62
Extract Run Editor Segment Table
CryZe Jul 22, 2026
b832bda
Fix Segment Group Selection Interactions
CryZe Jul 22, 2026
f2cbece
Update livesplit-core Gap Separators
CryZe Jul 22, 2026
800c0d4
Honor Group Header Textbox Modifiers
CryZe Jul 22, 2026
b316e0c
Release Native Subsplit Support
CryZe Jul 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion livesplit-core
Submodule livesplit-core updated 78 files
+7 −7 Cargo.toml
+1 −1 capi/bind_gen/Cargo.toml
+1 −1 capi/bind_gen/src/main.rs
+88 −13 capi/bind_gen/src/typescript.ts
+18 −1 capi/bind_gen/src/wasm_bindgen.rs
+98 −2 capi/src/run_editor.rs
+18 −1 capi/src/setting_value.rs
+5 −7 capi/src/splits_component.rs
+43 −7 capi/src/splits_component_state.rs
+7 −7 crates/livesplit-auto-splitting/Cargo.toml
+13 −14 crates/livesplit-auto-splitting/src/runtime/api/mod.rs
+15 −16 crates/livesplit-auto-splitting/src/runtime/api/process.rs
+8 −8 crates/livesplit-auto-splitting/src/runtime/api/runtime.rs
+34 −13 crates/livesplit-auto-splitting/src/runtime/api/setting_value.rs
+23 −10 crates/livesplit-auto-splitting/src/runtime/api/settings_list.rs
+34 −13 crates/livesplit-auto-splitting/src/runtime/api/settings_map.rs
+1 −3 crates/livesplit-auto-splitting/src/runtime/api/timer.rs
+10 −9 crates/livesplit-auto-splitting/src/runtime/api/user_settings.rs
+4 −3 crates/livesplit-auto-splitting/src/runtime/api/wasi/mod.rs
+11 −11 crates/livesplit-auto-splitting/src/runtime/mod.rs
+2 −2 crates/livesplit-auto-splitting/tests/sandboxing.rs
+2 −2 crates/livesplit-hotkey/Cargo.toml
+8 −0 crates/livesplit-hotkey/src/macos/cg.rs
+8 −4 crates/livesplit-hotkey/src/macos/mod.rs
+27 −0 src/analysis/possible_time_save.rs
+202 −22 src/analysis/state_helper.rs
+26 −3 src/analysis/sum_of_segments/best.rs
+1 −0 src/analysis/tests/mod.rs
+99 −0 src/analysis/tests/segment_ranges.rs
+80 −16 src/component/splits/column.rs
+368 −73 src/component/splits/mod.rs
+1,102 −2 src/component/splits/tests/mod.rs
+32 −5 src/layout/parser/splits.rs
+5 −3 src/localization/brazilian_portuguese.rs
+5 −3 src/localization/chinese_simplified.rs
+2 −0 src/localization/chinese_traditional.rs
+5 −3 src/localization/dutch.rs
+5 −3 src/localization/english.rs
+7 −3 src/localization/french.rs
+5 −3 src/localization/german.rs
+7 −3 src/localization/italian.rs
+5 −3 src/localization/japanese.rs
+5 −3 src/localization/korean.rs
+4 −2 src/localization/mod.rs
+7 −3 src/localization/polish.rs
+5 −3 src/localization/portuguese.rs
+5 −5 src/localization/russian.rs
+5 −3 src/localization/spanish.rs
+2 −2 src/networking/therun_gg.rs
+2 −0 src/platform/wasm/unknown/time.rs
+21 −21 src/rendering/component/carousel.rs
+61 −20 src/rendering/component/splits.rs
+9 −4 src/rendering/mod.rs
+589 −21 src/run/editor/mod.rs
+123 −36 src/run/editor/state.rs
+968 −12 src/run/editor/tests/mod.rs
+76 −2 src/run/mod.rs
+1 −2 src/run/parser/composite.rs
+4 −2 src/run/parser/flitter.rs
+93 −2 src/run/parser/livesplit.rs
+0 −2 src/run/parser/llanfair.rs
+47 −18 src/run/parser/opensplit.rs
+3 −3 src/run/parser/source_live_timer.rs
+19 −20 src/run/parser/splitterino.rs
+6 −7 src/run/parser/splitty.rs
+2 −7 src/run/parser/time_split_tracker.rs
+25 −1 src/run/saver/livesplit.rs
+459 −0 src/run/segment_groups.rs
+1 −0 src/run/tests/mod.rs
+177 −0 src/run/tests/segment_groups.rs
+19 −0 src/settings/gradient.rs
+23 −1 src/settings/value.rs
+8 −11 src/util/xml/reader.rs
+67 −5 tests/layout_parsing.rs
+53 −22 tests/rendering.rs
+1 −0 tests/run_files/celeste_native_segment_groups.lss
+1 −0 tests/run_files/mod.rs
+144 −0 tests/split_parsing.rs
104 changes: 84 additions & 20 deletions src-tauri/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

54 changes: 53 additions & 1 deletion src/css/RunEditor.module.css
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,17 @@

> th {
font-weight: bold;
text-align: center;
text-align: right;
padding: calc(var(--ui-margin) / 2) calc(var(--ui-margin) / 2);
display: table-cell;

&:first-child {
padding-left: var(--ui-margin);
text-align: center;
}

&:nth-child(2) {
text-align: left;
}

&:last-child {
Expand Down Expand Up @@ -162,6 +167,14 @@
cursor: pointer;
display: flex;
justify-content: center;

img {
display: block;
height: 19px;
margin: 0 auto;
object-fit: contain;
width: 19px;
}
}

> input {
Expand All @@ -179,6 +192,45 @@
}
}

.segmentGroupHeader {
td {
border-top: 1px solid var(--border-color);
font-weight: bold;
}

td.segmentIconContainer {
display: table-cell;
height: auto;
text-align: center;
vertical-align: middle;
}
}

.segmentGroupBoundary {
td {
border-top: 1px solid var(--border-color);
}
}

.segmentGroupHeaderInput {
display: block;
font-weight: bold;
width: 100%;

&::placeholder {
color: currentColor;
opacity: 0.65;
}
}

.placeholderSegmentIcon {
opacity: 0.5;
}

.segmentGroupName {
padding-left: calc(var(--ui-large-margin) + var(--ui-margin)) !important;
}

.bottomSection {
display: flex;
flex-wrap: wrap;
Expand Down
10 changes: 10 additions & 0 deletions src/localization/chinese-simplified.ts
Original file line number Diff line number Diff line change
Expand Up @@ -218,6 +218,10 @@ export function resolveChineseSimplified(text: Label): string {
return "上移";
case Label.MoveDown:
return "下移";
case Label.CreateGroup:
return "建立群组";
case Label.RemoveGroup:
return "移除群组";
case Label.AddVariable:
return "添加变量";
case Label.OpenPbPage:
Expand Down Expand Up @@ -568,6 +572,12 @@ export function resolveChineseSimplified(text: Label): string {
return "对比区间时间";
case Label.ColumnStartWithPossibleTimeSave:
return "可节省时间";
case Label.SubsplitDisplayModeFlat:
return "平铺";
case Label.SubsplitDisplayModeCurrentGroupExpanded:
return "当前分组展开";
case Label.SubsplitDisplayModeAllGroupsExpanded:
return "全部分组展开";
case Label.ColumnUpdateWithDontUpdate:
return "不更新";
case Label.ColumnUpdateWithSplitTime:
Expand Down
1 change: 1 addition & 0 deletions src/localization/chinese-traditional.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ const TRADITIONAL_REPLACEMENTS: [string, string][] = [
["区域", "區域"],
["地区", "地區"],
["网络", "網路"],
["群组", "群組"],
["选项", "選項"],
["比较", "比較"],
["对比", "對比"],
Expand Down
10 changes: 10 additions & 0 deletions src/localization/dutch.ts
Original file line number Diff line number Diff line change
Expand Up @@ -218,6 +218,10 @@ export function resolveDutch(text: Label): string {
return "Omhoog";
case Label.MoveDown:
return "Omlaag";
case Label.CreateGroup:
return "Groep aanmaken";
case Label.RemoveGroup:
return "Groep verwijderen";
case Label.AddVariable:
return "Variabele toevoegen";
case Label.OpenPbPage:
Expand Down Expand Up @@ -568,6 +572,12 @@ export function resolveDutch(text: Label): string {
return "Vergelijking segmenttijd";
case Label.ColumnStartWithPossibleTimeSave:
return "Mogelijke tijdswinst";
case Label.SubsplitDisplayModeFlat:
return "Plat";
case Label.SubsplitDisplayModeCurrentGroupExpanded:
return "Huidige groep uitgeklapt";
case Label.SubsplitDisplayModeAllGroupsExpanded:
return "Alle groepen uitgeklapt";
case Label.ColumnUpdateWithDontUpdate:
return "Niet bijwerken";
case Label.ColumnUpdateWithSplitTime:
Expand Down
10 changes: 10 additions & 0 deletions src/localization/english.ts
Original file line number Diff line number Diff line change
Expand Up @@ -218,6 +218,10 @@ export function resolveEnglish(text: Label): string {
return "Move Up";
case Label.MoveDown:
return "Move Down";
case Label.CreateGroup:
return "Create Group";
case Label.RemoveGroup:
return "Remove Group";
case Label.AddVariable:
return "Add Variable";
case Label.OpenPbPage:
Expand Down Expand Up @@ -568,6 +572,12 @@ export function resolveEnglish(text: Label): string {
return "Comparison Segment Time";
case Label.ColumnStartWithPossibleTimeSave:
return "Possible Time Save";
case Label.SubsplitDisplayModeFlat:
return "Flat";
case Label.SubsplitDisplayModeCurrentGroupExpanded:
return "Current Group Expanded";
case Label.SubsplitDisplayModeAllGroupsExpanded:
return "All Groups Expanded";
case Label.ColumnUpdateWithDontUpdate:
return "Don't Update";
case Label.ColumnUpdateWithSplitTime:
Expand Down
Loading