Detailed changes
@@ -74,7 +74,7 @@ pub async fn open_db<M: Migrator + 'static>(db_dir: &Path, scope: &str) -> Threa
}
async fn open_main_db<M: Migrator>(db_path: &Path) -> Option<ThreadSafeConnection> {
- log::info!("Opening main db");
+ log::info!("Opening database {}", db_path.display());
ThreadSafeConnection::builder::<M>(db_path.to_string_lossy().as_ref(), true)
.with_db_initialization_query(DB_INITIALIZE_QUERY)
.with_connection_initialize_query(CONNECTION_INITIALIZE_QUERY)
@@ -84,7 +84,7 @@ async fn open_main_db<M: Migrator>(db_path: &Path) -> Option<ThreadSafeConnectio
}
async fn open_fallback_db<M: Migrator>() -> ThreadSafeConnection {
- log::info!("Opening fallback db");
+ log::warn!("Opening fallback in-memory database");
ThreadSafeConnection::builder::<M>(FALLBACK_DB_NAME, false)
.with_db_initialization_query(DB_INITIALIZE_QUERY)
.with_connection_initialize_query(CONNECTION_INITIALIZE_QUERY)
@@ -2870,7 +2870,8 @@ impl Editor {
buffer.char_kind_before(start_offset, true) == Some(CharKind::Word)
} else {
// Snippet choices can be shown even when the cursor is in whitespace.
- // Dismissing the menu when actions like backspace
+ // Dismissing the menu with actions like backspace is handled by
+ // invalidation regions.
true
}
} else {
@@ -2936,22 +2937,22 @@ impl Editor {
let background_executor = cx.background_executor().clone();
let editor_id = cx.entity().entity_id().as_u64() as ItemId;
self.serialize_selections = cx.background_spawn(async move {
- background_executor.timer(SERIALIZATION_THROTTLE_TIME).await;
- let db_selections = selections
- .iter()
- .map(|selection| {
- (
- selection.start.to_offset(&snapshot),
- selection.end.to_offset(&snapshot),
- )
- })
- .collect();
+ background_executor.timer(SERIALIZATION_THROTTLE_TIME).await;
+ let db_selections = selections
+ .iter()
+ .map(|selection| {
+ (
+ selection.start.to_offset(&snapshot),
+ selection.end.to_offset(&snapshot),
+ )
+ })
+ .collect();
- DB.save_editor_selections(editor_id, workspace_id, db_selections)
- .await
- .with_context(|| format!("persisting editor selections for editor {editor_id}, workspace {workspace_id:?}"))
- .log_err();
- });
+ DB.save_editor_selections(editor_id, workspace_id, db_selections)
+ .await
+ .with_context(|| format!("persisting editor selections for editor {editor_id}, workspace {workspace_id:?}"))
+ .log_err();
+ });
}
}
}
@@ -7630,7 +7630,7 @@ impl Element for EditorElement {
fn request_layout(
&mut self,
_: Option<&GlobalElementId>,
- __inspector_id: Option<&gpui::InspectorElementId>,
+ _inspector_id: Option<&gpui::InspectorElementId>,
window: &mut Window,
cx: &mut App,
) -> (gpui::LayoutId, ()) {
@@ -8817,7 +8817,7 @@ impl Element for EditorElement {
fn paint(
&mut self,
_: Option<&GlobalElementId>,
- __inspector_id: Option<&gpui::InspectorElementId>,
+ _inspector_id: Option<&gpui::InspectorElementId>,
bounds: Bounds<gpui::Pixels>,
_: &mut Self::RequestLayoutState,
layout: &mut Self::PrepaintState,
@@ -659,6 +659,7 @@ impl<'a> MutableSelectionsCollection<'a> {
.collect();
self.select(selections);
}
+
pub fn reverse_selections(&mut self) {
let map = &self.display_map();
let mut new_selections: Vec<Selection<Point>> = Vec::new();
@@ -377,6 +377,7 @@ impl extension::Extension for WasmExtension {
})
.await
}
+
async fn get_dap_binary(
&self,
dap_name: Arc<str>,
@@ -255,7 +255,7 @@ pub trait VisualContext: AppContext {
update: impl FnOnce(&mut T, &mut Window, &mut Context<T>) -> R,
) -> Self::Result<R>;
- /// Update a view with the given callback
+ /// Create a new entity, with access to `Window`.
fn new_window_entity<T: 'static>(
&mut self,
build_entity: impl FnOnce(&mut Window, &mut Context<T>) -> T,
@@ -863,6 +863,7 @@ mod rng {
}
#[cfg(any(test, feature = "test-support"))]
pub use rng::RandomCharIter;
+
/// Get an embedded file as a string.
pub fn asset_str<A: rust_embed::RustEmbed>(path: &str) -> Cow<'static, str> {
match A::get(path).expect(path).data {
@@ -335,6 +335,7 @@ impl Zeta {
self.events.push_back(event);
if self.events.len() >= MAX_EVENT_COUNT {
+ // These are halved instead of popping to improve prompt caching.
self.events.drain(..MAX_EVENT_COUNT / 2);
}
}