Complete ./ script paths in terminal tab completion

This commit is contained in:
Joe Tretter
2026-05-18 19:52:50 -05:00
parent 9bf1d610f8
commit 008a322134
3 changed files with 23 additions and 3 deletions

View File

@@ -19,8 +19,8 @@ android {
applicationId = "solutions.tretter.githugandroid"
minSdk = 26
targetSdk = 35
versionCode = 151
versionName = "0.1.150"
versionCode = 152
versionName = "0.1.151"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true

View File

@@ -187,7 +187,7 @@ class GitRepositoryRuntime private constructor(
?: sandboxRoot
if (!workingDir.exists() || !workingDir.isDirectory) return emptyList()
return workingDir.walkTopDown()
val relativeCandidates = workingDir.walkTopDown()
.drop(1)
.filter { file -> !directoriesOnly || file.isDirectory }
.map { file ->
@@ -196,6 +196,8 @@ class GitRepositoryRuntime private constructor(
}
.filter { it.isNotBlank() }
.toList()
return relativeCandidates + relativeCandidates.map { "./$it" }
}
fun commandReferenceLines(): List<String> {

View File

@@ -185,6 +185,24 @@ class GitSandboxEngineTest {
}
}
@Test
fun nativeCompletionIncludesExecutableShortcutPaths() {
val git = testGitBinary()
assumeTrue(git.exists() && git.canExecute())
val root = Files.createTempDirectory("githug-script-completion").toFile()
try {
val runtime = GitRepositoryRuntime(root, git)
val level = bisectLevel()
val repo = runtime.prepareLevel(level)
val candidates = runtime.completionCandidates(level, repo, directoriesOnly = false)
assertTrue("./test-balance.sh" in candidates)
} finally {
root.deleteRecursively()
}
}
@Test
fun nativeGitExecAliasesRefreshWhenBinaryChanges() {
val git = testGitBinary()