goodbye eclipse~

fairjm發表於2019-12-24

從大一開始自學java開始一路用到現在,終於要告別陪伴了快9年的eclipse。全部替換為IDEA

作為一個只索取不付出的碼畜說來也有些慚愧,畢竟使用這麼久,一行程式碼也沒貢獻,一毛錢都沒捐獻過,最多就是去網上問問對應的問題,提過幾個issue。

因為其他地方都在使用jetbrains家的東西,整個切換是比較平滑的,2019.02這個版本已經相當順滑,依舊使用了eclipsekeymap,換成dark plus的主題之後,使用起來和之前的eclipse也沒差多少,一天寫下來沒發現什麼問題。

除了這次較為成功並且不會再退回來(可預見的未來內吧...)之前,還有過三次的遷移,第一次是大二,當時自學java是為了安卓開發(結果也就大二學了點...做了幾個沒人用的app),嘗試了下IDEA,結果因為小破電腦退了,不過當時的安卓開發在IDEA上似乎只是個外掛還不是android studio,後面兩次都是公司裡,當時還是eclipse主流,現在基本都是IDEA了。8G的運存不能支撐同時開啟過多專案(一個專案一個視窗,一個專案多module的使用方式),整體使用會比較卡頓。
但那時候還是很多人遷移過去了,可能信仰的加成比較多,看著同事一個智慧提示要卡個幾秒才能出來,但還是選擇繼續用著。

但之前2,3年電腦的配置就已經足夠支撐了,運存也到了16G,硬碟也都是SSD,遷過去已經沒有物理環境上的限制了。

但心裡肯定還是對eclipse有點感情的,也因為習慣了各種操作快捷鍵,介面上倒是不怎麼考慮,畢竟一個全屏寫程式碼也看不到toolbar和menu之類的東西。

最終決定遷移的,還是因為文字渲染的問題。
https://bugs.eclipse.org/bugs/show_bug.cgi?id=536562,首先是之前就有的問題,有一定記錄下,註釋如果以非英文數字開頭,縮排的顯示會很奇怪,幾個空格會被“壓”在一起,但這種情況下,絕大多數連字元是正常的 ->之類的會正常顯示為,還有些情況是縮排正常了,但只有少數連字元能工作了,絕大部分的箭頭都陣亡了。
縮排不正常不打緊不過是註釋,我更在意連字元顯示,而且開啟IDE又是那種十天半個月不會關的,一次開啟連字元不正常多試幾次就可以了。
然後上週看到出了新版,也週期性升級到最新,結果發現縮排的問題可能已經fix了(issue也VERIFIED FIXED了),然後這個狀態下連字元爆炸。
在92樓已經有人發現這個問題:

It's good, but still doesn't support font ligatures because fMergeNeutralItems is false. so some font such as 'Cascadia Code' or 'Fire Code' has no completely effective. see also https://bugs.eclipse.org/bugs/show_bug.cgi?id=398656 The following code has been tested, seems ugly but maybe worth considering:

segmentsText.getChars(0, length, chars, 0);
// enable font ligatures and avoid ligatures between ascii and non-ascii chars
scriptControl.fMergeNeutralItems = true;
for (int i = length - 2; i > 0; i--) {
    char i0 = chars[i];
    char i1 = chars[i + 1];
    if (i0 > 255 && i1 < '~' && i1 >= ' ') {
        chars[i + 1] = 'A';
    } else if (i1 > 255 && i0 < '~' && i0 >= ' ') {
        chars[i] = 'A';
        i--;
    }
}
OS.ScriptItemize(chars, length, MAX_ITEM, scriptControl, scriptState, pItems, pcItems);

這就是所謂的修好了一個bug引入了個新bug。
去爆棧問也被人說箭頭之類的連字元從來沒有支援,附上截圖後也沒了回覆,順帶close vote被投了一票。
也失去了耐心,剛升好級卻看到了如此。恰好一些外掛還沒匯入重新配置,索性主力直接切到IDEA。 沒想到箭頭符號成為了壓倒駱駝的最後一根稻草/(ㄒoㄒ)/~~

不過不得不說,eclipse本身沒有網傳的那麼糟糕,很多卡頓問題並不是來源其本身還是外掛,比如裝了spotbugs又開啟了修改後就檢查,這樣儲存檔案的時候就會感覺卡卡的,又比如一些優化極差的外掛瘋狂在workspace下的log裡刷報錯。
其實很多時候都是有點妖魔化的,一些較為基礎的功能都可能被認為缺失,但其實都有,Ctrl + 3找一找就可以了(對應Shift + Shift)。很多諸如quick action可以在problemview裡批量部分報錯和警告的功能也不被人所知。
但細節上的確有很大差距,已經做了差不多兩年的code mining依舊是個半成品,以及上面說的這個bug愣是改了一年半(不過受影響的主要是諸如中文之類的字元,本身重視程度也很低吧);EJC有自己的優勢但是對annotation processor支援比較稀爛,等等。

也許之後的升級會再回來看看。
但現在就暫時告別了~ (我也是閒得蛋疼換個IDE也要寫篇文... ...

Written with StackEdit.

相關文章