Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何阻止IntelliJ Idea在移动或复制Scala文件时更改包声明_Scala_Intellij Idea_Directory_Package - Fatal编程技术网

如何阻止IntelliJ Idea在移动或复制Scala文件时更改包声明

如何阻止IntelliJ Idea在移动或复制Scala文件时更改包声明,scala,intellij-idea,directory,package,Scala,Intellij Idea,Directory,Package,与Java不同,Scala不要求文件的位置与文件的包声明相对应,例如,包com.company.project中的文件不必位于com/company/project中。我公司的Scala项目的目录结构与其包结构不一致,Scala编译器对此非常满意 但是,在移动或复制Scala文件时,IntelliJ会自动更改文件的包声明以匹配其位置。为了解决这个问题,我必须手动恢复更改,或者使用单独的工具来执行这些文件操作 有没有办法禁用这种行为 (是相关的,但没有描述我所说的确切行为。)这在目前是不可能的。J

与Java不同,Scala不要求文件的位置与文件的包声明相对应,例如,包
com.company.project
中的文件不必位于
com/company/project
中。我公司的Scala项目的目录结构与其包结构不一致,Scala编译器对此非常满意

但是,在移动或复制Scala文件时,IntelliJ会自动更改文件的包声明以匹配其位置。为了解决这个问题,我必须手动恢复更改,或者使用单独的工具来执行这些文件操作

有没有办法禁用这种行为


(是相关的,但没有描述我所说的确切行为。)

这在目前是不可能的。JetBrains YouTrack上已打开此功能的请求。

我对此表示怀疑。这种行为深深植根于Java中;我认为不可能用语言禁用它。@duffymo正如我在问题中提到的,Scala本身对于与包结构不匹配的目录结构没有问题-这纯粹是IDE问题。我编辑了这个问题来强调这一点。是的,我理解。我同意:我认为这是一个IDE问题。“IntelliJ”中的“J”表示“Java”。虽然JetBrains的人非常聪明,但如果他们的IDE能说“如果是Java,那么就这样做;Scala就那样做”,我会感到惊讶。也许更好的地方是JetBrains社区支持。