谷歌:我們將為Go、Angular、Dart、Flutter等開放代碼搜索功能


谷歌:我們將為Go、Angular、Dart、Flutter等開放代碼搜索功能


Google已經為其幾個熱門的開源項目推出了Code Search,為廣大軟件社區提供了一個直到現在為止一直是Google最受歡迎的內部工具之一的開發者。

Code Search或 "CS "目前支持Angular、Bazel、Dart、ExoPlayer、Firebase SDK、Flutter、Go、gVisor、Kythe、Nomulus、Outline和Tensorflow--這些項目只佔Google開源項目的一小部分,但這些開源社區可能會從各自的資源庫中的搜索中受益。

谷歌開源項目的代碼搜索是在Android和Chromium項目推出公開的代碼搜索界面之後推出的。

谷歌代碼搜索團隊的Kris Hildrum表示,谷歌確實計劃在未來為更多的資源庫提供代碼搜索。

據Hildrum介紹,谷歌工程師每天都會使用Code Search來了解代碼庫,比如說,他們可以搜索半死不活的函數,弄清楚他們正在查看的函數是什麼調用的,以及發現一行代碼什麼時候被修改了。還有一個 "責備 "按鈕,可以突出顯示上一次是哪個用戶修改了每一行代碼。

當用戶鍵入一個詞時,搜索框會提供代碼對象的類型、版本庫和路徑等建議。例如,用戶如果想在Google文件中搜索一個函數 "foo",可以指定 "lang:go function:foo "來避免搜索foo只是註釋的文件。其他的過濾器包括區分大小寫、類名、內容、文件和符號。

大多數流行的語言也可以被過濾,包括C++、C、Java、Kotlin、Python、JavaScript、Go、JSON、HTML、Objective-C、Dart、Jango、Perl、PHP、PowerShell、Ruby、shell、SQL和Swift。

一些開源資源庫中的交叉引用功能由Kythe啟用,Kythe是Google的開源工具,用於創建開發者工具。具有交叉引用的項目包括Bazel、Go、gVisor、Kyth、Nomulus和Tensorflow。

"開源社區使用比Google更廣泛的構建系統。為了支持交叉引用,Kyth增加了對Bazel、CMake、Maven和Go的下拉式支持。"Hildrum指出。

"使用其他構建系統的項目可以使用Kythe提供的clang和javac的封裝器來儀表他們的構建;Chromium和Android AOSP使用這些封裝器來為Kythe提供編譯信息。"


分享到:


相關文章: