style: drop task references from cycle code comments

This commit is contained in:
2026-05-21 14:52:58 +02:00
parent 81123ccddf
commit 3296a12516
9 changed files with 28 additions and 29 deletions
+2 -2
View File
@@ -188,7 +188,7 @@ public class Configuration : IPluginConfiguration
public bool SymbolPickerEnabled = true; public bool SymbolPickerEnabled = true;
public bool PlaySounds = true; public bool PlaySounds = true;
// UI-2: toast when a tell the user sent could not be delivered. // Toast when a tell the user sent could not be delivered.
public bool NotifyFailedTell = true; public bool NotifyFailedTell = true;
public bool KeepInputFocus = true; public bool KeepInputFocus = true;
public int MaxLinesToRender = 2_500; // 1-10000 public int MaxLinesToRender = 2_500; // 1-10000
@@ -447,7 +447,7 @@ public class Tab
public bool AllSenderMessages; public bool AllSenderMessages;
public TellTarget TellTarget = TellTarget.Empty(); public TellTarget TellTarget = TellTarget.Empty();
// UI-3: per-tab notification sound for messages arriving in an inactive tab. // Per-tab notification sound for messages arriving in an inactive tab.
public bool EnableNotificationSound; public bool EnableNotificationSound;
public uint NotificationSoundId = 1; public uint NotificationSoundId = 1;
@@ -10,11 +10,11 @@ using Microsoft.Extensions.Logging;
namespace HellionChat.Integrations; namespace HellionChat.Integrations;
// UI-2: a minimal, failed-tell-specific game hook. A locale-robust "tell // A minimal, failed-tell-specific game hook. A locale-robust "tell failed"
// failed" signal is not reachable over the processed message stream (Message // signal is not reachable over the processed message stream (Message carries
// carries no LogMessage row id, ChatCode 60 is too broad). This hooks the one // no LogMessage row id, ChatCode 60 is too broad). This hooks the one
// ShowLogMessageString overload and toasts on a pinned id set. It is NOT the // ShowLogMessageString overload and toasts on a pinned id set. It is NOT the
// broad ad-block hook layer. That stays v1.5.6. // broad ad-block hook layer.
internal sealed class FailedTellNotifier : IDisposable internal sealed class FailedTellNotifier : IDisposable
{ {
private readonly ILogger<FailedTellNotifier> _logger; private readonly ILogger<FailedTellNotifier> _logger;
+2 -2
View File
@@ -343,8 +343,8 @@ internal class MessageManager : IAsyncDisposable
{ {
tab.AddMessage(message, unread); tab.AddMessage(message, unread);
// UI-3: per-tab notification sound. Fire once for the first // Per-tab notification sound. Fire once for the first inactive
// inactive tab that wants it, keeping a message matching several // tab that wants it, keeping a message matching several
// background tabs from stacking sounds. // background tabs from stacking sounds.
// TEST-MIRROR: ../_Helpers/TabSoundDecision.cs // TEST-MIRROR: ../_Helpers/TabSoundDecision.cs
if ( if (
+4 -4
View File
@@ -200,10 +200,10 @@ public sealed class Plugin : IAsyncDalamudPlugin
// Schema gate: v1.4.x+ requires config v16+. Users on older schemas // Schema gate: v1.4.x+ requires config v16+. Users on older schemas
// must install v1.4.2 first to run the migration chain. v18 adds the // must install v1.4.2 first to run the migration chain. v18 adds the
// per-tab EnableNotificationSound + NotificationSoundId fields (UI-3) // per-tab EnableNotificationSound + NotificationSoundId fields and the
// and the top-level NotifyFailedTell flag (UI-2), all additive with // top-level NotifyFailedTell flag, all additive with defaults, so
// defaults, so v16/v17 configs load cleanly and get their Version // v16/v17 configs load cleanly and get their Version stamp bumped
// stamp bumped after the gate. // after the gate.
if (Config.Version < 16) if (Config.Version < 16)
{ {
throw new InvalidOperationException( throw new InvalidOperationException(
+3 -3
View File
@@ -452,18 +452,18 @@ internal class HellionStrings
internal static string Settings_ThemeAndLayout_ReduceMotion_Name => Get(nameof(Settings_ThemeAndLayout_ReduceMotion_Name)); internal static string Settings_ThemeAndLayout_ReduceMotion_Name => Get(nameof(Settings_ThemeAndLayout_ReduceMotion_Name));
internal static string Settings_ThemeAndLayout_ReduceMotion_Description => Get(nameof(Settings_ThemeAndLayout_ReduceMotion_Description)); internal static string Settings_ThemeAndLayout_ReduceMotion_Description => Get(nameof(Settings_ThemeAndLayout_ReduceMotion_Description));
// Hellion Chat — v1.5.5 UI-2 Failed Tell Notification // Failed-tell notification
internal static string FailedTell_Notification_Generic => Get(nameof(FailedTell_Notification_Generic)); internal static string FailedTell_Notification_Generic => Get(nameof(FailedTell_Notification_Generic));
internal static string FailedTell_Notification_Named => Get(nameof(FailedTell_Notification_Named)); internal static string FailedTell_Notification_Named => Get(nameof(FailedTell_Notification_Named));
internal static string Settings_Chat_NotifyFailedTell_Name => Get(nameof(Settings_Chat_NotifyFailedTell_Name)); internal static string Settings_Chat_NotifyFailedTell_Name => Get(nameof(Settings_Chat_NotifyFailedTell_Name));
internal static string Settings_Chat_NotifyFailedTell_Description => Get(nameof(Settings_Chat_NotifyFailedTell_Description)); internal static string Settings_Chat_NotifyFailedTell_Description => Get(nameof(Settings_Chat_NotifyFailedTell_Description));
// Hellion Chat — v1.5.5 UI-3 Per-Tab Notification Sound // Per-tab notification sound
internal static string Tabs_NotificationSound_Enable_Name => Get(nameof(Tabs_NotificationSound_Enable_Name)); internal static string Tabs_NotificationSound_Enable_Name => Get(nameof(Tabs_NotificationSound_Enable_Name));
internal static string Tabs_NotificationSound_Description => Get(nameof(Tabs_NotificationSound_Description)); internal static string Tabs_NotificationSound_Description => Get(nameof(Tabs_NotificationSound_Description));
internal static string Tabs_NotificationSound_Option => Get(nameof(Tabs_NotificationSound_Option)); internal static string Tabs_NotificationSound_Option => Get(nameof(Tabs_NotificationSound_Option));
// Hellion Chat — v1.5.5 UI-5a Scroll-to-bottom + UI-6 Linking // Scroll-to-bottom and item/flag linking
internal static string ChatLog_ScrollToBottom_Tooltip => Get(nameof(ChatLog_ScrollToBottom_Tooltip)); internal static string ChatLog_ScrollToBottom_Tooltip => Get(nameof(ChatLog_ScrollToBottom_Tooltip));
internal static string ChatLog_Insert_MapFlag => Get(nameof(ChatLog_Insert_MapFlag)); internal static string ChatLog_Insert_MapFlag => Get(nameof(ChatLog_Insert_MapFlag));
internal static string ChatLog_Insert_ItemLink => Get(nameof(ChatLog_Insert_ItemLink)); internal static string ChatLog_Insert_ItemLink => Get(nameof(ChatLog_Insert_ItemLink));
+3 -3
View File
@@ -1049,7 +1049,7 @@
<value>Disables the theme crossfade, the sidebar and card-row hover animations, and the unread-tab pulse. Theme switches and hover states apply instantly instead.</value> <value>Disables the theme crossfade, the sidebar and card-row hover animations, and the unread-tab pulse. Theme switches and hover states apply instantly instead.</value>
</data> </data>
<!-- Hellion Chat — v1.5.5 UI-2 Failed Tell Notification --> <!-- Failed-tell notification -->
<data name="FailedTell_Notification_Generic" xml:space="preserve"> <data name="FailedTell_Notification_Generic" xml:space="preserve">
<value>A tell could not be delivered.</value> <value>A tell could not be delivered.</value>
</data> </data>
@@ -1063,7 +1063,7 @@
<value>Show a toast when a tell you sent could not be delivered (recipient offline, in an instance, or blocking you).</value> <value>Show a toast when a tell you sent could not be delivered (recipient offline, in an instance, or blocking you).</value>
</data> </data>
<!-- Hellion Chat — v1.5.5 UI-3 Per-Tab Notification Sound --> <!-- Per-tab notification sound -->
<data name="Tabs_NotificationSound_Enable_Name" xml:space="preserve"> <data name="Tabs_NotificationSound_Enable_Name" xml:space="preserve">
<value>Notification sound</value> <value>Notification sound</value>
</data> </data>
@@ -1074,7 +1074,7 @@
<value>Sound</value> <value>Sound</value>
</data> </data>
<!-- Hellion Chat — v1.5.5 UI-5a Scroll-to-bottom + UI-6 Linking --> <!-- Scroll-to-bottom and item/flag linking -->
<data name="ChatLog_ScrollToBottom_Tooltip" xml:space="preserve"> <data name="ChatLog_ScrollToBottom_Tooltip" xml:space="preserve">
<value>Jump to the latest message</value> <value>Jump to the latest message</value>
</data> </data>
+4 -5
View File
@@ -776,11 +776,11 @@ public sealed class ChatLogWindow : Window
// (~17ms at 60fps) late, invisible inside the post-reload Atlas-Build. // (~17ms at 60fps) late, invisible inside the post-reload Atlas-Build.
private bool _firstFrameDone; private bool _firstFrameDone;
// UI-5: set when the user clicks the scroll-to-bottom button; the next // Set when the user clicks the scroll-to-bottom button; the next
// frame's scroll-snap check forces a jump to the live end. // frame's scroll-snap check forces a jump to the live end.
private bool _scrollToBottomRequested; private bool _scrollToBottomRequested;
// UI-5: cached each frame inside the ##chat2-messages child. True when the // Cached each frame inside the ##chat2-messages child. True when the
// user has scrolled up enough that the toolbar button should be shown. // user has scrolled up enough that the toolbar button should be shown.
private bool _childScrolledUp; private bool _childScrolledUp;
@@ -2330,7 +2330,6 @@ public sealed class ChatLogWindow : Window
// DrawChatHeaderToolbar: renders the honorific title slot, the optional // DrawChatHeaderToolbar: renders the honorific title slot, the optional
// scroll-to-bottom button, and the pop-out button for the active tab. // scroll-to-bottom button, and the pop-out button for the active tab.
// v1.3.0 added the title slot; v1.5.5 added the scroll-to-bottom button.
private void DrawChatHeaderToolbar(Tab tab) private void DrawChatHeaderToolbar(Tab tab)
{ {
DrawHonorificTitleSlot(); DrawHonorificTitleSlot();
@@ -2556,8 +2555,8 @@ public sealed class ChatLogWindow : Window
var anyChanged = false; var anyChanged = false;
var tabs = Plugin.Config.Tabs; var tabs = Plugin.Config.Tabs;
// UI-4: focus the rename field on the frame the context menu opens so // Focus the rename field on the frame the context menu opens so the
// the user can type immediately. Buffer raised 128 -> 512 to match the // user can type immediately. Buffer raised 128 -> 512 to match the
// settings-tab rename (Ui/SettingsTabs/Tabs.cs). One name limit, not two. // settings-tab rename (Ui/SettingsTabs/Tabs.cs). One name limit, not two.
if (ImGui.IsWindowAppearing()) if (ImGui.IsWindowAppearing())
ImGui.SetKeyboardFocusHere(); ImGui.SetKeyboardFocusHere();
+4 -4
View File
@@ -2,7 +2,7 @@ using System.Collections.Generic;
namespace HellionChat._Helpers; namespace HellionChat._Helpers;
// UI-2 pure decision helper for failed-tell detection. The processed message // Pure decision helper for failed-tell detection. The processed message
// stream carries no LogMessage row id, so detection happens at the // stream carries no LogMessage row id, so detection happens at the
// RaptureLogModule level (see FailedTellNotifier). This POCO stays free of // RaptureLogModule level (see FailedTellNotifier). This POCO stays free of
// Dalamud types so the "known id AND enabled" rule is Build-Suite testable. // Dalamud types so the "known id AND enabled" rule is Build-Suite testable.
@@ -10,9 +10,9 @@ namespace HellionChat._Helpers;
public static class FailedTellMatcher public static class FailedTellMatcher
{ {
// Log-message ids the game raises for a tell that could not be delivered, // Log-message ids the game raises for a tell that could not be delivered,
// pinned from in-game discovery (plan Task 2). 50 covers an unreachable // pinned from in-game discovery. 50 covers an unreachable recipient
// recipient (offline, non-existent, or on another world); 3832 is a // (offline, non-existent, or on another world); 3832 is a recipient
// recipient inside an instance. // inside an instance.
public static readonly IReadOnlySet<uint> FailedTellLogMessageIds = new HashSet<uint> public static readonly IReadOnlySet<uint> FailedTellLogMessageIds = new HashSet<uint>
{ {
50u, 50u,
+2 -2
View File
@@ -1,7 +1,7 @@
namespace HellionChat._Helpers; namespace HellionChat._Helpers;
// UI-3 pure decision helper: should an incoming message play a per-tab // Pure decision helper: should an incoming message play a per-tab notification
// notification sound? Kept Dalamud-free so the Build Suite can test the // sound? Kept Dalamud-free so the Build Suite can test the
// "inactive + enabled + global-allowed" rule in isolation. // "inactive + enabled + global-allowed" rule in isolation.
// TEST-MIRROR: ../../../Hellion Build test/Ui/TabSoundDecisionTests.cs // TEST-MIRROR: ../../../Hellion Build test/Ui/TabSoundDecisionTests.cs
public static class TabSoundDecision public static class TabSoundDecision