flutter-intellij: Rename/move directory won't change import

Manual search and replace currently required after renaming library directory. Please add support for automatic refactor of imports.

Version info
[✓] Flutter (Channel beta, v1.12.13+hotfix.6, on Mac OS X 10.15.2 19C57, locale en-IL)
    • Flutter version 1.12.13+hotfix.6 at /usr/local/lib/flutter
    • Framework revision 18cd7a3601 (5 weeks ago), 2019-12-11 06:35:39 -0800
    • Engine revision 2994f7e1e6
    • Dart version 2.7.0


[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    • Android SDK at /Users/sasha/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-28, build-tools 28.0.3
    • ANDROID_HOME = /Users/sasha/Library/Android/sdk
    • ANDROID_SDK_ROOT = /Users/sasha/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 11.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.3, Build version 11C29
    • CocoaPods version 1.8.4

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 3.5)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 42.1.1
    • Dart plugin version 191.8593
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)

[✓] IntelliJ IDEA Community Edition (version 2019.3.1)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 42.1.4
    • Dart plugin version 193.5731

[✓] VS Code (version 1.41.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.7.1

[✓] Connected device (3 available)
    • iPhone 11 Pro Max • D06766C9-E399-4AEF-B840-D9F00FF661EE • ios            • com.apple.CoreSimulator.SimRuntime.iOS-13-3 (simulator)
    • Chrome            • chrome                               • web-javascript • Google Chrome 79.0.3945.117
    • Web Server        • web-server                           • web-javascript • Flutter Tools

• No issues found!

About this issue

  • Original URL
  • State: open
  • Created 4 years ago
  • Reactions: 134
  • Comments: 46 (9 by maintainers)

Most upvoted comments

I’m also having this issue and it has been really frustrating. Some kind of update would be very much appreciated. I think this used to work once upon a time; I’d have expected regressions to be prioritised. It is a real sink of my time actually. As @venkatd above mentioned it is the 3rd most voted issue in this repository with 40thumbs and it has been live for very long and is also the most reasonable issue to be worked on. Rename functionality should surely be quick and easy fix?

Please can we have an update as to when we should expect this to be fixed? …or even better get it fixed as soon as possible please?

Thank you

This is by far my largest pain point. Also performing a large refactor and I’m losing hours manually moving files.

Given that there are ~40 thumbs up, any chance a few of us could combine resources and sponsor someone to contribute a fix to this? Anyone interested?

The file name changes, directory name changes, and the folder of the files are not auto imported/renamed.

I have a large architecture in-development so this consumes lots of time. Thanks.

I also still have this problem

The version 57.0.2 still had this issue, this issue happened over 1 years, and it seems to be basic function. Could you treat this issue as one of the top priority??

I solved this problem for myself by using the “Replace in Files” command

Screenshot 2022-05-18 at 14 36 30 Screenshot 2022-05-18 at 14 37 15

Any updates on this? It’s been two years already. It is super annoying when doing any refactoring. Thanks.

Fyi @DanTup has been working on adding Analysis Server functionality to support this in IntelliJ and VSCode.

It’s already June 2023. The problem is already 3.5 years old. Absolutely everyone faces this problem. When will this problem be solved?

I solved this problem for myself by using the “Replace in Files” command

Screenshot 2022-05-18 at 14 36 30 Screenshot 2022-05-18 at 14 37 15

thankyou sooooo much

This also isn’t currently supported in VS Code. It is something I have a basic working example for in the server, but it still needs some work (around performance, and how to ensure the request can be cancelled or timeout if it would take too long - for ex. if you tried to rename an enormous folder).

Fyi @DanTup has been working on adding Analysis Server functionality to support this in IntelliJ and VSCode.

Renaming a single folder is now supported in VS Code when using Flutter 3.3 / Dart 2.18 (see https://dartcode.org/releases/#folder-renames). Renaming/moving multiple items at once is not yet supported (it requires additional server work).

Supporting this in Android Studio / IntelliJ will require some additional changes in its plugin (both to pass folder renames through, and also to provide some way of cancelling in the case of starting a large folder rename and wanting to abort if it’s slow).

@stevemessick @helin24 @devoncarew I hope that you know about this problem. When do you plan to fix it please?

Also having this issue.

When refactoring our prototype codebase into something more scalable (code-wise), this becomes a big pain point. I have to manually go through about a hundred files, delete the broken imports, and then iteratively go through the now-unimported widgets and import them again.

Generally the Intellij plugin has been wonderful! This is the only major pain point I’ve come across.

Fyi @jwren. This is a good example of a case we should probably implement in the Dart IntelliJ plugin not the Flutter IntelliJ plugin.

Any updates maybe?

I just got a legacy code that needs a refactor. And it’s a nightmare to fix every import manually 😄

@enginebai If it’s a blocker, I’m sure the Flutter team would appreciate you submitting a PR to fix this.

In the meantime, a grep xyz | sed s/old/new/ may help you out.

we really need this feature. it’s super annoying to refactor the project

December 2021, and still having this issue. I’m on Android Studio Arctic Fox and flutter plugin version 62.0.1.

Is this also a problem in VSCode? Maybe I should move IDE if that’s the case, it’s really annoying.