Skip to content

Commit

Permalink
Refactoring by important some changes from @jeromelaban from unoplatf…
Browse files Browse the repository at this point in the history
  • Loading branch information
veler committed Dec 21, 2022
1 parent a66537a commit 00c3507
Show file tree
Hide file tree
Showing 30 changed files with 887 additions and 389 deletions.
3 changes: 2 additions & 1 deletion src/Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<PropertyGroup>
<CommunityToolkitVersion>8.0.0</CommunityToolkitVersion>
<DotNetVersion>6.0.0</DotNetVersion>
<UnoVersion>4.7.0-dev.666</UnoVersion>
<UnoVersion>4.6.19</UnoVersion>
<UnoWasmBootstrapVersion>8.0.0-dev.65</UnoWasmBootstrapVersion>
<WindowsNetSdkVersion>10.0.22000.28</WindowsNetSdkVersion>
</PropertyGroup>
Expand All @@ -16,6 +16,7 @@
<PackageVersion Include="Microsoft.Extensions.Logging.Configuration" Version="$(DotNetVersion)" />
<PackageVersion Include="Microsoft.Extensions.Logging.Console" Version="$(DotNetVersion)" />
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.1.0" />
<PackageVersion Include="Microsoft.TypeScript.MSBuild" Version="4.9.4" />
<PackageVersion Include="Microsoft.Windows.Compatibility" Version="$(DotNetVersion)" />
<PackageVersion Include="Microsoft.Windows.SDK.BuildTools" Version="10.0.22000.196" />
<PackageVersion Include="Microsoft.WindowsAppSDK" Version="1.1.3" />
Expand Down
113 changes: 0 additions & 113 deletions src/app/dev/DevToys.MonacoEditor/CodeEditor/CodeEditor.Wasm.ts

This file was deleted.

119 changes: 61 additions & 58 deletions src/app/dev/DevToys.MonacoEditor/CodeEditor/CodeEditor.Windows.html
Original file line number Diff line number Diff line change
Expand Up @@ -14,80 +14,83 @@
width: 100%;
}
</style>
<style id="dynamic">
</style>
</head>
<body>

<div id="container" onkeydown="keyDown(event)"></div>

<!--<script src="https://devtoys.local/ts-helpermethods/ts-helpermethods-Windows/asyncCallbackHelpers.js"></script>-->
<script src="https://devtoys.local/ts-helpermethods/ts-helpermethods-Windows/asyncCallbackHelpers.js"></script>
<script src="https://devtoys.local/monaco-editor/min/vs/loader.js"></script>
<!--<script src="https://devtoys.local/ts-helpermethods/registerCodeLensProvider.js"></script>
<script src="https://devtoys.local/ts-helpermethods/editorContext.js"></script>
<script src="https://devtoys.local/ts-helpermethods/registerCodeLensProvider.js"></script>
<script src="https://devtoys.local/ts-helpermethods/registerColorProvider.js"></script>
<script src="https://devtoys.local/ts-helpermethods/registerCompletionItemProvider.js"></script>
<script src="https://devtoys.local/ts-helpermethods/otherScriptsToBeOrganized.js"></script>
<script src="https://devtoys.local/ts-helpermethods/updateSelectedContent.js"></script>-->
<script src="https://devtoys.local/ts-helpermethods/updateSelectedContent.js"></script>
<script src="https://devtoys.local/ts-helpermethods/monacoInitializer.js"></script>
</head>
<body>

<div id="container" onkeydown="keyDown(event)"></div>



<script>
var editor;
var model;
var contexts = {};
var decorations = [];
var modifingSelection = false; // Supress updates to selection when making edits.
//createMonacoEditor("https://devtoys.local/", document.getElementById('container'));
//var editor;
//var model;
//var contexts = {};
//var decorations = [];
//var modifingSelection = false; // Supress updates to selection when making edits.

//Debug.log("Starting Monaco Load");
require.config({ paths: { 'vs': 'https://devtoys.local/monaco-editor/min/vs' } });
require(['vs/editor/editor.main'], function () {
//Debug.log("Grabbing Monaco Options");
//Debug.log("Starting Monaco Load");
//require.config({ paths: { 'vs': 'https://devtoys.local/monaco-editor/min/vs' } });
//require(['vs/editor/editor.main'], function () {
// Debug.log("Grabbing Monaco Options");

//let opt = getOptions();
//opt["value"] = Parent.getValue("Text");
// //let opt = getOptions();
// //opt["value"] = Parent.getValue("Text");

editor = monaco.editor.create(document.getElementById('container'), null /* opt */);
model = editor.getModel();
// editor = monaco.editor.create(document.getElementById('container'), null /* opt */);
// model = editor.getModel();

//// Listen for Content Changes
//model.onDidChangeContent((event) => {
// Parent.setValue("Text", model.getValue());
// //console.log("buffers: " + JSON.stringify(model._buffer._pieceTree._buffers));
// //console.log("commandMgr: " + JSON.stringify(model._commandManager));
// //console.log("viewState:" + JSON.stringify(editor.saveViewState()));
//});
// //// Listen for Content Changes
// //model.onDidChangeContent((event) => {
// // Parent.setValue("Text", model.getValue());
// // //console.log("buffers: " + JSON.stringify(model._buffer._pieceTree._buffers));
// // //console.log("commandMgr: " + JSON.stringify(model._commandManager));
// // //console.log("viewState:" + JSON.stringify(editor.saveViewState()));
// //});

//// Listen for Selection Changes
//editor.onDidChangeCursorSelection((event) => {
// if (!modifingSelection) {
// console.log(event.source);
// Parent.setValue("SelectedText", model.getValueInRange(event.selection));
// Parent.setValue("SelectedRange", JSON.stringify(event.selection), "Selection");
// }
//})
// //// Listen for Selection Changes
// //editor.onDidChangeCursorSelection((event) => {
// // if (!modifingSelection) {
// // console.log(event.source);
// // Parent.setValue("SelectedText", model.getValueInRange(event.selection));
// // Parent.setValue("SelectedRange", JSON.stringify(event.selection), "Selection");
// // }
// //})

//// Set theme
//let theme = Parent.getJsonValue("RequestedTheme");
//theme = {
// "0": "Default",
// "1": "Light",
// "2": "Dark"
//}[theme];
//if (theme == "Default") {
// theme = Theme.currentThemeName.toString();
//}
//changeTheme(theme, Theme.isHighContrast.toString());
// //// Set theme
// //let theme = Parent.getJsonValue("RequestedTheme");
// //theme = {
// // "0": "Default",
// // "1": "Light",
// // "2": "Dark"
// //}[theme];
// //if (theme == "Default") {
// // theme = Theme.currentThemeName.toString();
// //}
// //changeTheme(theme, Theme.isHighContrast.toString());

//// Update Monaco Size when we receive a window resize event
//window.addEventListener("resize", () => {
// editor.layout();
//});
// //// Update Monaco Size when we receive a window resize event
// //window.addEventListener("resize", () => {
// // editor.layout();
// //});

// Disable WebView Scrollbar so Monaco Scrollbar can do heavy lifting
document.body.style.overflow = 'hidden';
// // Disable WebView Scrollbar so Monaco Scrollbar can do heavy lifting
// document.body.style.overflow = 'hidden';

//// Callback to Parent that we're loaded
//Debug.log("Loaded Monaco");
//Parent.callAction("Loaded");
});
// //// Callback to Parent that we're loaded
// Debug.log("Loaded Monaco");
// //Parent.callAction("Loaded");
//});
</script>
</body>
</html>
46 changes: 36 additions & 10 deletions src/app/dev/DevToys.MonacoEditor/CodeEditor/CodeEditor.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
using Microsoft.UI.Xaml;
using DevToys.MonacoEditor.WebInterop;
using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls;
using Microsoft.Web.WebView2.Core;

namespace DevToys.MonacoEditor;

Expand All @@ -21,26 +23,50 @@ protected override void OnApplyTemplate()
{
if (_view != null)
{
//_view.NavigationStarting -= WebView_NavigationStarting;
//_view.DOMContentLoaded -= WebView_DOMContentLoaded;
//_view.NavigationCompleted -= WebView_NavigationCompleted;
//_view.NewWindowRequested -= WebView_NewWindowRequested;
//Debug.WriteLine("Setting initialized - false");
_view.NavigationStarting -= WebView_NavigationStarting;
_view.DOMContentLoaded -= WebView_DOMContentLoaded;
_view.NavigationCompleted -= WebView_NavigationCompleted;
_view.NewWindowRequested -= WebView_NewWindowRequested;
Debug.WriteLine("Setting initialized - false");
//_initialized = false;
}

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

if (_view != null)
{
//_view.NavigationStarting += WebView_NavigationStarting;
//_view.DOMContentLoaded += WebView_DOMContentLoaded;
//_view.NavigationCompleted += WebView_NavigationCompleted;
//_view.NewWindowRequested += WebView_NewWindowRequested;
_view.NavigationStarting += WebView_NavigationStarting;
_view.DOMContentLoaded += WebView_DOMContentLoaded;
_view.NavigationCompleted += WebView_NavigationCompleted;
_view.NewWindowRequested += WebView_NewWindowRequested;
_view.DotNetObjectInjectionRequested += WebView_DotNetObjectInjectionRequested;

_view.LaunchAsync();

base.OnApplyTemplate();
}
}

private async Task WebView_DotNetObjectInjectionRequested(ICodeEditorPresenter sender, EventArgs args)
{
await _view.InjectDotNetObjectToWebPageAsync("Debug", new DebugLogger());
}

private void WebView_NavigationStarting(ICodeEditorPresenter sender, CoreWebView2NavigationStartingEventArgs args)
{
}

private void WebView_NavigationCompleted(ICodeEditorPresenter sender, CoreWebView2NavigationCompletedEventArgs args)
{

}

private void WebView_DOMContentLoaded(ICodeEditorPresenter sender, CoreWebView2DOMContentLoadedEventArgs args)
{
}

private void WebView_NewWindowRequested(ICodeEditorPresenter sender, CoreWebView2NewWindowRequestedEventArgs args)
{

}
}
Loading

0 comments on commit 00c3507

Please sign in to comment.