From 4b61be354510cf88fed33860c987bd210502e91d Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Thu, 26 Feb 2015 21:17:13 +0100 Subject: don't generate redundant links that lead to the same page with no anchor (e.g. receiver type in extension functions) --- src/Locations/FoldersLocationService.kt | 2 +- src/Locations/LocationService.kt | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) (limited to 'src/Locations') diff --git a/src/Locations/FoldersLocationService.kt b/src/Locations/FoldersLocationService.kt index 2e9a9cd5..e85c2c98 100644 --- a/src/Locations/FoldersLocationService.kt +++ b/src/Locations/FoldersLocationService.kt @@ -4,7 +4,7 @@ import java.io.File public fun FoldersLocationService(root: String): FoldersLocationService = FoldersLocationService(File(root), "") public class FoldersLocationService(val root: File, val extension: String) : FileLocationService { - override fun withExtension(newExtension: String): LocationService { + override fun withExtension(newExtension: String): FileLocationService { return if (extension.isEmpty()) FoldersLocationService(root, newExtension) else this } diff --git a/src/Locations/LocationService.kt b/src/Locations/LocationService.kt index cb05535a..2c93ba8f 100644 --- a/src/Locations/LocationService.kt +++ b/src/Locations/LocationService.kt @@ -23,6 +23,9 @@ public data class FileLocation(val file: File): Location { if (other !is FileLocation) { throw IllegalArgumentException("$other is not a FileLocation") } + if (file.path.substringBeforeLast(".") == other.file.path.substringBeforeLast(".") && anchor == null) { + return "." + } val ownerFolder = file.getParentFile()!! val relativePath = ownerFolder.getRelativePath(other.file).path return if (anchor == null) relativePath else relativePath + "#" + anchor -- cgit