作為全球最大的代碼托管平臺(tái)梢什,GitHub平臺(tái)上的代碼量與日俱增,開發(fā)者在上面的代碼搜索的次數(shù)也變得愈加頻繁朝聋。
為了優(yōu)化GitHub的代碼搜索功能嗡午,讓信息的檢索變得更為精準(zhǔn)。近日冀痕,GitHub 官方重磅發(fā)布了一款新的代碼搜索平臺(tái):GitHub Code Search荔睹。
這個(gè)平臺(tái)是專門針對(duì)代碼搜索而生,因此也提供了非常多頗為實(shí)用的特性言蛇,下面選3個(gè)比較有代表性的功能跟大家展開講講:
1.正則表達(dá)式搜索
2.語法搜索
3.代碼導(dǎo)航與跳轉(zhuǎn)
正則表達(dá)式搜索
作為一名程序員僻他,最快捷也最常用的搜索方式,就是正則表達(dá)式啦腊尚。我簡(jiǎn)單用官方提供的例子吨拗,來跟大家講解一下。
比如婿斥,下面這行正則表達(dá)式劝篷,可以快速搜索所有包含 git push 相關(guān)的代碼倉庫:
搜索結(jié)果如下所示:
在查詢某些API的具體實(shí)現(xiàn)代碼、項(xiàng)目錯(cuò)誤信息的拋出位置民宿、業(yè)務(wù)代碼的作用鏈等場(chǎng)景娇妓,這個(gè)功能將會(huì)非常有幫助!
語法搜索
除了通用的正則表達(dá)式語法外活鹰,該搜索平臺(tái)還提供了一種用戶體驗(yàn)較好的搜索方式:語法搜索哈恰。
比方說只估,你可以用下面這行語法,來搜索Linux GitHub倉庫中蕊蝗,包含io_uring的代碼塊仅乓。
repo:torvalds/linux io_uring
甚至還能用布爾運(yùn)算法,來指定在哪些編程語言中進(jìn)行搜索蓬戚。
像下面這種語法夸楣,就是指定在C或C++中,搜索有關(guān)io_uring的內(nèi)容子漩。
io_uring(language:c OR language:cpp)
除此之外豫喧,可用的語法還有很多,GitHub 為此列了個(gè)語法清單幢泼,需要進(jìn)階學(xué)習(xí)的同學(xué)可以去看下:https://cs.github.com/about/syntax
代碼導(dǎo)航與跳轉(zhuǎn)
在我們用IDE的時(shí)候紧显,代碼導(dǎo)航與跳轉(zhuǎn)功能是必不可少的。
在GitHub代碼搜索平臺(tái)缕棵,會(huì)對(duì)每個(gè)搜索結(jié)果進(jìn)行高亮標(biāo)記孵班,開發(fā)者點(diǎn)擊后便會(huì)跳轉(zhuǎn)到指定的代碼區(qū)塊,一步到位的查看代碼函數(shù)或API定義招驴。
更多功能
除了上面提到的功能之外篙程,GitHub Code Search還針對(duì)代碼進(jìn)行了優(yōu)化,新增了搜索索引别厘。
未來虱饿,官方開發(fā)者還會(huì)借助AI,來優(yōu)化代碼搜索結(jié)果的智能排名触趴,讓大家可以快速找到那些更為匹配氮发,受眾或使用者較多的代碼。
目前冗懦,該平臺(tái)已對(duì)GitHub上500萬個(gè)最受歡迎的代碼倉庫提供了支持爽冕,后續(xù)還會(huì)陸續(xù)增加。
現(xiàn)在批狐,GitHub代碼搜索平臺(tái)已開放注冊(cè)扇售,感興趣的同學(xué),可訪問下方鏈接提交申請(qǐng)嚣艇,提前感受一下承冰。
地址:https://cs.github.com/
其實(shí),閱讀源碼一直是我個(gè)人比較推崇的食零,學(xué)習(xí)編程比較好的一種方式困乒。隨著后續(xù)的功能迭代,GitHub Code Search也會(huì)慢慢成為閱讀項(xiàng)目源碼的最佳去處之一贰谣。是解決項(xiàng)目底層問題最直接娜搂,也最行之有效的方法迁霎,不是去上網(wǎng)搜索或看技術(shù)文檔,而是深挖項(xiàng)目的核心源碼百宇,找到問題源頭考廉,一擊斃命。