Skip to content

Commit

Permalink
misc. webview<->exthost code cleanup (#4681)
Browse files Browse the repository at this point in the history
  • Loading branch information
sqs authored Jun 26, 2024
1 parent d121536 commit df399f2
Show file tree
Hide file tree
Showing 9 changed files with 7 additions and 155 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ object Constants {
const val errored = "errored"
const val complete = "complete"
const val config = "config"
const val search_config = "search:config"
const val history = "history"
const val transcript = "transcript"
const val view = "view"
Expand All @@ -19,11 +18,8 @@ object Constants {
const val clientState = "clientState"
const val clientAction = "clientAction"
const val chatModels = "chatModels"
const val `update-search-results` = "update-search-results"
const val `index-updated` = "index-updated"
const val `enhanced-context` = "enhanced-context"
const val attribution = "attribution"
const val setChatEnabledConfigFeature = "setChatEnabledConfigFeature"
const val `context_remote-repos` = "context/remote-repos"
const val setConfigFeatures = "setConfigFeatures"
const val allMentionProvidersMetadata = "allMentionProvidersMetadata"
Expand Down Expand Up @@ -130,7 +126,6 @@ object Constants {
const val `web-sign-in-token` = "web-sign-in-token"
const val getUserContext = "getUserContext"
const val queryContextItems = "queryContextItems"
const val `show-search-result` = "show-search-result"
const val reset = "reset"
const val `attribution-search` = "attribution-search"
const val troubleshoot_reloadAuth = "troubleshoot/reloadAuth"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ sealed class ExtensionMessage {
JsonDeserializer { element: JsonElement, _: Type, context: JsonDeserializationContext ->
when (element.getAsJsonObject().get("type").getAsString()) {
"config" -> context.deserialize<ConfigExtensionMessage>(element, ConfigExtensionMessage::class.java)
"search:config" -> context.deserialize<Search_configExtensionMessage>(element, Search_configExtensionMessage::class.java)
"history" -> context.deserialize<HistoryExtensionMessage>(element, HistoryExtensionMessage::class.java)
"transcript" -> context.deserialize<TranscriptExtensionMessage>(element, TranscriptExtensionMessage::class.java)
"view" -> context.deserialize<ViewExtensionMessage>(element, ViewExtensionMessage::class.java)
Expand All @@ -24,11 +23,8 @@ sealed class ExtensionMessage {
"clientState" -> context.deserialize<ClientStateExtensionMessage>(element, ClientStateExtensionMessage::class.java)
"clientAction" -> context.deserialize<ClientActionExtensionMessage>(element, ClientActionExtensionMessage::class.java)
"chatModels" -> context.deserialize<ChatModelsExtensionMessage>(element, ChatModelsExtensionMessage::class.java)
"update-search-results" -> context.deserialize<`update-search-resultsExtensionMessage`>(element, `update-search-resultsExtensionMessage`::class.java)
"index-updated" -> context.deserialize<`index-updatedExtensionMessage`>(element, `index-updatedExtensionMessage`::class.java)
"enhanced-context" -> context.deserialize<`enhanced-contextExtensionMessage`>(element, `enhanced-contextExtensionMessage`::class.java)
"attribution" -> context.deserialize<AttributionExtensionMessage>(element, AttributionExtensionMessage::class.java)
"setChatEnabledConfigFeature" -> context.deserialize<SetChatEnabledConfigFeatureExtensionMessage>(element, SetChatEnabledConfigFeatureExtensionMessage::class.java)
"context/remote-repos" -> context.deserialize<`context_remote-reposExtensionMessage`>(element, `context_remote-reposExtensionMessage`::class.java)
"setConfigFeatures" -> context.deserialize<SetConfigFeaturesExtensionMessage>(element, SetConfigFeaturesExtensionMessage::class.java)
"allMentionProvidersMetadata" -> context.deserialize<AllMentionProvidersMetadataExtensionMessage>(element, AllMentionProvidersMetadataExtensionMessage::class.java)
Expand All @@ -50,16 +46,6 @@ data class ConfigExtensionMessage(
}
}

data class Search_configExtensionMessage(
val type: TypeEnum, // Oneof: search:config
val workspaceFolderUris: List<String>,
) : ExtensionMessage() {

enum class TypeEnum {
@SerializedName("search:config") Search_config,
}
}

data class HistoryExtensionMessage(
val type: TypeEnum, // Oneof: history
val localHistory: UserLocalHistory? = null,
Expand Down Expand Up @@ -152,27 +138,6 @@ data class ChatModelsExtensionMessage(
}
}

data class `update-search-resultsExtensionMessage`(
val type: TypeEnum, // Oneof: update-search-results
val results: List<SearchPanelFile>,
val query: String,
) : ExtensionMessage() {

enum class TypeEnum {
@SerializedName("update-search-results") `Update-search-results`,
}
}

data class `index-updatedExtensionMessage`(
val type: TypeEnum, // Oneof: index-updated
val scopeDir: String,
) : ExtensionMessage() {

enum class TypeEnum {
@SerializedName("index-updated") `Index-updated`,
}
}

data class `enhanced-contextExtensionMessage`(
val type: TypeEnum, // Oneof: enhanced-context
val enhancedContextStatus: EnhancedContextContextT,
Expand All @@ -195,16 +160,6 @@ data class AttributionExtensionMessage(
}
}

data class SetChatEnabledConfigFeatureExtensionMessage(
val type: TypeEnum, // Oneof: setChatEnabledConfigFeature
val data: Boolean,
) : ExtensionMessage() {

enum class TypeEnum {
@SerializedName("setChatEnabledConfigFeature") SetChatEnabledConfigFeature,
}
}

data class `context_remote-reposExtensionMessage`(
val type: TypeEnum, // Oneof: context/remote-repos
val repos: List<Repo>,
Expand Down

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,6 @@ sealed class WebviewMessage {
"simplified-onboarding" -> context.deserialize<`simplified-onboardingWebviewMessage`>(element, `simplified-onboardingWebviewMessage`::class.java)
"getUserContext" -> context.deserialize<GetUserContextWebviewMessage>(element, GetUserContextWebviewMessage::class.java)
"queryContextItems" -> context.deserialize<QueryContextItemsWebviewMessage>(element, QueryContextItemsWebviewMessage::class.java)
"search" -> context.deserialize<SearchWebviewMessage>(element, SearchWebviewMessage::class.java)
"show-search-result" -> context.deserialize<`show-search-resultWebviewMessage`>(element, `show-search-resultWebviewMessage`::class.java)
"reset" -> context.deserialize<ResetWebviewMessage>(element, ResetWebviewMessage::class.java)
"attribution-search" -> context.deserialize<`attribution-searchWebviewMessage`>(element, `attribution-searchWebviewMessage`::class.java)
"troubleshoot/reloadAuth" -> context.deserialize<Troubleshoot_reloadAuthWebviewMessage>(element, Troubleshoot_reloadAuthWebviewMessage::class.java)
Expand Down Expand Up @@ -376,27 +374,6 @@ data class QueryContextItemsWebviewMessage(
}
}

data class SearchWebviewMessage(
val command: CommandEnum, // Oneof: search
val query: String,
) : WebviewMessage() {

enum class CommandEnum {
@SerializedName("search") Search,
}
}

data class `show-search-resultWebviewMessage`(
val command: CommandEnum, // Oneof: show-search-result
val uri: Uri,
val range: RangeData,
) : WebviewMessage() {

enum class CommandEnum {
@SerializedName("show-search-result") `Show-search-result`,
}
}

data class ResetWebviewMessage(
val command: CommandEnum, // Oneof: reset
) : WebviewMessage() {
Expand Down
4 changes: 0 additions & 4 deletions lib/shared/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -151,13 +151,9 @@ export {
type CompletionResponseGenerator,
} from './inferenceClient/misc'
export type {
ContextResult,
FilenameContextFetcher,
IndexedKeywordContextFetcher,
LocalEmbeddingsFetcher,
Result,
SearchPanelFile,
SearchPanelSnippet,
} from './local-context'
export { logDebug, logError, setLogger } from './logger'
export {
Expand Down
29 changes: 0 additions & 29 deletions lib/shared/src/local-context/index.ts
Original file line number Diff line number Diff line change
@@ -1,20 +1,7 @@
import type { URI } from 'vscode-uri'

import type { RangeData } from '..'
import type { ContextItem } from '../codebase-context/messages'
import type { PromptString } from '../prompt/prompt-string'
import type { EmbeddingsSearchResult } from '../sourcegraph-api/graphql/client'

export type ContextResult = ContextItem & {
repoName?: string
revision?: string
content: string
}

export interface FilenameContextFetcher {
getContext(query: PromptString, numResults: number): Promise<ContextResult[]>
}

export interface LocalEmbeddingsFetcher {
getContext(query: PromptString, numResults: number): Promise<EmbeddingsSearchResult[]>
}
Expand Down Expand Up @@ -45,19 +32,3 @@ export interface Result {
export interface IndexedKeywordContextFetcher {
getResults(query: PromptString, scopeDirs: URI[]): Promise<Promise<Result[]>[]>
}

/**
* File result that renders in the search panel webview
*/
export interface SearchPanelFile {
uri: URI
snippets: SearchPanelSnippet[]
}

/**
* Snippet result that renders in the search panel webview
*/
export interface SearchPanelSnippet {
contents: string
range: RangeData
}
22 changes: 7 additions & 15 deletions vscode/src/chat/chat-view/SimpleChatPanelProvider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -528,23 +528,17 @@ export class SimpleChatPanelProvider
public syncAuthStatus(): void {
// Run this async because this method may be called during initialization
// and awaiting on this.postMessage may result in a deadlock
const runAsync = async () => {
const authStatus = this.authProvider.getAuthStatus()
const configForWebview = await this.getConfigForWebview()
const workspaceFolderUris =
vscode.workspace.workspaceFolders?.map(folder => folder.uri.toString()) ?? []
await this.postMessage({
type: 'config',
config: configForWebview,
authStatus,
workspaceFolderUris,
})
}
void runAsync()
void this.sendConfig()
}

// When the webview sends the 'ready' message, respond by posting the view config
private async handleReady(): Promise<void> {
await this.sendConfig()
// Update the chat model providers again to ensure the correct token limit is set on ready
this.handleSetChatModel(this.chatModel.modelID)
}

private async sendConfig(): Promise<void> {
const authStatus = this.authProvider.getAuthStatus()
const configForWebview = await this.getConfigForWebview()
const workspaceFolderUris =
Expand All @@ -558,8 +552,6 @@ export class SimpleChatPanelProvider
logDebug('SimpleChatPanelProvider', 'updateViewConfig', {
verbose: configForWebview,
})
// Update the chat model providers again to ensure the correct token limit is set on ready
this.handleSetChatModel(this.chatModel.modelID)
}

private initDoer = new InitDoer<boolean | undefined>()
Expand Down
18 changes: 0 additions & 18 deletions vscode/src/chat/protocol.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ import type {
MentionQuery,
Model,
RangeData,
SearchPanelFile,
SerializedChatMessage,
TelemetryEventProperties,
UserLocalHistory,
Expand Down Expand Up @@ -128,12 +127,6 @@ export type WebviewMessage =
command: 'queryContextItems'
query: MentionQuery
}
| { command: 'search'; query: string }
| {
command: 'show-search-result'
uri: URI
range: RangeData
}
| {
command: 'reset'
}
Expand All @@ -158,10 +151,6 @@ export type ExtensionMessage =
authStatus: AuthStatus
workspaceFolderUris: string[]
}
| {
type: 'search:config'
workspaceFolderUris: string[]
}
| { type: 'history'; localHistory?: UserLocalHistory | undefined | null }
| ({ type: 'transcript' } & ExtensionTranscriptMessage)
| { type: 'view'; view: View }
Expand All @@ -177,15 +166,8 @@ export type ExtensionMessage =
| { type: 'clientState'; value: ClientStateForWebview }
| { type: 'clientAction'; addContextItemsToLastHumanInput: ContextItem[] }
| { type: 'chatModels'; models: Model[] }
| {
type: 'update-search-results'
results: SearchPanelFile[]
query: string
}
| { type: 'index-updated'; scopeDir: string }
| { type: 'enhanced-context'; enhancedContextStatus: EnhancedContextContextT }
| ({ type: 'attribution' } & ExtensionAttributionMessage)
| { type: 'setChatEnabledConfigFeature'; data: boolean }
| { type: 'context/remote-repos'; repos: Repo[] }
| {
type: 'setConfigFeatures'
Expand Down

0 comments on commit df399f2

Please sign in to comment.