From 12c36be93d4a708c58f99a837bb1f62e6c268e36 Mon Sep 17 00:00:00 2001 From: vato007 Date: Wed, 17 Jul 2024 21:58:09 +0930 Subject: [PATCH] Add monaco editor for json editing and diff view (#4) Reviewed-on: https://gitea.michaelpivato.dev/vato007/bufpiv/pulls/4 --- angular.json | 9 +++- bun.lockb | Bin 436140 -> 437017 bytes package.json | 2 + src/app/app.component.scss | 1 + src/app/app.component.ts | 2 +- src/app/app.config.ts | 2 + src/app/editor/editor.component.html | 37 +++++++++++++---- src/app/editor/editor.component.scss | 18 +++++--- src/app/editor/editor.component.ts | 59 +++++++++++++++++++-------- src/styles.scss | 1 + 10 files changed, 100 insertions(+), 31 deletions(-) diff --git a/angular.json b/angular.json index 9644e41..8fe5af1 100644 --- a/angular.json +++ b/angular.json @@ -20,7 +20,14 @@ "browser": "src/main.ts", "polyfills": [], "tsConfig": "tsconfig.app.json", - "assets": ["src/assets"], + "assets": [ + "src/assets", + { + "glob": "**/*", + "input": "node_modules/monaco-editor", + "output": "/assets/monaco/" + } + ], "styles": [ "src/styles.scss", "highlight.js/styles/atom-one-dark.min.css" diff --git a/bun.lockb b/bun.lockb index 95461645e4172dcb70c5be58cb52c5d0d59ac0e4..2ff83788243262b782fd5c1f7c6f4a57486dffb7 100755 GIT binary patch delta 96001 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 OM3}ZLh_Fjv_x}UoDVO{J delta 95298 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 diff --git a/package.json b/package.json index c9995b0..c17eb63 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,8 @@ "@angular/router": "^18.1.0", "@tauri-apps/api": "^1.6.0", "highlight.js": "^11.10.0", + "monaco-editor": "^0.50.0", + "ngx-monaco-editor-v2": "^18.0.1", "protobufjs": "^7.3.2", "rxjs": "^7.8.1", "tslib": "^2.6.3", diff --git a/src/app/app.component.scss b/src/app/app.component.scss index 2fa6f54..63431fe 100644 --- a/src/app/app.component.scss +++ b/src/app/app.component.scss @@ -22,6 +22,7 @@ mat-sidenav-content { app-editor { flex: 1; + width: 100%; } .mat-sidenav.mat-drawer-end, diff --git a/src/app/app.component.ts b/src/app/app.component.ts index e69a5de..828cbe6 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -1,6 +1,6 @@ import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout'; import { CommonModule } from '@angular/common'; -import { Component, computed, signal } from '@angular/core'; +import { Component, computed, effect, signal } from '@angular/core'; import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; import { MatButtonModule } from '@angular/material/button'; import { MatIconModule } from '@angular/material/icon'; diff --git a/src/app/app.config.ts b/src/app/app.config.ts index 7262144..08229d7 100644 --- a/src/app/app.config.ts +++ b/src/app/app.config.ts @@ -13,6 +13,7 @@ import { MAT_ICON_DEFAULT_OPTIONS, MatIconRegistry, } from '@angular/material/icon'; +import { provideMonacoEditor } from 'ngx-monaco-editor-v2'; export const appConfig: ApplicationConfig = { providers: [ @@ -41,5 +42,6 @@ export const appConfig: ApplicationConfig = { provide: MAT_ICON_DEFAULT_OPTIONS, useValue: { fontSet: 'material-symbols-rounded' }, }, + provideMonacoEditor(), ], }; diff --git a/src/app/editor/editor.component.html b/src/app/editor/editor.component.html index a8772d5..5e58df2 100644 --- a/src/app/editor/editor.component.html +++ b/src/app/editor/editor.component.html @@ -14,13 +14,36 @@ > } } - @if(showRaw()) { -

Preview

-
- -
-
-} +
+

+ Preview + + Raw + Edit + @if(selectedFile()) { + Diff + } + + +

+ @switch (previewType()) { @case ('raw') { +
+ } @case ('edit') { + + } @case ('diff') { + + } } +
+}
diff --git a/src/app/editor/editor.component.scss b/src/app/editor/editor.component.scss index e708522..e386a09 100644 --- a/src/app/editor/editor.component.scss +++ b/src/app/editor/editor.component.scss @@ -2,10 +2,11 @@ padding: var(--mat-sidenav-container-shape); display: flex; flex-direction: column; + box-sizing: border-box; } -pre, -.editor-items { +.editor-items, +.preview { flex: 1; overflow: auto; } @@ -14,11 +15,16 @@ pre, padding: 16px; } -.actions { - flex: 0 0 auto; -} - .proto-title { display: flex; justify-content: space-between; } + +mat-button-toggle-group { + width: fit-content; +} + +ngx-monaco-editor, +ngx-monaco-diff-editor { + height: 100%; +} diff --git a/src/app/editor/editor.component.ts b/src/app/editor/editor.component.ts index a44cc77..aea79c5 100644 --- a/src/app/editor/editor.component.ts +++ b/src/app/editor/editor.component.ts @@ -18,13 +18,26 @@ import hljs from 'highlight.js/lib/core'; import { ProtoMessage } from '../model/proto-message.model'; import { ProtoFieldComponent } from './proto-field/proto-field.component'; import { save } from '@tauri-apps/api/dialog'; +import { MatButtonToggleModule } from '@angular/material/button-toggle'; +import { MonacoEditorModule } from 'ngx-monaco-editor-v2'; +import { FormsModule } from '@angular/forms'; declare const __TAURI__: any; +type PreviewType = 'raw' | 'edit' | 'diff'; + @Component({ selector: 'app-editor', standalone: true, - imports: [CommonModule, ProtoFieldComponent, MatButtonModule, MatIconModule], + imports: [ + CommonModule, + ProtoFieldComponent, + MatButtonModule, + MatButtonToggleModule, + MatIconModule, + MonacoEditorModule, + FormsModule, + ], templateUrl: './editor.component.html', styleUrl: './editor.component.scss', }) @@ -34,11 +47,16 @@ export class EditorComponent { indentSize = input(2); showRaw = input(true); + protected editorOptions = { + theme: 'vs-dark', + language: 'json', + automaticLayout: true, + }; protected values = signal(undefined); protected downloadName = computed( () => this.selectedFile() ?? `${this.selectedMessage().name}.json` ); - private serialisedValues = computed(() => + protected serialisedValues = computed(() => JSON.stringify(this.values(), undefined, this.indentSize()) ); protected saveHref = computed(() => { @@ -48,6 +66,16 @@ export class EditorComponent { return URL.createObjectURL(blob); }); protected downloader = viewChild>('downloader'); + protected previewType = signal('raw'); + protected currentFileContents = signal(''); + protected originalModel = computed(() => ({ + code: this.currentFileContents(), + language: 'json', + })); + protected currentModel = computed(() => ({ + code: this.serialisedValues(), + language: 'json', + })); private code = viewChild>('code'); @@ -85,24 +113,23 @@ export class EditorComponent { const selectedFile = this.selectedFile(); if (selectedFile) { const fileContents = await readTextFile(selectedFile); - try { - const parsed = JSON.parse(fileContents); - this.values.set(parsed); - } catch (err) { - console.error( - `Failed to parse contents of file ${selectedFile}`, - err - ); - this.snackBar.open( - `Failed to parse contents of file ${selectedFile}, please check the file is correctly formatted`, - 'Dismiss', - { duration: 5000 } - ); - } + this.currentFileContents.set(fileContents); + this.updateValuesFromText(fileContents, selectedFile); } }); } + protected updateValuesFromText(text: string, selectedFile?: string) { + try { + const parsed = JSON.parse(text); + this.values.set(parsed); + } catch (err) { + if (selectedFile) { + console.error(`Failed to parse contents of file ${selectedFile}`, err); + } + } + } + protected updateValue(key: string, value: any) { const existingValue = { ...this.values() }; existingValue[key] = value; diff --git a/src/styles.scss b/src/styles.scss index b730084..9878d19 100644 --- a/src/styles.scss +++ b/src/styles.scss @@ -30,6 +30,7 @@ html { @include mat.list-theme(theme.$rose-theme); @include mat.select-theme(theme.$rose-theme); @include mat.snack-bar-theme(theme.$rose-theme); + @include mat.button-toggle-theme(theme.$rose-theme); @include custom-colours(theme.$rose-theme); }