摩納哥編輯器是VS代碼的完全特色代碼編輯器。查看VS代碼文檔以查看一些受支持的功能。

嘗試編輯器,並在我們的交互式操場上查看各種示例。
操場是了解如何使用編輯器的最佳方法,即支持哪些功能,嘗試不同版本並為錯誤報告創建最小的可重複示例。
> npm install monaco-editor
您會得到:
/esm :編輯器的ESM版本(與EG WebPack兼容)/dev :AMD捆綁,未更新/min :AMD捆綁並更新/min-maps : min的源地圖monaco.d.ts :這指定了編輯器的API(這是實際版本的,其他所有內容都被視為私有,並且可能會隨著任何版本而破裂)。建議針對dev版本和生產中開發使用min版本。
摩納哥編輯以為代碼的文本編輯器而聞名。但是,這有點細微。有效地使用摩納哥編輯需要對基本概念的一些基本理解。
模型是摩納哥編輯的核心。這是您在管理內容時與之互動的。一個模型表示已打開的文件。這可以代表文件系統上存在的文件,但不必這樣做。例如,該模型包含文本內容,確定內容的語言,並跟踪內容的編輯歷史記錄。
每個模型均由URI標識。這就是為什麼兩個模型都無法具有相同的URI的原因。理想情況下,當您代表摩納哥編輯中的內容時,您應該考慮一個與用戶編輯的文件匹配的虛擬文件系統。例如,您可以將file:///用作基本路徑。如果在沒有URI的情況下創建模型,則其URI將是inmemory://model/1 。隨著創建更多模型的數字增加。
編輯器是面對模型視圖的用戶。這就是將其附加到DOM的原因以及您的用戶在視覺上看到的內容。典型的編輯器操作正在顯示模型,管理視圖狀態或執行操作或命令。
提供商提供智能編輯器功能。例如,這包括完成和懸停信息。它與語言服務器協議功能不同,但通常映射到語言服務器協議功能。
提供商從事模型。一些智能功能取決於文件URI。例如,為了解決Typescript解決導入,或者讓JSON Intellisense確定哪種JSON模式適用於哪個模型。因此,選擇適當的uris很重要。
許多相關的對象通常實現.dispose()方法。此方法旨在在不再需要資源時進行清理。例如,呼叫model.dispose()將取消註冊,從而釋放新模型的URI。編輯人員應處置以釋放資源並刪除其模型聽眾。
monaco.d.ts讀取它們。在此存儲庫中為與摩納哥編輯有關的任何問題創建問題。請搜索現有問題以避免重複。
❓VS代碼與摩納哥編輯之間有什麼關係?
摩納哥編輯器是直接從VS代碼來源生成的,其中一些圍繞著代碼需要使其在房屋外部的Web瀏覽器中運行的服務。
❓VS Code的版本與摩納哥編輯版本之間有什麼關係?
沒有任何。摩納哥編輯是一個庫,它直接反映了源代碼。
❓我已經為VS代碼寫了一個擴展程序,它會在瀏覽器中使用摩納哥編輯嗎?
不。
注意:如果擴展程序完全基於LSP,並且語言服務器是在JavaScript中撰寫的,則可能。
❓為什麼所有這些網絡工作者,為什麼我應該關心?
語言服務創建網絡工人來計算UI線程之外的重型東西。它們幾乎不花任何錢在資源開銷方面,只要您讓它們工作(請參閱上面的跨域案例),您就不必擔心它們。
❓這個loader.js是什麼?我可以使用require.js嗎?
這是我們在VS代碼中使用的AMD加載程序。是的。
❓我看到警告“無法創建Web Worker”。我應該怎麼辦?
HTML5不允許在file://創建Web Worker。請在http://或https://方案上加載編輯器。
❓在移動瀏覽器或移動Web應用程序框架中支持編輯器?
不。
❓為什麼編輯不支持文本男人語法?
monaco-editor , vscode-oniguruma和vscode-textmate組合在一起,以在編輯器中獲得TM Grammar支持。 我們歡迎社區的貢獻!請參閱貢獻有關如何有效貢獻的詳細信息,如何從來源運行編輯器以及如何調試和解決問題。
該項目採用了Microsoft開源的行為代碼。有關更多信息,請參見《行為守則常見問題守則》或與其他問題或評論聯繫[email protected]。
根據MIT許可獲得許可。