[分享] BBS 程式碼上色器

看板C_and_CPP (C/C++)作者 (莫使惹塵埃)時間3年前 (2021/03/11 18:39), 3年前編輯推噓16(1606)
留言22則, 17人參與, 3年前最新討論串1/1
軟體名稱:BBS 程式碼上色器 軟體連結:https://bbs-code-highlighter.netlify.app 安裝方式:網頁版免安裝 前陣子想找類似的工具沒找到, 後來想想這題目也蠻有趣的,就自己動手寫了一個。 由於 BBS 的顏色較少且較鮮豔, 所以上色時我有稍微節制一些,盡可能不要弄得太花。 另外,程式碼的解析是我從頭寫的, 所以嚴謹度可能還無法跟一些成熟的工具相比, 而且目前也只支援 C++(Qt/STL) 等幾種語言選項而已。 好了廢話不多說,先給大家看看上色後的程式碼: 01. /*************************** 02. * C++ Sample Code 03. * Date Modified: 2021/3/11 04. ***************************/ 05. 06. #include <string.h> 07. #include <stdio.h> 08. 09. class Movie { 10. public: 11. unsigned long id; 12. char name[32]; 13. float rating; 14. char site[64]; 15. }; 16. 17. // <param name="m">Reference to Movie object</param> 18. void printMovie(const Movie &m) { 19. printf("Movie(%ld, %s, %.3f, %s)\n", m.id, m.name, m.rating, m.site); 20. } 21. 22. int main() { 23. Movie *m = new Movie(); 24. m->id = 0xCF164uL; 25. strcpy(m->name, "The Avengers"); 26. m->rating = 0x.0Fp8f - 70.0e-1F; 27. strcpy(m->site, "\"https://www.imdb.com/title/tt0848228/\""); 28. 29. if (m->rating > 6.0f ? true : false) { 30. printMovie(*m); 31. } 32. delete m; 33. return 0; 34. } 左邊要不要加上行號是可以勾選的。 如果有行號的話,在手機上閱讀應該會清楚一些。 最後補充說明一點, 目前後端程式是跑在免費的伺服器上,所以會有時數上的限制。 另外如果超過 30 分鐘沒有收到任何請求,後端也會被自動關閉。 如此一來,下次收到請求時會因為需要重啟,反應會稍微慢一些,請大家見諒。 恩,大概是這樣子,如果有什麼問題或建議,也歡迎大家留言告訴我。 祝大家上色愉快!:) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.218.168.129 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1615459179.A.C16.html

03/11 18:55, 3年前 , 1F
推推,等等試用
03/11 18:55, 1F

03/11 19:50, 3年前 , 2F
好美 有vs code的感覺
03/11 19:50, 2F
謝謝,我也是 VS Code 的愛用者 ^^

03/11 21:45, 3年前 , 3F
03/11 21:45, 3F

03/11 21:54, 3年前 , 4F
03/11 21:54, 4F

03/11 22:13, 3年前 , 5F
挺有趣的,這個之前沒人做過嗎??
03/11 22:13, 5F
我只查到 2007 年 L 大的這篇文章: #16R0_pwG (EZsoft) 不過連結已經年久失修了...

03/11 22:35, 3年前 , 6F
好用誒 太棒了 推
03/11 22:35, 6F

03/11 23:01, 3年前 , 7F
試用過很好看,不曉得能不能加上PTT每行字的字數限制
03/11 23:01, 7F

03/11 23:02, 3年前 , 8F
超過自動換行或是警告使用者
03/11 23:02, 8F
已加上程式碼超過畫面寬度的警告 (全形字及行號也有考慮在內)。 另外若偵測到 tab 字元也會跳出警告。

03/12 06:27, 3年前 , 9F
樓上就是formatter吧,如果可以整合現成的工具,擴充
03/12 06:27, 9F

03/12 06:27, 3年前 , 10F
或新增語言就快很多
03/12 06:27, 10F
感謝建議,不過目前還沒有整合其它工具的規劃。 話說回來,如果有天整合了 formatter 進來, 這軟體的名稱應該要從"上色器"升級成"美化器"了~

03/12 15:34, 3年前 , 11F
推!! 不過應該只有保留字有顏色吧? 感覺有點花
03/12 15:34, 11F

03/12 15:35, 3年前 , 12F
我自己目前都是用pietty的貼上指定格式來上色
03/12 15:35, 12F
有上色的部分大概就如 sample code 所顯示的那樣~ 至於有點花的問題,如內文所述我有試著處理,但無法做到很理想, 例如程式碼的關鍵字密集度如果很高,畫面就容易變得花。 但如果把部分顏色換成暗色,又覺得有點太暗,不太好拿捏...

03/13 02:44, 3年前 , 13F
好愛這個作品!不知道有沒有開放 GitHub repo 供參?
03/13 02:44, 13F

03/13 02:45, 3年前 , 14F
光複製到剪貼簿這個功能就是一個很有趣的問題。
03/13 02:45, 14F
謝謝!不過很抱歉沒有... 至於複製到剪貼簿這功能,確實有不少東西可以探討。 但我在這邊只簡單用了 document.execCommand("copy") 來實作, 在比較舊的瀏覽器其實有複製失敗的可能性。 不過我相信有在寫程式的人應該不會用太舊的瀏覽器的 ^^

03/14 02:35, 3年前 , 15F
推推 這個好棒!
03/14 02:35, 15F

03/14 15:16, 3年前 , 16F
推 好棒的工具!
03/14 15:16, 16F

03/15 23:32, 3年前 , 17F
的確2007年那時我有寫一個,後來把kuso.cc收掉就沒了XD
03/15 23:32, 17F
竟然意外釣出 L 大本尊!!

03/16 10:59, 3年前 , 18F
03/16 10:59, 18F
※ 編輯: pinefruit (180.218.168.129 臺灣), 03/16/2021 15:24:30

03/16 23:50, 3年前 , 19F
03/16 23:50, 19F

03/17 10:40, 3年前 , 20F
03/17 10:40, 20F

03/17 14:45, 3年前 , 21F
推 實用
03/17 14:45, 21F

03/17 23:03, 3年前 , 22F
cool
03/17 23:03, 22F
文章代碼(AID): #1WIVDhmM (C_and_CPP)
文章代碼(AID): #1WIVDhmM (C_and_CPP)