in plugin/src/software/aws/toolkits/eclipse/amazonq/lsp/LspStartupActivity.java [115:152]
private void attachAutoTriggerListenersIfApplicable() {
String autoTriggerPrefValue = Activator.getPluginStore().get(ToggleAutoTriggerContributionItem.AUTO_TRIGGER_ENABLEMENT_KEY);
boolean isEnabled = autoTriggerPrefValue != null && !autoTriggerPrefValue.isBlank()
&& autoTriggerPrefValue.equals("true");
var autoTriggerTopLevelListener = new AutoTriggerTopLevelListener<AutoTriggerPartListener<AutoTriggerDocumentListener>>();
if (isEnabled) {
var documentListener = new AutoTriggerDocumentListener();
var autoTriggerPartListener = new AutoTriggerPartListener<AutoTriggerDocumentListener>(documentListener);
autoTriggerTopLevelListener.addPartListener(autoTriggerPartListener);
autoTriggerTopLevelListener.onStart();
}
var prefChangeListener = new IPreferenceChangeListener() {
@Override
public void preferenceChange(final PreferenceChangeEvent evt) {
String keyChanged = evt.getKey();
String newValue = (String) evt.getNewValue();
if (!keyChanged.equals(ToggleAutoTriggerContributionItem.AUTO_TRIGGER_ENABLEMENT_KEY)) {
return;
}
boolean isEnabled = newValue != null && !newValue.isBlank() && newValue.equals("true");
if (isEnabled) {
if (autoTriggerTopLevelListener.getPartListener() == null) {
var documentListener = new AutoTriggerDocumentListener();
var autoTriggerPartListener = new AutoTriggerPartListener<AutoTriggerDocumentListener>(documentListener);
autoTriggerTopLevelListener.addPartListener(autoTriggerPartListener);
}
Display.getDefault().asyncExec(() -> {
autoTriggerTopLevelListener.onStart();
});
} else {
Display.getDefault().asyncExec(() -> {
autoTriggerTopLevelListener.onShutdown();
});
}
}
};
Activator.getPluginStore().addChangeListener(prefChangeListener);
}