[英]Eclipse formatter with checkstyle and sonarlint
我已經安裝了此插件,並且似乎未考慮Eclipse Formatter。
例如,我的鏈功能看起來像Formatter中的以下代碼:
stringB.append("a")
.append("b")
.append("c")
但是,當我要求eclipse自動格式化(我猜是使用格式化程序)時,代碼如下所示:
stringB.append("a").append("b").append("c")
知道為什么會這樣嗎? CheckStyle是否覆蓋了Eclipse定義的Formatter。 我應該如何解決這個問題?
知道為什么會這樣嗎?
這可能是發生的,因為這可能是您使用的格式化程序的默認行為。 為防止這種情況,您可以選中名為“ 從不加入已包裝的行”的框:
但是,有一個更好的解決方案(在下面詳細介紹),甚至不需要選中該框。
CheckStyle是否覆蓋了Eclipse定義的Formatter。
不,但是您可以輕松確認此問題不是由Checkstyle引起的:
我應該如何解決這個問題?
您需要修改格式化程序的設置:
該行上有三個圖標,必須正確設置每個圖標:
應用這些更改,然后重新格式化您的代碼。 現在,格式化程序應按照您指定的方式運行。 這是一些代碼的示例,這些代碼在鏈接方法調用的格式方面存在各種問題:
List<String> months = Arrays.asList("January", "February", "March", "April", "May", "June");
List<String> months5 = months.stream().filter(s -> s.length() == 5).collect(Collectors.toList());
StringBuilder stA = new StringBuilder();
StringBuilder stringB = new StringBuilder();
StringBuilder thisIsStringC = new StringBuilder();
stA.append("a").append("b").append("c");
stringB.append("a")
.append("b")
.append("c");
stringB.append("d").append("e")
.append("f");
thisIsStringC .append("a")
.append("b")
.append("c");
thisIsStringC.append("d")
.append("e");
這是使用上述設置重新格式化( Ctrl-Shift-F )后的外觀:
List<String> months = Arrays.asList("January", "February", "March", "April", "May", "June");
List<String> months5 = months.stream()
.filter(s -> s.length() == 5)
.collect(Collectors.toList());
StringBuilder stA = new StringBuilder();
StringBuilder stringB = new StringBuilder();
StringBuilder thisIsStringC = new StringBuilder();
stA.append("a")
.append("b")
.append("c");
stringB.append("a")
.append("b")
.append("c");
stringB.append("d")
.append("e")
.append("f");
thisIsStringC.append("a")
.append("b")
.append("c");
thisIsStringC.append("d")
.append("e");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.