From 320fcf238ebe1317ea688668d6b403766d845852 Mon Sep 17 00:00:00 2001 From: Bryan Date: Wed, 26 Feb 2025 12:33:28 -0800 Subject: [PATCH] Reorganize Phoenix Editor files to be a little more discoverable (#1635) --- src/components/parcels/DictionaryTable.svelte | 18 +- .../sequencing/CommandPanel/CommandArg.svelte | 2 +- .../CommandPanel/CommandDictionary.svelte | 2 +- .../CommandPanel/CommandNumberArgDef.svelte | 2 +- .../CommandPanel/CommandPanel.svelte | 2 +- .../CommandPanel/CommandStringArgDef.svelte | 2 +- .../CommandPanel/SelectedCommand.svelte | 4 +- .../CommandPanel/TimeTagEditor.svelte | 2 +- .../sequencing/SequenceEditor.svelte | 217 +++++------------- src/components/sequencing/SequenceForm.svelte | 2 + src/components/sequencing/Sequences.svelte | 2 +- .../sequencing/form/ArgEditor.svelte | 4 +- .../sequencing/form/ArgTitle.svelte | 46 ++-- .../sequencing/form/ByteArrayEditor.svelte | 4 +- .../sequencing/form/NumEditor.svelte | 2 +- .../sequencing/form/StringEditor.svelte | 2 +- .../sequencing/form/TimeTagEditor.svelte | 2 +- src/components/ui/DataGrid/DataGrid.svelte | 9 +- .../ui/DatePicker/DatePicker.svelte | 8 +- src/constants/seq-n-grammar-constants.ts | 1 - src/stores/sequence-adaptation.ts | 9 +- src/stores/sequencing.ts | 28 ++- src/types/sequencing.ts | 40 ++-- src/utilities/effects.ts | 33 +-- .../command-info-mapper.ts} | 0 .../sequence-editor/extension-points.ts | 32 ++- .../sequence-editor/from-seq-json.ts | 2 +- src/utilities/sequence-editor/grammar.test.ts | 2 +- .../languages}/satf/sasf.test.ts | 0 .../languages/satf/satf-constants.ts} | 0 .../languages}/satf/satf-sasf-utils.test.ts | 0 .../languages}/satf/satf-sasf-utils.ts | 8 +- .../languages}/satf/satf-sasf.grammar | 0 .../languages}/satf/satf-sasf.grammar.d.ts | 0 .../languages}/satf/satf.test.ts | 0 .../languages}/satf/satf.ts | 2 +- .../languages/seq-n}/custom-folder.test.ts | 4 +- .../languages/seq-n}/custom-folder.ts | 4 +- .../languages/seq-n}/seq-n-highlighter.ts | 6 +- .../languages/seq-n}/seq-n-tree-utils.ts | 18 +- .../languages/seq-n/seq-n.grammar} | 0 .../languages/seq-n/seq-n.grammar.d.ts} | 0 .../languages/seq-n/seq-n.ts} | 2 +- .../languages/vml/cdl-dictionary.test.ts} | 2 +- .../languages/vml/cdl-dictionary.ts} | 0 .../languages/vml/vml-adaptation.ts} | 36 ++- .../languages/vml/vml-block-library.ts} | 6 +- .../languages/vml/vml-constants.ts} | 0 .../languages/vml/vml-folder.ts} | 2 +- .../languages/vml/vml-formatter.ts} | 6 +- .../languages/vml/vml-linter.ts} | 12 +- .../languages/vml/vml-snippets.ts} | 2 +- .../languages/vml/vml-tooltip.ts} | 20 +- .../languages/vml/vml-tree-utils.test.ts} | 9 +- .../languages/vml/vml-tree-utils.ts} | 10 +- .../languages}/vml/vml.grammar | 0 .../languages}/vml/vml.grammar.d.ts | 0 .../languages}/vml/vml.test.ts | 6 +- .../languages}/vml/vml.ts | 14 +- .../sequence-editor/sequence-autoindent.ts | 2 +- .../sequence-editor/sequence-completion.ts | 25 +- .../sequence-editor/sequence-constants.ts | 1 + .../sequence-editor/sequence-linter.ts | 59 +++-- .../sequence-editor/sequence-tooltip.ts | 5 +- .../sequence-utils.test.ts} | 2 +- .../sequence-utils.ts} | 151 +++++++++++- .../sequence-editor/to-seq-json.test.ts | 4 +- src/utilities/sequence-editor/to-seq-json.ts | 2 +- src/utilities/sequence-editor/token.test.ts | 2 +- 69 files changed, 507 insertions(+), 394 deletions(-) rename src/utilities/{codemirror/commandInfoMapper.ts => sequence-editor/command-info-mapper.ts} (100%) rename src/utilities/{codemirror => sequence-editor/languages}/satf/sasf.test.ts (100%) rename src/utilities/{codemirror/satf/satfConstants.ts => sequence-editor/languages/satf/satf-constants.ts} (100%) rename src/utilities/{codemirror => sequence-editor/languages}/satf/satf-sasf-utils.test.ts (100%) rename src/utilities/{codemirror => sequence-editor/languages}/satf/satf-sasf-utils.ts (99%) rename src/utilities/{codemirror => sequence-editor/languages}/satf/satf-sasf.grammar (100%) rename src/utilities/{codemirror => sequence-editor/languages}/satf/satf-sasf.grammar.d.ts (100%) rename src/utilities/{codemirror => sequence-editor/languages}/satf/satf.test.ts (100%) rename src/utilities/{codemirror => sequence-editor/languages}/satf/satf.ts (97%) rename src/utilities/{codemirror => sequence-editor/languages/seq-n}/custom-folder.test.ts (99%) rename src/utilities/{codemirror => sequence-editor/languages/seq-n}/custom-folder.ts (99%) rename src/utilities/{codemirror => sequence-editor/languages/seq-n}/seq-n-highlighter.ts (92%) rename src/utilities/{codemirror => sequence-editor/languages/seq-n}/seq-n-tree-utils.ts (86%) rename src/utilities/{codemirror/sequence.grammar => sequence-editor/languages/seq-n/seq-n.grammar} (100%) rename src/utilities/{codemirror/sequence.grammar.d.ts => sequence-editor/languages/seq-n/seq-n.grammar.d.ts} (100%) rename src/utilities/{codemirror/index.ts => sequence-editor/languages/seq-n/seq-n.ts} (98%) rename src/utilities/{codemirror/cdlDictionary.test.ts => sequence-editor/languages/vml/cdl-dictionary.test.ts} (98%) rename src/utilities/{codemirror/cdlDictionary.ts => sequence-editor/languages/vml/cdl-dictionary.ts} (100%) rename src/utilities/{codemirror/vml/vmlAdaptation.ts => sequence-editor/languages/vml/vml-adaptation.ts} (93%) rename src/utilities/{codemirror/vml/vmlBlockLibrary.ts => sequence-editor/languages/vml/vml-block-library.ts} (98%) rename src/utilities/{codemirror/vml/vmlConstants.ts => sequence-editor/languages/vml/vml-constants.ts} (100%) rename src/utilities/{codemirror/vml/vmlFolder.ts => sequence-editor/languages/vml/vml-folder.ts} (99%) rename src/utilities/{codemirror/vml/vmlFormatter.ts => sequence-editor/languages/vml/vml-formatter.ts} (98%) rename src/utilities/{codemirror/vml/vmlLinter.ts => sequence-editor/languages/vml/vml-linter.ts} (97%) rename src/utilities/{codemirror/vml/vmlSnippets.ts => sequence-editor/languages/vml/vml-snippets.ts} (98%) rename src/utilities/{codemirror/vml/vmlTooltip.ts => sequence-editor/languages/vml/vml-tooltip.ts} (89%) rename src/utilities/{codemirror/vml/vmlTreeUtils.test.ts => sequence-editor/languages/vml/vml-tree-utils.test.ts} (95%) rename src/utilities/{codemirror/vml/vmlTreeUtils.ts => sequence-editor/languages/vml/vml-tree-utils.ts} (96%) rename src/utilities/{codemirror => sequence-editor/languages}/vml/vml.grammar (100%) rename src/utilities/{codemirror => sequence-editor/languages}/vml/vml.grammar.d.ts (100%) rename src/utilities/{codemirror => sequence-editor/languages}/vml/vml.test.ts (98%) rename src/utilities/{codemirror => sequence-editor/languages}/vml/vml.ts (95%) create mode 100644 src/utilities/sequence-editor/sequence-constants.ts rename src/utilities/{codemirror/codemirror-utils.test.ts => sequence-editor/sequence-utils.test.ts} (99%) rename src/utilities/{codemirror/codemirror-utils.ts => sequence-editor/sequence-utils.ts} (58%) diff --git a/src/components/parcels/DictionaryTable.svelte b/src/components/parcels/DictionaryTable.svelte index c94dc1aef5..72e26d060f 100644 --- a/src/components/parcels/DictionaryTable.svelte +++ b/src/components/parcels/DictionaryTable.svelte @@ -5,13 +5,13 @@ import { createEventDispatcher } from 'svelte'; import type { User } from '../../types/app'; import type { DataGridColumnDef, DataGridRowSelection, RowId } from '../../types/data-grid'; - import type { DictionaryType } from '../../types/sequencing'; + import type { DictionaryMetadata } from '../../types/sequencing'; import DataGridActions from '../ui/DataGrid/DataGridActions.svelte'; import SingleActionDataGrid from '../ui/DataGrid/SingleActionDataGrid.svelte'; import Panel from '../ui/Panel.svelte'; import SectionTitle from '../ui/SectionTitle.svelte'; - export let dictionaries: DictionaryType[]; + export let dictionaries: DictionaryMetadata[]; export let selectedDictionaryIds: Record = {}; export let isEditingDictionaries: boolean = false; export let isEditingParcel: boolean = false; @@ -22,7 +22,7 @@ export let user: User | null; let columnDefs: DataGridColumnDef[]; - let dictionaryDataGrid: SingleActionDataGrid | undefined = undefined; + let dictionaryDataGrid: SingleActionDataGrid | undefined = undefined; let dictionaryColumnDefs: DataGridColumnDef[]; let displayText: string = ''; let displayTextPlural: string = ''; @@ -37,9 +37,9 @@ }>(); type CellRendererParams = { - deleteDictionary?: (dictionary: DictionaryType) => void; + deleteDictionary?: (dictionary: DictionaryMetadata) => void; }; - type DictionaryCellRendererParams = ICellRendererParams & CellRendererParams; + type DictionaryCellRendererParams = ICellRendererParams & CellRendererParams; $: isSequenceAdaptation = type === 'Sequence'; $: displayText = isSequenceAdaptation ? `${type} Adaptation` : `${type} Dictionary`; @@ -90,7 +90,7 @@ headerName: '', suppressAutoSize: true, suppressSizeToFit: true, - valueGetter: (params: ValueGetterParams) => { + valueGetter: (params: ValueGetterParams) => { const { data } = params; if (data) { @@ -150,7 +150,7 @@ ...(isEditingDictionaries ? editingDictionariesColumnDefs : []), ]; - function deleteDictionary({ id }: Pick) { + function deleteDictionary({ id }: Pick) { dispatch('delete', { id }); } @@ -162,7 +162,7 @@ * Called when a row is clicked on. * @param event */ - function onRowClicked(event: CustomEvent>) { + function onRowClicked(event: CustomEvent>) { const currentValue = selectedDictionaryIds[event.detail.data.id]; selectRow(event.detail.data.id, currentValue === undefined ? true : !currentValue); @@ -172,7 +172,7 @@ * Called when a checkbox is selected. * @param event */ - function onToggle(event: CustomEvent>) { + function onToggle(event: CustomEvent>) { const { detail: { data, newValue }, } = event; diff --git a/src/components/sequencing/CommandPanel/CommandArg.svelte b/src/components/sequencing/CommandPanel/CommandArg.svelte index 1f8fa9be22..5c7516aa00 100644 --- a/src/components/sequencing/CommandPanel/CommandArg.svelte +++ b/src/components/sequencing/CommandPanel/CommandArg.svelte @@ -8,7 +8,7 @@ isFswCommandArgumentRepeat, isNumberArg, isStringArg, - } from '../../../utilities/codemirror/codemirror-utils'; + } from '../../../utilities/sequence-editor/sequence-utils'; import CommandBooleanArgDef from './CommandBooleanArgDef.svelte'; import CommandEnumArgDef from './CommandEnumArgDef.svelte'; import CommandNumberArgDef from './CommandNumberArgDef.svelte'; diff --git a/src/components/sequencing/CommandPanel/CommandDictionary.svelte b/src/components/sequencing/CommandPanel/CommandDictionary.svelte index 20ef58a0c8..ea4b559a5d 100644 --- a/src/components/sequencing/CommandPanel/CommandDictionary.svelte +++ b/src/components/sequencing/CommandPanel/CommandDictionary.svelte @@ -7,8 +7,8 @@ import SearchIcon from '@nasa-jpl/stellar/icons/search.svg?component'; import CopyIcon from 'bootstrap-icons/icons/copy.svg?component'; import { createEventDispatcher } from 'svelte'; - import { isFswCommand, isFswCommandArgumentEnum } from '../../../utilities/codemirror/codemirror-utils'; import { getTarget } from '../../../utilities/generic'; + import { isFswCommand, isFswCommandArgumentEnum } from '../../../utilities/sequence-editor/sequence-utils'; import { showFailureToast, showSuccessToast } from '../../../utilities/toast'; import { tooltip } from '../../../utilities/tooltip'; import Input from '../../form/Input.svelte'; diff --git a/src/components/sequencing/CommandPanel/CommandNumberArgDef.svelte b/src/components/sequencing/CommandPanel/CommandNumberArgDef.svelte index 1690cba942..24feebb2f0 100644 --- a/src/components/sequencing/CommandPanel/CommandNumberArgDef.svelte +++ b/src/components/sequencing/CommandPanel/CommandNumberArgDef.svelte @@ -12,7 +12,7 @@ isFswCommandArgumentInteger, isFswCommandArgumentNumeric, isFswCommandArgumentUnsigned, - } from '../../../utilities/codemirror/codemirror-utils'; + } from '../../../utilities/sequence-editor/sequence-utils'; import Collapse from '../../Collapse.svelte'; import CommandArgUnit from './CommandArgUnit.svelte'; diff --git a/src/components/sequencing/CommandPanel/CommandPanel.svelte b/src/components/sequencing/CommandPanel/CommandPanel.svelte index 72b09a93ba..673a42e48b 100644 --- a/src/components/sequencing/CommandPanel/CommandPanel.svelte +++ b/src/components/sequencing/CommandPanel/CommandPanel.svelte @@ -5,7 +5,7 @@ import type { CommandDictionary, FswCommand, HwCommand } from '@nasa-jpl/aerie-ampcs'; import type { EditorView } from 'codemirror'; import type { ArgTextDef, TimeTagInfo } from '../../../types/sequencing'; - import type { CommandInfoMapper } from '../../../utilities/codemirror/commandInfoMapper'; + import type { CommandInfoMapper } from '../../../utilities/sequence-editor/command-info-mapper'; import Tab from '../../ui/Tabs/Tab.svelte'; import TabPanel from '../../ui/Tabs/TabPanel.svelte'; import Tabs from '../../ui/Tabs/Tabs.svelte'; diff --git a/src/components/sequencing/CommandPanel/CommandStringArgDef.svelte b/src/components/sequencing/CommandPanel/CommandStringArgDef.svelte index 4f20d54f45..4212f4d4cd 100644 --- a/src/components/sequencing/CommandPanel/CommandStringArgDef.svelte +++ b/src/components/sequencing/CommandPanel/CommandStringArgDef.svelte @@ -2,7 +2,7 @@ diff --git a/src/components/sequencing/SequenceForm.svelte b/src/components/sequencing/SequenceForm.svelte index da4d5e088d..de444192cb 100644 --- a/src/components/sequencing/SequenceForm.svelte +++ b/src/components/sequencing/SequenceForm.svelte @@ -6,6 +6,7 @@ import { base } from '$app/paths'; import type { ParameterDictionary } from '@nasa-jpl/aerie-ampcs'; import { SearchParameters } from '../../enums/searchParameters'; + import { sequenceAdaptation } from '../../stores/sequence-adaptation'; import { parameterDictionaries as parameterDictionariesStore, parcelToParameterDictionaries, @@ -118,6 +119,7 @@ fileNameAndContents.contents, parsedParameterDictionaries.filter((pd): pd is ParameterDictionary => pd !== null), parsedChannelDictionary, + $sequenceAdaptation, ); if (sequence !== undefined) { diff --git a/src/components/sequencing/Sequences.svelte b/src/components/sequencing/Sequences.svelte index f23d829494..6e566886d8 100644 --- a/src/components/sequencing/Sequences.svelte +++ b/src/components/sequencing/Sequences.svelte @@ -9,7 +9,7 @@ import { parcels, userSequences, userSequencesColumns, workspaces } from '../../stores/sequencing'; import type { User } from '../../types/app'; import type { Parcel, UserSequence, Workspace } from '../../types/sequencing'; - import { satfToSequence } from '../../utilities/codemirror/satf/satf-sasf-utils'; + import { satfToSequence } from '../../utilities/sequence-editor/languages/satf/satf-sasf-utils'; import effects from '../../utilities/effects'; import { getSearchParameterNumber, setQueryParam } from '../../utilities/generic'; import { permissionHandler } from '../../utilities/permissionHandler'; diff --git a/src/components/sequencing/form/ArgEditor.svelte b/src/components/sequencing/form/ArgEditor.svelte index 5d4956693b..d54ee2ac42 100644 --- a/src/components/sequencing/form/ArgEditor.svelte +++ b/src/components/sequencing/form/ArgEditor.svelte @@ -4,7 +4,7 @@ import type { SyntaxNode } from '@lezer/common'; import type { CommandDictionary, FswCommandArgument } from '@nasa-jpl/aerie-ampcs'; import type { ArgTextDef } from '../../../types/sequencing'; - import type { CommandInfoMapper } from '../../../utilities/codemirror/commandInfoMapper'; + import type { CommandInfoMapper } from '../../../utilities/sequence-editor/command-info-mapper'; import { getMissingArgDefs, isFswCommandArgumentBoolean, @@ -14,7 +14,7 @@ isNumberArg, quoteEscape, unquoteUnescape, - } from './../../../utilities/codemirror/codemirror-utils'; + } from '../../../utilities/sequence-editor/sequence-utils'; import AddMissingArgsButton from './AddMissingArgsButton.svelte'; import ArgTitle from './ArgTitle.svelte'; import BooleanEditor from './BooleanEditor.svelte'; diff --git a/src/components/sequencing/form/ArgTitle.svelte b/src/components/sequencing/form/ArgTitle.svelte index bd6b02ba94..2a1dc8694a 100644 --- a/src/components/sequencing/form/ArgTitle.svelte +++ b/src/components/sequencing/form/ArgTitle.svelte @@ -3,16 +3,16 @@