Complete ./ script paths in terminal tab completion
This commit is contained in:
@@ -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> {
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user