Skip to content

Commit 00c3507

Browse files
committed
Refactoring by important some changes from @jeromelaban from unoplatform/uno.monaco-editor-uwp#14
1 parent a66537a commit 00c3507

30 files changed

+887
-389
lines changed

src/Directory.Packages.props

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<PropertyGroup>
33
<CommunityToolkitVersion>8.0.0</CommunityToolkitVersion>
44
<DotNetVersion>6.0.0</DotNetVersion>
5-
<UnoVersion>4.7.0-dev.666</UnoVersion>
5+
<UnoVersion>4.6.19</UnoVersion>
66
<UnoWasmBootstrapVersion>8.0.0-dev.65</UnoWasmBootstrapVersion>
77
<WindowsNetSdkVersion>10.0.22000.28</WindowsNetSdkVersion>
88
</PropertyGroup>
@@ -16,6 +16,7 @@
1616
<PackageVersion Include="Microsoft.Extensions.Logging.Configuration" Version="$(DotNetVersion)" />
1717
<PackageVersion Include="Microsoft.Extensions.Logging.Console" Version="$(DotNetVersion)" />
1818
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.1.0" />
19+
<PackageVersion Include="Microsoft.TypeScript.MSBuild" Version="4.9.4" />
1920
<PackageVersion Include="Microsoft.Windows.Compatibility" Version="$(DotNetVersion)" />
2021
<PackageVersion Include="Microsoft.Windows.SDK.BuildTools" Version="10.0.22000.196" />
2122
<PackageVersion Include="Microsoft.WindowsAppSDK" Version="1.1.3" />

src/app/dev/DevToys.MonacoEditor/CodeEditor/CodeEditor.Wasm.ts

Lines changed: 0 additions & 113 deletions
This file was deleted.

src/app/dev/DevToys.MonacoEditor/CodeEditor/CodeEditor.Windows.html

Lines changed: 61 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -14,80 +14,83 @@
1414
width: 100%;
1515
}
1616
</style>
17-
<style id="dynamic">
18-
</style>
19-
</head>
20-
<body>
2117

22-
<div id="container" onkeydown="keyDown(event)"></div>
23-
24-
<!--<script src="https://devtoys.local/ts-helpermethods/ts-helpermethods-Windows/asyncCallbackHelpers.js"></script>-->
18+
<script src="https://devtoys.local/ts-helpermethods/ts-helpermethods-Windows/asyncCallbackHelpers.js"></script>
2519
<script src="https://devtoys.local/monaco-editor/min/vs/loader.js"></script>
26-
<!--<script src="https://devtoys.local/ts-helpermethods/registerCodeLensProvider.js"></script>
20+
<script src="https://devtoys.local/ts-helpermethods/editorContext.js"></script>
21+
<script src="https://devtoys.local/ts-helpermethods/registerCodeLensProvider.js"></script>
2722
<script src="https://devtoys.local/ts-helpermethods/registerColorProvider.js"></script>
2823
<script src="https://devtoys.local/ts-helpermethods/registerCompletionItemProvider.js"></script>
2924
<script src="https://devtoys.local/ts-helpermethods/otherScriptsToBeOrganized.js"></script>
30-
<script src="https://devtoys.local/ts-helpermethods/updateSelectedContent.js"></script>-->
25+
<script src="https://devtoys.local/ts-helpermethods/updateSelectedContent.js"></script>
26+
<script src="https://devtoys.local/ts-helpermethods/monacoInitializer.js"></script>
27+
</head>
28+
<body>
29+
30+
<div id="container" onkeydown="keyDown(event)"></div>
31+
32+
3133

3234
<script>
33-
var editor;
34-
var model;
35-
var contexts = {};
36-
var decorations = [];
37-
var modifingSelection = false; // Supress updates to selection when making edits.
35+
//createMonacoEditor("https://devtoys.local/", document.getElementById('container'));
36+
//var editor;
37+
//var model;
38+
//var contexts = {};
39+
//var decorations = [];
40+
//var modifingSelection = false; // Supress updates to selection when making edits.
3841

39-
//Debug.log("Starting Monaco Load");
40-
require.config({ paths: { 'vs': 'https://devtoys.local/monaco-editor/min/vs' } });
41-
require(['vs/editor/editor.main'], function () {
42-
//Debug.log("Grabbing Monaco Options");
42+
//Debug.log("Starting Monaco Load");
43+
//require.config({ paths: { 'vs': 'https://devtoys.local/monaco-editor/min/vs' } });
44+
//require(['vs/editor/editor.main'], function () {
45+
// Debug.log("Grabbing Monaco Options");
4346

44-
//let opt = getOptions();
45-
//opt["value"] = Parent.getValue("Text");
47+
// //let opt = getOptions();
48+
// //opt["value"] = Parent.getValue("Text");
4649

47-
editor = monaco.editor.create(document.getElementById('container'), null /* opt */);
48-
model = editor.getModel();
50+
// editor = monaco.editor.create(document.getElementById('container'), null /* opt */);
51+
// model = editor.getModel();
4952

50-
//// Listen for Content Changes
51-
//model.onDidChangeContent((event) => {
52-
// Parent.setValue("Text", model.getValue());
53-
// //console.log("buffers: " + JSON.stringify(model._buffer._pieceTree._buffers));
54-
// //console.log("commandMgr: " + JSON.stringify(model._commandManager));
55-
// //console.log("viewState:" + JSON.stringify(editor.saveViewState()));
56-
//});
53+
// //// Listen for Content Changes
54+
// //model.onDidChangeContent((event) => {
55+
// // Parent.setValue("Text", model.getValue());
56+
// // //console.log("buffers: " + JSON.stringify(model._buffer._pieceTree._buffers));
57+
// // //console.log("commandMgr: " + JSON.stringify(model._commandManager));
58+
// // //console.log("viewState:" + JSON.stringify(editor.saveViewState()));
59+
// //});
5760

58-
//// Listen for Selection Changes
59-
//editor.onDidChangeCursorSelection((event) => {
60-
// if (!modifingSelection) {
61-
// console.log(event.source);
62-
// Parent.setValue("SelectedText", model.getValueInRange(event.selection));
63-
// Parent.setValue("SelectedRange", JSON.stringify(event.selection), "Selection");
64-
// }
65-
//})
61+
// //// Listen for Selection Changes
62+
// //editor.onDidChangeCursorSelection((event) => {
63+
// // if (!modifingSelection) {
64+
// // console.log(event.source);
65+
// // Parent.setValue("SelectedText", model.getValueInRange(event.selection));
66+
// // Parent.setValue("SelectedRange", JSON.stringify(event.selection), "Selection");
67+
// // }
68+
// //})
6669

67-
//// Set theme
68-
//let theme = Parent.getJsonValue("RequestedTheme");
69-
//theme = {
70-
// "0": "Default",
71-
// "1": "Light",
72-
// "2": "Dark"
73-
//}[theme];
74-
//if (theme == "Default") {
75-
// theme = Theme.currentThemeName.toString();
76-
//}
77-
//changeTheme(theme, Theme.isHighContrast.toString());
70+
// //// Set theme
71+
// //let theme = Parent.getJsonValue("RequestedTheme");
72+
// //theme = {
73+
// // "0": "Default",
74+
// // "1": "Light",
75+
// // "2": "Dark"
76+
// //}[theme];
77+
// //if (theme == "Default") {
78+
// // theme = Theme.currentThemeName.toString();
79+
// //}
80+
// //changeTheme(theme, Theme.isHighContrast.toString());
7881

79-
//// Update Monaco Size when we receive a window resize event
80-
//window.addEventListener("resize", () => {
81-
// editor.layout();
82-
//});
82+
// //// Update Monaco Size when we receive a window resize event
83+
// //window.addEventListener("resize", () => {
84+
// // editor.layout();
85+
// //});
8386

84-
// Disable WebView Scrollbar so Monaco Scrollbar can do heavy lifting
85-
document.body.style.overflow = 'hidden';
87+
// // Disable WebView Scrollbar so Monaco Scrollbar can do heavy lifting
88+
// document.body.style.overflow = 'hidden';
8689

87-
//// Callback to Parent that we're loaded
88-
//Debug.log("Loaded Monaco");
89-
//Parent.callAction("Loaded");
90-
});
90+
// //// Callback to Parent that we're loaded
91+
// Debug.log("Loaded Monaco");
92+
// //Parent.callAction("Loaded");
93+
//});
9194
</script>
9295
</body>
9396
</html>

src/app/dev/DevToys.MonacoEditor/CodeEditor/CodeEditor.cs

Lines changed: 36 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1-
using Microsoft.UI.Xaml;
1+
using DevToys.MonacoEditor.WebInterop;
2+
using Microsoft.UI.Xaml;
23
using Microsoft.UI.Xaml.Controls;
4+
using Microsoft.Web.WebView2.Core;
35

46
namespace DevToys.MonacoEditor;
57

@@ -21,26 +23,50 @@ protected override void OnApplyTemplate()
2123
{
2224
if (_view != null)
2325
{
24-
//_view.NavigationStarting -= WebView_NavigationStarting;
25-
//_view.DOMContentLoaded -= WebView_DOMContentLoaded;
26-
//_view.NavigationCompleted -= WebView_NavigationCompleted;
27-
//_view.NewWindowRequested -= WebView_NewWindowRequested;
28-
//Debug.WriteLine("Setting initialized - false");
26+
_view.NavigationStarting -= WebView_NavigationStarting;
27+
_view.DOMContentLoaded -= WebView_DOMContentLoaded;
28+
_view.NavigationCompleted -= WebView_NavigationCompleted;
29+
_view.NewWindowRequested -= WebView_NewWindowRequested;
30+
Debug.WriteLine("Setting initialized - false");
2931
//_initialized = false;
3032
}
3133

3234
_view = (ICodeEditorPresenter)GetTemplateChild("View");
3335

3436
if (_view != null)
3537
{
36-
//_view.NavigationStarting += WebView_NavigationStarting;
37-
//_view.DOMContentLoaded += WebView_DOMContentLoaded;
38-
//_view.NavigationCompleted += WebView_NavigationCompleted;
39-
//_view.NewWindowRequested += WebView_NewWindowRequested;
38+
_view.NavigationStarting += WebView_NavigationStarting;
39+
_view.DOMContentLoaded += WebView_DOMContentLoaded;
40+
_view.NavigationCompleted += WebView_NavigationCompleted;
41+
_view.NewWindowRequested += WebView_NewWindowRequested;
42+
_view.DotNetObjectInjectionRequested += WebView_DotNetObjectInjectionRequested;
4043

4144
_view.LaunchAsync();
4245

4346
base.OnApplyTemplate();
4447
}
4548
}
49+
50+
private async Task WebView_DotNetObjectInjectionRequested(ICodeEditorPresenter sender, EventArgs args)
51+
{
52+
await _view.InjectDotNetObjectToWebPageAsync("Debug", new DebugLogger());
53+
}
54+
55+
private void WebView_NavigationStarting(ICodeEditorPresenter sender, CoreWebView2NavigationStartingEventArgs args)
56+
{
57+
}
58+
59+
private void WebView_NavigationCompleted(ICodeEditorPresenter sender, CoreWebView2NavigationCompletedEventArgs args)
60+
{
61+
62+
}
63+
64+
private void WebView_DOMContentLoaded(ICodeEditorPresenter sender, CoreWebView2DOMContentLoadedEventArgs args)
65+
{
66+
}
67+
68+
private void WebView_NewWindowRequested(ICodeEditorPresenter sender, CoreWebView2NewWindowRequestedEventArgs args)
69+
{
70+
71+
}
4672
}

0 commit comments

Comments
 (0)