This commit is contained in:
Peter Dell
2023-01-05 02:12:16 +01:00
parent b9481e8aea
commit e102c2b22d
3 changed files with 30 additions and 41 deletions

View File

@@ -64,7 +64,7 @@ final class HTMLWriter {
if (stack.isEmpty()) { if (stack.isEmpty()) {
throw new RuntimeException("No open tag: " + builder); throw new RuntimeException("No open tag: " + builder);
} }
String tag = stack.remove(stack.size() - 1); var tag = stack.remove(stack.size() - 1);
builder.append("</"); builder.append("</");
builder.append(tag); builder.append(tag);
builder.append(">\n"); builder.append(">\n");
@@ -191,7 +191,7 @@ final class HTMLWriter {
if (text == null) { if (text == null) {
throw new IllegalArgumentException("Parameter 'text' must not be null."); throw new IllegalArgumentException("Parameter 'text' must not be null.");
} }
String target =""; var target ="";
if (href.toLowerCase().startsWith("https://")) { if (href.toLowerCase().startsWith("https://")) {
target=" target=\"_blank\""; target=" target=\"_blank\"";
} }
@@ -202,7 +202,7 @@ final class HTMLWriter {
if (list == null) { if (list == null) {
throw new IllegalArgumentException("Parameter 'list' must not be null."); throw new IllegalArgumentException("Parameter 'list' must not be null.");
} }
StringBuilder builder = new StringBuilder(); var builder = new StringBuilder();
int size = list.size(); int size = list.size();
for (int i = 0; i < size; i++) { for (int i = 0; i < size; i++) {
builder.append(list.get(i)); builder.append(list.get(i));

View File

@@ -40,13 +40,11 @@ import org.eclipse.help.IUAElement;
import com.wudsn.ide.base.common.EnumUtility; import com.wudsn.ide.base.common.EnumUtility;
import com.wudsn.ide.base.common.TextUtility; import com.wudsn.ide.base.common.TextUtility;
import com.wudsn.ide.base.hardware.Hardware; import com.wudsn.ide.base.hardware.Hardware;
import com.wudsn.ide.lng.Language;
import com.wudsn.ide.lng.LanguagePlugin; import com.wudsn.ide.lng.LanguagePlugin;
import com.wudsn.ide.lng.LanguageUtility; import com.wudsn.ide.lng.LanguageUtility;
import com.wudsn.ide.lng.Target; import com.wudsn.ide.lng.Target;
import com.wudsn.ide.lng.Texts; import com.wudsn.ide.lng.Texts;
import com.wudsn.ide.lng.compiler.CompilerDefinition; import com.wudsn.ide.lng.compiler.CompilerDefinition;
import com.wudsn.ide.lng.compiler.CompilerRegistry;
/** /**
* Dynamic help content provider. Uses static pages and the meta data from the * Dynamic help content provider. Uses static pages and the meta data from the
@@ -160,9 +158,8 @@ public final class LanguageTocProvider extends AbstractTocProvider {
String label; String label;
String key = href; String key = href;
try { try {
Class<LanguageTocProvider> clazz = LanguageTocProvider.class; var clazz = LanguageTocProvider.class;
ResourceBundle resourceBundle; var resourceBundle = ResourceBundle.getBundle(clazz.getName().replace('.', '/'), Locale.getDefault(),
resourceBundle = ResourceBundle.getBundle(clazz.getName().replace('.', '/'), Locale.getDefault(),
clazz.getClassLoader()); clazz.getClassLoader());
label = resourceBundle.getString(key); label = resourceBundle.getString(key);
} catch (MissingResourceException ex) { } catch (MissingResourceException ex) {
@@ -176,7 +173,7 @@ public final class LanguageTocProvider extends AbstractTocProvider {
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=382599 // https://bugs.eclipse.org/bugs/show_bug.cgi?id=382599
@SuppressWarnings("restriction") @SuppressWarnings("restriction")
private static ITopic createTopic(String icon, String label, String href, ITopic[] subtopics) { private static ITopic createTopic(String icon, String label, String href, ITopic[] subtopics) {
org.eclipse.help.internal.Topic result = new org.eclipse.help.internal.Topic(); var result = new org.eclipse.help.internal.Topic();
result.setAttribute(org.eclipse.help.internal.Topic.ATTRIBUTE_ICON, icon); result.setAttribute(org.eclipse.help.internal.Topic.ATTRIBUTE_ICON, icon);
result.setLabel(label); result.setLabel(label);
result.setHref(href); result.setHref(href);
@@ -191,8 +188,7 @@ public final class LanguageTocProvider extends AbstractTocProvider {
if (topics == null) { if (topics == null) {
throw new IllegalArgumentException("Parameter 'topics' must not be null."); throw new IllegalArgumentException("Parameter 'topics' must not be null.");
} }
ITopic[] topicsArray; var topicsArray = new ITopic[topics.size()];
topicsArray = new ITopic[topics.size()];
topics.toArray(topicsArray); topics.toArray(topicsArray);
return topicsArray; return topicsArray;
} }
@@ -200,31 +196,31 @@ public final class LanguageTocProvider extends AbstractTocProvider {
static ITopic[] createTopics() { static ITopic[] createTopics() {
List<ITopic> topics = new ArrayList<ITopic>(); List<ITopic> topics = new ArrayList<ITopic>();
LanguagePlugin languagePlugin = LanguagePlugin.getInstance(); var languagePlugin = LanguagePlugin.getInstance();
List<ITopic> ideTopics = createIDETopics(); var ideTopics = createIDETopics();
topics.add(createTopic("", Texts.TOC_IDE_TOPIC_LABEL, "", createTopicsArray(ideTopics))); topics.add(createTopic("", Texts.TOC_IDE_TOPIC_LABEL, "", createTopicsArray(ideTopics)));
List<ITopic> languagesTopics = createLanguagesTopics(languagePlugin); var languagesTopics = createLanguagesTopics(languagePlugin);
topics.add(createTopic("", Texts.TOC_LANGUAGES_TOPIC_LABEL, "", createTopicsArray(languagesTopics))); topics.add(createTopic("", Texts.TOC_LANGUAGES_TOPIC_LABEL, "", createTopicsArray(languagesTopics)));
List<ITopic> hardwareTopics = createHardwareTopics(); var hardwareTopics = createHardwareTopics();
topics.add(createTopic("", Texts.TOC_HARDWARES_TOPIC_LABEL, "", createTopicsArray(hardwareTopics))); topics.add(createTopic("", Texts.TOC_HARDWARES_TOPIC_LABEL, "", createTopicsArray(hardwareTopics)));
List<ITopic> cpuTopics = createTargetTopics(); var cpuTopics = createTargetTopics();
topics.add(createTopic("", Texts.TOC_TARGETS_TOPIC_LABEL, "", createTopicsArray(cpuTopics))); topics.add(createTopic("", Texts.TOC_TARGETS_TOPIC_LABEL, "", createTopicsArray(cpuTopics)));
return createTopicsArray(topics); return createTopicsArray(topics);
} }
private static List<ITopic> createLanguagesTopics(LanguagePlugin languagePlugin) { private static List<ITopic> createLanguagesTopics(LanguagePlugin languagePlugin) {
CompilerRegistry compilerRegistry = languagePlugin.getCompilerRegistry(); var compilerRegistry = languagePlugin.getCompilerRegistry();
List<ITopic> topics = new ArrayList<ITopic>(); List<ITopic> topics = new ArrayList<ITopic>();
for (Language language : languagePlugin.getLanguages()) { for (var language : languagePlugin.getLanguages()) {
List<CompilerDefinition> compilerDefinitions = compilerRegistry.getCompilerDefinitions(language); var compilerDefinitions = compilerRegistry.getCompilerDefinitions(language);
List<ITopic> compilerTopics = createCompilersTopics(compilerDefinitions); var compilerTopics = createCompilersTopics(compilerDefinitions);
topics.add(createTopic("", topics.add(createTopic("",
TextUtility.format(Texts.TOC_COMPILERS_TOPIC_LABEL, LanguageUtility.getText(language)), "", TextUtility.format(Texts.TOC_COMPILERS_TOPIC_LABEL, LanguageUtility.getText(language)), "",
createTopicsArray(compilerTopics))); createTopicsArray(compilerTopics)));
@@ -279,7 +275,7 @@ public final class LanguageTocProvider extends AbstractTocProvider {
// Appending the help file path with the correct file // Appending the help file path with the correct file
// extension allows in-place display for example for ".html" // extension allows in-place display for example for ".html"
// files. // files.
String extension = file.getPath(); var extension = file.getPath();
int index = extension.lastIndexOf('.'); int index = extension.lastIndexOf('.');
if (index > 0) { if (index > 0) {
extension = extension.substring(index); extension = extension.substring(index);
@@ -294,9 +290,9 @@ public final class LanguageTocProvider extends AbstractTocProvider {
LanguageHelpContentProducer.SECTION_MANUAL, extension); LanguageHelpContentProducer.SECTION_MANUAL, extension);
if (file.isDirectory()) { if (file.isDirectory()) {
File[] files = file.listFiles(); var files = file.listFiles();
if (files != null) { if (files != null) {
for (File file2 : files) { for (var file2 : files) {
String encodedPath; String encodedPath;
try { try {
encodedPath = URLEncoder.encode(file2.getName(), "UTF-8"); encodedPath = URLEncoder.encode(file2.getName(), "UTF-8");
@@ -336,7 +332,7 @@ public final class LanguageTocProvider extends AbstractTocProvider {
private static List<ITopic> createHardwareTopics() { private static List<ITopic> createHardwareTopics() {
// Build hardware topics // Build hardware topics
List<ITopic> hardwareTopics = new ArrayList<ITopic>(Hardware.values().length - 1); List<ITopic> hardwareTopics = new ArrayList<ITopic>(Hardware.values().length - 1);
for (Hardware hardware : Hardware.values()) { for (var hardware : Hardware.values()) {
if (hardware.equals(Hardware.GENERIC)) { if (hardware.equals(Hardware.GENERIC)) {
continue; continue;
} }
@@ -367,7 +363,7 @@ public final class LanguageTocProvider extends AbstractTocProvider {
// Nothing available. // Nothing available.
} }
String href = LanguageHelpContentProducer.SCHEMA_HARDWARE + hardware.name().toLowerCase() var href = LanguageHelpContentProducer.SCHEMA_HARDWARE + hardware.name().toLowerCase()
+ LanguageHelpContentProducer.EXTENSION; + LanguageHelpContentProducer.EXTENSION;
hardwareTopics.add(createTopic("", EnumUtility.getText(hardware), href, createTopicsArray(chipTopics))); hardwareTopics.add(createTopic("", EnumUtility.getText(hardware), href, createTopicsArray(chipTopics)));
} }
@@ -376,8 +372,8 @@ public final class LanguageTocProvider extends AbstractTocProvider {
private static List<ITopic> createTargetTopics() { private static List<ITopic> createTargetTopics() {
List<ITopic> cpuTopics = new ArrayList<ITopic>(Target.values().length - 1); List<ITopic> cpuTopics = new ArrayList<ITopic>(Target.values().length - 1);
for (Target target : Target.values()) { for (var target : Target.values()) {
String href = LanguageHelpContentProducer.SCHEMA_TARGET + target.name().toLowerCase() var href = LanguageHelpContentProducer.SCHEMA_TARGET + target.name().toLowerCase()
+ LanguageHelpContentProducer.EXTENSION; + LanguageHelpContentProducer.EXTENSION;
cpuTopics.add(createTopic("", EnumUtility.getText(target), href, null)); cpuTopics.add(createTopic("", EnumUtility.getText(target), href, null));
} }

View File

@@ -19,7 +19,6 @@
package com.wudsn.ide.lng.preferences; package com.wudsn.ide.lng.preferences;
import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@@ -45,7 +44,6 @@ import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.TabFolder; import org.eclipse.swt.widgets.TabFolder;
import org.eclipse.swt.widgets.TabItem; import org.eclipse.swt.widgets.TabItem;
import org.eclipse.swt.widgets.Text; import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IWorkbench; import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage; import org.eclipse.ui.IWorkbenchPreferencePage;
@@ -58,15 +56,11 @@ import com.wudsn.ide.base.hardware.Hardware;
import com.wudsn.ide.lng.Language; import com.wudsn.ide.lng.Language;
import com.wudsn.ide.lng.LanguagePlugin; import com.wudsn.ide.lng.LanguagePlugin;
import com.wudsn.ide.lng.LanguageUtility; import com.wudsn.ide.lng.LanguageUtility;
import com.wudsn.ide.lng.Target;
import com.wudsn.ide.lng.Texts; import com.wudsn.ide.lng.Texts;
import com.wudsn.ide.lng.compiler.CompilerDefinition; import com.wudsn.ide.lng.compiler.CompilerDefinition;
import com.wudsn.ide.lng.compiler.CompilerOutputFolderMode; import com.wudsn.ide.lng.compiler.CompilerOutputFolderMode;
import com.wudsn.ide.lng.compiler.CompilerRegistry;
import com.wudsn.ide.lng.editor.LanguageEditor; import com.wudsn.ide.lng.editor.LanguageEditor;
import com.wudsn.ide.lng.runner.RunnerDefinition;
import com.wudsn.ide.lng.runner.RunnerId; import com.wudsn.ide.lng.runner.RunnerId;
import com.wudsn.ide.lng.runner.RunnerRegistry;
/** /**
* Visual editor page for the language preferences regarding compilers. There is * Visual editor page for the language preferences regarding compilers. There is
@@ -161,8 +155,7 @@ public abstract class LanguagePreferencesCompilersPage extends FieldEditorPrefer
} }
public void setOutputFolderMode(String newValue) { public void setOutputFolderMode(String newValue) {
boolean enabled; var enabled = CompilerOutputFolderMode.FIXED_FOLDER.equals(newValue);
enabled = CompilerOutputFolderMode.FIXED_FOLDER.equals(newValue);
outputFolderPathFieldEditor.setEnabled(enabled, outputFolderPathFieldEditorParent); outputFolderPathFieldEditor.setEnabled(enabled, outputFolderPathFieldEditorParent);
} }
@@ -223,7 +216,7 @@ public abstract class LanguagePreferencesCompilersPage extends FieldEditorPrefer
if (workbench == null) { if (workbench == null) {
throw new IllegalArgumentException("Parameter 'workbench' must not be null."); throw new IllegalArgumentException("Parameter 'workbench' must not be null.");
} }
IEditorPart editor = workbench.getActiveWorkbenchWindow().getActivePage().getActiveEditor(); var editor = workbench.getActiveWorkbenchWindow().getActivePage().getActiveEditor();
if (editor instanceof LanguageEditor) { if (editor instanceof LanguageEditor) {
LanguageEditor languageEditor; LanguageEditor languageEditor;
languageEditor = (LanguageEditor) editor; languageEditor = (LanguageEditor) editor;
@@ -258,7 +251,7 @@ public abstract class LanguagePreferencesCompilersPage extends FieldEditorPrefer
var compilerDefinitions = compilerRegistry.getCompilerDefinitions(language); var compilerDefinitions = compilerRegistry.getCompilerDefinitions(language);
tabFolder = new TabFolder(parent, SWT.FLAT); tabFolder = new TabFolder(parent, SWT.FLAT);
for (CompilerDefinition compilerDefinition : compilerDefinitions) { for (var compilerDefinition : compilerDefinitions) {
createTabItem(tabFolder, compilerDefinition); createTabItem(tabFolder, compilerDefinition);
} }
@@ -266,7 +259,7 @@ public abstract class LanguagePreferencesCompilersPage extends FieldEditorPrefer
// Default to tab item for active compiler or to first. // Default to tab item for active compiler or to first.
TabItem selectedTabItem = null; TabItem selectedTabItem = null;
if (activeCompilerId != null) { if (activeCompilerId != null) {
Tab selectedTab = tabs.get(activeCompilerId); var selectedTab = tabs.get(activeCompilerId);
if (selectedTab != null) { if (selectedTab != null) {
selectedTabItem = selectedTab.tabItem; selectedTabItem = selectedTab.tabItem;
} }
@@ -328,7 +321,7 @@ public abstract class LanguagePreferencesCompilersPage extends FieldEditorPrefer
var targets = compilerDefinition.getSupportedTargets(); var targets = compilerDefinition.getSupportedTargets();
String[][] entryNamesAndValues = new String[targets.size()][]; String[][] entryNamesAndValues = new String[targets.size()][];
int i = 0; int i = 0;
for (Target target : targets) { for (var target : targets) {
entryNamesAndValues[i] = new String[2]; entryNamesAndValues[i] = new String[2];
entryNamesAndValues[i][1] = target.name(); entryNamesAndValues[i][1] = target.name();
entryNamesAndValues[i][0] = EnumUtility.getText(target); entryNamesAndValues[i][0] = EnumUtility.getText(target);
@@ -361,7 +354,7 @@ public abstract class LanguagePreferencesCompilersPage extends FieldEditorPrefer
var parametersFieldEditor = new StringFieldEditor(name, Texts.PREFERENCES_COMPILER_PARAMETERS_LABEL, var parametersFieldEditor = new StringFieldEditor(name, Texts.PREFERENCES_COMPILER_PARAMETERS_LABEL,
tabContent); tabContent);
String compilerParametersHelp = Texts.PREFERENCES_COMPILER_PARAMETERS_HELP + "\n" var compilerParametersHelp = Texts.PREFERENCES_COMPILER_PARAMETERS_HELP + "\n"
+ Texts.PREFERENCES_COMPILER_PARAMETERS_VARIABLES; + Texts.PREFERENCES_COMPILER_PARAMETERS_VARIABLES;
controlDecorations.add(createHelpDecoration(parametersFieldEditor, tabContent, compilerParametersHelp)); controlDecorations.add(createHelpDecoration(parametersFieldEditor, tabContent, compilerParametersHelp));
@@ -376,7 +369,7 @@ public abstract class LanguagePreferencesCompilersPage extends FieldEditorPrefer
// Field: outputFolderMode // Field: outputFolderMode
composite = SWTFactory.createComposite(tabContent, 2, 2, GridData.FILL_HORIZONTAL); composite = SWTFactory.createComposite(tabContent, 2, 2, GridData.FILL_HORIZONTAL);
RadioGroupFieldEditorWithAction outputFolderModeChoiceEditor = new RadioGroupFieldEditorWithAction( var outputFolderModeChoiceEditor = new RadioGroupFieldEditorWithAction(
LanguagePreferencesConstants.getCompilerOutputFolderModeName(compilerId, hardware), LanguagePreferencesConstants.getCompilerOutputFolderModeName(compilerId, hardware),
Texts.PREFERENCES_COMPILER_OUTPUT_FOLDER_MODE_LABEL, 3, labelsAndValues, composite); Texts.PREFERENCES_COMPILER_OUTPUT_FOLDER_MODE_LABEL, 3, labelsAndValues, composite);
addField(outputFolderModeChoiceEditor); addField(outputFolderModeChoiceEditor);