Wiring in majority of source-view

This commit is contained in:
itdominator 2025-06-30 20:01:00 -05:00
parent 96eaa64b2a
commit 425818c60f
6 changed files with 61 additions and 13 deletions

View File

@ -20,6 +20,7 @@ export class EditorsService {
editorSettings: typeof EditorSettings; editorSettings: typeof EditorSettings;
activeEditor!: string; activeEditor!: string;
srcView!: CodeViewComponent;
constructor() { constructor() {
@ -37,6 +38,11 @@ export class EditorsService {
} }
public set(uuid: string, component: CodeViewComponent) { public set(uuid: string, component: CodeViewComponent) {
if (component.isSrcView) {
this.srcView = component;
return;
}
this.editors.set(uuid, component); this.editors.set(uuid, component);
if (Object.keys(this.editors).length < 1) return; if (Object.keys(this.editors).length < 1) return;
@ -64,7 +70,10 @@ export class EditorsService {
let editor = editorComponent.editor; let editor = editorComponent.editor;
editorComponent.activeFile = file; editorComponent.activeFile = file;
this.srcView.activeFile = file;
editor.setSession(file.session); editor.setSession(file.session);
this.srcView.editor.setSession(file.session);
} }
public getSession() { public getSession() {
@ -75,13 +84,22 @@ export class EditorsService {
} }
public setActiveEditor(activeEditor: string) { public setActiveEditor(activeEditor: string) {
this.activeEditor = activeEditor; this.activeEditor = activeEditor;
let editorComponent = this.getActiveEditorComponent();
this.srcView.activeFile = editorComponent.editor.activeFile;
this.srcView.editor.setSession(editorComponent.editor.getSession());
} }
public getActiveEditorComponent(): any { public getActiveEditorComponent(): any {
return this.get(this.activeEditor); return this.get(this.activeEditor);
} }
public clearSrcView() {
this.srcView.newSession();
this.srcView.activeFile = null;
}
protected getActiveEditor(): any { protected getActiveEditor(): any {
let editorComponent = this.get(this.activeEditor); let editorComponent = this.get(this.activeEditor);
let editor = editorComponent.editor; let editor = editorComponent.editor;

View File

@ -18,6 +18,7 @@ import { ServiceMessage } from '../../common/types/service-message.type';
export class CodeViewBase { export class CodeViewBase {
public uuid: string = uuid.v4(); public uuid: string = uuid.v4();
@Input() public isDefault: boolean = false; @Input() public isDefault: boolean = false;
@Input() public isSrcView: boolean = false;
public leftSiblingUUID!: string; public leftSiblingUUID!: string;
public rightSiblingUUID!: string; public rightSiblingUUID!: string;
@ -150,16 +151,30 @@ export class CodeViewBase {
window.main.toggleFullScreen(); window.main.toggleFullScreen();
} }
public setAsSrcView() {
this.editor.showLineNumbers = false;
this.editor.showGutter = false;
this.editor.setReadOnly(true);
this.editor.setFontSize(2);
this.editor.setHighlightActiveLine(false);
this.editor.setHighlightGutterLine(false);
this.editor.setShowFoldWidgets(false);
this.editor.setShowPrintMargin(false);
this.editorElm.nativeElement.parentElement.classList.add("col-1");
this.editorElm.nativeElement.parentElement.classList.add("zero-margin-padding");
}
public zoomIn() { public zoomIn() {
this.editor.setFontSize( this.editor.setFontSize(
parseInt(this.editor.getFontSize()) + 1 parseInt(this.editor.getFontSize()) + 1
) );
} }
public zoomOut() { public zoomOut() {
this.editor.setFontSize( this.editor.setFontSize(
parseInt(this.editor.getFontSize()) - 1 parseInt(this.editor.getFontSize()) - 1
) );
} }
public movelinesUp() { public movelinesUp() {

View File

@ -26,7 +26,7 @@ import { ServiceMessage } from '../../common/types/service-message.type';
templateUrl: './view.component.html', templateUrl: './view.component.html',
styleUrl: './view.component.css', styleUrl: './view.component.css',
host: { host: {
'class': 'col' 'class': 'col zero-margin-padding'
} }
}) })
export class CodeViewComponent extends CodeViewBase { export class CodeViewComponent extends CodeViewBase {
@ -34,24 +34,28 @@ export class CodeViewComponent extends CodeViewBase {
constructor() { constructor() {
super(); super();
this.editorsService.set(this.uuid, this);
} }
private ngAfterViewInit(): void { private ngAfterViewInit(): void {
this.loadAce();
}
private loadAce(): void {
this.editorsService.set(this.uuid, this);
this.configAceAndBindToElement()
this.loadAceKeyBindings();
this.loadAceEventBindings();
if (this.isDefault) { if (this.isDefault) {
this.editorsService.setActiveEditor(this.uuid); this.editorsService.setActiveEditor(this.uuid);
this.addActiveStyling(); this.addActiveStyling();
} }
this.loadAce(); if (this.isSrcView) {
} this.setAsSrcView();
}
private loadAce(): void {
this.configAceAndBindToElement()
this.loadAceKeyBindings();
this.loadAceEventBindings();
} }
private configAceAndBindToElement(): void { private configAceAndBindToElement(): void {

View File

@ -4,6 +4,7 @@
<code-view [isDefault]="true"></code-view> <code-view [isDefault]="true"></code-view>
<hr class="col vr-pane-handle" pane-handle /> <hr class="col vr-pane-handle" pane-handle />
<code-view></code-view> <code-view></code-view>
<code-view [isSrcView]="true"></code-view>
</div> </div>
<div> <div>

View File

@ -106,6 +106,8 @@ export class EditorsComponent {
editorComponent.activeFile = file; editorComponent.activeFile = file;
editor.setSession(file.session); editor.setSession(file.session);
this.editorsService.srcView.editor.setSession(file.session);
this.editorsService.srcView.activeFile = file;
} else if (message.action === "close-tab") { } else if (message.action === "close-tab") {
let file = this.filesService.get(message.filePath); let file = this.filesService.get(message.filePath);
let editors = this.editorsService.getEditorsAsArray(); let editors = this.editorsService.getEditorsAsArray();
@ -114,6 +116,10 @@ export class EditorsComponent {
let editorComponent = editors[i]; let editorComponent = editors[i];
if (editorComponent.editor.session == file.session) { if (editorComponent.editor.session == file.session) {
editorComponent.newSession(); editorComponent.newSession();
this.editorsService.srcView.editor.setSession(
editorComponent.editor.getSession()
);
this.editorsService.srcView.activeFile = null;
} }
} }

View File

@ -57,6 +57,10 @@ body {
.zero-margin-padding {
margin: 0px;
padding: 0px;
}
.hidden { .hidden {
display: none; display: none;