From 2dfd19c9e0e61fe08ab61b08fcb50ff53d1904e2 Mon Sep 17 00:00:00 2001 From: Olivier Gagnon Date: Fri, 20 Aug 2021 02:14:27 -0400 Subject: [PATCH] rename, kinda add option for tabs vs space --- src/ScriptEditor/ui/Config.ts | 3 --- src/ScriptEditor/ui/Options.ts | 4 +++ .../ui/{ConfigPopup.tsx => OptionsPopup.tsx} | 17 ++++++------ src/ScriptEditor/ui/Root.tsx | 26 +++++++++++-------- 4 files changed, 28 insertions(+), 22 deletions(-) delete mode 100644 src/ScriptEditor/ui/Config.ts create mode 100644 src/ScriptEditor/ui/Options.ts rename src/ScriptEditor/ui/{ConfigPopup.tsx => OptionsPopup.tsx} (67%) diff --git a/src/ScriptEditor/ui/Config.ts b/src/ScriptEditor/ui/Config.ts deleted file mode 100644 index de5530a69..000000000 --- a/src/ScriptEditor/ui/Config.ts +++ /dev/null @@ -1,3 +0,0 @@ -export interface Config { - theme: string; -} \ No newline at end of file diff --git a/src/ScriptEditor/ui/Options.ts b/src/ScriptEditor/ui/Options.ts new file mode 100644 index 000000000..23386c1f3 --- /dev/null +++ b/src/ScriptEditor/ui/Options.ts @@ -0,0 +1,4 @@ +export interface Options { + theme: string; + insertSpaces: boolean; +} \ No newline at end of file diff --git a/src/ScriptEditor/ui/ConfigPopup.tsx b/src/ScriptEditor/ui/OptionsPopup.tsx similarity index 67% rename from src/ScriptEditor/ui/ConfigPopup.tsx rename to src/ScriptEditor/ui/OptionsPopup.tsx index d9b72cc62..dea303c2d 100644 --- a/src/ScriptEditor/ui/ConfigPopup.tsx +++ b/src/ScriptEditor/ui/OptionsPopup.tsx @@ -1,30 +1,31 @@ import React, { useState } from 'react'; -import { Config } from "./Config"; +import { Options } from "./Options"; import { StdButton } from "../../ui/React/StdButton"; import { removePopup } from "../../ui/React/createPopup"; interface IProps { id: string; - config: Config; - save: (config: Config) => void; + options: Options; + save: (options: Options) => void; } -export function ConfigPopup(props: IProps): React.ReactElement { - const [config, setConfig] = useState(props.config); +export function OptionsPopup(props: IProps): React.ReactElement { + const [options, setOptions] = useState(props.options); function save() { - props.save(config); + props.save(options); removePopup(props.id); } function setTheme(event: React.ChangeEvent): void { - setConfig(old => { + setOptions(old => { old.theme = event.target.value; return old; }); } return (<> - diff --git a/src/ScriptEditor/ui/Root.tsx b/src/ScriptEditor/ui/Root.tsx index 53ab29dba..e410fe9dc 100644 --- a/src/ScriptEditor/ui/Root.tsx +++ b/src/ScriptEditor/ui/Root.tsx @@ -4,8 +4,8 @@ import Editor from "@monaco-editor/react"; import * as monaco from "monaco-editor"; import IStandaloneCodeEditor = monaco.editor.IStandaloneCodeEditor; import { createPopup } from "../../ui/React/createPopup"; -import { ConfigPopup } from "./ConfigPopup"; -import { Config } from "./Config"; +import { OptionsPopup } from "./OptionsPopup"; +import { Options } from "./Options"; import { js_beautify as beautifyCode } from 'js-beautify'; import { isValidFilePath } from "../../Terminal/DirectoryHelpers"; import { IPlayer } from "../../PersonObjects/IPlayer"; @@ -37,7 +37,7 @@ export function Root(props: IProps): React.ReactElement { const [filename, setFilename] = useState(props.filename); const [code, setCode] = useState(props.code); const [ram, setRAM] = useState(''); - const [config, setConfig] = useState({theme: 'vs-dark'}); + const [options, setOptions] = useState({theme: 'vs-dark', insertSpaces: false}); function save(): void { if(editorRef.current !== null) { @@ -133,6 +133,7 @@ export function Root(props: IProps): React.ReactElement { function beautify(): void { setCode(code => beautifyCode(code, { + indent_with_tabs: !options.insertSpaces, indent_size: 4, brace_style: "preserve-inline", })); @@ -142,12 +143,15 @@ export function Root(props: IProps): React.ReactElement { setFilename(event.target.value); } - function openConfig(): void { - const id="script-editor-config-options-popup"; - createPopup(id, ConfigPopup, { + function openOptions(): void { + const id="script-editor-options-popup"; + createPopup(id, OptionsPopup, { id: id, - config: {theme: config.theme}, - save: (config: Config) => setConfig(config), + options: { + theme: options.theme, + insertSpaces: options.insertSpaces, + }, + save: (options: Options) => setOptions(options), }); } @@ -196,9 +200,9 @@ export function Root(props: IProps): React.ReactElement { return (
-

Script name:

+

Script name:

- +