Skip to content

Commit 1775952

Browse files
committed
Fix #121
1 parent 9d19348 commit 1775952

File tree

2 files changed

+39
-3
lines changed

2 files changed

+39
-3
lines changed

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

Lines changed: 35 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import org.eclipse.core.runtime.Platform;
1717
import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
1818
import org.eclipse.core.runtime.preferences.IEclipsePreferences;
19+
import org.osgi.service.prefs.BackingStoreException;
1920

2021
import ts.cmd.tslint.TslintSettingsStrategy;
2122
import ts.eclipse.ide.core.TypeScriptCorePlugin;
@@ -56,14 +57,18 @@ public void initializeDefaultPreferences() {
5657
for (int i = 0; i < oldRepostoryBaseDirs.length; i++) {
5758
oldRepostoryBaseDir = oldRepostoryBaseDirs[i];
5859
if (oldRepostoryBaseDir.isDirectory()) {
59-
TypeScriptCorePlugin.getTypeScriptRepositoryManager().createRepository(oldRepostoryBaseDir);
60+
try {
61+
TypeScriptCorePlugin.getTypeScriptRepositoryManager().createRepository(oldRepostoryBaseDir);
62+
} catch (Exception e) {
63+
Trace.trace(Trace.SEVERE, "Error while getting an archived TypeScript repository", e);
64+
}
6065
}
6166
}
6267

6368
}
6469

6570
// Initialize tsc preferences
66-
initializeTscPreferences(node, defaultRepository);
71+
initializeTypeScriptRuntimePreferences(node, defaultRepository);
6772
// Initialize tsserver preferences
6873
initializeTsserverPreferences(node, defaultRepository);
6974
// Initialize tslint preferences
@@ -82,6 +87,11 @@ public void initializeDefaultPreferences() {
8287

8388
// initialize editor+formation options
8489
initializeEditorFormatOptions(node);
90+
91+
// Fix embedded TypeScript id preference
92+
// See https://github.com/angelozerr/typescript.java/issues/121
93+
fixEmbeddedTypeScriptIdPreference(
94+
WorkspaceTypeScriptSettingsHelper.getWorkspacePreferences(TypeScriptCorePlugin.PLUGIN_ID));
8595
}
8696

8797
/**
@@ -112,7 +122,8 @@ private static boolean useBundledNodeJsEmbedded(IEclipsePreferences node) {
112122
return false;
113123
}
114124

115-
private void initializeTscPreferences(IEclipsePreferences node, ITypeScriptRepository defaultRepository) {
125+
private void initializeTypeScriptRuntimePreferences(IEclipsePreferences node,
126+
ITypeScriptRepository defaultRepository) {
116127
node.put(TypeScriptCorePreferenceConstants.EMBEDDED_TYPESCRIPT_ID, defaultRepository.getName());
117128
node.putBoolean(TypeScriptCorePreferenceConstants.USE_EMBEDDED_TYPESCRIPT, true);
118129
node.put(TypeScriptCorePreferenceConstants.INSTALLED_TYPESCRIPT_PATH, "");
@@ -171,4 +182,25 @@ private void initializeEditorFormatOptions(IEclipsePreferences node) {
171182
TypeScriptCorePreferenceConstants.FORMAT_OPTIONS_PLACE_OPEN_BRACE_ON_NEW_LINE_FOR_CONTROL_BLOCKS_DEFAULT);
172183

173184
}
185+
186+
/**
187+
* Fix the embeddedTypeScriptId preference if needed with default
188+
* embeddedTypeScriptId.
189+
*
190+
* @param preferences
191+
* @see https://github.com/angelozerr/typescript.java/issues/121
192+
*/
193+
public static void fixEmbeddedTypeScriptIdPreference(IEclipsePreferences preferences) {
194+
String embeddedTypeScriptId = preferences.get(TypeScriptCorePreferenceConstants.EMBEDDED_TYPESCRIPT_ID, null);
195+
if (embeddedTypeScriptId != null
196+
&& TypeScriptCorePlugin.getTypeScriptRepositoryManager().getRepository(embeddedTypeScriptId) == null) {
197+
preferences.put(TypeScriptCorePreferenceConstants.EMBEDDED_TYPESCRIPT_ID,
198+
TypeScriptCorePlugin.getTypeScriptRepositoryManager().getDefaultRepository().getName());
199+
try {
200+
preferences.flush();
201+
} catch (BackingStoreException e) {
202+
Trace.trace(Trace.SEVERE, "Error while fixing embeddedTypeScriptId preference", e);
203+
}
204+
}
205+
}
174206
}

eclipse/ts.eclipse.ide.core/src/ts/eclipse/ide/internal/core/resources/IDETypeScriptProjectSettings.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import ts.eclipse.ide.core.resources.IIDETypeScriptProject;
2727
import ts.eclipse.ide.core.resources.IIDETypeScriptProjectSettings;
2828
import ts.eclipse.ide.core.resources.buildpath.ITypeScriptBuildPath;
29+
import ts.eclipse.ide.internal.core.preferences.TypeScriptCorePreferenceInitializer;
2930
import ts.eclipse.ide.internal.core.repository.IDETypeScriptRepositoryManager;
3031
import ts.eclipse.ide.internal.core.resources.buildpath.TypeScriptBuildPath;
3132
import ts.nodejs.NodejsProcess;
@@ -48,6 +49,9 @@ public class IDETypeScriptProjectSettings extends AbstractTypeScriptSettings imp
4849
public IDETypeScriptProjectSettings(IDETypeScriptProject tsProject) {
4950
super(tsProject.getProject(), TypeScriptCorePlugin.PLUGIN_ID);
5051
this.tsProject = tsProject;
52+
// Fix embedded TypeScript id preference
53+
// See https://github.com/angelozerr/typescript.java/issues/121
54+
TypeScriptCorePreferenceInitializer.fixEmbeddedTypeScriptIdPreference(getProjectPreferences());
5155
}
5256

5357
/**

0 commit comments

Comments
 (0)