Rust side snippet completions (#2096)

* updates;

Signed-off-by: Jess Frazelle <github@jessfraz.com>

docs

Signed-off-by: Jess Frazelle <github@jessfraz.com>

remove descriptions

Signed-off-by: Jess Frazelle <github@jessfraz.com>

get snippet tests

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

more autocomplete tests

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

tab to end of snippets

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)

A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* fixes

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)

* emptu

* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)

* empty

* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)

* empty

* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)

* empty

---------

Signed-off-by: Jess Frazelle <github@jessfraz.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
This commit is contained in:
Jess Frazelle
2024-04-12 13:28:58 -07:00
committed by GitHub
parent ba6b3d9a8d
commit 63be31971f
22 changed files with 352 additions and 45 deletions

View File

@ -11,7 +11,9 @@ import { useSettingsAuthContext } from 'hooks/useSettingsAuthContext'
import { useConvertToVariable } from 'hooks/useToolbarGuards'
import { Themes } from 'lib/theme'
import { useEffect, useMemo, useRef } from 'react'
import { indentWithTab } from '@codemirror/commands'
import { linter, lintGutter } from '@codemirror/lint'
import { foldGutter } from '@codemirror/language'
import { useStore } from 'useStore'
import { processCodeMirrorRanges } from 'lib/selections'
import { EditorView, lineHighlightField } from 'editor/highlightextension'
@ -26,6 +28,7 @@ import { ModelingMachineEvent } from 'machines/modelingMachine'
import { NetworkHealthState, useNetworkStatus } from './NetworkHealthIndicator'
import { useHotkeys } from 'react-hotkeys-hook'
import { useLspContext } from './LspProvider'
import { Prec } from '@codemirror/state'
export const editorShortcutMeta = {
formatCode: {
@ -175,13 +178,18 @@ export const TextEditor = ({
]),
] as Extension[]
if (kclLSP) extensions.push(kclLSP)
if (kclLSP) extensions.push(Prec.highest(kclLSP))
if (copilotLSP) extensions.push(copilotLSP)
// We do the tab keymap after the LSPs with the lowest precedence.
// Specifically, tab for in a completion.
extensions.push(Prec.lowest(keymap.of([indentWithTab])))
// These extensions have proven to mess with vitest
if (!TEST) {
extensions.push(
lintGutter(),
foldGutter(),
linter((_view) => {
return kclErrToDiagnostic(errors)
}),
@ -238,6 +246,7 @@ export const TextEditor = ({
onUpdate={onUpdate}
theme={theme}
onCreateEditor={(_editorView) => setEditorView(_editorView)}
indentWithTab={false}
/>
</div>
)