void LateUpdate()
    {
        var mode = editorDisplayOptions.activePinNameDisplayMode;

        pinsToDisplay.Clear();

        if (mode == ChipEditorOptions.PinNameDisplayMode.AlwaysMain || mode == ChipEditorOptions.PinNameDisplayMode.AlwaysAll)
        {
            if (mode == ChipEditorOptions.PinNameDisplayMode.AlwaysAll)
            {
                foreach (var chip in chipEditor.chipInteraction.allChips)
                {
                    pinsToDisplay.AddRange(chip.inputPins);
                    pinsToDisplay.AddRange(chip.outputPins);
                }
            }
            foreach (var chip in chipEditor.inputsEditor.signals)
            {
                if (!chipEditor.inputsEditor.selectedSignals.Contains(chip))
                {
                    pinsToDisplay.AddRange(chip.outputPins);
                }
            }
            foreach (var chip in chipEditor.outputsEditor.signals)
            {
                if (!chipEditor.outputsEditor.selectedSignals.Contains(chip))
                {
                    pinsToDisplay.AddRange(chip.inputPins);
                }
            }
        }

        if (highlightedPin)
        {
            bool nameDisplayKey = InputHelper.AnyOfTheseKeysHeld(KeyCode.LeftAlt, KeyCode.RightAlt);
            if (nameDisplayKey || mode == ChipEditorOptions.PinNameDisplayMode.Hover)
            {
                pinsToDisplay.Add(highlightedPin);
            }
        }

        DisplayPinName(pinsToDisplay);
    }