Bump version to 1.6.2
This commit is contained in:
Generated
+1
-1
@@ -5313,7 +5313,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "galaxy"
|
name = "galaxy"
|
||||||
version = "1.6.0"
|
version = "1.6.2"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"addr",
|
"addr",
|
||||||
"aho-corasick",
|
"aho-corasick",
|
||||||
|
|||||||
+1
-1
@@ -5,7 +5,7 @@ description = "Galaxy - AI-powered terminal"
|
|||||||
edition = "2021"
|
edition = "2021"
|
||||||
autobins = false
|
autobins = false
|
||||||
name = "galaxy"
|
name = "galaxy"
|
||||||
version = "1.6.1"
|
version = "1.6.2"
|
||||||
publish.workspace = true
|
publish.workspace = true
|
||||||
license.workspace = true
|
license.workspace = true
|
||||||
|
|
||||||
|
|||||||
@@ -268,10 +268,15 @@ impl ShellCommandExecutor {
|
|||||||
|
|
||||||
let block_selector = BlockSelector::RequestedCommandId(action_id.clone());
|
let block_selector = BlockSelector::RequestedCommandId(action_id.clone());
|
||||||
let command = command.clone();
|
let command = command.clone();
|
||||||
|
let delay = if *wait_until_completion {
|
||||||
|
Some(ShellCommandDelay::OnCompletion)
|
||||||
|
} else {
|
||||||
|
None
|
||||||
|
};
|
||||||
drop(model);
|
drop(model);
|
||||||
|
|
||||||
ActionExecution::new_async(
|
ActionExecution::new_async(
|
||||||
self.action_result_future(block_selector.clone(), None),
|
self.action_result_future(block_selector.clone(), delay),
|
||||||
move |result, ctx| {
|
move |result, ctx| {
|
||||||
// Remove the senders from the maps.
|
// Remove the senders from the maps.
|
||||||
if let Some(handle) = handle.upgrade(ctx) {
|
if let Some(handle) = handle.upgrade(ctx) {
|
||||||
|
|||||||
@@ -3194,53 +3194,6 @@ impl BlockList {
|
|||||||
self.maintain_pinned_to_bottom();
|
self.maintain_pinned_to_bottom();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Insert a rich content item immediately after the given removable item.
|
|
||||||
/// Returns true if insertion succeeded.
|
|
||||||
pub(in crate::terminal) fn insert_rich_content_after_item(
|
|
||||||
&mut self,
|
|
||||||
after_item: RemovableBlocklistItem,
|
|
||||||
item: RichContentItem,
|
|
||||||
) -> bool {
|
|
||||||
let Some(current_index) = self
|
|
||||||
.removable_blocklist_item_positions
|
|
||||||
.get(&after_item)
|
|
||||||
.copied()
|
|
||||||
else {
|
|
||||||
return false;
|
|
||||||
};
|
|
||||||
|
|
||||||
let view_id = item.view_id;
|
|
||||||
|
|
||||||
// Recreate block heights tree with new item inserted.
|
|
||||||
let (new_tree, inserted_index) = {
|
|
||||||
let mut cursor = self.block_heights.cursor::<TotalIndex, ()>();
|
|
||||||
let mut prefix = cursor.slice(&(current_index + 1), SeekBias::Right);
|
|
||||||
let inserted_index = TotalIndex(prefix.summary().total_count);
|
|
||||||
prefix.push(BlockHeightItem::RichContent(item));
|
|
||||||
prefix.push_tree(cursor.suffix());
|
|
||||||
(prefix, inserted_index)
|
|
||||||
};
|
|
||||||
|
|
||||||
self.block_heights = new_tree;
|
|
||||||
self.update_block_height_indices(BlockHeightUpdate::Insertion(inserted_index), true);
|
|
||||||
|
|
||||||
// If there is an item at the index that we are inserting into,
|
|
||||||
// we should shift that item forward by one.
|
|
||||||
self.removable_blocklist_item_positions
|
|
||||||
.values_mut()
|
|
||||||
.for_each(|pos| {
|
|
||||||
if *pos == inserted_index {
|
|
||||||
pos.0 += 1;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
self.removable_blocklist_item_positions
|
|
||||||
.insert(RemovableBlocklistItem::RichContent(view_id), inserted_index);
|
|
||||||
self.event_proxy.send_wakeup_event();
|
|
||||||
|
|
||||||
true
|
|
||||||
}
|
|
||||||
|
|
||||||
pub(in crate::terminal) fn set_marked_text(
|
pub(in crate::terminal) fn set_marked_text(
|
||||||
&mut self,
|
&mut self,
|
||||||
marked_text: &str,
|
marked_text: &str,
|
||||||
|
|||||||
@@ -584,6 +584,7 @@ impl EntryBuilder {
|
|||||||
|
|
||||||
/// Builds an [`Entry`] and appends it to the provided index, or simply
|
/// Builds an [`Entry`] and appends it to the provided index, or simply
|
||||||
/// drops `self` if the [`Entry`] would be empty.
|
/// drops `self` if the [`Entry`] would be empty.
|
||||||
|
#[allow(unused_mut)]
|
||||||
pub fn append_to_index_if_nonempty(mut self, index: &mut Index) {
|
pub fn append_to_index_if_nonempty(mut self, index: &mut Index) {
|
||||||
#[cfg(debug_assertions)]
|
#[cfg(debug_assertions)]
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1560,7 +1560,7 @@ impl AppContext {
|
|||||||
#[cfg(not(debug_assertions))]
|
#[cfg(not(debug_assertions))]
|
||||||
pub fn register_binding_validator<T: View>(
|
pub fn register_binding_validator<T: View>(
|
||||||
&mut self,
|
&mut self,
|
||||||
binding_validator: impl Fn(BindingLens) -> IsBindingValid + 'static,
|
_binding_validator: impl Fn(BindingLens) -> IsBindingValid + 'static,
|
||||||
) {
|
) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1582,7 +1582,7 @@ impl AppContext {
|
|||||||
#[cfg(not(debug_assertions))]
|
#[cfg(not(debug_assertions))]
|
||||||
pub fn set_default_binding_validator(
|
pub fn set_default_binding_validator(
|
||||||
&mut self,
|
&mut self,
|
||||||
binding_validator: impl Fn(BindingLens) -> IsBindingValid + 'static,
|
_binding_validator: impl Fn(BindingLens) -> IsBindingValid + 'static,
|
||||||
) {
|
) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,9 +5,8 @@ use pathfinder_geometry::{
|
|||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
elements::{
|
elements::{
|
||||||
new_scrollable::{util::child_constraint_for_axis, ScrollableAxis},
|
new_scrollable::util::child_constraint_for_axis, Axis, ClippedScrollStateHandle,
|
||||||
Axis, ClippedScrollStateHandle, ScrollData, ScrollStateHandle, SelectableElement,
|
ScrollData, ScrollStateHandle, SelectableElement, Vector2FExt,
|
||||||
Vector2FExt,
|
|
||||||
},
|
},
|
||||||
event::DispatchedEvent,
|
event::DispatchedEvent,
|
||||||
units::{IntoPixels, Pixels},
|
units::{IntoPixels, Pixels},
|
||||||
@@ -19,6 +18,8 @@ use super::{
|
|||||||
util::{scroll_clipped_scrollable_handle_with_delta, scroll_delta_for_axis},
|
util::{scroll_clipped_scrollable_handle_with_delta, scroll_delta_for_axis},
|
||||||
NewScrollableElement, SingleAxisConfig,
|
NewScrollableElement, SingleAxisConfig,
|
||||||
};
|
};
|
||||||
|
#[cfg(debug_assertions)]
|
||||||
|
use super::ScrollableAxis;
|
||||||
|
|
||||||
use crate::elements::ScrollTarget;
|
use crate::elements::ScrollTarget;
|
||||||
|
|
||||||
|
|||||||
@@ -13,8 +13,10 @@ use crate::{
|
|||||||
|
|
||||||
use super::{
|
use super::{
|
||||||
util::{scroll_clipped_scrollable_handle_with_delta, scroll_delta_for_axis},
|
util::{scroll_clipped_scrollable_handle_with_delta, scroll_delta_for_axis},
|
||||||
NewScrollableElement, ScrollableAxis,
|
NewScrollableElement,
|
||||||
};
|
};
|
||||||
|
#[cfg(debug_assertions)]
|
||||||
|
use super::ScrollableAxis;
|
||||||
|
|
||||||
use crate::elements::{ScrollTarget, ScrollToPositionMode};
|
use crate::elements::{ScrollTarget, ScrollToPositionMode};
|
||||||
|
|
||||||
@@ -42,11 +44,11 @@ pub enum SingleAxisConfig {
|
|||||||
|
|
||||||
impl SingleAxisConfig {
|
impl SingleAxisConfig {
|
||||||
/// At run-time, validate if the passed-in axis config is valid.
|
/// At run-time, validate if the passed-in axis config is valid.
|
||||||
pub(super) fn validate(&self, axis: Axis) {
|
pub(super) fn validate(&self, _axis: Axis) {
|
||||||
#[cfg(debug_assertions)]
|
#[cfg(debug_assertions)]
|
||||||
{
|
{
|
||||||
if let SingleAxisConfig::Manual { child, .. } = self {
|
if let SingleAxisConfig::Manual { child, .. } = self {
|
||||||
if matches!(axis, Axis::Horizontal)
|
if matches!(_axis, Axis::Horizontal)
|
||||||
&& matches!(child.axis(), ScrollableAxis::Vertical)
|
&& matches!(child.axis(), ScrollableAxis::Vertical)
|
||||||
{
|
{
|
||||||
panic!(
|
panic!(
|
||||||
@@ -54,7 +56,7 @@ impl SingleAxisConfig {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if matches!(axis, Axis::Vertical)
|
if matches!(_axis, Axis::Vertical)
|
||||||
&& matches!(child.axis(), ScrollableAxis::Horizontal)
|
&& matches!(child.axis(), ScrollableAxis::Horizontal)
|
||||||
{
|
{
|
||||||
panic!(
|
panic!(
|
||||||
|
|||||||
@@ -153,6 +153,7 @@ impl Element for Rect {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[cfg_attr(debug_assertions, track_caller)]
|
#[cfg_attr(debug_assertions, track_caller)]
|
||||||
|
#[allow(unused_mut)]
|
||||||
fn finish(mut self) -> Box<dyn Element>
|
fn finish(mut self) -> Box<dyn Element>
|
||||||
where
|
where
|
||||||
Self: 'static + Sized,
|
Self: 'static + Sized,
|
||||||
|
|||||||
@@ -12,9 +12,11 @@ pub struct Matcher {
|
|||||||
keymap: Keymap,
|
keymap: Keymap,
|
||||||
/// Default binding validator that should run on every binding (irrespective of the [`Context`]
|
/// Default binding validator that should run on every binding (irrespective of the [`Context`]
|
||||||
/// the binding was registered against).
|
/// the binding was registered against).
|
||||||
|
#[cfg_attr(not(debug_assertions), allow(dead_code))]
|
||||||
default_binding_validator: Option<BindingValidatorFn>,
|
default_binding_validator: Option<BindingValidatorFn>,
|
||||||
/// List of validators to be used during binding validation. Each binding validator validates
|
/// List of validators to be used during binding validation. Each binding validator validates
|
||||||
/// all of the bindings that match the [`Context`] it is paired with.
|
/// all of the bindings that match the [`Context`] it is paired with.
|
||||||
|
#[cfg_attr(not(debug_assertions), allow(dead_code))]
|
||||||
binding_validators: Vec<(Context, BindingValidatorFn)>,
|
binding_validators: Vec<(Context, BindingValidatorFn)>,
|
||||||
/// Function to convert bindings that have a [`CustomTag`] trigger to one that has a
|
/// Function to convert bindings that have a [`CustomTag`] trigger to one that has a
|
||||||
/// [`Keystroke`]-based trigger instead. If `None`, bindings are not converted.
|
/// [`Keystroke`]-based trigger instead. If `None`, bindings are not converted.
|
||||||
|
|||||||
@@ -533,9 +533,9 @@ impl Scene {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn validate_rect(rect: &RectF, location: Option<&'static std::panic::Location<'static>>) {
|
fn validate_rect(rect: &RectF, _location: Option<&'static std::panic::Location<'static>>) {
|
||||||
#[cfg(debug_assertions)]
|
#[cfg(debug_assertions)]
|
||||||
let location_info = location
|
let location_info = _location
|
||||||
.map(|loc| {
|
.map(|loc| {
|
||||||
format!(
|
format!(
|
||||||
" (element created at {}:{}:{})",
|
" (element created at {}:{}:{})",
|
||||||
|
|||||||
Executable
+28
@@ -0,0 +1,28 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
cd "$(dirname "$0")"
|
||||||
|
|
||||||
|
PROFILE="debug"
|
||||||
|
if [ "$1" = "--release" ]; then
|
||||||
|
PROFILE="release"
|
||||||
|
CARGO_FLAGS="--release"
|
||||||
|
fi
|
||||||
|
|
||||||
|
APP_PATH="target/${PROFILE}/bundle/osx/Galaxy.app"
|
||||||
|
INSTALL_PATH="/Applications/Galaxy.app"
|
||||||
|
|
||||||
|
echo "=== Building Galaxy (${PROFILE}) ==="
|
||||||
|
cargo bundle ${CARGO_FLAGS} --bin galaxy-oss --package galaxy
|
||||||
|
|
||||||
|
if [ ! -d "$APP_PATH" ]; then
|
||||||
|
echo "Error: Bundle not found at ${APP_PATH}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "=== Installing to /Applications ==="
|
||||||
|
if [ -d "$INSTALL_PATH" ]; then
|
||||||
|
rm -rf "$INSTALL_PATH"
|
||||||
|
fi
|
||||||
|
|
||||||
|
cp -R "$APP_PATH" "$INSTALL_PATH"
|
||||||
|
echo "=== Installed Galaxy.app to /Applications ==="
|
||||||
Reference in New Issue
Block a user