Skip to content

Commit 99c7e18

Browse files
committed
feat(editor): integrate AI inline completions into main editor UI
Wire orphaned InlineCompletion component and InlineCompletionStatusIndicator into the active application: - Import and render <InlineCompletion> in CodeEditor.tsx alongside other editor widgets (after LightBulbWidget) - Add InlineCompletionStatusIndicator to EnhancedStatusBar right section - Export InlineCompletion from components/editor/index.ts - Export InlineCompletionStatusIndicator, InlineCompletionToolbar, and InlineCompletionSettingsPanel from components/ai/index.ts All existing tests pass (14/14 inline completion tests). TypeScript typecheck and Vite build succeed with no errors.
1 parent 5aab28e commit 99c7e18

File tree

4 files changed

+10
-0
lines changed

4 files changed

+10
-0
lines changed

src/components/ai/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
export { ChatEditingMode, ChatEditingModeCompact, useChatEditingMode } from "./ChatEditingMode";
33
export { ContextServerPanel, ContextServerSelector } from "./ContextServerPanel";
44
export { CopilotStatusIndicator, CopilotSignInModal, CopilotSettingsPanel, useCopilotCompletions } from "./CopilotStatus";
5+
export { InlineCompletionStatusIndicator, InlineCompletionToolbar, InlineCompletionSettingsPanel } from "./InlineCompletionStatus";
56
export { useEditPredictions, EditPredictionOverlay, PredictionStatusIndicator } from "./EditPredictions";
67
export { InlineAssistant, InlineAssistantManager, useInlineAssistant } from "./InlineAssistant";
78
export { LLMSelector, ModelChip } from "./LLMSelector";

src/components/cortex/EnhancedStatusBar.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import { CortexBreadcrumb, type BreadcrumbSegment } from "./CortexBreadcrumb";
1010
import { useStatusBar, type StatusBarItemConfig } from "@/context/StatusBarContext";
1111
import { useDiagnostics } from "@/context/DiagnosticsContext";
1212
import { useWorkspaceTrust, useTrustStatus } from "@/context/WorkspaceTrustContext";
13+
import { InlineCompletionStatusIndicator } from "@/components/ai/InlineCompletionStatus";
1314

1415
export interface EnhancedStatusBarProps {
1516
breadcrumbs?: BreadcrumbSegment[];
@@ -178,6 +179,8 @@ export const EnhancedStatusBar: Component<EnhancedStatusBarProps> = (props) => {
178179
)}
179180
</For>
180181

182+
<InlineCompletionStatusIndicator />
183+
181184
<CortexTooltip content={`Line ${cursorPos().line}, Column ${cursorPos().column}`} position="top">
182185
<div style={itemStyle} onClick={handleCursorClick}>
183186
<span>Ln {cursorPos().line}, Col {cursorPos().column}</span>

src/components/editor/CodeEditor.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ import { loadStylesheet } from "@/utils/lazyStyles";
4242
loadStylesheet("editor");
4343
loadStylesheet("editor-features");
4444
import { LightBulbWidget } from "./LightBulbWidget";
45+
import { InlineCompletion } from "./InlineCompletion";
4546
import {
4647
updateCodeLensSettings,
4748
updateDebugHoverState,
@@ -832,6 +833,7 @@ export function CodeEditor(props: CodeEditorProps) {
832833
<ExceptionWidget lineHeight={20} editorTopOffset={0} onContinue={() => debug.continue_()} onConfigureBreakpoint={(exceptionId) => { editorLogger.debug("Configure breakpoint for exception:", exceptionId); }} />
833834
</Show>
834835
<LightBulbWidget editor={instance.editor()} monaco={instance.monaco()} uri={currentUri()} />
836+
<InlineCompletion editor={instance.editor()} monaco={instance.monaco()} />
835837
</div>
836838
);
837839
}

src/components/editor/index.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,3 +160,7 @@ export { EditorArea } from "./EditorArea";
160160
export type { EditorAreaProps } from "./EditorArea";
161161
export { WelcomeTab } from "./WelcomeTab";
162162
export type { WelcomeTabProps } from "./WelcomeTab";
163+
164+
// Inline Completion (AI ghost text)
165+
export { InlineCompletion } from "./InlineCompletion";
166+
export type { InlineCompletionProps } from "./InlineCompletion";

0 commit comments

Comments
 (0)