Fix move only working first time (#850)

* nuke fixIdMappings

* update readme

* remove sourceRangeMap as it was redundant

repeated state already covered by the artifactMap

* bug fix, name conflict

* bug fix

* update artifact map when sketch is first created

* update artifact map for line generation too

* fmt

* update move state to allow selections

* allow for selection of vertices

some what hacky, but better than nothing

* unnecessary react hook dependency

* generic react linting

* move working for non-execute case

* block partial contrained things too for now
This commit is contained in:
Kurt Hutten
2023-10-14 03:47:46 +11:00
committed by GitHub
parent 4853872614
commit 71d1bb70ef
12 changed files with 316 additions and 194 deletions

View File

@ -11,7 +11,7 @@ import { useCommandsContext } from 'hooks/useCommandsContext'
import { useGlobalStateContext } from 'hooks/useGlobalStateContext'
import { useConvertToVariable } from 'hooks/useToolbarGuards'
import { Themes } from 'lib/theme'
import { useMemo, useState } from 'react'
import { useMemo } from 'react'
import { linter, lintGutter } from '@codemirror/lint'
import { Selections, useStore } from 'useStore'
import { LanguageServerClient } from 'editor/lsp'
@ -161,16 +161,17 @@ export const TextEditor = ({
const idBasedSelections = codeBasedSelections
.map(({ type, range }) => {
const hasOverlap = Object.entries(
engineCommandManager.sourceRangeMap || {}
).filter(([_, sourceRange]) => {
return isOverlap(sourceRange, range)
engineCommandManager.artifactMap || {}
).filter(([_, { range: artifactRange }]) => {
return artifactRange && isOverlap(artifactRange, range)
})
if (hasOverlap.length) {
return {
type,
id: hasOverlap[0][0],
id: hasOverlap?.[0]?.[0],
}
}
return null
})
.filter(Boolean) as any
@ -269,7 +270,7 @@ export const TextEditor = ({
}
return extensions
}, [kclLSP, textWrapping])
}, [kclLSP, textWrapping, convertCallback])
return (
<div