Add ability to open KCL samples in-app (#3912)

* Add a shell script to get the list of KCL samples into the app

* Add support for overwriting current file with sample

* Move these KCL commands down into FileMachineProvider

* Add support for creating a new file on desktop

* Make it so these files aren't set to "renaming mode" right away

* Add support for initializing default values that are functions

* Add E2E tests

* Add a code menu item to load a sample

* Fix tsc issues

* Remove `yarn fetch:samples` from `yarn postinstall`

* Remove change to arg initialization logic, I was holding it wrong

* Switch to use new manifest file from kcl-samples repo

* Update tests now that we use proper sample titles

* Remove double-load from units menu test

* @jtran feedback

* Don't encode `https://` that's silly

* fmt

* Update e2e/playwright/testing-samples-loading.spec.ts

Co-authored-by: Kurt Hutten <k.hutten@protonmail.ch>

* Test feedback

* Add a test step to actually check the file contents were written to (@Irev-Dev feedback)

---------

Co-authored-by: Kurt Hutten <k.hutten@protonmail.ch>
This commit is contained in:
Frank Noirot
2024-09-23 14:35:38 -04:00
committed by GitHub
parent 1d1bb8cee0
commit aee1d66e56
21 changed files with 693 additions and 46 deletions

View File

@ -469,8 +469,9 @@ export type ResolvedSelectionType = [Selection['type'] | 'other', number]
* @returns
*/
export function getSelectionType(
selection: Selections
selection?: Selections
): ResolvedSelectionType[] {
if (!selection) return []
const extrudableCount = selection.codeBasedSelections.filter((_, i) => {
const singleSelection = {
...selection,
@ -485,7 +486,7 @@ export function getSelectionType(
}
export function getSelectionTypeDisplayText(
selection: Selections
selection?: Selections
): string | null {
const selectionsByType = getSelectionType(selection)