return new PropertyKeyHyperlink[] {new PropertyKeyHyperlink(new Region(partition.getOffset() + delta, realKey.length()), unicodeKey, fTextEditor)};
return new PropertyKeyHyperlink[] {new PropertyKeyHyperlink(new Region(partition.getOffset() + delta, realKey.length()), realKey, fTextEditor)};
	public IHyperlink[] detectHyperlinks(ITextViewer textViewer, IRegion region, boolean canShowMultipleHyperlinks) {		if (region == null || fTextEditor == null || canShowMultipleHyperlinks)			return null;		IEditorSite site= fTextEditor.getEditorSite();		if (site == null)			return null;		if (!checkEnabled(region))			return null;		int offset= region.getOffset();		ITypedRegion partition= null;		try {			IStorageEditorInput storageEditorInput= (IStorageEditorInput)fTextEditor.getEditorInput();			IDocument document= fTextEditor.getDocumentProvider().getDocument(storageEditorInput);			if (document instanceof IDocumentExtension3)				partition= ((IDocumentExtension3)document).getPartition(IPropertiesFilePartitions.PROPERTIES_FILE_PARTITIONING, offset, false);			// Check whether it is the correct partition			if (partition == null || !IDocument.DEFAULT_CONTENT_TYPE.equals(partition.getType())) {				return null;			}			// Check whether the partition covers the selection			if (offset + region.getLength() > partition.getOffset() + partition.getLength()) {				return null;			}			// Extract the key from the partition (which contains key and assignment			String key= document.get(partition.getOffset(), partition.getLength());			String realKey= key.trim();			int delta= key.indexOf(realKey);			String unicodeKey= getUnicodeString(realKey);			// Check whether the key is valid			Properties properties= new Properties();			properties.load(new ByteArrayInputStream(document.get().getBytes()));			if (properties.getProperty(unicodeKey) == null) {				return null;			}			return new PropertyKeyHyperlink[] {new PropertyKeyHyperlink(new Region(partition.getOffset() + delta, realKey.length()), unicodeKey, fTextEditor)};		} catch (BadLocationException ex) {			return null;		} catch (BadPartitioningException ex) {			return null;		} catch (IOException ex) {			return null;		}	}