我在Gedit中创建了一个新的Java文件。但当我在Eclipse中打开它并使用(CTRL + SHIFT + F)格式化代码时,它无法格式化整个代码文件。尽管其他一些我没有在Eclipse中创建的Java文件和这个特定文件中的单独行都可以被格式化。我已经在以下位置恢复默认设置:窗口 > 首选项 > 通用 > 键盘,但仍然没有任何效果。我没有安装任何插件。请问为什么Eclipse不能识别这个文件需要被格式化呢?
我不明白为什么用CTRL+SHIFT+F不能格式化代码,但你可以尝试使用CTRL+A选择整个文档,然后用CTRL+I来格式化文档。可能你也会遇到同样的问题。
我也遇到了这个问题。而我是偶然间找到了原因。
我使用的是IBus输入法,当IBus处于中文模式时,在Eclipse Java项目中,Ctrl+Shift+F无法格式化Java源代码。当我将IBus切换到英文模式时,这个快捷键就可以正常工作了。
请检查以下内容:
检查您的文件中是否存在奇怪的语法。在我的情况下,我有一个方法名带下划线参数:
@Deprecated
public synchronized void setParseMaxDigits(int _) {}
我不得不删除文件的某些部分,直到我确定这是导致SHIFT+CTRL+F不能格式化文件的函数。当我将上述方法更改为以下内容时,问题立即得到解决:
@Deprecated
public synchronized void setParseMaxDigits(int unused) {}
我刚刚遇到了完全相同的问题。自动格式化器似乎只对单个文件无效。我甚至删除并重新创建了该文件,但没有运气。最终,我决定继续工作,突然它又起作用了。
问题是我有一个语法错误(一个随机逗号),自动格式化器不知道如何格式化。修复语法错误允许自动格式化器再次发挥作用。
这是由于 Razer Cortex 应用程序引起的问题。它用于启用/禁用其游戏内 FPS 监视器的键绑定与 Eclipse 用于格式化突出显示的代码块的键绑定相同 (Ctrl + Shift + F)。在这方面,该程序优先于 Eclipse。
规避此问题非常简单:
现在您的 Eclipse 格式化键绑定将会生效 :)