ECMAScript.Monaco 1.0.0-preview.9

This is a prerelease version of ECMAScript.Monaco.
dotnet add package ECMAScript.Monaco --version 1.0.0-preview.9
                    
NuGet\Install-Package ECMAScript.Monaco -Version 1.0.0-preview.9
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="ECMAScript.Monaco" Version="1.0.0-preview.9" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="ECMAScript.Monaco" Version="1.0.0-preview.9" />
                    
Directory.Packages.props
<PackageReference Include="ECMAScript.Monaco" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add ECMAScript.Monaco --version 1.0.0-preview.9
                    
#r "nuget: ECMAScript.Monaco, 1.0.0-preview.9"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package ECMAScript.Monaco@1.0.0-preview.9
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=ECMAScript.Monaco&version=1.0.0-preview.9&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=ECMAScript.Monaco&version=1.0.0-preview.9&prerelease
                    
Install as a Cake Tool

ECMAScript.Monaco

Monaco Editor 的 C# 绑定,作为 Jazor 的 JS resource library 交付:包内锁定上游版本, manifest.json(schema 2)和 inventory.json 记录 npm exports、worker 入口、完整性与许可证元数据。

Strongly typed C# bindings for Monaco Editor, shipped as a Jazor JS resource library with a locked upstream npm version. Runtime ESM, workers and styles remain in the npm package; metadata describes the entries for the generated jazor project.

上游锁定 Upstream lock

项 值
npm 包 monaco-editor
版本 见 manifest.json / inventory.json
许可证 MIT(licenses/MONACO-LICENSE 与 licenses/THIRD-PARTY-NOTICES.txt)
作者入口 monaco-editor/editor/editor.api.js 的命名导出 editor
构建输入 src/ECMAScript.Vue.Generator/monaco-runtime/(package.json + lockfile 锁定版本)

入口解析

绑定保留 Monaco npm package 的 ESM 与 worker 入口,让 NetPack 根据 package exports、相对 依赖和 sideEffects 在应用入口处做裁剪。Emit 不复制绑定库自己的 bundle;Deno restore 负责把锁定的 npm package 放入 jazor/node_modules。

Monaco.Create、模型、主题、标记和 worker 操作映射到命名导出 editor 的成员。 这些函数不是 ESM 根部导出;C# 调用形式不变,消费者无需自建 namespace 接线。

首期范围 First slice

  • 编辑器与模型:create、createModel、getModels、getEditors;MonacoEditor(GetModel/SetModel/GetValue/Layout/Focus/GetLayoutInfo/ScrollTop/Trigger/UpdateOptions/Dispose);MonacoModel(GetLanguageId/GetValue/SetValue/GetLineContent/GetVersionId/IsDisposed/Dispose)
  • 事件:模型内容/语言/释放,编辑器光标/选区/布局/聚焦/失焦(均返回 MonacoDisposable)
  • 语言与主题:setModelLanguage、defineTheme、setTheme
  • 标记:setModelMarkers、removeAllMarkers、onDidChangeMarkers
  • worker:createWebWorker<TWorker>;worker URL 由应用显式提供

未绑定:diff editor、completion/suggest、语义 token、装饰(decorations)、大文件策略与自定义语言注册。这些属于计划中「评估」部分,按需扩充。

SSR 边界 SSR boundary

编辑器依赖真实 DOM、布局测量与 ResizeObserver。Create、Layout 与全部 worker 入口必须在浏览器生命周期内使用;SSR 期间不得直接创建编辑器或 worker,也不提供服务器端等价实现。

使用示例 Authoring

using static ECMAScript.Monaco;

var editor = Create(element, new MonacoEditorConstructionOptions
{
    Value = "fn main() {}",
    Language = "rust",
    Theme = "vs-dark",
    AutomaticLayout = true
});

var model = editor.GetModel()!;
var disposable = model.OnDidChangeContent(change => { /* versionId 递增 */ });

再生成 Regeneration

dotnet run --file scripts/csharp/generate-monaco.cs -- --version 0.56.0

生成器用锁定的 package 输入验证编辑器与四个语言 worker 的 exports,并执行浏览器安全闸门 (process.env 必须带环境守卫);应用构建由 Emit/Deno 完成 package restore。

测试 Tests

src/ECMAScript.Monaco.Test 覆盖 manifest/inventory 元数据、npm integrity、样式与 worker 依赖声明、浏览器安全、上游导出 drift、契约形状与编译器 emission。

Product Compatible and additional computed target framework versions.
.NET net11.0 is compatible. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0-preview.9 48 10/10/2026
1.0.0-preview.8 50 10/9/2026
1.0.0-preview.7 64 9/29/2026
1.0.0-preview.6 58 9/28/2026
1.0.0-preview.5 63 9/28/2026