Skip to content

Commit ed77cad

Browse files
travkin79rubenporras
authored andcommitted
Fix loading preference default for linked editing
Allows for customizing the default preference value with a plugin_customization.ini
1 parent 62e5c7f commit ed77cad

2 files changed

Lines changed: 17 additions & 3 deletions

File tree

org.eclipse.lsp4e/plugin.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,9 @@
142142

143143
<extension point="org.eclipse.core.runtime.preferences">
144144
<initializer class="org.eclipse.lsp4e.ui.FoldingPreferencePage$PreferenceInitializer"/>
145+
<initializer
146+
class="org.eclipse.lsp4e.operations.linkedediting.LSPLinkedEditingBase$PreferenceInitializer">
147+
</initializer>
145148
</extension>
146149

147150
<extension point="org.eclipse.ui.genericeditor.foldingReconcilers">

org.eclipse.lsp4e/src/org/eclipse/lsp4e/operations/linkedediting/LSPLinkedEditingBase.java

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import java.util.Optional;
1717
import java.util.concurrent.CompletableFuture;
1818

19+
import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
1920
import org.eclipse.core.runtime.preferences.IEclipsePreferences;
2021
import org.eclipse.core.runtime.preferences.IEclipsePreferences.IPreferenceChangeListener;
2122
import org.eclipse.core.runtime.preferences.IEclipsePreferences.PreferenceChangeEvent;
@@ -33,14 +34,24 @@
3334

3435
public class LSPLinkedEditingBase implements IPreferenceChangeListener {
3536
public static final String LINKED_EDITING_PREFERENCE = "org.eclipse.ui.genericeditor.linkedediting"; //$NON-NLS-1$
37+
private static final boolean LINKED_EDITING_ACTIVE_DEFAULT = true;
3638

3739
private @Nullable CompletableFuture<List<LinkedEditingRanges>> request;
3840
protected boolean fEnabled;
3941

42+
public static final class PreferenceInitializer extends AbstractPreferenceInitializer {
43+
@Override
44+
public void initializeDefaultPreferences() {
45+
final var store = LanguageServerPlugin.getDefault().getPreferenceStore();
46+
store.setDefault(LINKED_EDITING_PREFERENCE, LINKED_EDITING_ACTIVE_DEFAULT);
47+
}
48+
}
49+
4050
protected void install() {
41-
IEclipsePreferences preferences = InstanceScope.INSTANCE.getNode(LanguageServerPlugin.PLUGIN_ID);
42-
preferences.addPreferenceChangeListener(this);
43-
this.fEnabled = preferences.getBoolean(LINKED_EDITING_PREFERENCE, true);
51+
IEclipsePreferences instanceScopePreferences = InstanceScope.INSTANCE.getNode(LanguageServerPlugin.PLUGIN_ID);
52+
instanceScopePreferences.addPreferenceChangeListener(this);
53+
54+
this.fEnabled = LanguageServerPlugin.getDefault().getPreferenceStore().getBoolean(LINKED_EDITING_PREFERENCE);
4455
}
4556

4657
protected void uninstall() {

0 commit comments

Comments
 (0)