From f572ba54c822385df4c59d675ddabbd545b18476 Mon Sep 17 00:00:00 2001 From: Louis Poirier Date: Sun, 4 Feb 2024 13:48:56 +0100 Subject: [PATCH 1/7] feat: merge class/struct tabs by default. Update unit tests. --- src/shared/services/settings.service.spec.ts | 11 ++++++----- src/shared/services/settings.service.ts | 4 ++-- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/shared/services/settings.service.spec.ts b/src/shared/services/settings.service.spec.ts index 4439eaf..868c84e 100644 --- a/src/shared/services/settings.service.spec.ts +++ b/src/shared/services/settings.service.spec.ts @@ -33,7 +33,7 @@ describe('SettingsService', () => { showDocumentation: true, highlightEmptyObject: true, showEmptyAccordion: false, - mergeObject: false, + mergeObject: true, tabsWidth: 320, isBarPinned: true, clipboardSyntax: CodeSyntax.lua, @@ -51,7 +51,7 @@ describe('SettingsService', () => { 'show-documentation': false, 'highlight-empty-object': true, 'show-empty-accordion': true, - 'merge-object': true, + 'merge-object': false, 'tabs-width': 400, 'is-bar-pinned': false, 'clipboard-syntax': CodeSyntax.lua, @@ -72,7 +72,7 @@ describe('SettingsService', () => { showDocumentation: false, highlightEmptyObject: true, showEmptyAccordion: true, - mergeObject: true, + mergeObject: false, tabsWidth: 400, isBarPinned: false, clipboardSyntax: CodeSyntax.lua, @@ -89,7 +89,7 @@ describe('SettingsService', () => { 'show-documentation': true, 'highlight-empty-object': false, 'show-empty-accordion': false, - 'merge-object': false, + 'merge-object': true, 'tabs-width': 500, 'is-bar-pinned': true, 'clipboard-syntax': CodeSyntax.cppRedLib, @@ -137,7 +137,7 @@ describe('SettingsService', () => { showDocumentation: true, highlightEmptyObject: false, showEmptyAccordion: false, - mergeObject: false, + mergeObject: true, tabsWidth: 500, isBarPinned: true, clipboardSyntax: CodeSyntax.cppRedLib, @@ -153,6 +153,7 @@ describe('SettingsService', () => { {name: 'showDocumentation', key: 'show-documentation', change: false, expect: 'false'}, {name: 'highlightEmptyObject', key: 'highlight-empty-object', change: false, expect: 'false'}, {name: 'showEmptyAccordion', key: 'show-empty-accordion', change: true, expect: 'true'}, + {name: 'mergeObject', key: 'merge-object', change: false, expect: 'false'}, {name: 'tabsWidth', key: 'tabs-width', change: 400, expect: '400'}, {name: 'isBarPinned', key: 'is-bar-pinned', change: false, expect: 'false'}, {name: 'clipboard', key: 'clipboard-syntax', change: CodeSyntax.lua, expect: CodeSyntax.lua.toString()}, diff --git a/src/shared/services/settings.service.ts b/src/shared/services/settings.service.ts index aa64837..83e1714 100644 --- a/src/shared/services/settings.service.ts +++ b/src/shared/services/settings.service.ts @@ -36,7 +36,7 @@ export class SettingsService { private readonly showDocumentationSubject: BehaviorSubject = new BehaviorSubject(true); private readonly highlightEmptyObjectSubject: BehaviorSubject = new BehaviorSubject(true); private readonly showEmptyAccordionSubject: BehaviorSubject = new BehaviorSubject(false); - private readonly mergeObjectSubject: BehaviorSubject = new BehaviorSubject(false); + private readonly mergeObjectSubject: BehaviorSubject = new BehaviorSubject(true); private readonly tabsWidthSubject: BehaviorSubject = new BehaviorSubject(320); private readonly isBarPinnedSubject: BehaviorSubject = new BehaviorSubject(true); private readonly clipboardSubject: BehaviorSubject = new BehaviorSubject(CodeSyntax.lua); @@ -112,7 +112,7 @@ export class SettingsService { const showDocumentation: boolean = (localStorage.getItem('show-documentation') ?? 'true') === 'true'; const highlightEmptyObject: boolean = (localStorage.getItem('highlight-empty-object') ?? 'true') === 'true'; const showEmptyAccordion: boolean = (localStorage.getItem('show-empty-accordion') ?? 'false') === 'true'; - const mergeObject: boolean = (localStorage.getItem('merge-object') ?? 'false') === 'true'; + const mergeObject: boolean = (localStorage.getItem('merge-object') ?? 'true') === 'true'; const tabsWidth: number = +(localStorage.getItem('tabs-width') ?? '320'); const isBarPinned: boolean = (localStorage.getItem('is-bar-pinned') ?? 'true') === 'true'; const clipboard: string = localStorage.getItem('clipboard-syntax') ?? CodeSyntax.lua.toString(); From b83c9cb6ff92133d44eb0af5072bf7deaffaabac Mon Sep 17 00:00:00 2001 From: Louis Poirier Date: Sun, 4 Feb 2024 13:52:04 +0100 Subject: [PATCH 2/7] feat: use VS Code ide theme by default. --- src/shared/services/ide-theme.service.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/shared/services/ide-theme.service.ts b/src/shared/services/ide-theme.service.ts index c0f9458..242e82e 100644 --- a/src/shared/services/ide-theme.service.ts +++ b/src/shared/services/ide-theme.service.ts @@ -20,10 +20,10 @@ export interface IDEThemeChanged { }) export class IDEThemeService { private theme: BehaviorSubject = new BehaviorSubject({ - old: IDETheme.vanilla, - current: IDETheme.vanilla, + old: IDETheme.vscode, + current: IDETheme.vscode, }); - private currentTheme: IDETheme = IDETheme.vanilla; + private currentTheme: IDETheme = IDETheme.vscode; private isDarkLoaded: boolean = false; constructor(private readonly themeService: ThemeService, @@ -32,7 +32,7 @@ export class IDEThemeService { let ideTheme: IDETheme; if (!localIdeTheme) { - ideTheme = IDETheme.vanilla; + ideTheme = IDETheme.vscode; } else { ideTheme = +localIdeTheme; } From 67c473d56a8cf2b6b466a777546ab576e743fa59 Mon Sep 17 00:00:00 2001 From: Louis Poirier Date: Sun, 4 Feb 2024 13:55:36 +0100 Subject: [PATCH 3/7] refactor: rename Vanilla ide theme to Legacy. --- src/app/components/ndb-ide-theme/ndb-ide-theme.component.ts | 2 +- src/shared/services/ide-theme.service.ts | 2 +- src/styles/ide/{_vanilla.scss => _legacy.scss} | 6 +++--- src/styles/rd-dark-ide-theme.scss | 4 ++-- src/styles/rd-light-ide-theme.scss | 4 ++-- 5 files changed, 9 insertions(+), 9 deletions(-) rename src/styles/ide/{_vanilla.scss => _legacy.scss} (94%) diff --git a/src/app/components/ndb-ide-theme/ndb-ide-theme.component.ts b/src/app/components/ndb-ide-theme/ndb-ide-theme.component.ts index 174257a..af43efd 100644 --- a/src/app/components/ndb-ide-theme/ndb-ide-theme.component.ts +++ b/src/app/components/ndb-ide-theme/ndb-ide-theme.component.ts @@ -27,7 +27,7 @@ interface ThemeItem { export class NDBIdeThemeComponent { readonly themes: ThemeItem[] = [ - {isSelected: true, value: IDETheme.vanilla, name: 'Vanilla'}, + {isSelected: true, value: IDETheme.legacy, name: 'Legacy'}, {isSelected: false, value: IDETheme.vscode, name: 'VS Code · Modern'}, {isSelected: false, value: IDETheme.intellij, name: 'IntelliJ · Dracula'}, ]; diff --git a/src/shared/services/ide-theme.service.ts b/src/shared/services/ide-theme.service.ts index 242e82e..455ba33 100644 --- a/src/shared/services/ide-theme.service.ts +++ b/src/shared/services/ide-theme.service.ts @@ -5,7 +5,7 @@ import {takeUntilDestroyed} from "@angular/core/rxjs-interop"; import {LazyLoaderService} from "./lazy-loader.service"; export enum IDETheme { - vanilla, + legacy, vscode, intellij } diff --git a/src/styles/ide/_vanilla.scss b/src/styles/ide/_legacy.scss similarity index 94% rename from src/styles/ide/_vanilla.scss rename to src/styles/ide/_legacy.scss index 3cc0e38..cc10177 100644 --- a/src/styles/ide/_vanilla.scss +++ b/src/styles/ide/_legacy.scss @@ -1,10 +1,10 @@ @use 'sass:color'; -@mixin ide-vanilla-theme($is-light: true) { +@mixin ide-legacy-theme($is-light: true) { @if $is-light { @import url('https://fonts.googleapis.com/css2?family=Fira+Code&display=swap'); - .ide-vanilla-theme { + .ide-legacy-theme { --ndb-ide-typography-family: #{'Fira Code', monospace}; --ndb-ide-typography-size: 1rem; @@ -25,7 +25,7 @@ --ndb-ide-primitive-type: var(--ndb-ide-language); } } @else { - .ide-vanilla-theme { + .ide-legacy-theme { &.dark-theme { --ndb-ide-background: #2B2B2B; --ndb-ide-toolbar: #161B22; diff --git a/src/styles/rd-dark-ide-theme.scss b/src/styles/rd-dark-ide-theme.scss index 47c29b5..582c1c3 100644 --- a/src/styles/rd-dark-ide-theme.scss +++ b/src/styles/rd-dark-ide-theme.scss @@ -1,7 +1,7 @@ -@use './ide/vanilla' as *; +@use './ide/legacy' as *; @use './ide/vscode' as *; @use './ide/intellij' as *; -@include ide-vanilla-theme($is-light: false); +@include ide-legacy-theme($is-light: false); @include ide-vscode-theme($is-light: false); @include ide-intellij-theme($is-light: false); diff --git a/src/styles/rd-light-ide-theme.scss b/src/styles/rd-light-ide-theme.scss index 354c64d..9208e63 100644 --- a/src/styles/rd-light-ide-theme.scss +++ b/src/styles/rd-light-ide-theme.scss @@ -1,5 +1,5 @@ @use './ide/mixins' as *; -@use './ide/vanilla' as *; +@use './ide/legacy' as *; @use './ide/vscode' as *; @use './ide/intellij' as *; @@ -7,6 +7,6 @@ @include rd-ide-background(); @include rd-ide-theme(); -@include ide-vanilla-theme($is-light: true); +@include ide-legacy-theme($is-light: true); @include ide-vscode-theme($is-light: true); @include ide-intellij-theme($is-light: true); From 620e8eaa3e1c4d2530dcbca2086a332d0e8e192d Mon Sep 17 00:00:00 2001 From: Louis Poirier Date: Sun, 4 Feb 2024 13:59:57 +0100 Subject: [PATCH 4/7] feat: define Redscript as default code syntax. --- src/shared/services/settings.service.spec.ts | 10 +++++----- src/shared/services/settings.service.ts | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/shared/services/settings.service.spec.ts b/src/shared/services/settings.service.spec.ts index 868c84e..8bb44ad 100644 --- a/src/shared/services/settings.service.spec.ts +++ b/src/shared/services/settings.service.spec.ts @@ -37,7 +37,7 @@ describe('SettingsService', () => { tabsWidth: 320, isBarPinned: true, clipboardSyntax: CodeSyntax.lua, - codeSyntax: CodeSyntax.vanilla + codeSyntax: CodeSyntax.redscript }); }); @@ -55,7 +55,7 @@ describe('SettingsService', () => { 'tabs-width': 400, 'is-bar-pinned': false, 'clipboard-syntax': CodeSyntax.lua, - 'code-syntax': CodeSyntax.redscript + 'code-syntax': CodeSyntax.vanilla }); // WHEN @@ -76,7 +76,7 @@ describe('SettingsService', () => { tabsWidth: 400, isBarPinned: false, clipboardSyntax: CodeSyntax.lua, - codeSyntax: CodeSyntax.redscript + codeSyntax: CodeSyntax.vanilla }); }); @@ -93,7 +93,7 @@ describe('SettingsService', () => { 'tabs-width': 500, 'is-bar-pinned': true, 'clipboard-syntax': CodeSyntax.cppRedLib, - 'code-syntax': CodeSyntax.redscript + 'code-syntax': CodeSyntax.vanilla }); // WHEN @@ -141,7 +141,7 @@ describe('SettingsService', () => { tabsWidth: 500, isBarPinned: true, clipboardSyntax: CodeSyntax.cppRedLib, - codeSyntax: CodeSyntax.redscript + codeSyntax: CodeSyntax.vanilla }); }); diff --git a/src/shared/services/settings.service.ts b/src/shared/services/settings.service.ts index 83e1714..e5908c4 100644 --- a/src/shared/services/settings.service.ts +++ b/src/shared/services/settings.service.ts @@ -40,7 +40,7 @@ export class SettingsService { private readonly tabsWidthSubject: BehaviorSubject = new BehaviorSubject(320); private readonly isBarPinnedSubject: BehaviorSubject = new BehaviorSubject(true); private readonly clipboardSubject: BehaviorSubject = new BehaviorSubject(CodeSyntax.lua); - private readonly codeSubject: BehaviorSubject = new BehaviorSubject(CodeSyntax.vanilla); + private readonly codeSubject: BehaviorSubject = new BehaviorSubject(CodeSyntax.redscript); /** * Whether this application is used for the first time on this device? @@ -116,7 +116,7 @@ export class SettingsService { const tabsWidth: number = +(localStorage.getItem('tabs-width') ?? '320'); const isBarPinned: boolean = (localStorage.getItem('is-bar-pinned') ?? 'true') === 'true'; const clipboard: string = localStorage.getItem('clipboard-syntax') ?? CodeSyntax.lua.toString(); - const code: string = localStorage.getItem('code-syntax') ?? CodeSyntax.vanilla.toString(); + const code: string = localStorage.getItem('code-syntax') ?? CodeSyntax.redscript.toString(); this.ignoreDuplicateSubject.next(ignoreDuplicate); this.scriptOnlySubject.next(scriptOnly); From 0c92451300618892dbe4c10af6287346e2e53ce8 Mon Sep 17 00:00:00 2001 From: Louis Poirier Date: Sun, 4 Feb 2024 14:06:46 +0100 Subject: [PATCH 5/7] refactor: rename clipboard/code syntax option to "Redscript". --- src/app/pages/settings/settings.component.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/app/pages/settings/settings.component.ts b/src/app/pages/settings/settings.component.ts index 5672a76..7c7f688 100644 --- a/src/app/pages/settings/settings.component.ts +++ b/src/app/pages/settings/settings.component.ts @@ -31,7 +31,7 @@ interface AItem { export class SettingsComponent implements OnInit { readonly clipboardOptions: AItem[] = [ - {value: CodeSyntax.redscript, name: 'Red · Scripts', disabled: true}, + {value: CodeSyntax.redscript, name: 'Redscript', disabled: true}, {value: CodeSyntax.lua, name: 'Lua · CET', disabled: false}, {value: CodeSyntax.cppRedLib, name: 'C++ · RedLib', disabled: false}, ]; @@ -40,6 +40,7 @@ export class SettingsComponent implements OnInit { {value: CodeSyntax.vanilla, name: 'Vanilla', disabled: false}, {value: CodeSyntax.redscript, name: 'Red · Scripts', disabled: false}, {value: CodeSyntax.cppRED4ext, name: 'C++ · RED4ext / RedLib', disabled: false} + {value: CodeSyntax.redscript, name: 'Redscript', disabled: false}, ]; readonly ignoreDuplicate: FormControl = new FormControl(true); From b53a8989f9bdf209aab9c7a08a26518430977b86 Mon Sep 17 00:00:00 2001 From: Louis Poirier Date: Sun, 4 Feb 2024 14:10:08 +0100 Subject: [PATCH 6/7] refactor: rename code syntax "Vanilla" to "Pseudocode". --- .../components/spans/type-span/type-span.component.ts | 2 +- src/app/pages/settings/settings.component.ts | 4 +--- src/app/pipes/ndb-format-code.pipe.ts | 2 +- src/shared/services/settings.service.spec.ts | 10 +++++----- src/shared/services/settings.service.ts | 2 +- 5 files changed, 9 insertions(+), 11 deletions(-) diff --git a/src/app/components/spans/type-span/type-span.component.ts b/src/app/components/spans/type-span/type-span.component.ts index 072e6d8..61d2e33 100644 --- a/src/app/components/spans/type-span/type-span.component.ts +++ b/src/app/components/spans/type-span/type-span.component.ts @@ -25,7 +25,7 @@ export class TypeSpanComponent { isEmpty: boolean = false; protected readonly syntax$: Observable; - protected readonly vanilla: number = CodeSyntax.vanilla + 1; + protected readonly vanilla: number = CodeSyntax.pseudocode + 1; protected readonly redscript: number = CodeSyntax.redscript + 1; protected readonly cpp: number = CodeSyntax.cppRED4ext + 1; diff --git a/src/app/pages/settings/settings.component.ts b/src/app/pages/settings/settings.component.ts index 7c7f688..225130e 100644 --- a/src/app/pages/settings/settings.component.ts +++ b/src/app/pages/settings/settings.component.ts @@ -37,9 +37,7 @@ export class SettingsComponent implements OnInit { ]; readonly codeOptions: AItem[] = [ - {value: CodeSyntax.vanilla, name: 'Vanilla', disabled: false}, - {value: CodeSyntax.redscript, name: 'Red · Scripts', disabled: false}, - {value: CodeSyntax.cppRED4ext, name: 'C++ · RED4ext / RedLib', disabled: false} + {value: CodeSyntax.pseudocode, name: 'Pseudocode · Legacy', disabled: false}, {value: CodeSyntax.redscript, name: 'Redscript', disabled: false}, ]; diff --git a/src/app/pipes/ndb-format-code.pipe.ts b/src/app/pipes/ndb-format-code.pipe.ts index 67cd22a..b4cd9d2 100644 --- a/src/app/pipes/ndb-format-code.pipe.ts +++ b/src/app/pipes/ndb-format-code.pipe.ts @@ -12,7 +12,7 @@ export class NDBFormatCodePipe implements PipeTransform { transform(type: RedTypeAst, syntax: CodeSyntax): string { syntax = syntax - 1; switch (syntax) { - case CodeSyntax.vanilla: + case CodeSyntax.pseudocode: if (type.flag === RedTemplateDef.ref) { return 'handle'; } else if (type.flag === RedTemplateDef.wref) { diff --git a/src/shared/services/settings.service.spec.ts b/src/shared/services/settings.service.spec.ts index 8bb44ad..ef4ba0a 100644 --- a/src/shared/services/settings.service.spec.ts +++ b/src/shared/services/settings.service.spec.ts @@ -55,7 +55,7 @@ describe('SettingsService', () => { 'tabs-width': 400, 'is-bar-pinned': false, 'clipboard-syntax': CodeSyntax.lua, - 'code-syntax': CodeSyntax.vanilla + 'code-syntax': CodeSyntax.pseudocode }); // WHEN @@ -76,7 +76,7 @@ describe('SettingsService', () => { tabsWidth: 400, isBarPinned: false, clipboardSyntax: CodeSyntax.lua, - codeSyntax: CodeSyntax.vanilla + codeSyntax: CodeSyntax.pseudocode }); }); @@ -93,7 +93,7 @@ describe('SettingsService', () => { 'tabs-width': 500, 'is-bar-pinned': true, 'clipboard-syntax': CodeSyntax.cppRedLib, - 'code-syntax': CodeSyntax.vanilla + 'code-syntax': CodeSyntax.pseudocode }); // WHEN @@ -141,7 +141,7 @@ describe('SettingsService', () => { tabsWidth: 500, isBarPinned: true, clipboardSyntax: CodeSyntax.cppRedLib, - codeSyntax: CodeSyntax.vanilla + codeSyntax: CodeSyntax.pseudocode }); }); @@ -157,7 +157,7 @@ describe('SettingsService', () => { {name: 'tabsWidth', key: 'tabs-width', change: 400, expect: '400'}, {name: 'isBarPinned', key: 'is-bar-pinned', change: false, expect: 'false'}, {name: 'clipboard', key: 'clipboard-syntax', change: CodeSyntax.lua, expect: CodeSyntax.lua.toString()}, - {name: 'code', key: 'code-syntax', change: CodeSyntax.vanilla, expect: CodeSyntax.vanilla.toString()}, + {name: 'code', key: 'code-syntax', change: CodeSyntax.pseudocode, expect: CodeSyntax.pseudocode.toString()}, ]; beforeAll(() => { diff --git a/src/shared/services/settings.service.ts b/src/shared/services/settings.service.ts index e5908c4..edcc74c 100644 --- a/src/shared/services/settings.service.ts +++ b/src/shared/services/settings.service.ts @@ -17,7 +17,7 @@ export interface Settings { } export enum CodeSyntax { - vanilla, + pseudocode, redscript, lua, cppRED4ext, From 0738916696dd5b25a8813ad98ab465f1938b2e78 Mon Sep 17 00:00:00 2001 From: Louis Poirier Date: Sun, 4 Feb 2024 14:11:45 +0100 Subject: [PATCH 7/7] refactor: restore C++ code syntax option in . Fixes #9 --- src/app/pages/settings/settings.component.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/app/pages/settings/settings.component.ts b/src/app/pages/settings/settings.component.ts index 225130e..c8ae072 100644 --- a/src/app/pages/settings/settings.component.ts +++ b/src/app/pages/settings/settings.component.ts @@ -39,6 +39,7 @@ export class SettingsComponent implements OnInit { readonly codeOptions: AItem[] = [ {value: CodeSyntax.pseudocode, name: 'Pseudocode · Legacy', disabled: false}, {value: CodeSyntax.redscript, name: 'Redscript', disabled: false}, + {value: CodeSyntax.cppRED4ext, name: 'C++ · RED4ext / RedLib', disabled: false} ]; readonly ignoreDuplicate: FormControl = new FormControl(true); @@ -48,7 +49,7 @@ export class SettingsComponent implements OnInit { readonly highlightEmptyObject: FormControl = new FormControl(true); readonly showEmptyAccordion: FormControl = new FormControl(false); readonly mergeObject: FormControl = new FormControl(false); - readonly clipboardSyntax: FormControl = new FormControl(CodeSyntax.redscript); + readonly clipboardSyntax: FormControl = new FormControl(CodeSyntax.lua); readonly codeSyntax: FormControl = new FormControl(CodeSyntax.redscript); constructor(private readonly settingsService: SettingsService,