use of org.eclipse.linuxtools.internal.rpm.ui.editor.hyperlink.URLHyperlinkWithMacroDetector in project linuxtools by eclipse.
the class SpecfileConfiguration method getHyperlinkDetectors.
@Override
public IHyperlinkDetector[] getHyperlinkDetectors(ISourceViewer sourceViewer) {
if (sourceViewer == null) {
return null;
}
Map<String, IAdaptable> targets = getHyperlinkDetectorTargets(sourceViewer);
HyperlinkDetectorRegistry hlDetectorRegistry = EditorsUI.getHyperlinkDetectorRegistry();
HyperlinkDetectorDescriptor[] hlDetectorDescriptor = hlDetectorRegistry.getHyperlinkDetectorDescriptors();
List<IHyperlinkDetector> tempHDList = new ArrayList<>();
for (Map.Entry<String, IAdaptable> entry : targets.entrySet()) {
for (HyperlinkDetectorDescriptor hdd : hlDetectorDescriptor) {
try {
AbstractHyperlinkDetector ahld = (AbstractHyperlinkDetector) hdd.createHyperlinkDetectorImplementation();
// however, allow URLHyperlinkWithMacroDetector
if (hdd.getTargetId().equals(entry.getKey()) && (!(ahld instanceof URLHyperlinkDetector) || ahld instanceof URLHyperlinkWithMacroDetector)) {
ahld.setContext(entry.getValue());
tempHDList.add(ahld);
}
} catch (CoreException e) {
SpecfileLog.logError(e);
}
}
}
if (!tempHDList.isEmpty()) {
return tempHDList.toArray(new IHyperlinkDetector[tempHDList.size()]);
} else {
return null;
}
}
use of org.eclipse.linuxtools.internal.rpm.ui.editor.hyperlink.URLHyperlinkWithMacroDetector in project linuxtools by eclipse.
the class URLHyperlinkWithMacroDetectorTest method testDetectHyperlinks.
@Test
public void testDetectHyperlinks() throws PartInitException {
String testText = "Name: eclipse\nURL: http://www.%{name}.org/";
newFile(testText);
URLHyperlinkWithMacroDetector macroDetector = new URLHyperlinkWithMacroDetector();
macroDetector.setSpecfile(specfile);
IRegion region = new Region(20, 0);
IEditorPart openEditor = IDE.openEditor(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(), testFile, "org.eclipse.linuxtools.rpm.ui.editor.SpecfileEditor");
editor = (SpecfileEditor) openEditor;
editor.doRevertToSaved();
IHyperlink[] returned = macroDetector.detectHyperlinks(editor.getSpecfileSourceViewer(), region, false);
URLHyperlink url = (URLHyperlink) returned[0];
assertEquals("http://www.eclipse.org/", url.getURLString());
}
Aggregations