Skip to content

Commit 779464d

Browse files
committed
Use InstanceScope instead of using DefaultScope for workspace settings.
Fix angelozerr#101
1 parent db6612a commit 779464d

File tree

3 files changed

+58
-9
lines changed

3 files changed

+58
-9
lines changed

eclipse/ts.eclipse.ide.core/src/ts/eclipse/ide/core/resources/AbstractTypeScriptSettings.java

Lines changed: 38 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
import org.eclipse.core.runtime.IPath;
1818
import org.eclipse.core.runtime.preferences.IEclipsePreferences;
1919
import org.eclipse.core.runtime.preferences.IEclipsePreferences.IPreferenceChangeListener;
20-
import org.eclipse.core.runtime.preferences.InstanceScope;
2120

2221
import ts.eclipse.ide.core.TypeScriptCorePlugin;
2322
import ts.utils.StringUtils;
@@ -40,15 +39,19 @@ public AbstractTypeScriptSettings(IProject project, String pluginId) {
4039
this.pluginId = pluginId;
4140
getProjectPreferences().addPreferenceChangeListener(this);
4241
getWorkspacePreferences().addPreferenceChangeListener(this);
43-
InstanceScope.INSTANCE.getNode(pluginId).addPreferenceChangeListener(this);
42+
getWorkspaceDefaultPreferences().addPreferenceChangeListener(this);
4443
}
4544

4645
public String getStringPreferencesValue(String key, String def) {
4746
String value = getProjectPreferencesValue(key, def);
48-
if (value == null) {
49-
return getStringWorkspacePreferencesValue(key, def);
47+
if (value != null) {
48+
return value;
49+
}
50+
value = getStringWorkspacePreferencesValue(key, def);
51+
if (value != null) {
52+
return value;
5053
}
51-
return value;
54+
return getStringWorkspaceDefaultPreferencesValue(key, def);
5255
}
5356

5457
public String getProjectPreferencesValue(String key, String def) {
@@ -61,12 +64,21 @@ public String getStringWorkspacePreferencesValue(String key, String def) {
6164
return node != null ? node.get(key, def) : null;
6265
}
6366

67+
public String getStringWorkspaceDefaultPreferencesValue(String key, String def) {
68+
IEclipsePreferences node = getWorkspaceDefaultPreferences();
69+
return node != null ? node.get(key, def) : null;
70+
}
71+
6472
public Boolean getBooleanPreferencesValue(String key, Boolean def) {
6573
Boolean value = getProjectPreferencesValue(key, (Boolean) null);
6674
if (value != null) {
6775
return value;
6876
}
69-
return getBooleanWorkspacePreferencesValue(key, def);
77+
value = getBooleanWorkspacePreferencesValue(key, (Boolean) null);
78+
if (value != null) {
79+
return value;
80+
}
81+
return getBooleanWorkspaceDefaultPreferencesValue(key, def);
7082
}
7183

7284
public Boolean getProjectPreferencesValue(String key, Boolean def) {
@@ -79,6 +91,11 @@ public Boolean getBooleanWorkspacePreferencesValue(String key, Boolean def) {
7991
return getBoolean(node, key, def);
8092
}
8193

94+
public Boolean getBooleanWorkspaceDefaultPreferencesValue(String key, Boolean def) {
95+
IEclipsePreferences node = getWorkspaceDefaultPreferences();
96+
return getBoolean(node, key, def);
97+
}
98+
8299
private Boolean getBoolean(IEclipsePreferences preferences, String key, Boolean def) {
83100
if (preferences == null) {
84101
return def;
@@ -99,7 +116,11 @@ public Integer getIntegerPreferencesValue(String key, Integer def) {
99116
if (value != null) {
100117
return value;
101118
}
102-
return getIntegerWorkspacePreferencesValue(key, def);
119+
value = getIntegerWorkspacePreferencesValue(key, (Integer) null);
120+
if (value != null) {
121+
return value;
122+
}
123+
return getIntegerWorkspaceDefaultPreferencesValue(key, def);
103124
}
104125

105126
public Integer getProjectPreferencesValue(String key, Integer def) {
@@ -112,6 +133,11 @@ public Integer getIntegerWorkspacePreferencesValue(String key, Integer def) {
112133
return getInteger(node, key, def);
113134
}
114135

136+
public Integer getIntegerWorkspaceDefaultPreferencesValue(String key, Integer def) {
137+
IEclipsePreferences node = getWorkspaceDefaultPreferences();
138+
return getInteger(node, key, def);
139+
}
140+
115141
private Integer getInteger(IEclipsePreferences preferences, String key, Integer def) {
116142
if (preferences == null) {
117143
return def;
@@ -135,10 +161,14 @@ protected IEclipsePreferences getWorkspacePreferences() {
135161
return WorkspaceTypeScriptSettingsHelper.getWorkspacePreferences(pluginId);
136162
}
137163

164+
protected IEclipsePreferences getWorkspaceDefaultPreferences() {
165+
return WorkspaceTypeScriptSettingsHelper.getWorkspaceDefaultPreferences(pluginId);
166+
}
167+
138168
public void dispose() {
139169
getProjectPreferences().removePreferenceChangeListener(this);
140170
getWorkspacePreferences().removePreferenceChangeListener(this);
141-
InstanceScope.INSTANCE.getNode(pluginId).removePreferenceChangeListener(this);
171+
getWorkspaceDefaultPreferences().removePreferenceChangeListener(this);
142172
}
143173

144174
public IProject getProject() {

eclipse/ts.eclipse.ide.core/src/ts/eclipse/ide/core/resources/WorkspaceTypeScriptSettingsHelper.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,28 @@
1+
/**
2+
* Copyright (c) 2015-2016 Angelo ZERR.
3+
* All rights reserved. This program and the accompanying materials
4+
* are made available under the terms of the Eclipse Public License v1.0
5+
* which accompanies this distribution, and is available at
6+
* http://www.eclipse.org/legal/epl-v10.html
7+
*
8+
* Contributors:
9+
* Angelo Zerr <[email protected]> - initial API and implementation
10+
*/
111
package ts.eclipse.ide.core.resources;
212

313
import org.eclipse.core.runtime.preferences.DefaultScope;
414
import org.eclipse.core.runtime.preferences.IEclipsePreferences;
515
import org.eclipse.core.runtime.preferences.IEclipsePreferences.IPreferenceChangeListener;
616
import org.eclipse.core.runtime.preferences.IEclipsePreferences.PreferenceChangeEvent;
17+
import org.eclipse.core.runtime.preferences.InstanceScope;
718

819
import ts.eclipse.ide.core.TypeScriptCorePlugin;
920
import ts.eclipse.ide.core.preferences.TypeScriptCorePreferenceConstants;
1021

22+
/**
23+
* Workspace TypeScript settings.
24+
*
25+
*/
1126
public class WorkspaceTypeScriptSettingsHelper {
1227

1328
private static UseSalsa useSalsa;
@@ -33,6 +48,10 @@ public void preferenceChange(PreferenceChangeEvent event) {
3348
}
3449

3550
public static IEclipsePreferences getWorkspacePreferences(String pluginId) {
51+
return InstanceScope.INSTANCE.getNode(pluginId);
52+
}
53+
54+
public static IEclipsePreferences getWorkspaceDefaultPreferences(String pluginId) {
3655
return DefaultScope.INSTANCE.getNode(pluginId);
3756
}
3857

eclipse/ts.eclipse.ide.core/src/ts/eclipse/ide/internal/core/preferences/TypeScriptCorePreferenceInitializer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public class TypeScriptCorePreferenceInitializer extends AbstractPreferenceIniti
3737
@Override
3838
public void initializeDefaultPreferences() {
3939
IEclipsePreferences node = WorkspaceTypeScriptSettingsHelper
40-
.getWorkspacePreferences(TypeScriptCorePlugin.PLUGIN_ID);
40+
.getWorkspaceDefaultPreferences(TypeScriptCorePlugin.PLUGIN_ID);
4141

4242
// initialize properties for direct access of node.js server (start an
4343
// internal process)

0 commit comments

Comments
 (0)