Code view:

A painting is a person's account of this edit as text, recorded independently of the node mapping - a rendering often has several equally defensible answers where the mapping has one. Deletions and insertions carry no position on the opposite side in a painting, so that panel draws no caret for them.

Before

…lines 1–840 unchanged (840 lines)
841 }
842 list_state.splice_focusable(
843 0..0,
844 (0..count).map(|ix| view_state.entry(ix)?.focus_handle(cx)),
845 );
846 });
847
848 AgentDiff::set_active_thread(&self.workspace, thread.clone(), window, cx);
849
850 let connection = thread.read(cx).connection().clone();
851 let session_id = thread.read(cx).session_id().clone();
852
853 // Check for config options first
…lines 854–6309 unchanged (5456 lines)

After

…lines 1–841 unchanged (841 lines)
842 list_state.splice_focusable(
843 0..0,
844 (0..count).map(|ix| view_state.entry(ix)?.focus_handle(cx)),
845 );
846 });
847
848 if let Some(scroll_position) = thread.read(cx).ui_scroll_position() {
849 list_state.scroll_to(scroll_position);
850 }
851
852 AgentDiff::set_active_thread(&self.workspace, thread.clone(), window, cx);
853
854 let connection = thread.read(cx).connection().clone();
855 let session_id = thread.read(cx).session_id().clone();
856
…lines 857–6313 unchanged (5457 lines)

Before

source_file
use_declaration (+43 nodes collapsed)
use_declaration
use "use"
scoped_use_list
identifier "acp_thread"
:: "::"
use_list
{ "{"
identifier "AgentConnection"
, ","
identifier "Plan"
} "}"
; ";"
use_declaration
use "use"
scoped_use_list
identifier "action_log"
:: "::"
use_list
{ "{"
identifier "ActionLog"
, ","
identifier "ActionLogTelemetry"
} "}"
; ";"
use_declaration
use "use"
scoped_use_list
identifier "agent"
:: "::"
use_list
{ "{"
identifier "NativeAgentServer"
, ","
identifier "NativeAgentSessionList"
, ","
identifier "SharedThread"
, ","
identifier "ThreadStore"
} "}"
; ";"
use_declaration
use "use"
scoped_use_list
identifier "agent_client_protocol"
:: "::"
use_list
{ "{"
use_as_clause
self "self"
as "as"
identifier "acp"
, ","
identifier "PromptCapabilities"
} "}"
; ";"
use_declaration
use "use"
scoped_use_list
identifier "agent_servers"
:: "::"
use_list
{ "{"
identifier "AgentServer"
, ","
identifier "AgentServerDelegate"
} "}"
; ";"
use_declaration
use "use"
scoped_use_list
identifier "agent_settings"
:: "::"
use_list
{ "{"
identifier "AgentProfileId"
, ","
identifier "AgentSettings"
} "}"
; ";"
use_declaration
use "use"
scoped_use_list
identifier "anyhow"
:: "::"
use_list
{ "{"
identifier "Result"
, ","
identifier "anyhow"
} "}"
; ";"
use_declaration
use "use"
scoped_identifier
identifier "arrayvec"
:: "::"
identifier "ArrayVec"
; ";"
use_declaration
use "use"
scoped_use_list
identifier "audio"
:: "::"
use_list
{ "{"
identifier "Audio"
, ","
identifier "Sound"
} "}"
; ";"
use_declaration
use "use"
scoped_identifier
identifier "buffer_diff"
:: "::"
identifier "BufferDiff"
; ";"
use_declaration
use "use"
scoped_identifier
identifier "client"
:: "::"
identifier "zed_urls"
; ";"
use_declaration
use "use"
scoped_use_list
identifier "collections"
:: "::"
use_list
{ "{"
identifier "HashMap"
, ","
identifier "HashSet"
, ","
identifier "IndexMap"
} "}"
; ";"
use_declaration
use "use"
scoped_identifier
scoped_identifier
identifier "editor"
:: "::"
identifier "scroll"
:: "::"
identifier "Autoscroll"
; ";"
use_declaration (+23 nodes collapsed)
use_declaration
use "use"
scoped_use_list
identifier "feature_flags"
:: "::"
use_list
{ "{"
identifier "AgentSharingFeatureFlag"
, ","
identifier "AgentV2FeatureFlag"
, ","
use_as_clause
identifier "FeatureFlagAppExt"
as "as"
identifier "_"
} "}"
; ";"
use_declaration
use "use"
scoped_identifier
identifier "file_icons"
:: "::"
identifier "FileIcons"
; ";"
use_declaration
use "use"
scoped_identifier
identifier "fs"
:: "::"
identifier "Fs"
; ";"
use_declaration
use "use"
use_as_clause
scoped_identifier
identifier "futures"
:: "::"
identifier "FutureExt"
as "as"
identifier "_"
; ";"
use_declaration (+79 nodes collapsed)
use_declaration
use "use"
scoped_identifier
identifier "language"
:: "::"
identifier "Buffer"
; ";"
use_declaration
use "use"
scoped_identifier
identifier "language_model"
:: "::"
identifier "LanguageModelRegistry"
; ";"
use_declaration
use "use"
scoped_use_list
identifier "markdown"
:: "::"
use_list
{ "{"
identifier "Markdown"
, ","
identifier "MarkdownElement"
, ","
identifier "MarkdownFont"
, ","
identifier "MarkdownStyle"
} "}"
; ";"
use_declaration
use "use"
scoped_use_list
identifier "project"
:: "::"
use_list
{ "{"
identifier "AgentServerStore"
, ","
identifier "ExternalAgentServerName"
, ","
identifier "Project"
, ","
identifier "ProjectEntryId"
} "}"
; ";"
use_declaration
use "use"
scoped_use_list
identifier "prompt_store"
:: "::"
use_list
{ "{"
identifier "PromptId"
, ","
identifier "PromptStore"
} "}"
; ";"
use_declaration
use "use"
scoped_identifier
identifier "rope"
:: "::"
identifier "Point"
; ";"
use_declaration
use "use"
scoped_use_list
identifier "settings"
:: "::"
use_list
{ "{"
identifier "NotifyWhenAgentWaiting"
, ","
use_as_clause
identifier "Settings"
as "as"
identifier "_"
, ","
identifier "SettingsStore"
} "}"
; ";"
use_declaration
use "use"
scoped_identifier
scoped_identifier
identifier "std"
:: "::"
identifier "cell"
:: "::"
identifier "RefCell"
; ";"
use_declaration
use "use"
scoped_identifier
scoped_identifier
identifier "std"
:: "::"
identifier "path"
:: "::"
identifier "Path"
; ";"
use_declaration
use "use"
scoped_identifier
scoped_identifier
identifier "std"
:: "::"
identifier "sync"
:: "::"
identifier "Arc"
; ";"
use_declaration
use "use"
scoped_identifier
scoped_identifier
identifier "std"
:: "::"
identifier "time"
:: "::"
identifier "Instant"
; ";"
use_declaration (+23 nodes collapsed)
use_declaration
use "use"
scoped_identifier
scoped_identifier
identifier "terminal_view"
:: "::"
identifier "terminal_panel"
:: "::"
identifier "TerminalPanel"
; ";"
use_declaration
use "use"
scoped_use_list
identifier "text"
:: "::"
use_list
{ "{"
identifier "Anchor"
, ","
use_as_clause
identifier "ToPoint"
as "as"
identifier "_"
} "}"
; ";"
use_declaration
use "use"
scoped_identifier
identifier "theme"
:: "::"
identifier "AgentFontSize"
; ";"
use_declaration (+56 nodes collapsed)
use_declaration
use "use"
scoped_use_list
identifier "util"
:: "::"
use_list
{ "{"
identifier "ResultExt"
, ","
scoped_identifier
identifier "size"
:: "::"
identifier "format_file_size"
, ","
scoped_identifier
identifier "time"
:: "::"
identifier "duration_alt_display"
} "}"
; ";"
use_declaration
use "use"
scoped_use_list
identifier "util"
:: "::"
use_list
{ "{"
identifier "debug_panic"
, ","
identifier "defer"
} "}"
; ";"
use_declaration (+24 nodes collapsed)
use_declaration
use "use"
scoped_use_list
scoped_identifier
identifier "zed_actions"
:: "::"
identifier "agent"
:: "::"
use_list
{ "{"
identifier "Chat"
, ","
identifier "ToggleModelSelector"
} "}"
; ";"
use_declaration
use "use"
scoped_identifier
scoped_identifier
identifier "zed_actions"
:: "::"
identifier "assistant"
:: "::"
identifier "OpenRulesLibrary"
; ";"
use_declaration
use "use"
scoped_identifier
scoped_identifier
super "super"
:: "::"
identifier "config_options"
:: "::"
identifier "ConfigOptionsView"
; ";"
use_declaration
use "use"
scoped_identifier
scoped_identifier
super "super"
:: "::"
identifier "entry_view_state"
:: "::"
identifier "EntryViewState"
; ";"
use_declaration
use "use"
scoped_identifier
scoped_identifier
super "super"
:: "::"
identifier "thread_history"
:: "::"
identifier "ThreadHistory"
; ";"
use_declaration
use "use"
scoped_identifier
crate "crate"
:: "::"
identifier "ModeSelector"
; ";"
use_declaration
use "use"
scoped_identifier
crate "crate"
:: "::"
identifier "ModelSelectorPopover"
; ";"
use_declaration
use "use"
scoped_identifier
scoped_identifier
crate "crate"
:: "::"
identifier "agent_diff"
:: "::"
identifier "AgentDiff"
; ";"
use_declaration
use "use"
scoped_use_list
scoped_identifier
crate "crate"
:: "::"
identifier "entry_view_state"
:: "::"
use_list
{ "{"
identifier "EntryViewEvent"
, ","
identifier "ViewEvent"
} "}"
; ";"
use_declaration
use "use"
scoped_use_list
scoped_identifier
crate "crate"
:: "::"
identifier "message_editor"
:: "::"
use_list
{ "{"
identifier "MessageEditor"
, ","
identifier "MessageEditorEvent"
} "}"
; ";"
use_declaration
use "use"
scoped_use_list
scoped_identifier
crate "crate"
:: "::"
identifier "profile_selector"
:: "::"
use_list
{ "{"
identifier "ProfileProvider"
, ","
identifier "ProfileSelector"
} "}"
; ";"
use_declaration
use "use"
scoped_use_list
scoped_identifier
crate "crate"
:: "::"
identifier "ui"
:: "::"
use_list
{ "{"
identifier "AgentNotification"
, ","
identifier "AgentNotificationEvent"
} "}"
; ";"
use_declaration (+65 nodes collapsed)
const_item
const "const"
identifier "STOPWATCH_THRESHOLD"
: ":"
type_identifier "Duration"
= "="
call_expression
scoped_identifier
identifier "Duration"
:: "::"
identifier "from_secs"
arguments
( "("
integer_literal "30"
) ")"
; ";"
const_item
const "const"
identifier "TOKEN_THRESHOLD"
: ":"
primitive_type "u64"
= "="
integer_literal "250"
; ";"
mod_item
mod "mod"
identifier "thread_view"
; ";"
use_declaration
visibility_modifier
pub "pub"
use "use"
use_wildcard
identifier "thread_view"
:: "::"
* "*"
; ";"
struct_item (+40 nodes collapsed)
attribute_item
# "#"
[ "["
attribute
identifier "derive"
token_tree
( "("
identifier "Copy"
, ","
identifier "Clone"
, ","
identifier "Debug"
, ","
identifier "PartialEq"
, ","
identifier "Eq"
) ")"
] "]"
enum_item
enum "enum"
type_identifier "ThreadFeedback"
enum_variant_list
{ "{"
enum_variant
identifier "Positive"
, ","
enum_variant
identifier "Negative"
, ","
} "}"
attribute_item
# "#"
[ "["
attribute
identifier "derive"
token_tree
( "("
identifier "Debug"
) ")"
] "]"
enum_item (+45 nodes collapsed)
impl_item (+234 nodes collapsed)
impl_item (+179 nodes collapsed)
attribute_item
# "#"
[ "["
attribute
identifier "derive"
token_tree
( "("
identifier "Default"
) ")"
] "]"
struct_item (+99 nodes collapsed)
impl_item (+1280 nodes collapsed)
enum_item
visibility_modifier
pub "pub"
enum "enum"
type_identifier "AcpServerViewEvent"
enum_variant_list
{ "{"
enum_variant
identifier "ActiveThreadChanged"
, ","
} "}"
impl_item
impl "impl"
generic_type
type_identifier "EventEmitter"
type_arguments
< "<"
type_identifier "AcpServerViewEvent"
> ">"
for "for"
type_identifier "ConnectionView"
declaration_list
{ "{"
} "}"
struct_item (+164 nodes collapsed)
impl_item (+762 nodes collapsed)
enum_item (+32 nodes collapsed)
line_comment
// "//"
line_comment
// "//"
struct_item (+68 nodes collapsed)
enum_item (+63 nodes collapsed)
impl_item (+33 nodes collapsed)
struct_item (+43 nodes collapsed)
impl_item (+301 nodes collapsed)
impl_item
impl "impl"
type_identifier "ConnectionView"
declaration_list
{ "{"
function_item (+463 nodes collapsed)
function_item (+104 nodes collapsed)
function_item (+251 nodes collapsed)
function_item (+2143 nodes collapsed)
function_item
fn "fn"
identifier "new_thread_view"
parameters (+86 nodes collapsed)
-> "->"
generic_type
type_identifier "Entity"
type_arguments
< "<"
type_identifier "ThreadView"
> ">"
block
{ "{"
let_declaration
let "let"
identifier "agent_name"
= "="
call_expression
field_expression
field_expression
self "self"
. "."
field_identifier "agent"
. "."
field_identifier "name"
arguments
( "("
) ")"
; ";"
let_declaration (+32 nodes collapsed)
let_declaration (+27 nodes collapsed)
let_declaration (+28 nodes collapsed)
expression_statement (+26 nodes collapsed)
let_declaration (+119 nodes collapsed)
let_declaration (+28 nodes collapsed)
let_declaration (+29 nodes collapsed)
expression_statement (+107 nodes collapsed)
expression_statement (+29 nodes collapsed)
let_declaration (+28 nodes collapsed)
let_declaration (+28 nodes collapsed)
line_comment
// "//"
line_comment
// "//"
line_comment
// "//"
let_declaration
let "let"
identifier "config_options_provider"
= "="
call_expression
field_expression
identifier "connection"
. "."
field_identifier "session_config_options"
arguments
( "("
reference_expression
& "&"
identifier "session_id"
, ","
identifier "cx"
) ")"
; ";"
let_declaration
let "let"
identifier "config_options_view"
; ";"
let_declaration
let "let"
identifier "mode_selector"
; ";"
let_declaration
let "let"
identifier "model_selector"
; ";"
expression_statement (+363 nodes collapsed)
let_declaration (+49 nodes collapsed)
let_declaration (+28 nodes collapsed)
let_declaration (+116 nodes collapsed)
expression_statement (+103 nodes collapsed)
let_declaration (+35 nodes collapsed)
let_declaration (+107 nodes collapsed)
let_declaration (+58 nodes collapsed)
let_declaration
let "let"
identifier "agent_icon"
= "="
call_expression
field_expression
field_expression
self "self"
. "."
field_identifier "agent"
. "."
field_identifier "logo"
arguments
( "("
) ")"
; ";"
let_declaration
let "let"
identifier "weak"
= "="
call_expression
field_expression
identifier "cx"
. "."
field_identifier "weak_entity"
arguments
( "("
) ")"
; ";"
call_expression (+126 nodes collapsed)
} "}"
function_item (+674 nodes collapsed)
function_item (+219 nodes collapsed)
function_item (+221 nodes collapsed)
function_item (+29 nodes collapsed)
function_item (+263 nodes collapsed)
function_item (+83 nodes collapsed)
function_item (+33 nodes collapsed)
function_item (+81 nodes collapsed)
function_item (+106 nodes collapsed)
function_item (+113 nodes collapsed)
function_item (+2252 nodes collapsed)
function_item (+1465 nodes collapsed)
function_item (+580 nodes collapsed)
function_item (+1228 nodes collapsed)
function_item (+119 nodes collapsed)
function_item (+1039 nodes collapsed)
function_item (+368 nodes collapsed)
function_item (+145 nodes collapsed)
function_item (+345 nodes collapsed)
function_item (+358 nodes collapsed)
function_item (+96 nodes collapsed)
function_item (+101 nodes collapsed)
function_item (+67 nodes collapsed)
function_item (+164 nodes collapsed)
function_item (+119 nodes collapsed)
function_item (+279 nodes collapsed)
function_item (+994 nodes collapsed)
function_item (+101 nodes collapsed)
function_item (+82 nodes collapsed)
function_item (+99 nodes collapsed)
function_item (+157 nodes collapsed)
function_item (+175 nodes collapsed)
function_item (+294 nodes collapsed)
function_item (+784 nodes collapsed)
function_item (+104 nodes collapsed)
function_item (+120 nodes collapsed)
function_item (+175 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Inserts the selected text into the message editor or the me"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " edited, if any.\n"
function_item (+123 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Inserts terminal text as a crease into the message editor.\n"
function_item (+126 nodes collapsed)
function_item (+181 nodes collapsed)
function_item (+66 nodes collapsed)
function_item (+227 nodes collapsed)
function_item (+88 nodes collapsed)
} "}"
function_item (+61 nodes collapsed)
function_item (+84 nodes collapsed)
impl_item (+85 nodes collapsed)
attribute_item (+21 nodes collapsed)
impl_item (+120 nodes collapsed)
impl_item (+437 nodes collapsed)
function_item (+187 nodes collapsed)
attribute_item
# "#"
[ "["
attribute
identifier "cfg"
token_tree
( "("
identifier "test"
) ")"
] "]"
mod_item (+31757 nodes collapsed)

After

source_file
use_declaration (+43 nodes collapsed)
use_declaration
use "use"
scoped_use_list
identifier "acp_thread"
:: "::"
use_list
{ "{"
identifier "AgentConnection"
, ","
identifier "Plan"
} "}"
; ";"
use_declaration
use "use"
scoped_use_list
identifier "action_log"
:: "::"
use_list
{ "{"
identifier "ActionLog"
, ","
identifier "ActionLogTelemetry"
} "}"
; ";"
use_declaration
use "use"
scoped_use_list
identifier "agent"
:: "::"
use_list
{ "{"
identifier "NativeAgentServer"
, ","
identifier "NativeAgentSessionList"
, ","
identifier "SharedThread"
, ","
identifier "ThreadStore"
} "}"
; ";"
use_declaration
use "use"
scoped_use_list
identifier "agent_client_protocol"
:: "::"
use_list
{ "{"
use_as_clause
self "self"
as "as"
identifier "acp"
, ","
identifier "PromptCapabilities"
} "}"
; ";"
use_declaration
use "use"
scoped_use_list
identifier "agent_servers"
:: "::"
use_list
{ "{"
identifier "AgentServer"
, ","
identifier "AgentServerDelegate"
} "}"
; ";"
use_declaration
use "use"
scoped_use_list
identifier "agent_settings"
:: "::"
use_list
{ "{"
identifier "AgentProfileId"
, ","
identifier "AgentSettings"
} "}"
; ";"
use_declaration
use "use"
scoped_use_list
identifier "anyhow"
:: "::"
use_list
{ "{"
identifier "Result"
, ","
identifier "anyhow"
} "}"
; ";"
use_declaration
use "use"
scoped_identifier
identifier "arrayvec"
:: "::"
identifier "ArrayVec"
; ";"
use_declaration
use "use"
scoped_use_list
identifier "audio"
:: "::"
use_list
{ "{"
identifier "Audio"
, ","
identifier "Sound"
} "}"
; ";"
use_declaration
use "use"
scoped_identifier
identifier "buffer_diff"
:: "::"
identifier "BufferDiff"
; ";"
use_declaration
use "use"
scoped_identifier
identifier "client"
:: "::"
identifier "zed_urls"
; ";"
use_declaration
use "use"
scoped_use_list
identifier "collections"
:: "::"
use_list
{ "{"
identifier "HashMap"
, ","
identifier "HashSet"
, ","
identifier "IndexMap"
} "}"
; ";"
use_declaration
use "use"
scoped_identifier
scoped_identifier
identifier "editor"
:: "::"
identifier "scroll"
:: "::"
identifier "Autoscroll"
; ";"
use_declaration (+23 nodes collapsed)
use_declaration
use "use"
scoped_use_list
identifier "feature_flags"
:: "::"
use_list
{ "{"
identifier "AgentSharingFeatureFlag"
, ","
identifier "AgentV2FeatureFlag"
, ","
use_as_clause
identifier "FeatureFlagAppExt"
as "as"
identifier "_"
} "}"
; ";"
use_declaration
use "use"
scoped_identifier
identifier "file_icons"
:: "::"
identifier "FileIcons"
; ";"
use_declaration
use "use"
scoped_identifier
identifier "fs"
:: "::"
identifier "Fs"
; ";"
use_declaration
use "use"
use_as_clause
scoped_identifier
identifier "futures"
:: "::"
identifier "FutureExt"
as "as"
identifier "_"
; ";"
use_declaration (+79 nodes collapsed)
use_declaration
use "use"
scoped_identifier
identifier "language"
:: "::"
identifier "Buffer"
; ";"
use_declaration
use "use"
scoped_identifier
identifier "language_model"
:: "::"
identifier "LanguageModelRegistry"
; ";"
use_declaration
use "use"
scoped_use_list
identifier "markdown"
:: "::"
use_list
{ "{"
identifier "Markdown"
, ","
identifier "MarkdownElement"
, ","
identifier "MarkdownFont"
, ","
identifier "MarkdownStyle"
} "}"
; ";"
use_declaration
use "use"
scoped_use_list
identifier "project"
:: "::"
use_list
{ "{"
identifier "AgentServerStore"
, ","
identifier "ExternalAgentServerName"
, ","
identifier "Project"
, ","
identifier "ProjectEntryId"
} "}"
; ";"
use_declaration
use "use"
scoped_use_list
identifier "prompt_store"
:: "::"
use_list
{ "{"
identifier "PromptId"
, ","
identifier "PromptStore"
} "}"
; ";"
use_declaration
use "use"
scoped_identifier
identifier "rope"
:: "::"
identifier "Point"
; ";"
use_declaration
use "use"
scoped_use_list
identifier "settings"
:: "::"
use_list
{ "{"
identifier "NotifyWhenAgentWaiting"
, ","
use_as_clause
identifier "Settings"
as "as"
identifier "_"
, ","
identifier "SettingsStore"
} "}"
; ";"
use_declaration
use "use"
scoped_identifier
scoped_identifier
identifier "std"
:: "::"
identifier "cell"
:: "::"
identifier "RefCell"
; ";"
use_declaration
use "use"
scoped_identifier
scoped_identifier
identifier "std"
:: "::"
identifier "path"
:: "::"
identifier "Path"
; ";"
use_declaration
use "use"
scoped_identifier
scoped_identifier
identifier "std"
:: "::"
identifier "sync"
:: "::"
identifier "Arc"
; ";"
use_declaration
use "use"
scoped_identifier
scoped_identifier
identifier "std"
:: "::"
identifier "time"
:: "::"
identifier "Instant"
; ";"
use_declaration (+23 nodes collapsed)
use_declaration
use "use"
scoped_identifier
scoped_identifier
identifier "terminal_view"
:: "::"
identifier "terminal_panel"
:: "::"
identifier "TerminalPanel"
; ";"
use_declaration
use "use"
scoped_use_list
identifier "text"
:: "::"
use_list
{ "{"
identifier "Anchor"
, ","
use_as_clause
identifier "ToPoint"
as "as"
identifier "_"
} "}"
; ";"
use_declaration
use "use"
scoped_identifier
identifier "theme"
:: "::"
identifier "AgentFontSize"
; ";"
use_declaration (+56 nodes collapsed)
use_declaration
use "use"
scoped_use_list
identifier "util"
:: "::"
use_list
{ "{"
identifier "ResultExt"
, ","
scoped_identifier
identifier "size"
:: "::"
identifier "format_file_size"
, ","
scoped_identifier
identifier "time"
:: "::"
identifier "duration_alt_display"
} "}"
; ";"
use_declaration
use "use"
scoped_use_list
identifier "util"
:: "::"
use_list
{ "{"
identifier "debug_panic"
, ","
identifier "defer"
} "}"
; ";"
use_declaration (+24 nodes collapsed)
use_declaration
use "use"
scoped_use_list
scoped_identifier
identifier "zed_actions"
:: "::"
identifier "agent"
:: "::"
use_list
{ "{"
identifier "Chat"
, ","
identifier "ToggleModelSelector"
} "}"
; ";"
use_declaration
use "use"
scoped_identifier
scoped_identifier
identifier "zed_actions"
:: "::"
identifier "assistant"
:: "::"
identifier "OpenRulesLibrary"
; ";"
use_declaration
use "use"
scoped_identifier
scoped_identifier
super "super"
:: "::"
identifier "config_options"
:: "::"
identifier "ConfigOptionsView"
; ";"
use_declaration
use "use"
scoped_identifier
scoped_identifier
super "super"
:: "::"
identifier "entry_view_state"
:: "::"
identifier "EntryViewState"
; ";"
use_declaration
use "use"
scoped_identifier
scoped_identifier
super "super"
:: "::"
identifier "thread_history"
:: "::"
identifier "ThreadHistory"
; ";"
use_declaration
use "use"
scoped_identifier
crate "crate"
:: "::"
identifier "ModeSelector"
; ";"
use_declaration
use "use"
scoped_identifier
crate "crate"
:: "::"
identifier "ModelSelectorPopover"
; ";"
use_declaration
use "use"
scoped_identifier
scoped_identifier
crate "crate"
:: "::"
identifier "agent_diff"
:: "::"
identifier "AgentDiff"
; ";"
use_declaration
use "use"
scoped_use_list
scoped_identifier
crate "crate"
:: "::"
identifier "entry_view_state"
:: "::"
use_list
{ "{"
identifier "EntryViewEvent"
, ","
identifier "ViewEvent"
} "}"
; ";"
use_declaration
use "use"
scoped_use_list
scoped_identifier
crate "crate"
:: "::"
identifier "message_editor"
:: "::"
use_list
{ "{"
identifier "MessageEditor"
, ","
identifier "MessageEditorEvent"
} "}"
; ";"
use_declaration
use "use"
scoped_use_list
scoped_identifier
crate "crate"
:: "::"
identifier "profile_selector"
:: "::"
use_list
{ "{"
identifier "ProfileProvider"
, ","
identifier "ProfileSelector"
} "}"
; ";"
use_declaration
use "use"
scoped_use_list
scoped_identifier
crate "crate"
:: "::"
identifier "ui"
:: "::"
use_list
{ "{"
identifier "AgentNotification"
, ","
identifier "AgentNotificationEvent"
} "}"
; ";"
use_declaration (+65 nodes collapsed)
const_item
const "const"
identifier "STOPWATCH_THRESHOLD"
: ":"
type_identifier "Duration"
= "="
call_expression
scoped_identifier
identifier "Duration"
:: "::"
identifier "from_secs"
arguments
( "("
integer_literal "30"
) ")"
; ";"
const_item
const "const"
identifier "TOKEN_THRESHOLD"
: ":"
primitive_type "u64"
= "="
integer_literal "250"
; ";"
mod_item
mod "mod"
identifier "thread_view"
; ";"
use_declaration
visibility_modifier
pub "pub"
use "use"
use_wildcard
identifier "thread_view"
:: "::"
* "*"
; ";"
struct_item (+40 nodes collapsed)
attribute_item
# "#"
[ "["
attribute
identifier "derive"
token_tree
( "("
identifier "Copy"
, ","
identifier "Clone"
, ","
identifier "Debug"
, ","
identifier "PartialEq"
, ","
identifier "Eq"
) ")"
] "]"
enum_item
enum "enum"
type_identifier "ThreadFeedback"
enum_variant_list
{ "{"
enum_variant
identifier "Positive"
, ","
enum_variant
identifier "Negative"
, ","
} "}"
attribute_item
# "#"
[ "["
attribute
identifier "derive"
token_tree
( "("
identifier "Debug"
) ")"
] "]"
enum_item (+45 nodes collapsed)
impl_item (+234 nodes collapsed)
impl_item (+179 nodes collapsed)
attribute_item
# "#"
[ "["
attribute
identifier "derive"
token_tree
( "("
identifier "Default"
) ")"
] "]"
struct_item (+99 nodes collapsed)
impl_item (+1280 nodes collapsed)
enum_item
visibility_modifier
pub "pub"
enum "enum"
type_identifier "AcpServerViewEvent"
enum_variant_list
{ "{"
enum_variant
identifier "ActiveThreadChanged"
, ","
} "}"
impl_item
impl "impl"
generic_type
type_identifier "EventEmitter"
type_arguments
< "<"
type_identifier "AcpServerViewEvent"
> ">"
for "for"
type_identifier "ConnectionView"
declaration_list
{ "{"
} "}"
struct_item (+164 nodes collapsed)
impl_item (+762 nodes collapsed)
enum_item (+32 nodes collapsed)
line_comment
// "//"
line_comment
// "//"
struct_item (+68 nodes collapsed)
enum_item (+63 nodes collapsed)
impl_item (+33 nodes collapsed)
struct_item (+43 nodes collapsed)
impl_item (+301 nodes collapsed)
impl_item
impl "impl"
type_identifier "ConnectionView"
declaration_list
{ "{"
function_item (+463 nodes collapsed)
function_item (+104 nodes collapsed)
function_item (+251 nodes collapsed)
function_item (+2143 nodes collapsed)
function_item
fn "fn"
identifier "new_thread_view"
parameters (+86 nodes collapsed)
-> "->"
generic_type
type_identifier "Entity"
type_arguments
< "<"
type_identifier "ThreadView"
> ">"
block
{ "{"
let_declaration
let "let"
identifier "agent_name"
= "="
call_expression
field_expression
field_expression
self "self"
. "."
field_identifier "agent"
. "."
field_identifier "name"
arguments
( "("
) ")"
; ";"
let_declaration (+32 nodes collapsed)
let_declaration (+27 nodes collapsed)
let_declaration (+28 nodes collapsed)
expression_statement (+26 nodes collapsed)
let_declaration (+119 nodes collapsed)
let_declaration (+28 nodes collapsed)
let_declaration (+29 nodes collapsed)
expression_statement (+107 nodes collapsed)
expression_statement
if_expression
if "if"
let_condition
let "let"
tuple_struct_pattern
identifier "Some"
( "("
identifier "scroll_position"
) ")"
= "="
call_expression
field_expression
call_expression
field_expression
identifier "thread"
. "."
field_identifier "read"
arguments
( "("
identifier "cx"
) ")"
. "."
field_identifier "ui_scroll_position"
arguments
( "("
) ")"
block
{ "{"
expression_statement
call_expression
field_expression
identifier "list_state"
. "."
field_identifier "scroll_to"
arguments
( "("
identifier "scroll_position"
) ")"
; ";"
} "}"
expression_statement (+29 nodes collapsed)
let_declaration (+28 nodes collapsed)
let_declaration (+28 nodes collapsed)
line_comment
// "//"
line_comment
// "//"
line_comment
// "//"
let_declaration
let "let"
identifier "config_options_provider"
= "="
call_expression
field_expression
identifier "connection"
. "."
field_identifier "session_config_options"
arguments
( "("
reference_expression
& "&"
identifier "session_id"
, ","
identifier "cx"
) ")"
; ";"
let_declaration
let "let"
identifier "config_options_view"
; ";"
let_declaration
let "let"
identifier "mode_selector"
; ";"
let_declaration
let "let"
identifier "model_selector"
; ";"
expression_statement (+363 nodes collapsed)
let_declaration (+49 nodes collapsed)
let_declaration (+28 nodes collapsed)
let_declaration (+116 nodes collapsed)
expression_statement (+103 nodes collapsed)
let_declaration (+35 nodes collapsed)
let_declaration (+107 nodes collapsed)
let_declaration (+58 nodes collapsed)
let_declaration
let "let"
identifier "agent_icon"
= "="
call_expression
field_expression
field_expression
self "self"
. "."
field_identifier "agent"
. "."
field_identifier "logo"
arguments
( "("
) ")"
; ";"
let_declaration
let "let"
identifier "weak"
= "="
call_expression
field_expression
identifier "cx"
. "."
field_identifier "weak_entity"
arguments
( "("
) ")"
; ";"
call_expression (+126 nodes collapsed)
} "}"
function_item (+674 nodes collapsed)
function_item (+219 nodes collapsed)
function_item (+221 nodes collapsed)
function_item (+29 nodes collapsed)
function_item (+263 nodes collapsed)
function_item (+83 nodes collapsed)
function_item (+33 nodes collapsed)
function_item (+81 nodes collapsed)
function_item (+106 nodes collapsed)
function_item (+113 nodes collapsed)
function_item (+2252 nodes collapsed)
function_item (+1465 nodes collapsed)
function_item (+580 nodes collapsed)
function_item (+1228 nodes collapsed)
function_item (+119 nodes collapsed)
function_item (+1039 nodes collapsed)
function_item (+368 nodes collapsed)
function_item (+145 nodes collapsed)
function_item (+345 nodes collapsed)
function_item (+358 nodes collapsed)
function_item (+96 nodes collapsed)
function_item (+101 nodes collapsed)
function_item (+67 nodes collapsed)
function_item (+164 nodes collapsed)
function_item (+119 nodes collapsed)
function_item (+279 nodes collapsed)
function_item (+994 nodes collapsed)
function_item (+101 nodes collapsed)
function_item (+82 nodes collapsed)
function_item (+99 nodes collapsed)
function_item (+157 nodes collapsed)
function_item (+175 nodes collapsed)
function_item (+294 nodes collapsed)
function_item (+784 nodes collapsed)
function_item (+104 nodes collapsed)
function_item (+120 nodes collapsed)
function_item (+175 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Inserts the selected text into the message editor or the me"...
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " edited, if any.\n"
function_item (+123 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Inserts terminal text as a crease into the message editor.\n"
function_item (+126 nodes collapsed)
function_item (+181 nodes collapsed)
function_item (+66 nodes collapsed)
function_item (+227 nodes collapsed)
function_item (+88 nodes collapsed)
} "}"
function_item (+61 nodes collapsed)
function_item (+84 nodes collapsed)
impl_item (+85 nodes collapsed)
attribute_item (+21 nodes collapsed)
impl_item (+120 nodes collapsed)
impl_item (+437 nodes collapsed)
function_item (+187 nodes collapsed)
attribute_item
# "#"
[ "["
attribute
identifier "cfg"
token_tree
( "("
identifier "test"
) ")"
] "]"
mod_item (+31757 nodes collapsed)