Nooote
在 VS Code Panel 中提供一份跨專案共用的 Markdown 暫記。內容自動保存在目前 VS Code Profile 的擴充套件全域儲存,不會寫入任何工作區,也不會出現在 Git 變更裡。
功能
- 常駐 Panel:筆記固定在底部 Panel 的 Note 分頁,與 Terminal、Problems 並列,不佔用編輯器分頁。
- 跨專案共用:同一 VS Code 發行版本與 Profile 的不同專案視窗即時同步,目標延遲約 200ms。
- 自動保存:輸入後自動寫入,關閉並重啟 VS Code 後仍保留。
- 衝突提示:本視窗有尚未寫入的輸入,而共用筆記同時被其他視窗或 AI 改寫時,工具列會顯示警告並暫停自動保存,不會互相覆蓋。
- 工具列:Refresh 捨棄本視窗內容並載入共用筆記;Save 立即把本視窗內容寫入共用筆記,有衝突警告時會先要求確認;Export 把本視窗內容開成一個未保存的新編輯器,可自行另存。
- Markdown 編輯輔助:Enter 延續列點,空白列點再次 Enter 時退出;Tab/Shift+Tab 縮排;
Cmd/Ctrl+B、Cmd/Ctrl+I、Cmd/Ctrl+K 插入語法;選中文字後貼上 HTTP(S) URL 自動建立連結。
- 完全離線:不載入遠端資源、不傳送 telemetry、不呼叫任何網路服務。
多個視窗同時修改同一份筆記時,後寫入的一方會看到衝突警告,由使用者以 Refresh 或 Save 決定保留哪一份。衝突期間關閉視窗,本視窗未保存的內容會遺失,需要保留時先 Export。
使用方式
安裝後,在底部 Panel 選擇 Note,或從 Command Palette 執行 Nooote: Open。如果已將 VS Code Panel 移到側邊,筆記會沿用該位置。
AI 工具支援
Panel 內的編輯器是 Webview <textarea>,不是 VS Code TextDocument。這決定了哪些 AI 功能能用:
可以用 —— 筆記本身是磁碟上的真實檔案(見下方保存位置),因此具備檔案系統存取的 AI agent(Claude Code、Codex 等)給定絕對路徑即可讀寫。外部寫入會被本擴充套件的檔案輪詢偵測到並同步回 Panel。
不能用 —— 依賴 TextDocument 的編輯器層級功能一律看不到筆記:
- GitHub Copilot 等擴充套件的 inline completion(行內自動完成)。
- Copilot Chat 的
#file、#selection,以及其他擴充套件的「目前編輯器選取」上下文。
- 「開啟中的分頁」這類自動帶入的上下文。
若 Panel 中有尚未寫入磁碟的輸入,同時 AI 又直接改寫該檔案,Panel 會顯示衝突警告並暫停自動保存。Refresh 載入 AI 寫入的版本,Save 以 Panel 內容覆蓋。需要 AI 密集操作筆記時,先停止輸入等待保存完成。
本擴充套件不自行呼叫任何 AI 或網路服務。
保存位置與範圍
筆記檔名為 shared-note.md,位置由 VS Code 的 ExtensionContext.globalStorageUri 決定:
- 不放進目前專案,也不會出現在 Git 變更中。
- 不使用 Settings Sync,不會同步至其他裝置。
- 不同 VS Code Profile、Stable 與 Insiders 各自保存一份。
- Remote SSH 或 Dev Container 專案仍由本機 UI Extension 使用本機筆記。
- 不支援
vscode.dev。
開發
建置、測試與封裝流程見 CONTRIBUTING.md,發布流程見 docs/PUBLISHING.md。
授權
Apache License 2.0
| |