# Regression in REPL file path completion in 1.12?

**URL:** <https://discourse.julialang.org/t/regression-in-repl-file-path-completion-in-1-12/133573>\
**Category:** General Usage\
**Tags:** repl, repl-autocomplete, autocomplete\
**Created:** [October 31, 2025, 9:45am UTC](https://discourse.julialang.org/t/regression-in-repl-file-path-completion-in-1-12/133573 "2025-10-31T09:45:40Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![johnomotani](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/johnomotani/32/26753_2.png) [@johnomotani](https://discourse.julialang.org/u/johnomotani)\
**Post date:** [October 31, 2025, 9:45am UTC](https://discourse.julialang.org/t/regression-in-repl-file-path-completion-in-1-12/133573/1 "2025-10-31T09:45:40Z")

</div>

In versions of Julia up to 1.11, tab completion of file paths would work from anywhere in the line, e.g. hitting `<tab>` in the middle of a path like

```julia-auto
julia> run_something("input_files/f<tab>/bar.toml"; some_kwarg=true)

```

would complete the directory name (as long as that was unambiguous). However in 1.12 it seems that completion of file paths works _only_ at the end of the line, so

```julia-auto
julia> run_something("input_files/f<tab>

```

would complete, but there is no completion if there is any other character after the end of the partial file path.

The old behaviour was very useful to me, because I frequently use the REPL history to re-run a previous command, but with a new input file. This use case is now much more tedious - either type the full file path manually, or delete everything following the file path, use the tab-completion, then retype or copy-paste the remaining arguments, etc.

Was this an intentional change, or is it a bug? If it was intentional, is there a way to opt back in to the old behaviour?

---

<div class="post-metadata">

**Author:** ![moble](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/moble/32/23535_2.png) [@moble](https://discourse.julialang.org/u/moble)\
**Post date:** [November 4, 2025, 2:05am UTC](https://discourse.julialang.org/t/regression-in-repl-file-path-completion-in-1-12/133573/2 "2025-11-04T02:05:10Z")

</div>

I’ve also run into this, and don’t like the new behavior at all. Nothing has changed in the manual about tab completion. The [1.12.0 NEWS](https://github.com/JuliaLang/julia/blob/v1.12.0/NEWS.md#repl) does mention some changes to tab completion, but not this.

I would say this would qualify as an Issue.

---

<div class="post-metadata">

**Author:** ![WalterMadelim](https://avatars.discourse-cdn.com/v4/letter/w/3e96dc/32.png) [@WalterMadelim](https://discourse.julialang.org/u/WalterMadelim)\
**Post date:** [November 4, 2025, 3:51am UTC](https://discourse.julialang.org/t/regression-in-repl-file-path-completion-in-1-12/133573/3 "2025-11-04T03:51:33Z")

</div>

I dislike inline hinting, but it is now prevalent, manifestly. The old (I think \< 1.10) tab completion worked fine.

I agree that an issue can be opened.

---

<div class="post-metadata">

**Author:** ![Sukera](https://avatars.discourse-cdn.com/v4/letter/s/ce7236/32.png) [@Sukera](https://discourse.julialang.org/u/Sukera)\
**Post date:** [November 4, 2025, 7:24am UTC](https://discourse.julialang.org/t/regression-in-repl-file-path-completion-in-1-12/133573/4 "2025-11-04T07:24:03Z")

</div>

I think this is essentially [`:incomplete` detection should properly consider where in the line I am · Issue #60017 · JuliaLang/julia · GitHub](https://github.com/JuliaLang/julia/issues/60017)

---

<div class="post-metadata">

**Author:** ![johnomotani](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/johnomotani/32/26753_2.png) [@johnomotani](https://discourse.julialang.org/u/johnomotani)\
**Post date:** [November 5, 2025, 5:01pm UTC](https://discourse.julialang.org/t/regression-in-repl-file-path-completion-in-1-12/133573/5 "2025-11-05T17:01:16Z")

</div>

I’ve opened an issue

> <https://github.com/JuliaLang/julia/issues/60050>
>
> In versions of Julia up to 1.11, tab completion of file paths would work from an…ywhere in the line, e.g. hitting \`\<tab\>\` in the middle of a path like
> \`\`\`
> julia\> run\_something("input\_files/f\<tab\>/bar.toml"; some\_kwarg=true)
> \`\`\`
> would complete the directory name (as long as that was unambiguous). However in 1.12 it seems that completion of file paths works \_only\_ at the end of the line, so
> \`\`\`
> julia\> run\_something("input\_files/f\<tab\>
> \`\`\`
> would complete, but there is no completion if there is any other character after the end of the partial file path.
> 
> The old behaviour was very useful to me, because I frequently use the REPL history to re-run a previous command, but with a new input file. This use case is now much more tedious - either type the full file path manually, or delete everything following the file path, use the tab-completion, then retype or copy-paste the remaining arguments, etc.
