歡迎來到 Neovim 的第一份電子報,這是一個希望為我們都喜愛的文字編輯器帶來新開始的專案。
我們徵詢了意見,而大家的支持非常踴躍;社群想要一份電子報。
計畫是每月發布一份電子報,詳細說明專案的進展以及任何其他值得報導的消息。
未來的電子報將在每個月的第一個星期五發布。因此,下一份電子報預計在7月4日發布。
讓我們回顧一下五月份之前幾個月的一些里程碑
您可能想知道,「自從從 Vim 分叉以來,到底改變了多少?」好吧,讓我們看看一些 Git 統計資料。
考量到 2014 年 1 月 31 日發生的 Vim 的初始導入,總共有 77 位貢獻者提交了 1,010 次提交。
根據 git diff --stat
,這導致:887 個檔案變更、575371 次插入(+)、500868 次刪除(-)。
使用更複雜的工具(例如 gitinspector),我們可以看到一些更有趣的統計數據。分析的完整報告可以在此 Gist 中檢視。
現在我們已經詳細說明了五月份開始之前的一些里程碑,我們可以看看上個月發生了什麼事。
Neovim 開啟了一些在 Vim 中於編譯時為可選的功能。這導致了各種不再需要的 ifdef FEAT_*
巨集。這些巨集已被移除。
關於 Neovim 繼承的加密程式碼的討論浮出水面。決定應該移除加密程式碼,而不是提供可能不安全的實作。然後迅速處理了移除。
由於與 Neovim 的某些標頭發生名稱衝突,因此將原始碼移至 'nvim' 命名空間。同時也決定從那時起,nvim
將成為專案的內部/技術識別碼。
Vim 確實有一些記錄功能,但已盡力建立更好的記錄公用程式。該公用程式使用巨集,並且可以記錄標準偵錯訊息、基本資訊、警告訊息或錯誤。記錄可以根據是否定義 NDEBUG
或 DISABLE_LOG
來開啟或關閉。
在可以使用標準類型的地方,使用了 Vim 特定類型。有關這些類型的完整資訊可以在此指南中找到。
到目前為止,short_u
、int_u
和 long_i
類型已被移除。long_u
的移除也正在進行中,並且計畫在不久的將來移除 char_u
和 long
類型。
當沒有足夠的記憶體進行配置時,不是檢查 malloc
是否傳回 NULL
,而是引入了一組函式來處理這些記憶體不足錯誤。
如果發生這種情況,這些函式會負責錯誤處理。移除檢查記憶體不足的問題已歷經多個議題(和幾個月),並已在此議題中列出。
記憶體錯誤的最後移除幾乎已完成。
名為 mch_stat()
的函式用於填入一個包含指定檔案名稱相關資訊的 struct
。該結構包含關於檔案的 stat
資訊。
為了提高開發人員的清晰度,將此程式碼重構成在 os/fs.c
中定義的新函式。然後將對 mch_stat()
的現有呼叫切換過來。
Coverity Scan 是一項服務,可對原始碼執行靜態分析,以尋找缺陷和漏洞。它可以查看執行中的多個路徑,並找出可能僅在特定條件下出現的問題。
除了與 TravisCI 一起使用的持續整合之外,Neovim 現在還有一個每週執行多次的 Coverity 檢查。
您現在可以偵聽和註冊各種 API 事件。這是在發出請求時使用 API 通道 ID 來完成的。
此外,還建立了一個Wiki 頁面,以詳細說明目前外掛程式架構的樣貌。如頂部警告所示,並非所有功能都已實作,但請查看以了解更多資訊。
以下是正在進行中或在路線圖上的事項清單。
system()
時,移除暫存檔案的使用,並改用管道。有人對於此功能背後的動機提出了一些質疑。理由是 VimL 語言的評估位於名為 eval.c
的檔案中。
該檔案目前有 19,164 行程式碼。透過建立轉譯器,可以移除此評估器的需求。相反地,Lua 程式碼可以依賴新開發且經過適當測試的 API。
在郵件列表中被問及進度時,Thiago 詳細說明了第一個正式版本所需的項目清單
- 完成重繪事件的實作 <- 現在正在做這個
- 使用重繪事件來實作基於 busted/lua 的新整合測試基礎架構。
- 編寫跨平台的 GUI 程式
- 在 Python 用戶端之上為舊版 Python 外掛程式提供相容層(除了使用 7.4 中引入的 Python 功能的外掛程式之外)
- 使其在 Windows 上編譯/執行(我認為這不會很困難,因為很多平台特定的東西已經在 libuv 上執行)
如果有志願者,我會在完成重繪事件的實作後委派編寫 GUI 程式,因為我不擅長設計 UI。
如果您想幫助支援開發,您可以使用此處的比特幣捐款:1Evu6wPrzjsjrNPdCYbHy3HT6ry2EzXFyQ
或在 Neovim Bountysource 頁面上支持團隊。
如果您是經驗豐富的開發人員,或是經驗不足但想要學習,請造訪 GitHub 儲存庫,並查看 README、CONTRIBUTING 指南,以及最後的 Wiki,以了解更多資訊。
有很多機會可以提供協助,並且有很多事情可以做。
您對於這第一份電子報有任何意見或建議嗎?請隨時透過 Neovim Twitter 聯絡我們。
同時,請務必訂閱 RSS 訂閱,以便隨時掌握 Neovim 世界正在發生的事情。下一份電子報將在 7 月的第一個星期五發布。
下次見。:wq
Neovim 是一個基於 Vim 的文字編輯器,專為可擴充性和可用性而設計,旨在鼓勵新的應用程式和貢獻。
造訪 #neovim:matrix.org 或 irc.libera.chat 上的 #neovim 與團隊聊天。