inlineDiffsService -> editCodeService

This commit is contained in:
Andrew Pareles 2025-02-14 21:43:38 -08:00
parent 6ad48ffa20
commit d91ec9da2e
7 changed files with 26 additions and 40 deletions

View file

@ -27,7 +27,7 @@ import { URI } from '../../../../base/common/uri.js';
import { IConsistentEditorItemService, IConsistentItemService } from './helperServices/consistentItemService.js';
import { voidPrefixAndSuffix, ctrlKStream_userMessage, ctrlKStream_systemMessage, fastApply_rewritewholething_userMessage, fastApply_rewritewholething_systemMessage, defaultQuickEditFimTags, searchReplace_userMessage, searchReplace_systemMessage } from './prompt/prompts.js';
import { mountCtrlK } from '../browser/react/out/quick-edit-tsx/index.js'
import { mountCtrlK } from './react/out/quick-edit-tsx/index.js'
import { QuickEditPropsType } from './quickEditActions.js';
import { IModelContentChangedEvent } from '../../../../editor/common/textModelEvents.js';
import { extractCodeFromFIM, extractCodeFromRegular, ExtractedSearchReplaceBlock, extractSearchReplaceBlocks } from './helpers/extractCodeFromResult.js';
@ -215,7 +215,7 @@ type HistorySnapshot = {
type StreamLocationMutable = { line: number, col: number, addedSplitYet: boolean, originalCodeStartLine: number }
export interface IInlineDiffsService {
export interface IEditCodeService {
readonly _serviceBrand: undefined;
startApplying(opts: StartApplyingOpts): number | undefined;
interruptStreaming(diffareaid: number): void;
@ -224,9 +224,9 @@ export interface IInlineDiffsService {
// testDiffs(): void;
}
export const IInlineDiffsService = createDecorator<IInlineDiffsService>('inlineDiffAreasService');
export const IEditCodeService = createDecorator<IEditCodeService>('editCodeService');
class InlineDiffsService extends Disposable implements IInlineDiffsService {
class EditCodeService extends Disposable implements IEditCodeService {
_serviceBrand: undefined;
@ -810,7 +810,7 @@ class InlineDiffsService extends Disposable implements IInlineDiffsService {
type: UndoRedoElementType.Resource,
resource: uri,
label: 'Void Changes',
code: 'undoredo.inlineDiffs',
code: 'undoredo.editCode',
undo: () => { restoreDiffAreas(beforeSnapshot) },
redo: () => { if (afterSnapshot) restoreDiffAreas(afterSnapshot) }
}
@ -1814,7 +1814,7 @@ class InlineDiffsService extends Disposable implements IInlineDiffsService {
}
registerSingleton(IInlineDiffsService, InlineDiffsService, InstantiationType.Eager);
registerSingleton(IEditCodeService, EditCodeService, InstantiationType.Eager);
const acceptBg = '#1a7431'
const acceptAllBg = '#1e8538'
@ -2018,17 +2018,3 @@ class AcceptAllRejectAllWidget extends Widget implements IOverlayWidget {
// registerAction2(class extends Action2 {
// constructor() {
// super({
// id: 'void.testDiff',
// title: localize2('voidTestDiff', 'Void Test Diff'),
// f1: true,
// });
// }
// async run(accessor: ServicesAccessor): Promise<void> {
// const inlineDiffsService = accessor.get(IInlineDiffsService)
// // inlineDiffsService.testDiffs()
// }
// })

View file

@ -8,7 +8,7 @@ import { Action2, registerAction2 } from '../../../../platform/actions/common/ac
import { ServicesAccessor } from '../../../../platform/instantiation/common/instantiation.js';
import { KeybindingWeight } from '../../../../platform/keybinding/common/keybindingsRegistry.js';
import { ICodeEditorService } from '../../../../editor/browser/services/codeEditorService.js';
import { IInlineDiffsService } from './inlineDiffsService.js';
import { IEditCodeService } from './editCodeService.js';
import { roundRangeToLines } from './sidebarActions.js';
import { VOID_CTRL_K_ACTION_ID } from './actionIDs.js';
import { localize2 } from '../../../../nls.js';
@ -63,7 +63,7 @@ registerAction2(class extends Action2 {
const { startLineNumber: startLine, endLineNumber: endLine } = selection
const inlineDiffsService = accessor.get(IInlineDiffsService)
inlineDiffsService.addCtrlKZone({ startLine, endLine, editor })
const editCodeService = accessor.get(IEditCodeService)
editCodeService.addCtrlKZone({ startLine, endLine, editor })
}
});

View file

@ -7,7 +7,7 @@ import React, { JSX, useCallback, useEffect, useState } from 'react'
import { marked, MarkedToken, Token } from 'marked'
import { BlockCode } from './BlockCode.js'
import { useAccessor, useChatThreadsState, useChatThreadsStreamState } from '../util/services.js'
import { ChatMessageLocation, } from '../../../searchAndReplaceService.js'
import { ChatMessageLocation, } from '../../../aiRegexService.js'
import { nameToVscodeLanguage } from '../../../helpers/detectLanguage.js'
@ -33,7 +33,7 @@ const ApplyButtonsOnHover = ({ applyStr, applyBoxId }: { applyStr: string, apply
const accessor = useAccessor()
const [copyButtonState, setCopyButtonState] = useState(CopyButtonState.Copy)
const inlineDiffService = accessor.get('IInlineDiffsService')
const editCodeService = accessor.get('IEditCodeService')
const clipboardService = accessor.get('IClipboardService')
const metricsService = accessor.get('IMetricsService')
@ -56,13 +56,13 @@ const ApplyButtonsOnHover = ({ applyStr, applyBoxId }: { applyStr: string, apply
const onApply = useCallback(() => {
inlineDiffService.startApplying({
editCodeService.startApplying({
from: 'ClickApply',
type: 'searchReplace',
applyStr,
})
metricsService.capture('Apply Code', { length: applyStr.length }) // capture the length only
}, [metricsService, inlineDiffService, applyStr])
}, [metricsService, editCodeService, applyStr])
const isSingleLine = !applyStr.includes('\n')

View file

@ -24,7 +24,7 @@ export const QuickEditChat = ({
}: QuickEditPropsType) => {
const accessor = useAccessor()
const inlineDiffsService = accessor.get('IInlineDiffsService')
const editCodeService = accessor.get('IEditCodeService')
const sizerRef = useRef<HTMLDivElement | null>(null)
const textAreaRef = useRef<HTMLTextAreaElement | null>(null)
const textAreaFnsRef = useRef<TextAreaFns | null>(null)
@ -57,26 +57,26 @@ export const QuickEditChat = ({
if (currStreamingDiffZoneRef.current !== null) return
textAreaFnsRef.current?.disable()
const id = inlineDiffsService.startApplying({
const id = editCodeService.startApplying({
from: 'QuickEdit',
type:'rewrite',
diffareaid: diffareaid,
})
setCurrentlyStreamingDiffZone(id ?? null)
}, [currStreamingDiffZoneRef, setCurrentlyStreamingDiffZone, isDisabled, inlineDiffsService, diffareaid])
}, [currStreamingDiffZoneRef, setCurrentlyStreamingDiffZone, isDisabled, editCodeService, diffareaid])
const onInterrupt = useCallback(() => {
if (currStreamingDiffZoneRef.current === null) return
inlineDiffsService.interruptStreaming(currStreamingDiffZoneRef.current)
editCodeService.interruptStreaming(currStreamingDiffZoneRef.current)
setCurrentlyStreamingDiffZone(null)
textAreaFnsRef.current?.enable()
}, [currStreamingDiffZoneRef, setCurrentlyStreamingDiffZone, inlineDiffsService])
}, [currStreamingDiffZoneRef, setCurrentlyStreamingDiffZone, editCodeService])
const onX = useCallback(() => {
onInterrupt()
inlineDiffsService.removeCtrlKZone({ diffareaid })
}, [inlineDiffsService, diffareaid])
editCodeService.removeCtrlKZone({ diffareaid })
}, [editCodeService, diffareaid])
useScrollbarStyles(sizerRef)

View file

@ -24,7 +24,7 @@ import { VOID_OPEN_SETTINGS_ACTION_ID } from '../../../voidSettingsPane.js';
import { Pencil, X } from 'lucide-react';
import { FeatureName, isFeatureNameDisabled } from '../../../../../../../workbench/contrib/void/common/voidSettingsTypes.js';
import { WarningBox } from '../void-settings-tsx/WarningBox.js';
import { ChatMessageLocation } from '../../../searchAndReplaceService.js';
import { ChatMessageLocation } from '../../../aiRegexService.js';

View file

@ -28,7 +28,7 @@ import { IThemeService } from '../../../../../../../platform/theme/common/themeS
import { ILLMMessageService } from '../../../../../../../workbench/contrib/void/common/llmMessageService.js';
import { IRefreshModelService } from '../../../../../../../workbench/contrib/void/common/refreshModelService.js';
import { IVoidSettingsService } from '../../../../../../../workbench/contrib/void/common/voidSettingsService.js';
import { IInlineDiffsService } from '../../../inlineDiffsService.js';
import { IEditCodeService } from '../../../editCodeService.js';
import { IVoidUriStateService } from '../../../voidUriStateService.js';
import { IQuickEditStateService } from '../../../quickEditStateService.js';
import { ISidebarStateService } from '../../../sidebarStateService.js';
@ -103,10 +103,10 @@ export const _registerServices = (accessor: ServicesAccessor) => {
settingsStateService: accessor.get(IVoidSettingsService),
refreshModelService: accessor.get(IRefreshModelService),
themeService: accessor.get(IThemeService),
inlineDiffsService: accessor.get(IInlineDiffsService),
editCodeService: accessor.get(IEditCodeService),
}
const { uriStateService, sidebarStateService, quickEditStateService, settingsStateService, chatThreadsStateService, refreshModelService, themeService, inlineDiffsService } = stateServices
const { uriStateService, sidebarStateService, quickEditStateService, settingsStateService, chatThreadsStateService, refreshModelService, themeService, editCodeService } = stateServices
uriState = uriStateService.state
disposables.push(
@ -192,7 +192,7 @@ const getReactAccessor = (accessor: ServicesAccessor) => {
ILLMMessageService: accessor.get(ILLMMessageService),
IRefreshModelService: accessor.get(IRefreshModelService),
IVoidSettingsService: accessor.get(IVoidSettingsService),
IInlineDiffsService: accessor.get(IInlineDiffsService),
IEditCodeService: accessor.get(IEditCodeService),
IVoidUriStateService: accessor.get(IVoidUriStateService),
IQuickEditStateService: accessor.get(IQuickEditStateService),
ISidebarStateService: accessor.get(ISidebarStateService),

View file

@ -5,7 +5,7 @@
// register inline diffs
import './inlineDiffsService.js'
import './editCodeService.js'
// register Sidebar pane, state, actions (keybinds, menus) (Ctrl+L)
import './sidebarActions.js'