* merge with HEAD
diff --git a/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/ValidatorUpdater.java b/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/ValidatorUpdater.java
index ac4c142..f1cd6c1 100644
--- a/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/ValidatorUpdater.java
+++ b/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/ValidatorUpdater.java
@@ -96,7 +96,6 @@
} finally {
monitor.done();
}
-
}
};
try {
diff --git a/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/externalchecker/ExternalCheckerConfigurationPage.java b/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/externalchecker/ExternalCheckerConfigurationPage.java
index 14f16fb..5a1a61c 100644
--- a/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/externalchecker/ExternalCheckerConfigurationPage.java
+++ b/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/externalchecker/ExternalCheckerConfigurationPage.java
@@ -4,6 +4,7 @@
import java.util.List;
import org.eclipse.dltk.internal.ui.wizards.dialogfields.StringDialogField;
+import org.eclipse.dltk.ui.environment.EnvironmentPathBlock;
import org.eclipse.dltk.validators.internal.core.externalchecker.ExternalChecker;
import org.eclipse.dltk.validators.internal.core.externalchecker.Rule;
import org.eclipse.dltk.validators.ui.ValidatorConfigurationPage;
@@ -21,7 +22,6 @@
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.FileDialog;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Table;
@@ -32,7 +32,7 @@
ValidatorConfigurationPage {
private StringDialogField fArguments;
- private StringDialogField fPath;
+ private EnvironmentPathBlock fPath;
private StringDialogField fExtensions;
private Table fTable;
@@ -55,35 +55,14 @@
public void applyChanges() {
ExternalChecker externalChecker = getExtrenalChecker();
externalChecker.setArguments(this.fArguments.getText());
- externalChecker.setCommand(this.fPath.getText());
+ externalChecker.setCommand(this.fPath.getPaths());
externalChecker.setRules(rulesList.getRules());
externalChecker.setExtensions(this.fExtensions.getText());
}
private void createPathBrowse(final Composite parent, int columns) {
- this.fPath.doFillIntoGrid(parent, columns - 1);
- Text path = this.fPath.getTextControl(parent);
- GridData gd = new GridData();
- gd.horizontalAlignment = GridData.FILL;
- gd.grabExcessHorizontalSpace = true;
- gd.horizontalSpan = columns - 2;
- path.setLayoutData(gd);
- // Browse
- Button browse = new Button(parent, SWT.PUSH);
- browse.setText(Messages.ExternalCheckerConfigurationPage_browse);
- gd = new GridData(GridData.END);
- gd.horizontalSpan = 1;
- browse.setLayoutData(gd);
-
- browse.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- FileDialog dialog = new FileDialog(parent.getShell(), SWT.OPEN);
- String file = dialog.open();
- if (file != null) {
- fPath.setText(file);
- }
- }
- });
+ this.fPath = new EnvironmentPathBlock();
+ this.fPath.createControl(parent, columns);
}
public void createControl(final Composite ancestor, int columns) {
@@ -203,19 +182,17 @@
ExternalChecker externalChecker = getExtrenalChecker();
this.fArguments.setText(externalChecker.getArguments());
- this.fPath.setText(externalChecker.getCommand().toOSString());
+ this.fPath.setPaths(externalChecker.getCommand());
this.fExtensions.setText(externalChecker.getExtensions());
this.rulesList.getRules().clear();
for (int i = 0; i < externalChecker.getNRules(); i++) {
- Rule r = (Rule) externalChecker.getRule(i);
+ Rule r = externalChecker.getRule(i);
rulesList.addRule(r);
}
}
private void createFields() {
- this.fPath = new StringDialogField();
- this.fPath.setLabelText(Messages.ExternalCheckerConfigurationPage_commandToRunChecker);
this.fArguments = new StringDialogField();
this.fArguments.setLabelText(Messages.ExternalCheckerConfigurationPage_CheckerArguments);
this.fExtensions = new StringDialogField();
diff --git a/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/externalchecker/ExternalCheckerConsoleTracker.java b/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/externalchecker/ExternalCheckerConsoleTracker.java
index 4e485c6..493623f 100644
--- a/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/externalchecker/ExternalCheckerConsoleTracker.java
+++ b/core/plugins/org.eclipse.dltk.validators.ui/src/org/eclipse/dltk/validators/internal/ui/externalchecker/ExternalCheckerConsoleTracker.java
@@ -27,12 +27,14 @@
public ExternalCheckerConsoleTracker() {
super();
- IValidator[] validators = ValidatorRuntime.getActiveValidators();
+ IValidator[] validators = ValidatorRuntime.getAllValidators();
for (int i = 0; i < validators.length; i++) {
if (validators[i] instanceof ExternalChecker) {
ExternalChecker checker = (ExternalChecker) validators[i];
- for (int j = 0; j < checker.getNRules(); j++) {
- rules.add(checker.getRule(j));
+ if (checker.isActive()) {
+ for (int j = 0; j < checker.getNRules(); j++) {
+ rules.add(checker.getRule(j));
+ }
}
}
}
@@ -62,30 +64,28 @@
public void matchFound(PatternMatchEvent event) {
try {
IOConsole cons = (IOConsole) event.getSource();
- IDocument doc = (IDocument) cons.getDocument();
+ IDocument doc = cons.getDocument();
int offset = event.getOffset();
int length = event.getLength();
String text = doc.get(offset, length);
-
+
List wlist = ExternalCheckerWildcardManager.loadCustomWildcards();
WildcardMatcher wmatcher = new WildcardMatcher(wlist);
- for (int i = 0; i < rules.size(); i++) {
- Rule rule = (Rule) rules.get(i);
- try {
- ExternalCheckerProblem problem = wmatcher.match(rule,
- text);
- if (problem != null) {
- IHyperlink link = new ExternalCheckerSyntaxHyperlink(
- console, problem);
- console.addHyperlink(link, offset, text
- .length());
- break;
- }
- } catch (WildcardException x) {
+ for (int i = 0; i < rules.size(); i++) {
+ Rule rule = (Rule) rules.get(i);
+ try {
+ ExternalCheckerProblem problem = wmatcher.match(rule, text);
+ if (problem != null) {
+ IHyperlink link = new ExternalCheckerSyntaxHyperlink(
+ console, problem);
+ console.addHyperlink(link, offset, text.length());
+ break;
}
+ } catch (WildcardException x) {
}
-// offset = offset + text.length() + 1;
+ }
+ // offset = offset + text.length() + 1;
} catch (BadLocationException e) {
}
}