diff --git a/Cargo.lock b/Cargo.lock index 7256782e31..55e56af234 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -9838,6 +9838,7 @@ dependencies = [ name = "theme_selector" version = "0.1.0" dependencies = [ + "client", "editor", "feature_flags", "fs", @@ -9858,6 +9859,7 @@ dependencies = [ name = "theme_selector2" version = "0.1.0" dependencies = [ + "client2", "editor2", "feature_flags2", "fs2", diff --git a/crates/assistant2/src/assistant_panel.rs b/crates/assistant2/src/assistant_panel.rs index b158facbd9..f93f33d539 100644 --- a/crates/assistant2/src/assistant_panel.rs +++ b/crates/assistant2/src/assistant_panel.rs @@ -1281,6 +1281,10 @@ impl Panel for AssistantPanel { Some(Icon::Ai) } + fn icon_tooltip(&self, _cx: &WindowContext) -> Option<&'static str> { + Some("Assistant Panel") + } + fn toggle_action(&self) -> Box { Box::new(ToggleFocus) } diff --git a/crates/client/src/telemetry.rs b/crates/client/src/telemetry.rs index 49cb9843f0..a0aab3de36 100644 --- a/crates/client/src/telemetry.rs +++ b/crates/client/src/telemetry.rs @@ -113,6 +113,11 @@ pub enum ClickhouseEvent { operation: &'static str, milliseconds_since_first_event: i64, }, + Setting { + setting: &'static str, + value: String, + milliseconds_since_first_event: i64, + }, } #[cfg(debug_assertions)] @@ -354,6 +359,21 @@ impl Telemetry { self.report_clickhouse_event(event, telemetry_settings, immediate_flush) } + pub fn report_setting_event( + self: &Arc, + telemetry_settings: TelemetrySettings, + setting: &'static str, + value: String, + ) { + let event = ClickhouseEvent::Setting { + setting, + value, + milliseconds_since_first_event: self.milliseconds_since_first_event(), + }; + + self.report_clickhouse_event(event, telemetry_settings, false) + } + fn milliseconds_since_first_event(&self) -> i64 { let mut state = self.state.lock(); match state.first_event_datetime { diff --git a/crates/client2/src/telemetry.rs b/crates/client2/src/telemetry.rs index 9587bd9a0b..789b627fb0 100644 --- a/crates/client2/src/telemetry.rs +++ b/crates/client2/src/telemetry.rs @@ -28,6 +28,7 @@ struct TelemetryState { app_metadata: AppMetadata, architecture: &'static str, clickhouse_events_queue: Vec, + flush_clickhouse_events_task: Option>, log_file: Option, is_staff: Option, first_event_datetime: Option>, @@ -111,6 +112,11 @@ pub enum ClickhouseEvent { operation: &'static str, milliseconds_since_first_event: i64, }, + Setting { + setting: &'static str, + value: String, + milliseconds_since_first_event: i64, + }, } #[cfg(debug_assertions)] @@ -119,6 +125,12 @@ const MAX_QUEUE_LEN: usize = 1; #[cfg(not(debug_assertions))] const MAX_QUEUE_LEN: usize = 50; +#[cfg(debug_assertions)] +const DEBOUNCE_INTERVAL: Duration = Duration::from_secs(1); + +#[cfg(not(debug_assertions))] +const DEBOUNCE_INTERVAL: Duration = Duration::from_secs(60 * 5); + impl Telemetry { pub fn new(client: Arc, cx: &mut AppContext) -> Arc { let release_channel = if cx.has_global::() { @@ -139,6 +151,7 @@ impl Telemetry { metrics_id: None, session_id: None, clickhouse_events_queue: Default::default(), + flush_clickhouse_events_task: Default::default(), log_file: None, is_staff: None, first_event_datetime: None, @@ -370,6 +383,21 @@ impl Telemetry { self.report_clickhouse_event(event, telemetry_settings, immediate_flush) } + pub fn report_setting_event( + self: &Arc, + telemetry_settings: TelemetrySettings, + setting: &'static str, + value: String, + ) { + let event = ClickhouseEvent::Setting { + setting, + value, + milliseconds_since_first_event: self.milliseconds_since_first_event(), + }; + + self.report_clickhouse_event(event, telemetry_settings, false) + } + fn milliseconds_since_first_event(&self) -> i64 { let mut state = self.state.lock(); match state.first_event_datetime { @@ -404,6 +432,13 @@ impl Telemetry { if immediate_flush || state.clickhouse_events_queue.len() >= MAX_QUEUE_LEN { drop(state); self.flush_clickhouse_events(); + } else { + let this = self.clone(); + let executor = self.executor.clone(); + state.flush_clickhouse_events_task = Some(self.executor.spawn(async move { + executor.timer(DEBOUNCE_INTERVAL).await; + this.flush_clickhouse_events(); + })); } } } @@ -424,6 +459,7 @@ impl Telemetry { let mut state = self.state.lock(); state.first_event_datetime = None; let mut events = mem::take(&mut state.clickhouse_events_queue); + state.flush_clickhouse_events_task.take(); drop(state); let this = self.clone(); diff --git a/crates/collab/k8s b/crates/collab/k8s new file mode 120000 index 0000000000..21ce7e2abd --- /dev/null +++ b/crates/collab/k8s @@ -0,0 +1 @@ +../collab2/k8s \ No newline at end of file diff --git a/crates/collab/k8s/environments/production.sh b/crates/collab/k8s/environments/production.sh deleted file mode 100644 index cb1d4b4de7..0000000000 --- a/crates/collab/k8s/environments/production.sh +++ /dev/null @@ -1,4 +0,0 @@ -ZED_ENVIRONMENT=production -RUST_LOG=info -INVITE_LINK_PREFIX=https://zed.dev/invites/ -DATABASE_MAX_CONNECTIONS=85 diff --git a/crates/collab/k8s/environments/staging.sh b/crates/collab/k8s/environments/staging.sh deleted file mode 100644 index b9689ccb19..0000000000 --- a/crates/collab/k8s/environments/staging.sh +++ /dev/null @@ -1,4 +0,0 @@ -ZED_ENVIRONMENT=staging -RUST_LOG=info -INVITE_LINK_PREFIX=https://staging.zed.dev/invites/ -DATABASE_MAX_CONNECTIONS=5 diff --git a/crates/collab/k8s/manifest.template.yml b/crates/collab/k8s/manifest.template.yml deleted file mode 100644 index d4a7a7033e..0000000000 --- a/crates/collab/k8s/manifest.template.yml +++ /dev/null @@ -1,177 +0,0 @@ ---- -apiVersion: v1 -kind: Namespace -metadata: - name: ${ZED_KUBE_NAMESPACE} - ---- -kind: Service -apiVersion: v1 -metadata: - namespace: ${ZED_KUBE_NAMESPACE} - name: collab - annotations: - service.beta.kubernetes.io/do-loadbalancer-tls-ports: "443" - service.beta.kubernetes.io/do-loadbalancer-certificate-id: ${ZED_DO_CERTIFICATE_ID} -spec: - type: LoadBalancer - selector: - app: collab - ports: - - name: web - protocol: TCP - port: 443 - targetPort: 8080 - ---- -kind: Service -apiVersion: v1 -metadata: - namespace: ${ZED_KUBE_NAMESPACE} - name: pgadmin - annotations: - service.beta.kubernetes.io/do-loadbalancer-tls-ports: "443" - service.beta.kubernetes.io/do-loadbalancer-certificate-id: ${ZED_DO_CERTIFICATE_ID} -spec: - type: LoadBalancer - selector: - app: postgrest - ports: - - name: web - protocol: TCP - port: 443 - targetPort: 8080 - ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - namespace: ${ZED_KUBE_NAMESPACE} - name: collab - -spec: - replicas: 1 - selector: - matchLabels: - app: collab - template: - metadata: - labels: - app: collab - annotations: - ad.datadoghq.com/collab.check_names: | - ["openmetrics"] - ad.datadoghq.com/collab.init_configs: | - [{}] - ad.datadoghq.com/collab.instances: | - [ - { - "openmetrics_endpoint": "http://%%host%%:%%port%%/metrics", - "namespace": "collab_${ZED_KUBE_NAMESPACE}", - "metrics": [".*"] - } - ] - spec: - containers: - - name: collab - image: "${ZED_IMAGE_ID}" - args: - - serve - ports: - - containerPort: 8080 - protocol: TCP - livenessProbe: - httpGet: - path: /healthz - port: 8080 - initialDelaySeconds: 5 - periodSeconds: 5 - timeoutSeconds: 5 - readinessProbe: - httpGet: - path: / - port: 8080 - initialDelaySeconds: 1 - periodSeconds: 1 - env: - - name: HTTP_PORT - value: "8080" - - name: DATABASE_URL - valueFrom: - secretKeyRef: - name: database - key: url - - name: DATABASE_MAX_CONNECTIONS - value: "${DATABASE_MAX_CONNECTIONS}" - - name: API_TOKEN - valueFrom: - secretKeyRef: - name: api - key: token - - name: LIVE_KIT_SERVER - valueFrom: - secretKeyRef: - name: livekit - key: server - - name: LIVE_KIT_KEY - valueFrom: - secretKeyRef: - name: livekit - key: key - - name: LIVE_KIT_SECRET - valueFrom: - secretKeyRef: - name: livekit - key: secret - - name: INVITE_LINK_PREFIX - value: ${INVITE_LINK_PREFIX} - - name: RUST_BACKTRACE - value: "1" - - name: RUST_LOG - value: ${RUST_LOG} - - name: LOG_JSON - value: "true" - - name: ZED_ENVIRONMENT - value: ${ZED_ENVIRONMENT} - securityContext: - capabilities: - # FIXME - Switch to the more restrictive `PERFMON` capability. - # This capability isn't yet available in a stable version of Debian. - add: ["SYS_ADMIN"] - ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - namespace: ${ZED_KUBE_NAMESPACE} - name: postgrest - -spec: - replicas: 1 - selector: - matchLabels: - app: postgrest - template: - metadata: - labels: - app: postgrest - spec: - containers: - - name: postgrest - image: "postgrest/postgrest" - ports: - - containerPort: 8080 - protocol: TCP - env: - - name: PGRST_SERVER_PORT - value: "8080" - - name: PGRST_DB_URI - valueFrom: - secretKeyRef: - name: database - key: url - - name: PGRST_JWT_SECRET - valueFrom: - secretKeyRef: - name: postgrest - key: jwt_secret diff --git a/crates/collab/k8s/migrate.template.yml b/crates/collab/k8s/migrate.template.yml deleted file mode 100644 index c890d7b330..0000000000 --- a/crates/collab/k8s/migrate.template.yml +++ /dev/null @@ -1,21 +0,0 @@ -apiVersion: batch/v1 -kind: Job -metadata: - namespace: ${ZED_KUBE_NAMESPACE} - name: ${ZED_MIGRATE_JOB_NAME} -spec: - template: - spec: - restartPolicy: Never - containers: - - name: migrator - imagePullPolicy: Always - image: ${ZED_IMAGE_ID} - args: - - migrate - env: - - name: DATABASE_URL - valueFrom: - secretKeyRef: - name: database - key: url diff --git a/crates/collab2/k8s/manifest.template.yml b/crates/collab2/k8s/collab.template.yml similarity index 72% rename from crates/collab2/k8s/manifest.template.yml rename to crates/collab2/k8s/collab.template.yml index d4a7a7033e..e406bf4630 100644 --- a/crates/collab2/k8s/manifest.template.yml +++ b/crates/collab2/k8s/collab.template.yml @@ -23,25 +23,6 @@ spec: port: 443 targetPort: 8080 ---- -kind: Service -apiVersion: v1 -metadata: - namespace: ${ZED_KUBE_NAMESPACE} - name: pgadmin - annotations: - service.beta.kubernetes.io/do-loadbalancer-tls-ports: "443" - service.beta.kubernetes.io/do-loadbalancer-certificate-id: ${ZED_DO_CERTIFICATE_ID} -spec: - type: LoadBalancer - selector: - app: postgrest - ports: - - name: web - protocol: TCP - port: 443 - targetPort: 8080 - --- apiVersion: apps/v1 kind: Deployment @@ -138,40 +119,3 @@ spec: # FIXME - Switch to the more restrictive `PERFMON` capability. # This capability isn't yet available in a stable version of Debian. add: ["SYS_ADMIN"] - ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - namespace: ${ZED_KUBE_NAMESPACE} - name: postgrest - -spec: - replicas: 1 - selector: - matchLabels: - app: postgrest - template: - metadata: - labels: - app: postgrest - spec: - containers: - - name: postgrest - image: "postgrest/postgrest" - ports: - - containerPort: 8080 - protocol: TCP - env: - - name: PGRST_SERVER_PORT - value: "8080" - - name: PGRST_DB_URI - valueFrom: - secretKeyRef: - name: database - key: url - - name: PGRST_JWT_SECRET - valueFrom: - secretKeyRef: - name: postgrest - key: jwt_secret diff --git a/crates/collab/k8s/environments/preview.sh b/crates/collab2/k8s/environments/nightly.sh similarity index 78% rename from crates/collab/k8s/environments/preview.sh rename to crates/collab2/k8s/environments/nightly.sh index 132a1ef53c..49c562437b 100644 --- a/crates/collab/k8s/environments/preview.sh +++ b/crates/collab2/k8s/environments/nightly.sh @@ -1,4 +1,4 @@ -ZED_ENVIRONMENT=preview +ZED_ENVIRONMENT=nightly RUST_LOG=info INVITE_LINK_PREFIX=https://zed.dev/invites/ DATABASE_MAX_CONNECTIONS=10 diff --git a/crates/collab2/k8s/postgrest.template.yml b/crates/collab2/k8s/postgrest.template.yml new file mode 100644 index 0000000000..e2d11a2cd2 --- /dev/null +++ b/crates/collab2/k8s/postgrest.template.yml @@ -0,0 +1,55 @@ +--- +kind: Service +apiVersion: v1 +metadata: + namespace: ${ZED_KUBE_NAMESPACE} + name: postgrest + annotations: + service.beta.kubernetes.io/do-loadbalancer-tls-ports: "443" + service.beta.kubernetes.io/do-loadbalancer-certificate-id: ${ZED_DO_CERTIFICATE_ID} +spec: + type: LoadBalancer + selector: + app: postgrest + ports: + - name: web + protocol: TCP + port: 443 + targetPort: 8080 + +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + namespace: ${ZED_KUBE_NAMESPACE} + name: postgrest + +spec: + replicas: 1 + selector: + matchLabels: + app: postgrest + template: + metadata: + labels: + app: postgrest + spec: + containers: + - name: postgrest + image: "postgrest/postgrest" + ports: + - containerPort: 8080 + protocol: TCP + env: + - name: PGRST_SERVER_PORT + value: "8080" + - name: PGRST_DB_URI + valueFrom: + secretKeyRef: + name: database + key: url + - name: PGRST_JWT_SECRET + valueFrom: + secretKeyRef: + name: postgrest + key: jwt_secret diff --git a/crates/collab_ui2/src/chat_panel.rs b/crates/collab_ui2/src/chat_panel.rs index 84bd855754..2e161df9f4 100644 --- a/crates/collab_ui2/src/chat_panel.rs +++ b/crates/collab_ui2/src/chat_panel.rs @@ -611,6 +611,10 @@ impl Panel for ChatPanel { Some(ui::Icon::MessageBubbles) } + fn icon_tooltip(&self, _cx: &WindowContext) -> Option<&'static str> { + Some("Chat Panel") + } + fn toggle_action(&self) -> Box { Box::new(ToggleFocus) } diff --git a/crates/collab_ui2/src/collab_panel.rs b/crates/collab_ui2/src/collab_panel.rs index 6b9f8a841b..45129fa790 100644 --- a/crates/collab_ui2/src/collab_panel.rs +++ b/crates/collab_ui2/src/collab_panel.rs @@ -2163,18 +2163,33 @@ impl CollabPanel { .child( h_stack() .id(channel_id as usize) + // HACK: This is a dirty hack to help with the positioning of the button container. + // + // We're using a pixel width for the elements but then allowing the contents to + // overflow. This means that the label and facepile will be shown, but will not + // push the button container off the edge of the panel. + .w_px() .child(Label::new(channel.name.clone())) .children(face_pile.map(|face_pile| face_pile.render(cx))), ) .end_slot( h_stack() .absolute() - .right_0() + // We're using a negative coordinate for the right anchor to + // counteract the padding of the `ListItem`. + // + // This prevents a gap from showing up between the background + // of this element and the edge of the collab panel. + .right(rems(-0.5)) // HACK: Without this the channel name clips on top of the icons, but I'm not sure why. .z_index(10) .bg(cx.theme().colors().panel_background) + .when(is_selected || is_active, |this| { + this.bg(cx.theme().colors().ghost_element_selected) + }) .child( h_stack() + .px_1() // The element hover background has a slight transparency to it, so we // need to apply it to the inner element so that it blends with the solid // background color of the absolutely-positioned element. @@ -2347,6 +2362,10 @@ impl Panel for CollabPanel { .then(|| ui::Icon::Collab) } + fn icon_tooltip(&self, _cx: &WindowContext) -> Option<&'static str> { + Some("Collab Panel") + } + fn toggle_action(&self) -> Box { Box::new(ToggleFocus) } diff --git a/crates/collab_ui2/src/notification_panel.rs b/crates/collab_ui2/src/notification_panel.rs index 68df41697f..e000921cda 100644 --- a/crates/collab_ui2/src/notification_panel.rs +++ b/crates/collab_ui2/src/notification_panel.rs @@ -661,6 +661,10 @@ impl Panel for NotificationPanel { .then(|| Icon::Bell) } + fn icon_tooltip(&self, _cx: &WindowContext) -> Option<&'static str> { + Some("Notification Panel") + } + fn icon_label(&self, cx: &WindowContext) -> Option { let count = self.notification_store.read(cx).unread_notification_count(); if count == 0 { diff --git a/crates/diagnostics2/src/diagnostics.rs b/crates/diagnostics2/src/diagnostics.rs index 4c2e01c320..77e6a7673f 100644 --- a/crates/diagnostics2/src/diagnostics.rs +++ b/crates/diagnostics2/src/diagnostics.rs @@ -13,7 +13,7 @@ use editor::{ }; use futures::future::try_join_all; use gpui::{ - actions, div, AnyElement, AnyView, AppContext, Context, EventEmitter, FocusHandle, + actions, div, svg, AnyElement, AnyView, AppContext, Context, EventEmitter, FocusHandle, FocusableView, HighlightStyle, InteractiveElement, IntoElement, Model, ParentElement, Render, SharedString, Styled, StyledText, Subscription, Task, View, ViewContext, VisualContext, WeakView, WindowContext, @@ -800,12 +800,20 @@ fn diagnostic_header_renderer(diagnostic: Diagnostic) -> RenderBlock { h_stack() .gap_3() .map(|stack| { - let icon = if diagnostic.severity == DiagnosticSeverity::ERROR { - IconElement::new(Icon::XCircle).color(Color::Error) - } else { - IconElement::new(Icon::ExclamationTriangle).color(Color::Warning) - }; - stack.child(icon) + stack.child( + svg() + .size(cx.text_style().font_size) + .flex_none() + .map(|icon| { + if diagnostic.severity == DiagnosticSeverity::ERROR { + icon.path(Icon::XCircle.path()) + .text_color(Color::Error.color(cx)) + } else { + icon.path(Icon::ExclamationTriangle.path()) + .text_color(Color::Warning.color(cx)) + } + }), + ) }) .child( h_stack() @@ -819,7 +827,11 @@ fn diagnostic_header_renderer(diagnostic: Diagnostic) -> RenderBlock { ), ) .when_some(diagnostic.code.as_ref(), |stack, code| { - stack.child(Label::new(format!("({code})")).color(Color::Muted)) + stack.child( + div() + .child(SharedString::from(format!("({code})"))) + .text_color(cx.theme().colors().text_muted), + ) }), ), ) @@ -827,7 +839,11 @@ fn diagnostic_header_renderer(diagnostic: Diagnostic) -> RenderBlock { h_stack() .gap_1() .when_some(diagnostic.source.as_ref(), |stack, source| { - stack.child(Label::new(format!("{source}")).color(Color::Muted)) + stack.child( + div() + .child(SharedString::from(source.clone())) + .text_color(cx.theme().colors().text_muted), + ) }), ) .into_any_element() diff --git a/crates/editor2/src/display_map.rs b/crates/editor2/src/display_map.rs index 74daf8ba89..8703f1ba40 100644 --- a/crates/editor2/src/display_map.rs +++ b/crates/editor2/src/display_map.rs @@ -536,7 +536,7 @@ impl DisplaySnapshot { // Omit underlines for HINT/INFO diagnostics on 'unnecessary' code. if severity <= DiagnosticSeverity::WARNING || !chunk.is_unnecessary { let diagnostic_color = - super::diagnostic_style(severity, true, &editor_style.diagnostic_style); + super::diagnostic_style(severity, true, &editor_style.status); diagnostic_highlight.underline = Some(UnderlineStyle { color: Some(diagnostic_color), thickness: 1.0.into(), diff --git a/crates/editor2/src/editor.rs b/crates/editor2/src/editor.rs index 61f4569450..ef8c7b8011 100644 --- a/crates/editor2/src/editor.rs +++ b/crates/editor2/src/editor.rs @@ -97,7 +97,7 @@ use std::{ pub use sum_tree::Bias; use sum_tree::TreeMap; use text::{OffsetUtf16, Rope}; -use theme::{ActiveTheme, DiagnosticStyle, PlayerColor, SyntaxTheme, ThemeColors, ThemeSettings}; +use theme::{ActiveTheme, PlayerColor, StatusColors, SyntaxTheme, ThemeColors, ThemeSettings}; use ui::{ h_stack, ButtonSize, ButtonStyle, Icon, IconButton, ListItem, ListItemSpacing, Popover, Tooltip, }; @@ -514,7 +514,7 @@ pub struct EditorStyle { pub text: TextStyle, pub scrollbar_width: Pixels, pub syntax: Arc, - pub diagnostic_style: DiagnosticStyle, + pub status: StatusColors, pub inlays_style: HighlightStyle, pub suggestions_style: HighlightStyle, } @@ -1197,7 +1197,6 @@ impl CompletionsMenu { .min_w(px(260.)) .max_w(px(640.)) .w(px(500.)) - .text_ui() .overflow_y_scroll() // Prevent a mouse down on documentation from being propagated to the editor, // because that would move the cursor. @@ -1420,7 +1419,6 @@ impl CodeActionsMenu { let colors = cx.theme().colors(); div() .px_2() - .text_ui() .text_color(colors.text) .when(selected, |style| { style @@ -7657,10 +7655,7 @@ impl Editor { text: text_style, scrollbar_width: cx.editor_style.scrollbar_width, syntax: cx.editor_style.syntax.clone(), - diagnostic_style: cx - .editor_style - .diagnostic_style - .clone(), + status: cx.editor_style.status.clone(), // todo!("what about the rest of the highlight style parts for inlays and suggestions?") inlays_style: HighlightStyle { color: Some(cx.theme().status().hint), @@ -9330,7 +9325,7 @@ impl Render for Editor { text: text_style, scrollbar_width: px(12.), syntax: cx.theme().syntax().clone(), - diagnostic_style: cx.theme().diagnostic_style(), + status: cx.theme().status().clone(), // todo!("what about the rest of the highlight style parts?") inlays_style: HighlightStyle { color: Some(cx.theme().status().hint), @@ -9784,21 +9779,17 @@ pub fn highlight_diagnostic_message(diagnostic: &Diagnostic) -> (SharedString, V (text_without_backticks.into(), code_ranges) } -pub fn diagnostic_style( - severity: DiagnosticSeverity, - valid: bool, - style: &DiagnosticStyle, -) -> Hsla { +pub fn diagnostic_style(severity: DiagnosticSeverity, valid: bool, colors: &StatusColors) -> Hsla { match (severity, valid) { - (DiagnosticSeverity::ERROR, true) => style.error, - (DiagnosticSeverity::ERROR, false) => style.error, - (DiagnosticSeverity::WARNING, true) => style.warning, - (DiagnosticSeverity::WARNING, false) => style.warning, - (DiagnosticSeverity::INFORMATION, true) => style.info, - (DiagnosticSeverity::INFORMATION, false) => style.info, - (DiagnosticSeverity::HINT, true) => style.info, - (DiagnosticSeverity::HINT, false) => style.info, - _ => style.ignored, + (DiagnosticSeverity::ERROR, true) => colors.error, + (DiagnosticSeverity::ERROR, false) => colors.error, + (DiagnosticSeverity::WARNING, true) => colors.warning, + (DiagnosticSeverity::WARNING, false) => colors.warning, + (DiagnosticSeverity::INFORMATION, true) => colors.info, + (DiagnosticSeverity::INFORMATION, false) => colors.info, + (DiagnosticSeverity::HINT, true) => colors.info, + (DiagnosticSeverity::HINT, false) => colors.info, + _ => colors.ignored, } } diff --git a/crates/editor2/src/element.rs b/crates/editor2/src/element.rs index da7428a8e0..2b5c97bac5 100644 --- a/crates/editor2/src/element.rs +++ b/crates/editor2/src/element.rs @@ -52,7 +52,7 @@ use std::{ use sum_tree::Bias; use theme::{ActiveTheme, PlayerColor}; use ui::prelude::*; -use ui::{h_stack, ButtonLike, ButtonStyle, IconButton, Label, Tooltip}; +use ui::{h_stack, ButtonLike, ButtonStyle, IconButton, Tooltip}; use util::ResultExt; use workspace::item::Item; @@ -2305,13 +2305,17 @@ impl EditorElement { h_stack().gap_3().child( h_stack() .gap_2() - .child(Label::new( + .child( filename .map(SharedString::from) .unwrap_or_else(|| "untitled".into()), - )) + ) .when_some(parent_path, |then, path| { - then.child(Label::new(path).color(Color::Muted)) + then.child( + div().child(path).text_color( + cx.theme().colors().text_muted, + ), + ) }), ), ) @@ -2373,8 +2377,6 @@ impl EditorElement { this.child(div().size_full().bg(gpui::green())) } }) - // .child("⋯") - // .children(jump_icon) // .p_x(gutter_padding) }; element.into_any() } @@ -2811,50 +2813,65 @@ impl Element for EditorElement { ) { let editor = self.editor.clone(); - let mut layout = self.compute_layout(bounds, cx); - let gutter_bounds = Bounds { - origin: bounds.origin, - size: layout.gutter_size, - }; - let text_bounds = Bounds { - origin: gutter_bounds.upper_right(), - size: layout.text_size, - }; + cx.with_text_style( + Some(gpui::TextStyleRefinement { + font_size: Some(self.style.text.font_size), + ..Default::default() + }), + |cx| { + let mut layout = self.compute_layout(bounds, cx); + let gutter_bounds = Bounds { + origin: bounds.origin, + size: layout.gutter_size, + }; + let text_bounds = Bounds { + origin: gutter_bounds.upper_right(), + size: layout.text_size, + }; - let focus_handle = editor.focus_handle(cx); - let key_context = self.editor.read(cx).key_context(cx); - cx.with_key_dispatch(Some(key_context), Some(focus_handle.clone()), |_, cx| { - self.register_actions(cx); - self.register_key_listeners(cx); + let focus_handle = editor.focus_handle(cx); + let key_context = self.editor.read(cx).key_context(cx); + cx.with_key_dispatch(Some(key_context), Some(focus_handle.clone()), |_, cx| { + self.register_actions(cx); + self.register_key_listeners(cx); - cx.with_content_mask(Some(ContentMask { bounds }), |cx| { - let input_handler = ElementInputHandler::new(bounds, self.editor.clone(), cx); - cx.handle_input(&focus_handle, input_handler); + cx.with_content_mask(Some(ContentMask { bounds }), |cx| { + let input_handler = + ElementInputHandler::new(bounds, self.editor.clone(), cx); + cx.handle_input(&focus_handle, input_handler); - self.paint_background(gutter_bounds, text_bounds, &layout, cx); - if layout.gutter_size.width > Pixels::ZERO { - self.paint_gutter(gutter_bounds, &mut layout, cx); - } - self.paint_text(text_bounds, &mut layout, cx); + self.paint_background(gutter_bounds, text_bounds, &layout, cx); + if layout.gutter_size.width > Pixels::ZERO { + self.paint_gutter(gutter_bounds, &mut layout, cx); + } + self.paint_text(text_bounds, &mut layout, cx); - cx.with_z_index(0, |cx| { - self.paint_mouse_listeners(bounds, gutter_bounds, text_bounds, &layout, cx); - }); - if !layout.blocks.is_empty() { - cx.with_z_index(0, |cx| { - cx.with_element_id(Some("editor_blocks"), |cx| { - self.paint_blocks(bounds, &mut layout, cx); + cx.with_z_index(0, |cx| { + self.paint_mouse_listeners( + bounds, + gutter_bounds, + text_bounds, + &layout, + cx, + ); }); - }) - } + if !layout.blocks.is_empty() { + cx.with_z_index(0, |cx| { + cx.with_element_id(Some("editor_blocks"), |cx| { + self.paint_blocks(bounds, &mut layout, cx); + }); + }) + } - cx.with_z_index(1, |cx| { - self.paint_overlays(text_bounds, &mut layout, cx); - }); + cx.with_z_index(1, |cx| { + self.paint_overlays(text_bounds, &mut layout, cx); + }); - cx.with_z_index(2, |cx| self.paint_scrollbar(bounds, &mut layout, cx)); - }); - }) + cx.with_z_index(2, |cx| self.paint_scrollbar(bounds, &mut layout, cx)); + }); + }) + }, + ); } } diff --git a/crates/editor2/src/hover_popover.rs b/crates/editor2/src/hover_popover.rs index ca2fc4e9b2..6fdd53f43a 100644 --- a/crates/editor2/src/hover_popover.rs +++ b/crates/editor2/src/hover_popover.rs @@ -6,12 +6,13 @@ use crate::{ }; use futures::FutureExt; use gpui::{ - actions, div, px, AnyElement, CursorStyle, InteractiveElement, IntoElement, Model, MouseButton, - ParentElement, Pixels, SharedString, Size, StatefulInteractiveElement, Styled, Task, - ViewContext, WeakView, + actions, div, px, AnyElement, CursorStyle, Hsla, InteractiveElement, IntoElement, Model, + MouseButton, ParentElement, Pixels, SharedString, Size, StatefulInteractiveElement, Styled, + Task, ViewContext, WeakView, }; use language::{markdown, Bias, DiagnosticEntry, Language, LanguageRegistry, ParsedMarkdown}; +use lsp::DiagnosticSeverity; use project::{HoverBlock, HoverBlockKind, InlayHintLabelPart, Project}; use settings::Settings; use std::{ops::Range, sync::Arc, time::Duration}; @@ -477,7 +478,6 @@ impl InfoPopover { div() .id("info_popover") .elevation_2(cx) - .text_ui() .p_2() .overflow_y_scroll() .max_w(max_size.width) @@ -514,16 +514,50 @@ impl DiagnosticPopover { None => self.local_diagnostic.diagnostic.message.clone(), }; - let container_bg = crate::diagnostic_style( - self.local_diagnostic.diagnostic.severity, - true, - &style.diagnostic_style, - ); + struct DiagnosticColors { + pub text: Hsla, + pub background: Hsla, + pub border: Hsla, + } + + let diagnostic_colors = match self.local_diagnostic.diagnostic.severity { + DiagnosticSeverity::ERROR => DiagnosticColors { + text: style.status.error, + background: style.status.error_background, + border: style.status.error_border, + }, + DiagnosticSeverity::WARNING => DiagnosticColors { + text: style.status.warning, + background: style.status.warning_background, + border: style.status.warning_border, + }, + DiagnosticSeverity::INFORMATION => DiagnosticColors { + text: style.status.info, + background: style.status.info_background, + border: style.status.info_border, + }, + DiagnosticSeverity::HINT => DiagnosticColors { + text: style.status.hint, + background: style.status.hint_background, + border: style.status.hint_border, + }, + _ => DiagnosticColors { + text: style.status.ignored, + background: style.status.ignored_background, + border: style.status.ignored_border, + }, + }; div() .id("diagnostic") .overflow_y_scroll() - .bg(container_bg) + .px_2() + .py_1() + .bg(diagnostic_colors.background) + .text_color(diagnostic_colors.text) + .border_1() + .border_color(diagnostic_colors.border) + .rounded_md() .max_w(max_size.width) .max_h(max_size.height) .cursor(CursorStyle::PointingHand) diff --git a/crates/gpui2/src/elements/overlay.rs b/crates/gpui2/src/elements/overlay.rs index 69fe120142..61f24a162b 100644 --- a/crates/gpui2/src/elements/overlay.rs +++ b/crates/gpui2/src/elements/overlay.rs @@ -149,7 +149,9 @@ impl Element for Overlay { desired.origin.y = limits.origin.y; } - cx.with_element_offset(desired.origin - bounds.origin, |cx| { + let mut offset = cx.element_offset() + desired.origin - bounds.origin; + offset = point(offset.x.round(), offset.y.round()); + cx.with_absolute_element_offset(offset, |cx| { cx.break_content_mask(|cx| { for child in &mut self.children { child.paint(cx); diff --git a/crates/project_panel2/src/project_panel.rs b/crates/project_panel2/src/project_panel.rs index 7f743015f1..c125f76cd1 100644 --- a/crates/project_panel2/src/project_panel.rs +++ b/crates/project_panel2/src/project_panel.rs @@ -1612,6 +1612,10 @@ impl Panel for ProjectPanel { Some(ui::Icon::FileTree) } + fn icon_tooltip(&self, _cx: &WindowContext) -> Option<&'static str> { + Some("Project Panel") + } + fn toggle_action(&self) -> Box { Box::new(ToggleFocus) } diff --git a/crates/terminal_view2/src/terminal_panel.rs b/crates/terminal_view2/src/terminal_panel.rs index d228e9e48d..05e4198f21 100644 --- a/crates/terminal_view2/src/terminal_panel.rs +++ b/crates/terminal_view2/src/terminal_panel.rs @@ -419,6 +419,10 @@ impl Panel for TerminalPanel { Some(Icon::Terminal) } + fn icon_tooltip(&self, _cx: &WindowContext) -> Option<&'static str> { + Some("Terminal Panel") + } + fn toggle_action(&self) -> Box { Box::new(ToggleFocus) } diff --git a/crates/theme2/src/one_themes.rs b/crates/theme2/src/one_themes.rs index 498a9ef84d..d0bae590f6 100644 --- a/crates/theme2/src/one_themes.rs +++ b/crates/theme2/src/one_themes.rs @@ -126,19 +126,47 @@ pub(crate) fn one_dark() -> Theme { }, status: StatusColors { conflict: yellow, + conflict_background: yellow, + conflict_border: yellow, created: green, + created_background: green, + created_border: green, deleted: red, + deleted_background: red, + deleted_border: red, error: red, + error_background: red, + error_border: red, hidden: gray, + hidden_background: gray, + hidden_border: gray, hint: blue, + hint_background: blue, + hint_border: blue, ignored: gray, + ignored_background: gray, + ignored_border: gray, info: blue, + info_background: blue, + info_border: blue, modified: yellow, + modified_background: yellow, + modified_border: yellow, predictive: gray, + predictive_background: gray, + predictive_border: gray, renamed: blue, + renamed_background: blue, + renamed_border: blue, success: green, + success_background: green, + success_border: green, unreachable: gray, + unreachable_background: gray, + unreachable_border: gray, warning: yellow, + warning_background: yellow, + warning_border: yellow, }, player: PlayerColors::dark(), syntax: Arc::new(SyntaxTheme { diff --git a/crates/theme2/src/styles/status.rs b/crates/theme2/src/styles/status.rs index db0f475825..0ce166deb5 100644 --- a/crates/theme2/src/styles/status.rs +++ b/crates/theme2/src/styles/status.rs @@ -9,45 +9,73 @@ pub struct StatusColors { /// Indicates some kind of conflict, like a file changed on disk while it was open, or /// merge conflicts in a Git repository. pub conflict: Hsla, + pub conflict_background: Hsla, + pub conflict_border: Hsla, /// Indicates something new, like a new file added to a Git repository. pub created: Hsla, + pub created_background: Hsla, + pub created_border: Hsla, /// Indicates that something no longer exists, like a deleted file. pub deleted: Hsla, + pub deleted_background: Hsla, + pub deleted_border: Hsla, /// Indicates a system error, a failed operation or a diagnostic error. pub error: Hsla, + pub error_background: Hsla, + pub error_border: Hsla, /// Represents a hidden status, such as a file being hidden in a file tree. pub hidden: Hsla, + pub hidden_background: Hsla, + pub hidden_border: Hsla, /// Indicates a hint or some kind of additional information. pub hint: Hsla, + pub hint_background: Hsla, + pub hint_border: Hsla, /// Indicates that something is deliberately ignored, such as a file or operation ignored by Git. pub ignored: Hsla, + pub ignored_background: Hsla, + pub ignored_border: Hsla, /// Represents informational status updates or messages. pub info: Hsla, + pub info_background: Hsla, + pub info_border: Hsla, /// Indicates a changed or altered status, like a file that has been edited. pub modified: Hsla, + pub modified_background: Hsla, + pub modified_border: Hsla, /// Indicates something that is predicted, like automatic code completion, or generated code. pub predictive: Hsla, + pub predictive_background: Hsla, + pub predictive_border: Hsla, /// Represents a renamed status, such as a file that has been renamed. pub renamed: Hsla, + pub renamed_background: Hsla, + pub renamed_border: Hsla, /// Indicates a successful operation or task completion. pub success: Hsla, + pub success_background: Hsla, + pub success_border: Hsla, /// Indicates some kind of unreachable status, like a block of code that can never be reached. pub unreachable: Hsla, + pub unreachable_background: Hsla, + pub unreachable_border: Hsla, /// Represents a warning status, like an operation that is about to fail. pub warning: Hsla, + pub warning_background: Hsla, + pub warning_border: Hsla, } impl Default for StatusColors { @@ -78,38 +106,94 @@ impl StatusColors { pub fn dark() -> Self { Self { conflict: red().dark().step_9(), + conflict_background: red().dark().step_9(), + conflict_border: red().dark().step_9(), created: grass().dark().step_9(), + created_background: grass().dark().step_9(), + created_border: grass().dark().step_9(), deleted: red().dark().step_9(), + deleted_background: red().dark().step_9(), + deleted_border: red().dark().step_9(), error: red().dark().step_9(), + error_background: red().dark().step_9(), + error_border: red().dark().step_9(), hidden: neutral().dark().step_9(), + hidden_background: neutral().dark().step_9(), + hidden_border: neutral().dark().step_9(), hint: blue().dark().step_9(), + hint_background: blue().dark().step_9(), + hint_border: blue().dark().step_9(), ignored: neutral().dark().step_9(), + ignored_background: neutral().dark().step_9(), + ignored_border: neutral().dark().step_9(), info: blue().dark().step_9(), + info_background: blue().dark().step_9(), + info_border: blue().dark().step_9(), modified: yellow().dark().step_9(), + modified_background: yellow().dark().step_9(), + modified_border: yellow().dark().step_9(), predictive: neutral().dark_alpha().step_9(), + predictive_background: neutral().dark_alpha().step_9(), + predictive_border: neutral().dark_alpha().step_9(), renamed: blue().dark().step_9(), + renamed_background: blue().dark().step_9(), + renamed_border: blue().dark().step_9(), success: grass().dark().step_9(), + success_background: grass().dark().step_9(), + success_border: grass().dark().step_9(), unreachable: neutral().dark().step_10(), + unreachable_background: neutral().dark().step_10(), + unreachable_border: neutral().dark().step_10(), warning: yellow().dark().step_9(), + warning_background: yellow().dark().step_9(), + warning_border: yellow().dark().step_9(), } } pub fn light() -> Self { Self { conflict: red().light().step_9(), + conflict_background: red().light().step_9(), + conflict_border: red().light().step_9(), created: grass().light().step_9(), + created_background: grass().light().step_9(), + created_border: grass().light().step_9(), deleted: red().light().step_9(), + deleted_background: red().light().step_9(), + deleted_border: red().light().step_9(), error: red().light().step_9(), + error_background: red().light().step_9(), + error_border: red().light().step_9(), hidden: neutral().light().step_9(), + hidden_background: neutral().light().step_9(), + hidden_border: neutral().light().step_9(), hint: blue().light().step_9(), + hint_background: blue().light().step_9(), + hint_border: blue().light().step_9(), ignored: neutral().light().step_9(), + ignored_background: neutral().light().step_9(), + ignored_border: neutral().light().step_9(), info: blue().light().step_9(), + info_background: blue().light().step_9(), + info_border: blue().light().step_9(), modified: yellow().light().step_9(), + modified_background: yellow().light().step_9(), + modified_border: yellow().light().step_9(), predictive: neutral().light_alpha().step_9(), + predictive_background: neutral().light_alpha().step_9(), + predictive_border: neutral().light_alpha().step_9(), renamed: blue().light().step_9(), + renamed_background: blue().light().step_9(), + renamed_border: blue().light().step_9(), success: grass().light().step_9(), + success_background: grass().light().step_9(), + success_border: grass().light().step_9(), unreachable: neutral().light().step_10(), + unreachable_background: neutral().light().step_10(), + unreachable_border: neutral().light().step_10(), warning: yellow().light().step_9(), + warning_background: yellow().light().step_9(), + warning_border: yellow().light().step_9(), } } diff --git a/crates/theme2/src/theme2.rs b/crates/theme2/src/theme2.rs index fc6253d010..c526a381b7 100644 --- a/crates/theme2/src/theme2.rs +++ b/crates/theme2/src/theme2.rs @@ -134,18 +134,6 @@ impl Theme { self.syntax().color(name) } - /// Returns the [`DiagnosticStyle`] for the theme. - #[inline(always)] - pub fn diagnostic_style(&self) -> DiagnosticStyle { - DiagnosticStyle { - error: self.status().error, - warning: self.status().warning, - info: self.status().info, - hint: self.status().info, - ignored: self.status().ignored, - } - } - /// Returns the [`Appearance`] for the theme. #[inline(always)] pub fn appearance(&self) -> Appearance { @@ -153,15 +141,6 @@ impl Theme { } } -#[derive(Clone, Debug, Default)] -pub struct DiagnosticStyle { - pub error: Hsla, - pub warning: Hsla, - pub info: Hsla, - pub hint: Hsla, - pub ignored: Hsla, -} - pub fn color_alpha(color: Hsla, alpha: f32) -> Hsla { let mut color = color; color.a = alpha; diff --git a/crates/theme2/src/themes/andromeda.rs b/crates/theme2/src/themes/andromeda.rs index 2a0b5dca75..327c6f668f 100644 --- a/crates/theme2/src/themes/andromeda.rs +++ b/crates/theme2/src/themes/andromeda.rs @@ -96,19 +96,47 @@ pub fn andromeda() -> UserThemeFamily { }, status: StatusColorsRefinement { conflict: Some(rgba(0xfee56dff).into()), + conflict_background: Some(rgba(0x5c5015ff).into()), + conflict_border: Some(rgba(0x796b26ff).into()), created: Some(rgba(0x96df72ff).into()), + created_background: Some(rgba(0x194618ff).into()), + created_border: Some(rgba(0x306129ff).into()), deleted: Some(rgba(0xf82872ff).into()), + deleted_background: Some(rgba(0x55051bff).into()), + deleted_border: Some(rgba(0x720a2bff).into()), error: Some(rgba(0xf82872ff).into()), + error_background: Some(rgba(0x55051bff).into()), + error_border: Some(rgba(0x720a2bff).into()), hidden: Some(rgba(0x6b6b73ff).into()), - hint: Some(rgba(0x11a793ff).into()), + hidden_background: Some(rgba(0x262a33ff).into()), + hidden_border: Some(rgba(0x292d37ff).into()), + hint: Some(rgba(0x618399ff).into()), + hint_background: Some(rgba(0x122420ff).into()), + hint_border: Some(rgba(0x183a34ff).into()), ignored: Some(rgba(0xaca8aeff).into()), + ignored_background: Some(rgba(0x262a33ff).into()), + ignored_border: Some(rgba(0x2b2f39ff).into()), info: Some(rgba(0x11a793ff).into()), + info_background: Some(rgba(0x122420ff).into()), + info_border: Some(rgba(0x183a34ff).into()), modified: Some(rgba(0xfee56dff).into()), + modified_background: Some(rgba(0x5c5015ff).into()), + modified_border: Some(rgba(0x796b26ff).into()), predictive: Some(rgba(0x96df72ff).into()), + predictive_background: Some(rgba(0x194618ff).into()), + predictive_border: Some(rgba(0x306129ff).into()), renamed: Some(rgba(0x11a793ff).into()), + renamed_background: Some(rgba(0x122420ff).into()), + renamed_border: Some(rgba(0x183a34ff).into()), success: Some(rgba(0x96df72ff).into()), + success_background: Some(rgba(0x194618ff).into()), + success_border: Some(rgba(0x306129ff).into()), unreachable: Some(rgba(0xaca8aeff).into()), + unreachable_background: Some(rgba(0x262a33ff).into()), + unreachable_border: Some(rgba(0x2b2f39ff).into()), warning: Some(rgba(0xfee56dff).into()), + warning_background: Some(rgba(0x5c5015ff).into()), + warning_border: Some(rgba(0x796b26ff).into()), ..Default::default() }, player: Some(PlayerColors(vec![ diff --git a/crates/theme2/src/themes/atelier.rs b/crates/theme2/src/themes/atelier.rs index 690dede609..42756a8d3f 100644 --- a/crates/theme2/src/themes/atelier.rs +++ b/crates/theme2/src/themes/atelier.rs @@ -97,19 +97,47 @@ pub fn atelier() -> UserThemeFamily { }, status: StatusColorsRefinement { conflict: Some(rgba(0xa59810ff).into()), + conflict_background: Some(rgba(0xf0e9d1ff).into()), + conflict_border: Some(rgba(0xe3d8adff).into()), created: Some(rgba(0x7d9728ff).into()), + created_background: Some(rgba(0xe6e9d3ff).into()), + created_border: Some(rgba(0xd2d8b1ff).into()), deleted: Some(rgba(0xba6337ff).into()), + deleted_background: Some(rgba(0xf6ded4ff).into()), + deleted_border: Some(rgba(0xedc5b3ff).into()), error: Some(rgba(0xba6337ff).into()), + error_background: Some(rgba(0xf6ded4ff).into()), + error_border: Some(rgba(0xedc5b3ff).into()), hidden: Some(rgba(0x767463ff).into()), - hint: Some(rgba(0x38a166ff).into()), + hidden_background: Some(rgba(0xc5c4b9ff).into()), + hidden_border: Some(rgba(0xadac9fff).into()), + hint: Some(rgba(0x768962ff).into()), + hint_background: Some(rgba(0xd9ecdfff).into()), + hint_border: Some(rgba(0xbbddc6ff).into()), ignored: Some(rgba(0x61604fff).into()), + ignored_background: Some(rgba(0xc5c4b9ff).into()), + ignored_border: Some(rgba(0x969585ff).into()), info: Some(rgba(0x38a166ff).into()), + info_background: Some(rgba(0xd9ecdfff).into()), + info_border: Some(rgba(0xbbddc6ff).into()), modified: Some(rgba(0xa59810ff).into()), + modified_background: Some(rgba(0xf0e9d1ff).into()), + modified_border: Some(rgba(0xe3d8adff).into()), predictive: Some(rgba(0x7d9728ff).into()), + predictive_background: Some(rgba(0xe6e9d3ff).into()), + predictive_border: Some(rgba(0xd2d8b1ff).into()), renamed: Some(rgba(0x38a166ff).into()), + renamed_background: Some(rgba(0xd9ecdfff).into()), + renamed_border: Some(rgba(0xbbddc6ff).into()), success: Some(rgba(0x7d9728ff).into()), + success_background: Some(rgba(0xe6e9d3ff).into()), + success_border: Some(rgba(0xd2d8b1ff).into()), unreachable: Some(rgba(0x61604fff).into()), + unreachable_background: Some(rgba(0xc5c4b9ff).into()), + unreachable_border: Some(rgba(0x969585ff).into()), warning: Some(rgba(0xa59810ff).into()), + warning_background: Some(rgba(0xf0e9d1ff).into()), + warning_border: Some(rgba(0xe3d8adff).into()), ..Default::default() }, player: Some(PlayerColors(vec![ @@ -534,19 +562,47 @@ pub fn atelier() -> UserThemeFamily { }, status: StatusColorsRefinement { conflict: Some(rgba(0xc38419ff).into()), + conflict_background: Some(rgba(0x371d0dff).into()), + conflict_border: Some(rgba(0x4f2f12ff).into()), created: Some(rgba(0x7b9727ff).into()), + created_background: Some(rgba(0x1d2110ff).into()), + created_border: Some(rgba(0x2e3516ff).into()), deleted: Some(rgba(0xf22d40ff).into()), + deleted_background: Some(rgba(0x550512ff).into()), + deleted_border: Some(rgba(0x710c1bff).into()), error: Some(rgba(0xf22d40ff).into()), + error_background: Some(rgba(0x550512ff).into()), + error_border: Some(rgba(0x710c1bff).into()), hidden: Some(rgba(0x8e8683ff).into()), - hint: Some(rgba(0x417ee6ff).into()), + hidden_background: Some(rgba(0x443c39ff).into()), + hidden_border: Some(rgba(0x554e4bff).into()), + hint: Some(rgba(0xa87187ff).into()), + hint_background: Some(rgba(0x0f1d3dff).into()), + hint_border: Some(rgba(0x192e5bff).into()), ignored: Some(rgba(0xa79f9dff).into()), + ignored_background: Some(rgba(0x443c39ff).into()), + ignored_border: Some(rgba(0x665f5cff).into()), info: Some(rgba(0x417ee6ff).into()), + info_background: Some(rgba(0x0f1d3dff).into()), + info_border: Some(rgba(0x192e5bff).into()), modified: Some(rgba(0xc38419ff).into()), + modified_background: Some(rgba(0x371d0dff).into()), + modified_border: Some(rgba(0x4f2f12ff).into()), predictive: Some(rgba(0x7b9727ff).into()), + predictive_background: Some(rgba(0x1d2110ff).into()), + predictive_border: Some(rgba(0x2e3516ff).into()), renamed: Some(rgba(0x417ee6ff).into()), + renamed_background: Some(rgba(0x0f1d3dff).into()), + renamed_border: Some(rgba(0x192e5bff).into()), success: Some(rgba(0x7b9727ff).into()), + success_background: Some(rgba(0x1d2110ff).into()), + success_border: Some(rgba(0x2e3516ff).into()), unreachable: Some(rgba(0xa79f9dff).into()), + unreachable_background: Some(rgba(0x443c39ff).into()), + unreachable_border: Some(rgba(0x665f5cff).into()), warning: Some(rgba(0xc38419ff).into()), + warning_background: Some(rgba(0x371d0dff).into()), + warning_border: Some(rgba(0x4f2f12ff).into()), ..Default::default() }, player: Some(PlayerColors(vec![ @@ -971,19 +1027,47 @@ pub fn atelier() -> UserThemeFamily { }, status: StatusColorsRefinement { conflict: Some(rgba(0xa07e3cff).into()), + conflict_background: Some(rgba(0xeee4d5ff).into()), + conflict_border: Some(rgba(0xdfcfb6ff).into()), created: Some(rgba(0x499963ff).into()), + created_background: Some(rgba(0xdaeadeff).into()), + created_border: Some(rgba(0xbedac5ff).into()), deleted: Some(rgba(0xb1623aff).into()), + deleted_background: Some(rgba(0xf3ded4ff).into()), + deleted_border: Some(rgba(0xe8c5b4ff).into()), error: Some(rgba(0xb1623aff).into()), + error_background: Some(rgba(0xf3ded4ff).into()), + error_border: Some(rgba(0xe8c5b4ff).into()), hidden: Some(rgba(0x68766dff).into()), - hint: Some(rgba(0x488c90ff).into()), + hidden_background: Some(rgba(0xbcc5bfff).into()), + hidden_border: Some(rgba(0xa3ada6ff).into()), + hint: Some(rgba(0x66847cff).into()), + hint_background: Some(rgba(0xdae7e8ff).into()), + hint_border: Some(rgba(0xbed4d6ff).into()), ignored: Some(rgba(0x546259ff).into()), + ignored_background: Some(rgba(0xbcc5bfff).into()), + ignored_border: Some(rgba(0x8b968eff).into()), info: Some(rgba(0x488c90ff).into()), + info_background: Some(rgba(0xdae7e8ff).into()), + info_border: Some(rgba(0xbed4d6ff).into()), modified: Some(rgba(0xa07e3cff).into()), + modified_background: Some(rgba(0xeee4d5ff).into()), + modified_border: Some(rgba(0xdfcfb6ff).into()), predictive: Some(rgba(0x499963ff).into()), + predictive_background: Some(rgba(0xdaeadeff).into()), + predictive_border: Some(rgba(0xbedac5ff).into()), renamed: Some(rgba(0x488c90ff).into()), + renamed_background: Some(rgba(0xdae7e8ff).into()), + renamed_border: Some(rgba(0xbed4d6ff).into()), success: Some(rgba(0x499963ff).into()), + success_background: Some(rgba(0xdaeadeff).into()), + success_border: Some(rgba(0xbedac5ff).into()), unreachable: Some(rgba(0x546259ff).into()), + unreachable_background: Some(rgba(0xbcc5bfff).into()), + unreachable_border: Some(rgba(0x8b968eff).into()), warning: Some(rgba(0xa07e3cff).into()), + warning_background: Some(rgba(0xeee4d5ff).into()), + warning_border: Some(rgba(0xdfcfb6ff).into()), ..Default::default() }, player: Some(PlayerColors(vec![ @@ -1408,19 +1492,47 @@ pub fn atelier() -> UserThemeFamily { }, status: StatusColorsRefinement { conflict: Some(rgba(0xa06e3bff).into()), + conflict_background: Some(rgba(0x231a12ff).into()), + conflict_border: Some(rgba(0x392a1aff).into()), created: Some(rgba(0x2c9292ff).into()), + created_background: Some(rgba(0x132020ff).into()), + created_border: Some(rgba(0x1a3434ff).into()), deleted: Some(rgba(0xbe4678ff).into()), + deleted_background: Some(rgba(0x28151cff).into()), + deleted_border: Some(rgba(0x421f2dff).into()), error: Some(rgba(0xbe4678ff).into()), + error_background: Some(rgba(0x28151cff).into()), + error_border: Some(rgba(0x421f2dff).into()), hidden: Some(rgba(0x756f7eff).into()), - hint: Some(rgba(0x576ddaff).into()), + hidden_background: Some(rgba(0x3a353fff).into()), + hidden_border: Some(rgba(0x48434fff).into()), + hint: Some(rgba(0x716998ff).into()), + hint_background: Some(rgba(0x161a36ff).into()), + hint_border: Some(rgba(0x222953ff).into()), ignored: Some(rgba(0x898591ff).into()), + ignored_background: Some(rgba(0x3a353fff).into()), + ignored_border: Some(rgba(0x56505eff).into()), info: Some(rgba(0x576ddaff).into()), + info_background: Some(rgba(0x161a36ff).into()), + info_border: Some(rgba(0x222953ff).into()), modified: Some(rgba(0xa06e3bff).into()), + modified_background: Some(rgba(0x231a12ff).into()), + modified_border: Some(rgba(0x392a1aff).into()), predictive: Some(rgba(0x2c9292ff).into()), + predictive_background: Some(rgba(0x132020ff).into()), + predictive_border: Some(rgba(0x1a3434ff).into()), renamed: Some(rgba(0x576ddaff).into()), + renamed_background: Some(rgba(0x161a36ff).into()), + renamed_border: Some(rgba(0x222953ff).into()), success: Some(rgba(0x2c9292ff).into()), + success_background: Some(rgba(0x132020ff).into()), + success_border: Some(rgba(0x1a3434ff).into()), unreachable: Some(rgba(0x898591ff).into()), + unreachable_background: Some(rgba(0x3a353fff).into()), + unreachable_border: Some(rgba(0x56505eff).into()), warning: Some(rgba(0xa06e3bff).into()), + warning_background: Some(rgba(0x231a12ff).into()), + warning_border: Some(rgba(0x392a1aff).into()), ..Default::default() }, player: Some(PlayerColors(vec![ @@ -1845,19 +1957,47 @@ pub fn atelier() -> UserThemeFamily { }, status: StatusColorsRefinement { conflict: Some(rgba(0xa59810ff).into()), + conflict_background: Some(rgba(0x25210dff).into()), + conflict_border: Some(rgba(0x3b3612ff).into()), created: Some(rgba(0x7d9727ff).into()), + created_background: Some(rgba(0x1e2110ff).into()), + created_border: Some(rgba(0x2f3516ff).into()), deleted: Some(rgba(0xba6237ff).into()), + deleted_background: Some(rgba(0x2b1811ff).into()), + deleted_border: Some(rgba(0x442619ff).into()), error: Some(rgba(0xba6237ff).into()), + error_background: Some(rgba(0x2b1811ff).into()), + error_border: Some(rgba(0x442619ff).into()), hidden: Some(rgba(0x7d7c6aff).into()), - hint: Some(rgba(0x37a166ff).into()), + hidden_background: Some(rgba(0x424136ff).into()), + hidden_border: Some(rgba(0x504f41ff).into()), + hint: Some(rgba(0x70825bff).into()), + hint_background: Some(rgba(0x142319ff).into()), + hint_border: Some(rgba(0x1c3927ff).into()), ignored: Some(rgba(0x91907fff).into()), + ignored_background: Some(rgba(0x424136ff).into()), + ignored_border: Some(rgba(0x5d5c4cff).into()), info: Some(rgba(0x37a166ff).into()), + info_background: Some(rgba(0x142319ff).into()), + info_border: Some(rgba(0x1c3927ff).into()), modified: Some(rgba(0xa59810ff).into()), + modified_background: Some(rgba(0x25210dff).into()), + modified_border: Some(rgba(0x3b3612ff).into()), predictive: Some(rgba(0x7d9727ff).into()), + predictive_background: Some(rgba(0x1e2110ff).into()), + predictive_border: Some(rgba(0x2f3516ff).into()), renamed: Some(rgba(0x37a166ff).into()), + renamed_background: Some(rgba(0x142319ff).into()), + renamed_border: Some(rgba(0x1c3927ff).into()), success: Some(rgba(0x7d9727ff).into()), + success_background: Some(rgba(0x1e2110ff).into()), + success_border: Some(rgba(0x2f3516ff).into()), unreachable: Some(rgba(0x91907fff).into()), + unreachable_background: Some(rgba(0x424136ff).into()), + unreachable_border: Some(rgba(0x5d5c4cff).into()), warning: Some(rgba(0xa59810ff).into()), + warning_background: Some(rgba(0x25210dff).into()), + warning_border: Some(rgba(0x3b3612ff).into()), ..Default::default() }, player: Some(PlayerColors(vec![ @@ -2282,19 +2422,47 @@ pub fn atelier() -> UserThemeFamily { }, status: StatusColorsRefinement { conflict: Some(rgba(0xc08b31ff).into()), + conflict_background: Some(rgba(0x311e11ff).into()), + conflict_border: Some(rgba(0x4b3218ff).into()), created: Some(rgba(0xac973aff).into()), + created_background: Some(rgba(0x252113ff).into()), + created_border: Some(rgba(0x3d351bff).into()), deleted: Some(rgba(0xc94923ff).into()), + deleted_background: Some(rgba(0x3c120dff).into()), + deleted_border: Some(rgba(0x551c13ff).into()), error: Some(rgba(0xc94923ff).into()), + error_background: Some(rgba(0x3c120dff).into()), + error_border: Some(rgba(0x551c13ff).into()), hidden: Some(rgba(0x7e849eff).into()), - hint: Some(rgba(0x3e8fd0ff).into()), + hidden_background: Some(rgba(0x3e4769ff).into()), + hidden_border: Some(rgba(0x4d5577ff).into()), + hint: Some(rgba(0x6d82a6ff).into()), + hint_background: Some(rgba(0x161f2bff).into()), + hint_border: Some(rgba(0x203348ff).into()), ignored: Some(rgba(0x959bb2ff).into()), + ignored_background: Some(rgba(0x3e4769ff).into()), + ignored_border: Some(rgba(0x5c6485ff).into()), info: Some(rgba(0x3e8fd0ff).into()), + info_background: Some(rgba(0x161f2bff).into()), + info_border: Some(rgba(0x203348ff).into()), modified: Some(rgba(0xc08b31ff).into()), + modified_background: Some(rgba(0x311e11ff).into()), + modified_border: Some(rgba(0x4b3218ff).into()), predictive: Some(rgba(0xac973aff).into()), + predictive_background: Some(rgba(0x252113ff).into()), + predictive_border: Some(rgba(0x3d351bff).into()), renamed: Some(rgba(0x3e8fd0ff).into()), + renamed_background: Some(rgba(0x161f2bff).into()), + renamed_border: Some(rgba(0x203348ff).into()), success: Some(rgba(0xac973aff).into()), + success_background: Some(rgba(0x252113ff).into()), + success_border: Some(rgba(0x3d351bff).into()), unreachable: Some(rgba(0x959bb2ff).into()), + unreachable_background: Some(rgba(0x3e4769ff).into()), + unreachable_border: Some(rgba(0x5c6485ff).into()), warning: Some(rgba(0xc08b31ff).into()), + warning_background: Some(rgba(0x311e11ff).into()), + warning_border: Some(rgba(0x4b3218ff).into()), ..Default::default() }, player: Some(PlayerColors(vec![ @@ -2719,19 +2887,47 @@ pub fn atelier() -> UserThemeFamily { }, status: StatusColorsRefinement { conflict: Some(rgba(0xc08b31ff).into()), + conflict_background: Some(rgba(0xf6e6d4ff).into()), + conflict_border: Some(rgba(0xeed4b3ff).into()), created: Some(rgba(0xac973aff).into()), + created_background: Some(rgba(0xf1e9d6ff).into()), + created_border: Some(rgba(0xe4d8b7ff).into()), deleted: Some(rgba(0xc94a23ff).into()), + deleted_background: Some(rgba(0xfcdad0ff).into()), + deleted_border: Some(rgba(0xf6beabff).into()), error: Some(rgba(0xc94a23ff).into()), + error_background: Some(rgba(0xfcdad0ff).into()), + error_border: Some(rgba(0xf6beabff).into()), hidden: Some(rgba(0x767d9aff).into()), - hint: Some(rgba(0x3f8fd0ff).into()), + hidden_background: Some(rgba(0xc2c6d9ff).into()), + hidden_border: Some(rgba(0xaeb3c7ff).into()), + hint: Some(rgba(0x7087b2ff).into()), + hint_background: Some(rgba(0xdde7f6ff).into()), + hint_border: Some(rgba(0xc2d5efff).into()), ignored: Some(rgba(0x606889ff).into()), + ignored_background: Some(rgba(0xc2c6d9ff).into()), + ignored_border: Some(rgba(0x9a9fb6ff).into()), info: Some(rgba(0x3f8fd0ff).into()), + info_background: Some(rgba(0xdde7f6ff).into()), + info_border: Some(rgba(0xc2d5efff).into()), modified: Some(rgba(0xc08b31ff).into()), + modified_background: Some(rgba(0xf6e6d4ff).into()), + modified_border: Some(rgba(0xeed4b3ff).into()), predictive: Some(rgba(0xac973aff).into()), + predictive_background: Some(rgba(0xf1e9d6ff).into()), + predictive_border: Some(rgba(0xe4d8b7ff).into()), renamed: Some(rgba(0x3f8fd0ff).into()), + renamed_background: Some(rgba(0xdde7f6ff).into()), + renamed_border: Some(rgba(0xc2d5efff).into()), success: Some(rgba(0xac973aff).into()), + success_background: Some(rgba(0xf1e9d6ff).into()), + success_border: Some(rgba(0xe4d8b7ff).into()), unreachable: Some(rgba(0x606889ff).into()), + unreachable_background: Some(rgba(0xc2c6d9ff).into()), + unreachable_border: Some(rgba(0x9a9fb6ff).into()), warning: Some(rgba(0xc08b31ff).into()), + warning_background: Some(rgba(0xf6e6d4ff).into()), + warning_border: Some(rgba(0xeed4b3ff).into()), ..Default::default() }, player: Some(PlayerColors(vec![ @@ -3156,19 +3352,47 @@ pub fn atelier() -> UserThemeFamily { }, status: StatusColorsRefinement { conflict: Some(rgba(0xae9515ff).into()), + conflict_background: Some(rgba(0x2a200eff).into()), + conflict_border: Some(rgba(0x413513ff).into()), created: Some(rgba(0x60ac3aff).into()), + created_background: Some(rgba(0x1a2413ff).into()), + created_border: Some(rgba(0x273c1bff).into()), deleted: Some(rgba(0xd73837ff).into()), + deleted_background: Some(rgba(0x450d11ff).into()), + deleted_border: Some(rgba(0x5f1519ff).into()), error: Some(rgba(0xd73837ff).into()), + error_background: Some(rgba(0x450d11ff).into()), + error_border: Some(rgba(0x5f1519ff).into()), hidden: Some(rgba(0x8f8b77ff).into()), - hint: Some(rgba(0x6684e0ff).into()), + hidden_background: Some(rgba(0x45433bff).into()), + hidden_border: Some(rgba(0x58564bff).into()), + hint: Some(rgba(0xb17272ff).into()), + hint_background: Some(rgba(0x171e39ff).into()), + hint_border: Some(rgba(0x263056ff).into()), ignored: Some(rgba(0xa4a08bff).into()), + ignored_background: Some(rgba(0x45433bff).into()), + ignored_border: Some(rgba(0x6c695cff).into()), info: Some(rgba(0x6684e0ff).into()), + info_background: Some(rgba(0x171e39ff).into()), + info_border: Some(rgba(0x263056ff).into()), modified: Some(rgba(0xae9515ff).into()), + modified_background: Some(rgba(0x2a200eff).into()), + modified_border: Some(rgba(0x413513ff).into()), predictive: Some(rgba(0x60ac3aff).into()), + predictive_background: Some(rgba(0x1a2413ff).into()), + predictive_border: Some(rgba(0x273c1bff).into()), renamed: Some(rgba(0x6684e0ff).into()), + renamed_background: Some(rgba(0x171e39ff).into()), + renamed_border: Some(rgba(0x263056ff).into()), success: Some(rgba(0x60ac3aff).into()), + success_background: Some(rgba(0x1a2413ff).into()), + success_border: Some(rgba(0x273c1bff).into()), unreachable: Some(rgba(0xa4a08bff).into()), + unreachable_background: Some(rgba(0x45433bff).into()), + unreachable_border: Some(rgba(0x6c695cff).into()), warning: Some(rgba(0xae9515ff).into()), + warning_background: Some(rgba(0x2a200eff).into()), + warning_border: Some(rgba(0x413513ff).into()), ..Default::default() }, player: Some(PlayerColors(vec![ @@ -3593,19 +3817,47 @@ pub fn atelier() -> UserThemeFamily { }, status: StatusColorsRefinement { conflict: Some(rgba(0x98981cff).into()), + conflict_background: Some(rgba(0x22210fff).into()), + conflict_border: Some(rgba(0x373614ff).into()), created: Some(rgba(0x2ba32aff).into()), + created_background: Some(rgba(0x142310ff).into()), + created_border: Some(rgba(0x1b3917ff).into()), deleted: Some(rgba(0xe61c3cff).into()), + deleted_background: Some(rgba(0x500412ff).into()), + deleted_border: Some(rgba(0x6b071aff).into()), error: Some(rgba(0xe61c3cff).into()), + error_background: Some(rgba(0x500412ff).into()), + error_border: Some(rgba(0x6b071aff).into()), hidden: Some(rgba(0x778f77ff).into()), - hint: Some(rgba(0x3e62f4ff).into()), + hidden_background: Some(rgba(0x3b453bff).into()), + hidden_border: Some(rgba(0x4b584bff).into()), + hint: Some(rgba(0x008b9fff).into()), + hint_background: Some(rgba(0x061949ff).into()), + hint_border: Some(rgba(0x102668ff).into()), ignored: Some(rgba(0x8ba48bff).into()), + ignored_background: Some(rgba(0x3b453bff).into()), + ignored_border: Some(rgba(0x5c6c5cff).into()), info: Some(rgba(0x3e62f4ff).into()), + info_background: Some(rgba(0x061949ff).into()), + info_border: Some(rgba(0x102668ff).into()), modified: Some(rgba(0x98981cff).into()), + modified_background: Some(rgba(0x22210fff).into()), + modified_border: Some(rgba(0x373614ff).into()), predictive: Some(rgba(0x2ba32aff).into()), + predictive_background: Some(rgba(0x142310ff).into()), + predictive_border: Some(rgba(0x1b3917ff).into()), renamed: Some(rgba(0x3e62f4ff).into()), + renamed_background: Some(rgba(0x061949ff).into()), + renamed_border: Some(rgba(0x102668ff).into()), success: Some(rgba(0x2ba32aff).into()), + success_background: Some(rgba(0x142310ff).into()), + success_border: Some(rgba(0x1b3917ff).into()), unreachable: Some(rgba(0x8ba48bff).into()), + unreachable_background: Some(rgba(0x3b453bff).into()), + unreachable_border: Some(rgba(0x5c6c5cff).into()), warning: Some(rgba(0x98981cff).into()), + warning_background: Some(rgba(0x22210fff).into()), + warning_border: Some(rgba(0x373614ff).into()), ..Default::default() }, player: Some(PlayerColors(vec![ @@ -4030,19 +4282,47 @@ pub fn atelier() -> UserThemeFamily { }, status: StatusColorsRefinement { conflict: Some(rgba(0xa06e3cff).into()), + conflict_background: Some(rgba(0xeee0d5ff).into()), + conflict_border: Some(rgba(0xe0c9b5ff).into()), created: Some(rgba(0x2c9292ff).into()), + created_background: Some(rgba(0xd7e9e8ff).into()), + created_border: Some(rgba(0xb9d7d6ff).into()), deleted: Some(rgba(0xbe4778ff).into()), + deleted_background: Some(rgba(0xf5dae2ff).into()), + deleted_border: Some(rgba(0xecbecdff).into()), error: Some(rgba(0xbe4778ff).into()), + error_background: Some(rgba(0xf5dae2ff).into()), + error_border: Some(rgba(0xecbecdff).into()), hidden: Some(rgba(0x6e6876ff).into()), - hint: Some(rgba(0x586ddaff).into()), + hidden_background: Some(rgba(0xbfbcc5ff).into()), + hidden_border: Some(rgba(0xa7a3adff).into()), + hint: Some(rgba(0x786e9dff).into()), + hint_background: Some(rgba(0xe1e0f9ff).into()), + hint_border: Some(rgba(0xc9c8f3ff).into()), ignored: Some(rgba(0x5a5462ff).into()), + ignored_background: Some(rgba(0xbfbcc5ff).into()), + ignored_border: Some(rgba(0x8f8b96ff).into()), info: Some(rgba(0x586ddaff).into()), + info_background: Some(rgba(0xe1e0f9ff).into()), + info_border: Some(rgba(0xc9c8f3ff).into()), modified: Some(rgba(0xa06e3cff).into()), + modified_background: Some(rgba(0xeee0d5ff).into()), + modified_border: Some(rgba(0xe0c9b5ff).into()), predictive: Some(rgba(0x2c9292ff).into()), + predictive_background: Some(rgba(0xd7e9e8ff).into()), + predictive_border: Some(rgba(0xb9d7d6ff).into()), renamed: Some(rgba(0x586ddaff).into()), + renamed_background: Some(rgba(0xe1e0f9ff).into()), + renamed_border: Some(rgba(0xc9c8f3ff).into()), success: Some(rgba(0x2c9292ff).into()), + success_background: Some(rgba(0xd7e9e8ff).into()), + success_border: Some(rgba(0xb9d7d6ff).into()), unreachable: Some(rgba(0x5a5462ff).into()), + unreachable_background: Some(rgba(0xbfbcc5ff).into()), + unreachable_border: Some(rgba(0x8f8b96ff).into()), warning: Some(rgba(0xa06e3cff).into()), + warning_background: Some(rgba(0xeee0d5ff).into()), + warning_border: Some(rgba(0xe0c9b5ff).into()), ..Default::default() }, player: Some(PlayerColors(vec![ @@ -4467,19 +4747,47 @@ pub fn atelier() -> UserThemeFamily { }, status: StatusColorsRefinement { conflict: Some(rgba(0xa06e3bff).into()), + conflict_background: Some(rgba(0x231a12ff).into()), + conflict_border: Some(rgba(0x392a1aff).into()), created: Some(rgba(0x4b8b8bff).into()), + created_background: Some(rgba(0x161f1fff).into()), + created_border: Some(rgba(0x203232ff).into()), deleted: Some(rgba(0xca4949ff).into()), + deleted_background: Some(rgba(0x361414ff).into()), + deleted_border: Some(rgba(0x501e1eff).into()), error: Some(rgba(0xca4949ff).into()), + error_background: Some(rgba(0x361414ff).into()), + error_border: Some(rgba(0x501e1eff).into()), hidden: Some(rgba(0x756e6eff).into()), - hint: Some(rgba(0x7272caff).into()), + hidden_background: Some(rgba(0x3b3535ff).into()), + hidden_border: Some(rgba(0x494242ff).into()), + hint: Some(rgba(0x8a647aff).into()), + hint_background: Some(rgba(0x1c1b29ff).into()), + hint_border: Some(rgba(0x2c2b45ff).into()), ignored: Some(rgba(0x898383ff).into()), + ignored_background: Some(rgba(0x3b3535ff).into()), + ignored_border: Some(rgba(0x564e4eff).into()), info: Some(rgba(0x7272caff).into()), + info_background: Some(rgba(0x1c1b29ff).into()), + info_border: Some(rgba(0x2c2b45ff).into()), modified: Some(rgba(0xa06e3bff).into()), + modified_background: Some(rgba(0x231a12ff).into()), + modified_border: Some(rgba(0x392a1aff).into()), predictive: Some(rgba(0x4b8b8bff).into()), + predictive_background: Some(rgba(0x161f1fff).into()), + predictive_border: Some(rgba(0x203232ff).into()), renamed: Some(rgba(0x7272caff).into()), + renamed_background: Some(rgba(0x1c1b29ff).into()), + renamed_border: Some(rgba(0x2c2b45ff).into()), success: Some(rgba(0x4b8b8bff).into()), + success_background: Some(rgba(0x161f1fff).into()), + success_border: Some(rgba(0x203232ff).into()), unreachable: Some(rgba(0x898383ff).into()), + unreachable_background: Some(rgba(0x3b3535ff).into()), + unreachable_border: Some(rgba(0x564e4eff).into()), warning: Some(rgba(0xa06e3bff).into()), + warning_background: Some(rgba(0x231a12ff).into()), + warning_border: Some(rgba(0x392a1aff).into()), ..Default::default() }, player: Some(PlayerColors(vec![ @@ -4904,19 +5212,47 @@ pub fn atelier() -> UserThemeFamily { }, status: StatusColorsRefinement { conflict: Some(rgba(0xbb8a36ff).into()), + conflict_background: Some(rgba(0x2d1e12ff).into()), + conflict_border: Some(rgba(0x463219ff).into()), created: Some(rgba(0x918b3bff).into()), + created_background: Some(rgba(0x211f12ff).into()), + created_border: Some(rgba(0x34321bff).into()), deleted: Some(rgba(0xca402cff).into()), + deleted_background: Some(rgba(0x3c110eff).into()), + deleted_border: Some(rgba(0x551a15ff).into()), error: Some(rgba(0xca402cff).into()), + error_background: Some(rgba(0x3c110eff).into()), + error_border: Some(rgba(0x551a15ff).into()), hidden: Some(rgba(0x908190ff).into()), - hint: Some(rgba(0x526aebff).into()), + hidden_background: Some(rgba(0x433a43ff).into()), + hidden_border: Some(rgba(0x554a55ff).into()), + hint: Some(rgba(0x8d70a8ff).into()), + hint_background: Some(rgba(0x0e1a43ff).into()), + hint_border: Some(rgba(0x1a2961ff).into()), ignored: Some(rgba(0xa99aa9ff).into()), + ignored_background: Some(rgba(0x433a43ff).into()), + ignored_border: Some(rgba(0x675b67ff).into()), info: Some(rgba(0x526aebff).into()), + info_background: Some(rgba(0x0e1a43ff).into()), + info_border: Some(rgba(0x1a2961ff).into()), modified: Some(rgba(0xbb8a36ff).into()), + modified_background: Some(rgba(0x2d1e12ff).into()), + modified_border: Some(rgba(0x463219ff).into()), predictive: Some(rgba(0x918b3bff).into()), + predictive_background: Some(rgba(0x211f12ff).into()), + predictive_border: Some(rgba(0x34321bff).into()), renamed: Some(rgba(0x526aebff).into()), + renamed_background: Some(rgba(0x0e1a43ff).into()), + renamed_border: Some(rgba(0x1a2961ff).into()), success: Some(rgba(0x918b3bff).into()), + success_background: Some(rgba(0x211f12ff).into()), + success_border: Some(rgba(0x34321bff).into()), unreachable: Some(rgba(0xa99aa9ff).into()), + unreachable_background: Some(rgba(0x433a43ff).into()), + unreachable_border: Some(rgba(0x675b67ff).into()), warning: Some(rgba(0xbb8a36ff).into()), + warning_background: Some(rgba(0x2d1e12ff).into()), + warning_border: Some(rgba(0x463219ff).into()), ..Default::default() }, player: Some(PlayerColors(vec![ @@ -5341,19 +5677,47 @@ pub fn atelier() -> UserThemeFamily { }, status: StatusColorsRefinement { conflict: Some(rgba(0x8a8a11ff).into()), + conflict_background: Some(rgba(0x201f0cff).into()), + conflict_border: Some(rgba(0x333211ff).into()), created: Some(rgba(0x568c3bff).into()), + created_background: Some(rgba(0x171f12ff).into()), + created_border: Some(rgba(0x23321bff).into()), deleted: Some(rgba(0xd22e72ff).into()), + deleted_background: Some(rgba(0x3a101bff).into()), + deleted_border: Some(rgba(0x55162bff).into()), error: Some(rgba(0xd22e72ff).into()), + error_background: Some(rgba(0x3a101bff).into()), + error_border: Some(rgba(0x55162bff).into()), hidden: Some(rgba(0x698c9eff).into()), - hint: Some(rgba(0x277fadff).into()), + hidden_background: Some(rgba(0x33444dff).into()), + hidden_border: Some(rgba(0x415763ff).into()), + hint: Some(rgba(0x52809aff).into()), + hint_background: Some(rgba(0x131d24ff).into()), + hint_border: Some(rgba(0x1a2f3cff).into()), ignored: Some(rgba(0x7ca0b3ff).into()), + ignored_background: Some(rgba(0x33444dff).into()), + ignored_border: Some(rgba(0x4f6b78ff).into()), info: Some(rgba(0x277fadff).into()), + info_background: Some(rgba(0x131d24ff).into()), + info_border: Some(rgba(0x1a2f3cff).into()), modified: Some(rgba(0x8a8a11ff).into()), + modified_background: Some(rgba(0x201f0cff).into()), + modified_border: Some(rgba(0x333211ff).into()), predictive: Some(rgba(0x568c3bff).into()), + predictive_background: Some(rgba(0x171f12ff).into()), + predictive_border: Some(rgba(0x23321bff).into()), renamed: Some(rgba(0x277fadff).into()), + renamed_background: Some(rgba(0x131d24ff).into()), + renamed_border: Some(rgba(0x1a2f3cff).into()), success: Some(rgba(0x568c3bff).into()), + success_background: Some(rgba(0x171f12ff).into()), + success_border: Some(rgba(0x23321bff).into()), unreachable: Some(rgba(0x7ca0b3ff).into()), + unreachable_background: Some(rgba(0x33444dff).into()), + unreachable_border: Some(rgba(0x4f6b78ff).into()), warning: Some(rgba(0x8a8a11ff).into()), + warning_background: Some(rgba(0x201f0cff).into()), + warning_border: Some(rgba(0x333211ff).into()), ..Default::default() }, player: Some(PlayerColors(vec![ @@ -5778,19 +6142,47 @@ pub fn atelier() -> UserThemeFamily { }, status: StatusColorsRefinement { conflict: Some(rgba(0xc3841aff).into()), + conflict_background: Some(rgba(0xf8e5d1ff).into()), + conflict_border: Some(rgba(0xf0d1adff).into()), created: Some(rgba(0x7b9728ff).into()), + created_background: Some(rgba(0xe5e9d3ff).into()), + created_border: Some(rgba(0xd1d8b1ff).into()), deleted: Some(rgba(0xf22e41ff).into()), + deleted_background: Some(rgba(0xffdad5ff).into()), + deleted_border: Some(rgba(0xffbdb6ff).into()), error: Some(rgba(0xf22e41ff).into()), + error_background: Some(rgba(0xffdad5ff).into()), + error_border: Some(rgba(0xffbdb6ff).into()), hidden: Some(rgba(0x847c79ff).into()), - hint: Some(rgba(0x417ee6ff).into()), + hidden_background: Some(rgba(0xcdc8c6ff).into()), + hidden_border: Some(rgba(0xbcb6b4ff).into()), + hint: Some(rgba(0xa67287ff).into()), + hint_background: Some(rgba(0xdfe3fbff).into()), + hint_border: Some(rgba(0xc6cef7ff).into()), ignored: Some(rgba(0x6a6360ff).into()), + ignored_background: Some(rgba(0xcdc8c6ff).into()), + ignored_border: Some(rgba(0xaaa3a1ff).into()), info: Some(rgba(0x417ee6ff).into()), + info_background: Some(rgba(0xdfe3fbff).into()), + info_border: Some(rgba(0xc6cef7ff).into()), modified: Some(rgba(0xc3841aff).into()), + modified_background: Some(rgba(0xf8e5d1ff).into()), + modified_border: Some(rgba(0xf0d1adff).into()), predictive: Some(rgba(0x7b9728ff).into()), + predictive_background: Some(rgba(0xe5e9d3ff).into()), + predictive_border: Some(rgba(0xd1d8b1ff).into()), renamed: Some(rgba(0x417ee6ff).into()), + renamed_background: Some(rgba(0xdfe3fbff).into()), + renamed_border: Some(rgba(0xc6cef7ff).into()), success: Some(rgba(0x7b9728ff).into()), + success_background: Some(rgba(0xe5e9d3ff).into()), + success_border: Some(rgba(0xd1d8b1ff).into()), unreachable: Some(rgba(0x6a6360ff).into()), + unreachable_background: Some(rgba(0xcdc8c6ff).into()), + unreachable_border: Some(rgba(0xaaa3a1ff).into()), warning: Some(rgba(0xc3841aff).into()), + warning_background: Some(rgba(0xf8e5d1ff).into()), + warning_border: Some(rgba(0xf0d1adff).into()), ..Default::default() }, player: Some(PlayerColors(vec![ @@ -6215,19 +6607,47 @@ pub fn atelier() -> UserThemeFamily { }, status: StatusColorsRefinement { conflict: Some(rgba(0xae9515ff).into()), + conflict_background: Some(rgba(0xf2e8d1ff).into()), + conflict_border: Some(rgba(0xe7d7aeff).into()), created: Some(rgba(0x61ac3aff).into()), + created_background: Some(rgba(0xe0eed6ff).into()), + created_border: Some(rgba(0xc9e1b7ff).into()), deleted: Some(rgba(0xd73838ff).into()), + deleted_background: Some(rgba(0xffd9d4ff).into()), + deleted_border: Some(rgba(0xfcbcb2ff).into()), error: Some(rgba(0xd73838ff).into()), + error_background: Some(rgba(0xffd9d4ff).into()), + error_border: Some(rgba(0xfcbcb2ff).into()), hidden: Some(rgba(0x878471ff).into()), - hint: Some(rgba(0x6784e0ff).into()), + hidden_background: Some(rgba(0xcecab4ff).into()), + hidden_border: Some(rgba(0xbbb7a1ff).into()), + hint: Some(rgba(0xb37979ff).into()), + hint_background: Some(rgba(0xe3e5faff).into()), + hint_border: Some(rgba(0xcdd1f5ff).into()), ignored: Some(rgba(0x706d5fff).into()), + ignored_background: Some(rgba(0xcecab4ff).into()), + ignored_border: Some(rgba(0xa8a48eff).into()), info: Some(rgba(0x6784e0ff).into()), + info_background: Some(rgba(0xe3e5faff).into()), + info_border: Some(rgba(0xcdd1f5ff).into()), modified: Some(rgba(0xae9515ff).into()), + modified_background: Some(rgba(0xf2e8d1ff).into()), + modified_border: Some(rgba(0xe7d7aeff).into()), predictive: Some(rgba(0x61ac3aff).into()), + predictive_background: Some(rgba(0xe0eed6ff).into()), + predictive_border: Some(rgba(0xc9e1b7ff).into()), renamed: Some(rgba(0x6784e0ff).into()), + renamed_background: Some(rgba(0xe3e5faff).into()), + renamed_border: Some(rgba(0xcdd1f5ff).into()), success: Some(rgba(0x61ac3aff).into()), + success_background: Some(rgba(0xe0eed6ff).into()), + success_border: Some(rgba(0xc9e1b7ff).into()), unreachable: Some(rgba(0x706d5fff).into()), + unreachable_background: Some(rgba(0xcecab4ff).into()), + unreachable_border: Some(rgba(0xa8a48eff).into()), warning: Some(rgba(0xae9515ff).into()), + warning_background: Some(rgba(0xf2e8d1ff).into()), + warning_border: Some(rgba(0xe7d7aeff).into()), ..Default::default() }, player: Some(PlayerColors(vec![ @@ -6652,19 +7072,47 @@ pub fn atelier() -> UserThemeFamily { }, status: StatusColorsRefinement { conflict: Some(rgba(0xa06e3cff).into()), + conflict_background: Some(rgba(0xeee0d5ff).into()), + conflict_border: Some(rgba(0xe0c9b5ff).into()), created: Some(rgba(0x4c8b8bff).into()), + created_background: Some(rgba(0xdae7e7ff).into()), + created_border: Some(rgba(0xbfd4d4ff).into()), deleted: Some(rgba(0xca4a4aff).into()), + deleted_background: Some(rgba(0xfadbd7ff).into()), + deleted_border: Some(rgba(0xf4bfbaff).into()), error: Some(rgba(0xca4a4aff).into()), + error_background: Some(rgba(0xfadbd7ff).into()), + error_border: Some(rgba(0xf4bfbaff).into()), hidden: Some(rgba(0x6e6666ff).into()), - hint: Some(rgba(0x7372caff).into()), + hidden_background: Some(rgba(0xc1bbbbff).into()), + hidden_border: Some(rgba(0xa8a2a2ff).into()), + hint: Some(rgba(0x916a80ff).into()), + hint_background: Some(rgba(0xe4e1f5ff).into()), + hint_border: Some(rgba(0xcecaecff).into()), ignored: Some(rgba(0x5a5252ff).into()), + ignored_background: Some(rgba(0xc1bbbbff).into()), + ignored_border: Some(rgba(0x8e8989ff).into()), info: Some(rgba(0x7372caff).into()), + info_background: Some(rgba(0xe4e1f5ff).into()), + info_border: Some(rgba(0xcecaecff).into()), modified: Some(rgba(0xa06e3cff).into()), + modified_background: Some(rgba(0xeee0d5ff).into()), + modified_border: Some(rgba(0xe0c9b5ff).into()), predictive: Some(rgba(0x4c8b8bff).into()), + predictive_background: Some(rgba(0xdae7e7ff).into()), + predictive_border: Some(rgba(0xbfd4d4ff).into()), renamed: Some(rgba(0x7372caff).into()), + renamed_background: Some(rgba(0xe4e1f5ff).into()), + renamed_border: Some(rgba(0xcecaecff).into()), success: Some(rgba(0x4c8b8bff).into()), + success_background: Some(rgba(0xdae7e7ff).into()), + success_border: Some(rgba(0xbfd4d4ff).into()), unreachable: Some(rgba(0x5a5252ff).into()), + unreachable_background: Some(rgba(0xc1bbbbff).into()), + unreachable_border: Some(rgba(0x8e8989ff).into()), warning: Some(rgba(0xa06e3cff).into()), + warning_background: Some(rgba(0xeee0d5ff).into()), + warning_border: Some(rgba(0xe0c9b5ff).into()), ..Default::default() }, player: Some(PlayerColors(vec![ @@ -7089,19 +7537,47 @@ pub fn atelier() -> UserThemeFamily { }, status: StatusColorsRefinement { conflict: Some(rgba(0x98981dff).into()), + conflict_background: Some(rgba(0xede9d2ff).into()), + conflict_border: Some(rgba(0xddd8afff).into()), created: Some(rgba(0x2ba32bff).into()), + created_background: Some(rgba(0xd9edd4ff).into()), + created_border: Some(rgba(0xbbdeb2ff).into()), deleted: Some(rgba(0xe61c3dff).into()), + deleted_background: Some(rgba(0xffd8d4ff).into()), + deleted_border: Some(rgba(0xffb9b4ff).into()), error: Some(rgba(0xe61c3dff).into()), + error_background: Some(rgba(0xffd8d4ff).into()), + error_border: Some(rgba(0xffb9b4ff).into()), hidden: Some(rgba(0x718771ff).into()), - hint: Some(rgba(0x3f62f4ff).into()), + hidden_background: Some(rgba(0xb4ceb4ff).into()), + hidden_border: Some(rgba(0xa1bba1ff).into()), + hint: Some(rgba(0x008fa1ff).into()), + hint_background: Some(rgba(0xe1ddfeff).into()), + hint_border: Some(rgba(0xc9c4fdff).into()), ignored: Some(rgba(0x5f705fff).into()), + ignored_background: Some(rgba(0xb4ceb4ff).into()), + ignored_border: Some(rgba(0x8ea88eff).into()), info: Some(rgba(0x3f62f4ff).into()), + info_background: Some(rgba(0xe1ddfeff).into()), + info_border: Some(rgba(0xc9c4fdff).into()), modified: Some(rgba(0x98981dff).into()), + modified_background: Some(rgba(0xede9d2ff).into()), + modified_border: Some(rgba(0xddd8afff).into()), predictive: Some(rgba(0x2ba32bff).into()), + predictive_background: Some(rgba(0xd9edd4ff).into()), + predictive_border: Some(rgba(0xbbdeb2ff).into()), renamed: Some(rgba(0x3f62f4ff).into()), + renamed_background: Some(rgba(0xe1ddfeff).into()), + renamed_border: Some(rgba(0xc9c4fdff).into()), success: Some(rgba(0x2ba32bff).into()), + success_background: Some(rgba(0xd9edd4ff).into()), + success_border: Some(rgba(0xbbdeb2ff).into()), unreachable: Some(rgba(0x5f705fff).into()), + unreachable_background: Some(rgba(0xb4ceb4ff).into()), + unreachable_border: Some(rgba(0x8ea88eff).into()), warning: Some(rgba(0x98981dff).into()), + warning_background: Some(rgba(0xede9d2ff).into()), + warning_border: Some(rgba(0xddd8afff).into()), ..Default::default() }, player: Some(PlayerColors(vec![ @@ -7526,19 +8002,47 @@ pub fn atelier() -> UserThemeFamily { }, status: StatusColorsRefinement { conflict: Some(rgba(0xa07e3bff).into()), + conflict_background: Some(rgba(0x231d12ff).into()), + conflict_border: Some(rgba(0x392e1aff).into()), created: Some(rgba(0x489963ff).into()), + created_background: Some(rgba(0x162119ff).into()), + created_border: Some(rgba(0x203626ff).into()), deleted: Some(rgba(0xb16139ff).into()), + deleted_background: Some(rgba(0x261811ff).into()), + deleted_border: Some(rgba(0x3f2619ff).into()), error: Some(rgba(0xb16139ff).into()), + error_background: Some(rgba(0x261811ff).into()), + error_border: Some(rgba(0x3f2619ff).into()), hidden: Some(rgba(0x6f7e74ff).into()), - hint: Some(rgba(0x478c90ff).into()), + hidden_background: Some(rgba(0x353f39ff).into()), + hidden_border: Some(rgba(0x434f47ff).into()), + hint: Some(rgba(0x607e76ff).into()), + hint_background: Some(rgba(0x151f20ff).into()), + hint_border: Some(rgba(0x1f3233ff).into()), ignored: Some(rgba(0x859188ff).into()), + ignored_background: Some(rgba(0x353f39ff).into()), + ignored_border: Some(rgba(0x505e55ff).into()), info: Some(rgba(0x478c90ff).into()), + info_background: Some(rgba(0x151f20ff).into()), + info_border: Some(rgba(0x1f3233ff).into()), modified: Some(rgba(0xa07e3bff).into()), + modified_background: Some(rgba(0x231d12ff).into()), + modified_border: Some(rgba(0x392e1aff).into()), predictive: Some(rgba(0x489963ff).into()), + predictive_background: Some(rgba(0x162119ff).into()), + predictive_border: Some(rgba(0x203626ff).into()), renamed: Some(rgba(0x478c90ff).into()), + renamed_background: Some(rgba(0x151f20ff).into()), + renamed_border: Some(rgba(0x1f3233ff).into()), success: Some(rgba(0x489963ff).into()), + success_background: Some(rgba(0x162119ff).into()), + success_border: Some(rgba(0x203626ff).into()), unreachable: Some(rgba(0x859188ff).into()), + unreachable_background: Some(rgba(0x353f39ff).into()), + unreachable_border: Some(rgba(0x505e55ff).into()), warning: Some(rgba(0xa07e3bff).into()), + warning_background: Some(rgba(0x231d12ff).into()), + warning_border: Some(rgba(0x392e1aff).into()), ..Default::default() }, player: Some(PlayerColors(vec![ @@ -7963,19 +8467,47 @@ pub fn atelier() -> UserThemeFamily { }, status: StatusColorsRefinement { conflict: Some(rgba(0xbb8a36ff).into()), + conflict_background: Some(rgba(0xf5e6d5ff).into()), + conflict_border: Some(rgba(0xebd3b5ff).into()), created: Some(rgba(0x918b3cff).into()), + created_background: Some(rgba(0xeae6d6ff).into()), + created_border: Some(rgba(0xd9d4b6ff).into()), deleted: Some(rgba(0xca412cff).into()), + deleted_background: Some(rgba(0xfcd9d1ff).into()), + deleted_border: Some(rgba(0xf7bcaeff).into()), error: Some(rgba(0xca412cff).into()), + error_background: Some(rgba(0xfcd9d1ff).into()), + error_border: Some(rgba(0xf7bcaeff).into()), hidden: Some(rgba(0x857785ff).into()), - hint: Some(rgba(0x526aebff).into()), + hidden_background: Some(rgba(0xc6b8c6ff).into()), + hidden_border: Some(rgba(0xbaaabaff).into()), + hint: Some(rgba(0x8c70a6ff).into()), + hint_background: Some(rgba(0xe2dffcff).into()), + hint_border: Some(rgba(0xcac7faff).into()), ignored: Some(rgba(0x6b5e6bff).into()), + ignored_background: Some(rgba(0xc6b8c6ff).into()), + ignored_border: Some(rgba(0xad9dadff).into()), info: Some(rgba(0x526aebff).into()), + info_background: Some(rgba(0xe2dffcff).into()), + info_border: Some(rgba(0xcac7faff).into()), modified: Some(rgba(0xbb8a36ff).into()), + modified_background: Some(rgba(0xf5e6d5ff).into()), + modified_border: Some(rgba(0xebd3b5ff).into()), predictive: Some(rgba(0x918b3cff).into()), + predictive_background: Some(rgba(0xeae6d6ff).into()), + predictive_border: Some(rgba(0xd9d4b6ff).into()), renamed: Some(rgba(0x526aebff).into()), + renamed_background: Some(rgba(0xe2dffcff).into()), + renamed_border: Some(rgba(0xcac7faff).into()), success: Some(rgba(0x918b3cff).into()), + success_background: Some(rgba(0xeae6d6ff).into()), + success_border: Some(rgba(0xd9d4b6ff).into()), unreachable: Some(rgba(0x6b5e6bff).into()), + unreachable_background: Some(rgba(0xc6b8c6ff).into()), + unreachable_border: Some(rgba(0xad9dadff).into()), warning: Some(rgba(0xbb8a36ff).into()), + warning_background: Some(rgba(0xf5e6d5ff).into()), + warning_border: Some(rgba(0xebd3b5ff).into()), ..Default::default() }, player: Some(PlayerColors(vec![ @@ -8400,19 +8932,47 @@ pub fn atelier() -> UserThemeFamily { }, status: StatusColorsRefinement { conflict: Some(rgba(0x8a8a11ff).into()), + conflict_background: Some(rgba(0xeae6d0ff).into()), + conflict_border: Some(rgba(0xd8d3abff).into()), created: Some(rgba(0x578c3cff).into()), + created_background: Some(rgba(0xdde7d5ff).into()), + created_border: Some(rgba(0xc2d5b6ff).into()), deleted: Some(rgba(0xd22f72ff).into()), + deleted_background: Some(rgba(0xfbd8e1ff).into()), + deleted_border: Some(rgba(0xf6bacaff).into()), error: Some(rgba(0xd22f72ff).into()), + error_background: Some(rgba(0xfbd8e1ff).into()), + error_border: Some(rgba(0xf6bacaff).into()), hidden: Some(rgba(0x628496ff).into()), - hint: Some(rgba(0x277fadff).into()), + hidden_background: Some(rgba(0xa6cadcff).into()), + hidden_border: Some(rgba(0x93b7c9ff).into()), + hint: Some(rgba(0x5a87a0ff).into()), + hint_background: Some(rgba(0xd8e4eeff).into()), + hint_border: Some(rgba(0xbacfe1ff).into()), ignored: Some(rgba(0x526f7dff).into()), + ignored_background: Some(rgba(0xa6cadcff).into()), + ignored_border: Some(rgba(0x80a4b6ff).into()), info: Some(rgba(0x277fadff).into()), + info_background: Some(rgba(0xd8e4eeff).into()), + info_border: Some(rgba(0xbacfe1ff).into()), modified: Some(rgba(0x8a8a11ff).into()), + modified_background: Some(rgba(0xeae6d0ff).into()), + modified_border: Some(rgba(0xd8d3abff).into()), predictive: Some(rgba(0x578c3cff).into()), + predictive_background: Some(rgba(0xdde7d5ff).into()), + predictive_border: Some(rgba(0xc2d5b6ff).into()), renamed: Some(rgba(0x277fadff).into()), + renamed_background: Some(rgba(0xd8e4eeff).into()), + renamed_border: Some(rgba(0xbacfe1ff).into()), success: Some(rgba(0x578c3cff).into()), + success_background: Some(rgba(0xdde7d5ff).into()), + success_border: Some(rgba(0xc2d5b6ff).into()), unreachable: Some(rgba(0x526f7dff).into()), + unreachable_background: Some(rgba(0xa6cadcff).into()), + unreachable_border: Some(rgba(0x80a4b6ff).into()), warning: Some(rgba(0x8a8a11ff).into()), + warning_background: Some(rgba(0xeae6d0ff).into()), + warning_border: Some(rgba(0xd8d3abff).into()), ..Default::default() }, player: Some(PlayerColors(vec![ diff --git a/crates/theme2/src/themes/ayu.rs b/crates/theme2/src/themes/ayu.rs index 71e0257ba8..63d8711d57 100644 --- a/crates/theme2/src/themes/ayu.rs +++ b/crates/theme2/src/themes/ayu.rs @@ -97,19 +97,47 @@ pub fn ayu() -> UserThemeFamily { }, status: StatusColorsRefinement { conflict: Some(rgba(0xfeb454ff).into()), + conflict_background: Some(rgba(0x572916ff).into()), + conflict_border: Some(rgba(0x754221ff).into()), created: Some(rgba(0xaad84cff).into()), + created_background: Some(rgba(0x294113ff).into()), + created_border: Some(rgba(0x405c1dff).into()), deleted: Some(rgba(0xef7178ff).into()), + deleted_background: Some(rgba(0x48171cff).into()), + deleted_border: Some(rgba(0x66272dff).into()), error: Some(rgba(0xef7178ff).into()), + error_background: Some(rgba(0x48171cff).into()), + error_border: Some(rgba(0x66272dff).into()), hidden: Some(rgba(0x696a6aff).into()), - hint: Some(rgba(0x5ac2feff).into()), + hidden_background: Some(rgba(0x313337ff).into()), + hidden_border: Some(rgba(0x383a3eff).into()), + hint: Some(rgba(0x638c81ff).into()), + hint_background: Some(rgba(0x0d304fff).into()), + hint_border: Some(rgba(0x1b4a6eff).into()), ignored: Some(rgba(0x8a8986ff).into()), + ignored_background: Some(rgba(0x313337ff).into()), + ignored_border: Some(rgba(0x3f4043ff).into()), info: Some(rgba(0x5ac2feff).into()), + info_background: Some(rgba(0x0d304fff).into()), + info_border: Some(rgba(0x1b4a6eff).into()), modified: Some(rgba(0xfeb454ff).into()), + modified_background: Some(rgba(0x572916ff).into()), + modified_border: Some(rgba(0x754221ff).into()), predictive: Some(rgba(0xaad84cff).into()), + predictive_background: Some(rgba(0x294113ff).into()), + predictive_border: Some(rgba(0x405c1dff).into()), renamed: Some(rgba(0x5ac2feff).into()), + renamed_background: Some(rgba(0x0d304fff).into()), + renamed_border: Some(rgba(0x1b4a6eff).into()), success: Some(rgba(0xaad84cff).into()), + success_background: Some(rgba(0x294113ff).into()), + success_border: Some(rgba(0x405c1dff).into()), unreachable: Some(rgba(0x8a8986ff).into()), + unreachable_background: Some(rgba(0x313337ff).into()), + unreachable_border: Some(rgba(0x3f4043ff).into()), warning: Some(rgba(0xfeb454ff).into()), + warning_background: Some(rgba(0x572916ff).into()), + warning_border: Some(rgba(0x754221ff).into()), ..Default::default() }, player: Some(PlayerColors(vec![ @@ -513,19 +541,47 @@ pub fn ayu() -> UserThemeFamily { }, status: StatusColorsRefinement { conflict: Some(rgba(0xf1ae4aff).into()), + conflict_background: Some(rgba(0xffeedaff).into()), + conflict_border: Some(rgba(0xffe1beff).into()), created: Some(rgba(0x86b305ff).into()), + created_background: Some(rgba(0xe9efd2ff).into()), + created_border: Some(rgba(0xd7e3aeff).into()), deleted: Some(rgba(0xef7271ff).into()), + deleted_background: Some(rgba(0xffe3e1ff).into()), + deleted_border: Some(rgba(0xffcdcaff).into()), error: Some(rgba(0xef7271ff).into()), + error_background: Some(rgba(0xffe3e1ff).into()), + error_border: Some(rgba(0xffcdcaff).into()), hidden: Some(rgba(0xa9acaeff).into()), - hint: Some(rgba(0x3b9ee5ff).into()), + hidden_background: Some(rgba(0xdcdddeff).into()), + hidden_border: Some(rgba(0xd5d6d8ff).into()), + hint: Some(rgba(0x8ca7c2ff).into()), + hint_background: Some(rgba(0xdeebfaff).into()), + hint_border: Some(rgba(0xc4daf6ff).into()), ignored: Some(rgba(0x8c8f93ff).into()), + ignored_background: Some(rgba(0xdcdddeff).into()), + ignored_border: Some(rgba(0xcfd1d2ff).into()), info: Some(rgba(0x3b9ee5ff).into()), + info_background: Some(rgba(0xdeebfaff).into()), + info_border: Some(rgba(0xc4daf6ff).into()), modified: Some(rgba(0xf1ae4aff).into()), + modified_background: Some(rgba(0xffeedaff).into()), + modified_border: Some(rgba(0xffe1beff).into()), predictive: Some(rgba(0x86b305ff).into()), + predictive_background: Some(rgba(0xe9efd2ff).into()), + predictive_border: Some(rgba(0xd7e3aeff).into()), renamed: Some(rgba(0x3b9ee5ff).into()), + renamed_background: Some(rgba(0xdeebfaff).into()), + renamed_border: Some(rgba(0xc4daf6ff).into()), success: Some(rgba(0x86b305ff).into()), + success_background: Some(rgba(0xe9efd2ff).into()), + success_border: Some(rgba(0xd7e3aeff).into()), unreachable: Some(rgba(0x8c8f93ff).into()), + unreachable_background: Some(rgba(0xdcdddeff).into()), + unreachable_border: Some(rgba(0xcfd1d2ff).into()), warning: Some(rgba(0xf1ae4aff).into()), + warning_background: Some(rgba(0xffeedaff).into()), + warning_border: Some(rgba(0xffe1beff).into()), ..Default::default() }, player: Some(PlayerColors(vec![ @@ -929,19 +985,47 @@ pub fn ayu() -> UserThemeFamily { }, status: StatusColorsRefinement { conflict: Some(rgba(0xfed073ff).into()), + conflict_background: Some(rgba(0x584018ff).into()), + conflict_border: Some(rgba(0x765a29ff).into()), created: Some(rgba(0xd5fe80ff).into()), + created_background: Some(rgba(0x426118ff).into()), + created_border: Some(rgba(0x5d7e2cff).into()), deleted: Some(rgba(0xf18779ff).into()), + deleted_background: Some(rgba(0x481b1cff).into()), + deleted_border: Some(rgba(0x662e2dff).into()), error: Some(rgba(0xf18779ff).into()), + error_background: Some(rgba(0x481b1cff).into()), + error_border: Some(rgba(0x662e2dff).into()), hidden: Some(rgba(0x7b7d7fff).into()), - hint: Some(rgba(0x73cffeff).into()), + hidden_background: Some(rgba(0x464a52ff).into()), + hidden_border: Some(rgba(0x4d5058ff).into()), + hint: Some(rgba(0x7399a3ff).into()), + hint_background: Some(rgba(0x123a50ff).into()), + hint_border: Some(rgba(0x24556fff).into()), ignored: Some(rgba(0x9a9a98ff).into()), + ignored_background: Some(rgba(0x464a52ff).into()), + ignored_border: Some(rgba(0x53565dff).into()), info: Some(rgba(0x73cffeff).into()), + info_background: Some(rgba(0x123a50ff).into()), + info_border: Some(rgba(0x24556fff).into()), modified: Some(rgba(0xfed073ff).into()), + modified_background: Some(rgba(0x584018ff).into()), + modified_border: Some(rgba(0x765a29ff).into()), predictive: Some(rgba(0xd5fe80ff).into()), + predictive_background: Some(rgba(0x426118ff).into()), + predictive_border: Some(rgba(0x5d7e2cff).into()), renamed: Some(rgba(0x73cffeff).into()), + renamed_background: Some(rgba(0x123a50ff).into()), + renamed_border: Some(rgba(0x24556fff).into()), success: Some(rgba(0xd5fe80ff).into()), + success_background: Some(rgba(0x426118ff).into()), + success_border: Some(rgba(0x5d7e2cff).into()), unreachable: Some(rgba(0x9a9a98ff).into()), + unreachable_background: Some(rgba(0x464a52ff).into()), + unreachable_border: Some(rgba(0x53565dff).into()), warning: Some(rgba(0xfed073ff).into()), + warning_background: Some(rgba(0x584018ff).into()), + warning_border: Some(rgba(0x765a29ff).into()), ..Default::default() }, player: Some(PlayerColors(vec![ diff --git a/crates/theme2/src/themes/gruvbox.rs b/crates/theme2/src/themes/gruvbox.rs index 113535cbdf..7bc8ef8064 100644 --- a/crates/theme2/src/themes/gruvbox.rs +++ b/crates/theme2/src/themes/gruvbox.rs @@ -97,19 +97,47 @@ pub fn gruvbox() -> UserThemeFamily { }, status: StatusColorsRefinement { conflict: Some(rgba(0xb57616ff).into()), + conflict_background: Some(rgba(0xf5e2d0ff).into()), + conflict_border: Some(rgba(0xebccabff).into()), created: Some(rgba(0x797410ff).into()), + created_background: Some(rgba(0xe5e1ceff).into()), + created_border: Some(rgba(0xd1cba8ff).into()), deleted: Some(rgba(0x9d0408ff).into()), + deleted_background: Some(rgba(0xf4d1c9ff).into()), + deleted_border: Some(rgba(0xe8ac9eff).into()), error: Some(rgba(0x9d0408ff).into()), + error_background: Some(rgba(0xf4d1c9ff).into()), + error_border: Some(rgba(0xe8ac9eff).into()), hidden: Some(rgba(0x8a7c6fff).into()), - hint: Some(rgba(0x0b6678ff).into()), + hidden_background: Some(rgba(0xd9c8a4ff).into()), + hidden_border: Some(rgba(0xd1c09eff).into()), + hint: Some(rgba(0x677562ff).into()), + hint_background: Some(rgba(0xd2dee2ff).into()), + hint_border: Some(rgba(0xaec6cdff).into()), ignored: Some(rgba(0x5f5650ff).into()), + ignored_background: Some(rgba(0xd9c8a4ff).into()), + ignored_border: Some(rgba(0xc9b99aff).into()), info: Some(rgba(0x0b6678ff).into()), + info_background: Some(rgba(0xd2dee2ff).into()), + info_border: Some(rgba(0xaec6cdff).into()), modified: Some(rgba(0xb57616ff).into()), + modified_background: Some(rgba(0xf5e2d0ff).into()), + modified_border: Some(rgba(0xebccabff).into()), predictive: Some(rgba(0x797410ff).into()), + predictive_background: Some(rgba(0xe5e1ceff).into()), + predictive_border: Some(rgba(0xd1cba8ff).into()), renamed: Some(rgba(0x0b6678ff).into()), + renamed_background: Some(rgba(0xd2dee2ff).into()), + renamed_border: Some(rgba(0xaec6cdff).into()), success: Some(rgba(0x797410ff).into()), + success_background: Some(rgba(0xe5e1ceff).into()), + success_border: Some(rgba(0xd1cba8ff).into()), unreachable: Some(rgba(0x5f5650ff).into()), + unreachable_background: Some(rgba(0xd9c8a4ff).into()), + unreachable_border: Some(rgba(0xc9b99aff).into()), warning: Some(rgba(0xb57616ff).into()), + warning_background: Some(rgba(0xf5e2d0ff).into()), + warning_border: Some(rgba(0xebccabff).into()), ..Default::default() }, player: Some(PlayerColors(vec![ @@ -520,19 +548,47 @@ pub fn gruvbox() -> UserThemeFamily { }, status: StatusColorsRefinement { conflict: Some(rgba(0xf9bd30ff).into()), + conflict_background: Some(rgba(0x582f10ff).into()), + conflict_border: Some(rgba(0x754916ff).into()), created: Some(rgba(0xb8bb27ff).into()), + created_background: Some(rgba(0x332b11ff).into()), + created_border: Some(rgba(0x4a4516ff).into()), deleted: Some(rgba(0xfb4a35ff).into()), + deleted_background: Some(rgba(0x5a0a10ff).into()), + deleted_border: Some(rgba(0x771618ff).into()), error: Some(rgba(0xfb4a35ff).into()), + error_background: Some(rgba(0x5a0a10ff).into()), + error_border: Some(rgba(0x771618ff).into()), hidden: Some(rgba(0x9a8c79ff).into()), - hint: Some(rgba(0x83a598ff).into()), + hidden_background: Some(rgba(0x4c4642ff).into()), + hidden_border: Some(rgba(0x544c48ff).into()), + hint: Some(rgba(0x8d957eff).into()), + hint_background: Some(rgba(0x1e2321ff).into()), + hint_border: Some(rgba(0x303a36ff).into()), ignored: Some(rgba(0xc5b597ff).into()), + ignored_background: Some(rgba(0x4c4642ff).into()), + ignored_border: Some(rgba(0x5b534dff).into()), info: Some(rgba(0x83a598ff).into()), + info_background: Some(rgba(0x1e2321ff).into()), + info_border: Some(rgba(0x303a36ff).into()), modified: Some(rgba(0xf9bd30ff).into()), + modified_background: Some(rgba(0x582f10ff).into()), + modified_border: Some(rgba(0x754916ff).into()), predictive: Some(rgba(0xb8bb27ff).into()), + predictive_background: Some(rgba(0x332b11ff).into()), + predictive_border: Some(rgba(0x4a4516ff).into()), renamed: Some(rgba(0x83a598ff).into()), + renamed_background: Some(rgba(0x1e2321ff).into()), + renamed_border: Some(rgba(0x303a36ff).into()), success: Some(rgba(0xb8bb27ff).into()), + success_background: Some(rgba(0x332b11ff).into()), + success_border: Some(rgba(0x4a4516ff).into()), unreachable: Some(rgba(0xc5b597ff).into()), + unreachable_background: Some(rgba(0x4c4642ff).into()), + unreachable_border: Some(rgba(0x5b534dff).into()), warning: Some(rgba(0xf9bd30ff).into()), + warning_background: Some(rgba(0x582f10ff).into()), + warning_border: Some(rgba(0x754916ff).into()), ..Default::default() }, player: Some(PlayerColors(vec![ @@ -943,19 +999,47 @@ pub fn gruvbox() -> UserThemeFamily { }, status: StatusColorsRefinement { conflict: Some(rgba(0xb57616ff).into()), + conflict_background: Some(rgba(0xf5e2d0ff).into()), + conflict_border: Some(rgba(0xebccabff).into()), created: Some(rgba(0x797410ff).into()), + created_background: Some(rgba(0xe5e1ceff).into()), + created_border: Some(rgba(0xd1cba8ff).into()), deleted: Some(rgba(0x9d0408ff).into()), + deleted_background: Some(rgba(0xf4d1c9ff).into()), + deleted_border: Some(rgba(0xe8ac9eff).into()), error: Some(rgba(0x9d0408ff).into()), + error_background: Some(rgba(0xf4d1c9ff).into()), + error_border: Some(rgba(0xe8ac9eff).into()), hidden: Some(rgba(0x8a7c6fff).into()), - hint: Some(rgba(0x0b6678ff).into()), + hidden_background: Some(rgba(0xd9c8a4ff).into()), + hidden_border: Some(rgba(0xd1c09eff).into()), + hint: Some(rgba(0x677562ff).into()), + hint_background: Some(rgba(0xd2dee2ff).into()), + hint_border: Some(rgba(0xaec6cdff).into()), ignored: Some(rgba(0x5f5650ff).into()), + ignored_background: Some(rgba(0xd9c8a4ff).into()), + ignored_border: Some(rgba(0xc9b99aff).into()), info: Some(rgba(0x0b6678ff).into()), + info_background: Some(rgba(0xd2dee2ff).into()), + info_border: Some(rgba(0xaec6cdff).into()), modified: Some(rgba(0xb57616ff).into()), + modified_background: Some(rgba(0xf5e2d0ff).into()), + modified_border: Some(rgba(0xebccabff).into()), predictive: Some(rgba(0x797410ff).into()), + predictive_background: Some(rgba(0xe5e1ceff).into()), + predictive_border: Some(rgba(0xd1cba8ff).into()), renamed: Some(rgba(0x0b6678ff).into()), + renamed_background: Some(rgba(0xd2dee2ff).into()), + renamed_border: Some(rgba(0xaec6cdff).into()), success: Some(rgba(0x797410ff).into()), + success_background: Some(rgba(0xe5e1ceff).into()), + success_border: Some(rgba(0xd1cba8ff).into()), unreachable: Some(rgba(0x5f5650ff).into()), + unreachable_background: Some(rgba(0xd9c8a4ff).into()), + unreachable_border: Some(rgba(0xc9b99aff).into()), warning: Some(rgba(0xb57616ff).into()), + warning_background: Some(rgba(0xf5e2d0ff).into()), + warning_border: Some(rgba(0xebccabff).into()), ..Default::default() }, player: Some(PlayerColors(vec![ @@ -1366,19 +1450,47 @@ pub fn gruvbox() -> UserThemeFamily { }, status: StatusColorsRefinement { conflict: Some(rgba(0xf9bd30ff).into()), + conflict_background: Some(rgba(0x582f10ff).into()), + conflict_border: Some(rgba(0x754916ff).into()), created: Some(rgba(0xb8bb27ff).into()), + created_background: Some(rgba(0x332b11ff).into()), + created_border: Some(rgba(0x4a4516ff).into()), deleted: Some(rgba(0xfb4a35ff).into()), + deleted_background: Some(rgba(0x5a0a10ff).into()), + deleted_border: Some(rgba(0x771618ff).into()), error: Some(rgba(0xfb4a35ff).into()), + error_background: Some(rgba(0x5a0a10ff).into()), + error_border: Some(rgba(0x771618ff).into()), hidden: Some(rgba(0x9a8c79ff).into()), - hint: Some(rgba(0x83a598ff).into()), + hidden_background: Some(rgba(0x4c4642ff).into()), + hidden_border: Some(rgba(0x544c48ff).into()), + hint: Some(rgba(0x8d957eff).into()), + hint_background: Some(rgba(0x1e2321ff).into()), + hint_border: Some(rgba(0x303a36ff).into()), ignored: Some(rgba(0xc5b597ff).into()), + ignored_background: Some(rgba(0x4c4642ff).into()), + ignored_border: Some(rgba(0x5b534dff).into()), info: Some(rgba(0x83a598ff).into()), + info_background: Some(rgba(0x1e2321ff).into()), + info_border: Some(rgba(0x303a36ff).into()), modified: Some(rgba(0xf9bd30ff).into()), + modified_background: Some(rgba(0x582f10ff).into()), + modified_border: Some(rgba(0x754916ff).into()), predictive: Some(rgba(0xb8bb27ff).into()), + predictive_background: Some(rgba(0x332b11ff).into()), + predictive_border: Some(rgba(0x4a4516ff).into()), renamed: Some(rgba(0x83a598ff).into()), + renamed_background: Some(rgba(0x1e2321ff).into()), + renamed_border: Some(rgba(0x303a36ff).into()), success: Some(rgba(0xb8bb27ff).into()), + success_background: Some(rgba(0x332b11ff).into()), + success_border: Some(rgba(0x4a4516ff).into()), unreachable: Some(rgba(0xc5b597ff).into()), + unreachable_background: Some(rgba(0x4c4642ff).into()), + unreachable_border: Some(rgba(0x5b534dff).into()), warning: Some(rgba(0xf9bd30ff).into()), + warning_background: Some(rgba(0x582f10ff).into()), + warning_border: Some(rgba(0x754916ff).into()), ..Default::default() }, player: Some(PlayerColors(vec![ @@ -1789,19 +1901,47 @@ pub fn gruvbox() -> UserThemeFamily { }, status: StatusColorsRefinement { conflict: Some(rgba(0xb57616ff).into()), + conflict_background: Some(rgba(0xf5e2d0ff).into()), + conflict_border: Some(rgba(0xebccabff).into()), created: Some(rgba(0x797410ff).into()), + created_background: Some(rgba(0xe5e1ceff).into()), + created_border: Some(rgba(0xd1cba8ff).into()), deleted: Some(rgba(0x9d0408ff).into()), + deleted_background: Some(rgba(0xf4d1c9ff).into()), + deleted_border: Some(rgba(0xe8ac9eff).into()), error: Some(rgba(0x9d0408ff).into()), + error_background: Some(rgba(0xf4d1c9ff).into()), + error_border: Some(rgba(0xe8ac9eff).into()), hidden: Some(rgba(0x8a7c6fff).into()), - hint: Some(rgba(0x0b6678ff).into()), + hidden_background: Some(rgba(0xd9c8a4ff).into()), + hidden_border: Some(rgba(0xd1c09eff).into()), + hint: Some(rgba(0x677562ff).into()), + hint_background: Some(rgba(0xd2dee2ff).into()), + hint_border: Some(rgba(0xaec6cdff).into()), ignored: Some(rgba(0x5f5650ff).into()), + ignored_background: Some(rgba(0xd9c8a4ff).into()), + ignored_border: Some(rgba(0xc9b99aff).into()), info: Some(rgba(0x0b6678ff).into()), + info_background: Some(rgba(0xd2dee2ff).into()), + info_border: Some(rgba(0xaec6cdff).into()), modified: Some(rgba(0xb57616ff).into()), + modified_background: Some(rgba(0xf5e2d0ff).into()), + modified_border: Some(rgba(0xebccabff).into()), predictive: Some(rgba(0x797410ff).into()), + predictive_background: Some(rgba(0xe5e1ceff).into()), + predictive_border: Some(rgba(0xd1cba8ff).into()), renamed: Some(rgba(0x0b6678ff).into()), + renamed_background: Some(rgba(0xd2dee2ff).into()), + renamed_border: Some(rgba(0xaec6cdff).into()), success: Some(rgba(0x797410ff).into()), + success_background: Some(rgba(0xe5e1ceff).into()), + success_border: Some(rgba(0xd1cba8ff).into()), unreachable: Some(rgba(0x5f5650ff).into()), + unreachable_background: Some(rgba(0xd9c8a4ff).into()), + unreachable_border: Some(rgba(0xc9b99aff).into()), warning: Some(rgba(0xb57616ff).into()), + warning_background: Some(rgba(0xf5e2d0ff).into()), + warning_border: Some(rgba(0xebccabff).into()), ..Default::default() }, player: Some(PlayerColors(vec![ @@ -2212,19 +2352,47 @@ pub fn gruvbox() -> UserThemeFamily { }, status: StatusColorsRefinement { conflict: Some(rgba(0xf9bd30ff).into()), + conflict_background: Some(rgba(0x582f10ff).into()), + conflict_border: Some(rgba(0x754916ff).into()), created: Some(rgba(0xb8bb27ff).into()), + created_background: Some(rgba(0x332b11ff).into()), + created_border: Some(rgba(0x4a4516ff).into()), deleted: Some(rgba(0xfb4a35ff).into()), + deleted_background: Some(rgba(0x5a0a10ff).into()), + deleted_border: Some(rgba(0x771618ff).into()), error: Some(rgba(0xfb4a35ff).into()), + error_background: Some(rgba(0x5a0a10ff).into()), + error_border: Some(rgba(0x771618ff).into()), hidden: Some(rgba(0x9a8c79ff).into()), - hint: Some(rgba(0x83a598ff).into()), + hidden_background: Some(rgba(0x4c4642ff).into()), + hidden_border: Some(rgba(0x544c48ff).into()), + hint: Some(rgba(0x8d957eff).into()), + hint_background: Some(rgba(0x1e2321ff).into()), + hint_border: Some(rgba(0x303a36ff).into()), ignored: Some(rgba(0xc5b597ff).into()), + ignored_background: Some(rgba(0x4c4642ff).into()), + ignored_border: Some(rgba(0x5b534dff).into()), info: Some(rgba(0x83a598ff).into()), + info_background: Some(rgba(0x1e2321ff).into()), + info_border: Some(rgba(0x303a36ff).into()), modified: Some(rgba(0xf9bd30ff).into()), + modified_background: Some(rgba(0x582f10ff).into()), + modified_border: Some(rgba(0x754916ff).into()), predictive: Some(rgba(0xb8bb27ff).into()), + predictive_background: Some(rgba(0x332b11ff).into()), + predictive_border: Some(rgba(0x4a4516ff).into()), renamed: Some(rgba(0x83a598ff).into()), + renamed_background: Some(rgba(0x1e2321ff).into()), + renamed_border: Some(rgba(0x303a36ff).into()), success: Some(rgba(0xb8bb27ff).into()), + success_background: Some(rgba(0x332b11ff).into()), + success_border: Some(rgba(0x4a4516ff).into()), unreachable: Some(rgba(0xc5b597ff).into()), + unreachable_background: Some(rgba(0x4c4642ff).into()), + unreachable_border: Some(rgba(0x5b534dff).into()), warning: Some(rgba(0xf9bd30ff).into()), + warning_background: Some(rgba(0x582f10ff).into()), + warning_border: Some(rgba(0x754916ff).into()), ..Default::default() }, player: Some(PlayerColors(vec![ diff --git a/crates/theme2/src/themes/one.rs b/crates/theme2/src/themes/one.rs index f29686f402..0447306a2c 100644 --- a/crates/theme2/src/themes/one.rs +++ b/crates/theme2/src/themes/one.rs @@ -97,19 +97,47 @@ pub fn one() -> UserThemeFamily { }, status: StatusColorsRefinement { conflict: Some(rgba(0xdec184ff).into()), + conflict_background: Some(rgba(0xfaf2e6ff).into()), + conflict_border: Some(rgba(0xf5e8d2ff).into()), created: Some(rgba(0x669f59ff).into()), + created_background: Some(rgba(0xe0ebdcff).into()), + created_border: Some(rgba(0xc8dcc1ff).into()), deleted: Some(rgba(0xd36151ff).into()), + deleted_background: Some(rgba(0xfbdfd9ff).into()), + deleted_border: Some(rgba(0xf6c6bdff).into()), error: Some(rgba(0xd36151ff).into()), + error_background: Some(rgba(0xfbdfd9ff).into()), + error_border: Some(rgba(0xf6c6bdff).into()), hidden: Some(rgba(0xa1a1a3ff).into()), - hint: Some(rgba(0x5c79e2ff).into()), + hidden_background: Some(rgba(0xdcdcddff).into()), + hidden_border: Some(rgba(0xd3d3d4ff).into()), + hint: Some(rgba(0x9295beff).into()), + hint_background: Some(rgba(0xe2e2faff).into()), + hint_border: Some(rgba(0xcbcdf6ff).into()), ignored: Some(rgba(0x7f8188ff).into()), + ignored_background: Some(rgba(0xdcdcddff).into()), + ignored_border: Some(rgba(0xc9c9caff).into()), info: Some(rgba(0x5c79e2ff).into()), + info_background: Some(rgba(0xe2e2faff).into()), + info_border: Some(rgba(0xcbcdf6ff).into()), modified: Some(rgba(0xdec184ff).into()), + modified_background: Some(rgba(0xfaf2e6ff).into()), + modified_border: Some(rgba(0xf5e8d2ff).into()), predictive: Some(rgba(0x669f59ff).into()), + predictive_background: Some(rgba(0xe0ebdcff).into()), + predictive_border: Some(rgba(0xc8dcc1ff).into()), renamed: Some(rgba(0x5c79e2ff).into()), + renamed_background: Some(rgba(0xe2e2faff).into()), + renamed_border: Some(rgba(0xcbcdf6ff).into()), success: Some(rgba(0x669f59ff).into()), + success_background: Some(rgba(0xe0ebdcff).into()), + success_border: Some(rgba(0xc8dcc1ff).into()), unreachable: Some(rgba(0x7f8188ff).into()), + unreachable_background: Some(rgba(0xdcdcddff).into()), + unreachable_border: Some(rgba(0xc9c9caff).into()), warning: Some(rgba(0xdec184ff).into()), + warning_background: Some(rgba(0xfaf2e6ff).into()), + warning_border: Some(rgba(0xf5e8d2ff).into()), ..Default::default() }, player: Some(PlayerColors(vec![ @@ -520,19 +548,47 @@ pub fn one() -> UserThemeFamily { }, status: StatusColorsRefinement { conflict: Some(rgba(0xdec184ff).into()), + conflict_background: Some(rgba(0x41331dff).into()), + conflict_border: Some(rgba(0x5d4c2fff).into()), created: Some(rgba(0xa1c181ff).into()), + created_background: Some(rgba(0x222e1dff).into()), + created_border: Some(rgba(0x38482fff).into()), deleted: Some(rgba(0xd07277ff).into()), + deleted_background: Some(rgba(0x301b1cff).into()), + deleted_border: Some(rgba(0x4c2b2cff).into()), error: Some(rgba(0xd07277ff).into()), + error_background: Some(rgba(0x301b1cff).into()), + error_border: Some(rgba(0x4c2b2cff).into()), hidden: Some(rgba(0x555a63ff).into()), - hint: Some(rgba(0x74ade8ff).into()), + hidden_background: Some(rgba(0x3b414dff).into()), + hidden_border: Some(rgba(0x414754ff).into()), + hint: Some(rgba(0x5b708aff).into()), + hint_background: Some(rgba(0x18243dff).into()), + hint_border: Some(rgba(0x293c5bff).into()), ignored: Some(rgba(0x838994ff).into()), + ignored_background: Some(rgba(0x3b414dff).into()), + ignored_border: Some(rgba(0x464b57ff).into()), info: Some(rgba(0x74ade8ff).into()), + info_background: Some(rgba(0x18243dff).into()), + info_border: Some(rgba(0x293c5bff).into()), modified: Some(rgba(0xdec184ff).into()), + modified_background: Some(rgba(0x41331dff).into()), + modified_border: Some(rgba(0x5d4c2fff).into()), predictive: Some(rgba(0xa1c181ff).into()), + predictive_background: Some(rgba(0x222e1dff).into()), + predictive_border: Some(rgba(0x38482fff).into()), renamed: Some(rgba(0x74ade8ff).into()), + renamed_background: Some(rgba(0x18243dff).into()), + renamed_border: Some(rgba(0x293c5bff).into()), success: Some(rgba(0xa1c181ff).into()), + success_background: Some(rgba(0x222e1dff).into()), + success_border: Some(rgba(0x38482fff).into()), unreachable: Some(rgba(0x838994ff).into()), + unreachable_background: Some(rgba(0x3b414dff).into()), + unreachable_border: Some(rgba(0x464b57ff).into()), warning: Some(rgba(0xdec184ff).into()), + warning_background: Some(rgba(0x41331dff).into()), + warning_border: Some(rgba(0x5d4c2fff).into()), ..Default::default() }, player: Some(PlayerColors(vec![ diff --git a/crates/theme2/src/themes/rose_pine.rs b/crates/theme2/src/themes/rose_pine.rs index 4dfa9433e4..c5c57342ec 100644 --- a/crates/theme2/src/themes/rose_pine.rs +++ b/crates/theme2/src/themes/rose_pine.rs @@ -97,19 +97,47 @@ pub fn rose_pine() -> UserThemeFamily { }, status: StatusColorsRefinement { conflict: Some(rgba(0xe99d35ff).into()), + conflict_background: Some(rgba(0xffebd6ff).into()), + conflict_border: Some(rgba(0xffdab7ff).into()), created: Some(rgba(0x3eaa8eff).into()), + created_background: Some(rgba(0xdbeee7ff).into()), + created_border: Some(rgba(0xbee0d5ff).into()), deleted: Some(rgba(0xb4647aff).into()), + deleted_background: Some(rgba(0xf1dfe3ff).into()), + deleted_border: Some(rgba(0xe6c6cdff).into()), error: Some(rgba(0xb4647aff).into()), + error_background: Some(rgba(0xf1dfe3ff).into()), + error_border: Some(rgba(0xe6c6cdff).into()), hidden: Some(rgba(0x938fa3ff).into()), - hint: Some(rgba(0x57949fff).into()), + hidden_background: Some(rgba(0xdcd8d8ff).into()), + hidden_border: Some(rgba(0xd0cccfff).into()), + hint: Some(rgba(0x7a92aaff).into()), + hint_background: Some(rgba(0xdde9ebff).into()), + hint_border: Some(rgba(0xc3d7dbff).into()), ignored: Some(rgba(0x706c8cff).into()), + ignored_background: Some(rgba(0xdcd8d8ff).into()), + ignored_border: Some(rgba(0xdcd6d5ff).into()), info: Some(rgba(0x57949fff).into()), + info_background: Some(rgba(0xdde9ebff).into()), + info_border: Some(rgba(0xc3d7dbff).into()), modified: Some(rgba(0xe99d35ff).into()), + modified_background: Some(rgba(0xffebd6ff).into()), + modified_border: Some(rgba(0xffdab7ff).into()), predictive: Some(rgba(0x3eaa8eff).into()), + predictive_background: Some(rgba(0xdbeee7ff).into()), + predictive_border: Some(rgba(0xbee0d5ff).into()), renamed: Some(rgba(0x57949fff).into()), + renamed_background: Some(rgba(0xdde9ebff).into()), + renamed_border: Some(rgba(0xc3d7dbff).into()), success: Some(rgba(0x3eaa8eff).into()), + success_background: Some(rgba(0xdbeee7ff).into()), + success_border: Some(rgba(0xbee0d5ff).into()), unreachable: Some(rgba(0x706c8cff).into()), + unreachable_background: Some(rgba(0xdcd8d8ff).into()), + unreachable_border: Some(rgba(0xdcd6d5ff).into()), warning: Some(rgba(0xe99d35ff).into()), + warning_background: Some(rgba(0xffebd6ff).into()), + warning_border: Some(rgba(0xffdab7ff).into()), ..Default::default() }, player: Some(PlayerColors(vec![ @@ -527,19 +555,47 @@ pub fn rose_pine() -> UserThemeFamily { }, status: StatusColorsRefinement { conflict: Some(rgba(0xf5c177ff).into()), + conflict_background: Some(rgba(0x50341aff).into()), + conflict_border: Some(rgba(0x6d4d2bff).into()), created: Some(rgba(0x5dc2a3ff).into()), + created_background: Some(rgba(0x182e23ff).into()), + created_border: Some(rgba(0x254839ff).into()), deleted: Some(rgba(0xea6f92ff).into()), + deleted_background: Some(rgba(0x431820ff).into()), + deleted_border: Some(rgba(0x612834ff).into()), error: Some(rgba(0xea6f92ff).into()), + error_background: Some(rgba(0x431820ff).into()), + error_border: Some(rgba(0x612834ff).into()), hidden: Some(rgba(0x615d7aff).into()), - hint: Some(rgba(0x9cced7ff).into()), + hidden_background: Some(rgba(0x38354eff).into()), + hidden_border: Some(rgba(0x44415bff).into()), + hint: Some(rgba(0x728aa2ff).into()), + hint_background: Some(rgba(0x2f3739ff).into()), + hint_border: Some(rgba(0x435255ff).into()), ignored: Some(rgba(0x85819eff).into()), + ignored_background: Some(rgba(0x38354eff).into()), + ignored_border: Some(rgba(0x504c68ff).into()), info: Some(rgba(0x9cced7ff).into()), + info_background: Some(rgba(0x2f3739ff).into()), + info_border: Some(rgba(0x435255ff).into()), modified: Some(rgba(0xf5c177ff).into()), + modified_background: Some(rgba(0x50341aff).into()), + modified_border: Some(rgba(0x6d4d2bff).into()), predictive: Some(rgba(0x5dc2a3ff).into()), + predictive_background: Some(rgba(0x182e23ff).into()), + predictive_border: Some(rgba(0x254839ff).into()), renamed: Some(rgba(0x9cced7ff).into()), + renamed_background: Some(rgba(0x2f3739ff).into()), + renamed_border: Some(rgba(0x435255ff).into()), success: Some(rgba(0x5dc2a3ff).into()), + success_background: Some(rgba(0x182e23ff).into()), + success_border: Some(rgba(0x254839ff).into()), unreachable: Some(rgba(0x85819eff).into()), + unreachable_background: Some(rgba(0x38354eff).into()), + unreachable_border: Some(rgba(0x504c68ff).into()), warning: Some(rgba(0xf5c177ff).into()), + warning_background: Some(rgba(0x50341aff).into()), + warning_border: Some(rgba(0x6d4d2bff).into()), ..Default::default() }, player: Some(PlayerColors(vec![ @@ -957,19 +1013,47 @@ pub fn rose_pine() -> UserThemeFamily { }, status: StatusColorsRefinement { conflict: Some(rgba(0xf5c177ff).into()), + conflict_background: Some(rgba(0x50341aff).into()), + conflict_border: Some(rgba(0x6d4d2bff).into()), created: Some(rgba(0x5dc2a3ff).into()), + created_background: Some(rgba(0x182e23ff).into()), + created_border: Some(rgba(0x254839ff).into()), deleted: Some(rgba(0xea6f92ff).into()), + deleted_background: Some(rgba(0x431820ff).into()), + deleted_border: Some(rgba(0x612834ff).into()), error: Some(rgba(0xea6f92ff).into()), + error_background: Some(rgba(0x431820ff).into()), + error_border: Some(rgba(0x612834ff).into()), hidden: Some(rgba(0x2f2b43ff).into()), - hint: Some(rgba(0x9cced7ff).into()), + hidden_background: Some(rgba(0x292739ff).into()), + hidden_border: Some(rgba(0x353347ff).into()), + hint: Some(rgba(0x5e768cff).into()), + hint_background: Some(rgba(0x2f3739ff).into()), + hint_border: Some(rgba(0x435255ff).into()), ignored: Some(rgba(0x75718eff).into()), + ignored_background: Some(rgba(0x292739ff).into()), + ignored_border: Some(rgba(0x423f55ff).into()), info: Some(rgba(0x9cced7ff).into()), + info_background: Some(rgba(0x2f3739ff).into()), + info_border: Some(rgba(0x435255ff).into()), modified: Some(rgba(0xf5c177ff).into()), + modified_background: Some(rgba(0x50341aff).into()), + modified_border: Some(rgba(0x6d4d2bff).into()), predictive: Some(rgba(0x5dc2a3ff).into()), + predictive_background: Some(rgba(0x182e23ff).into()), + predictive_border: Some(rgba(0x254839ff).into()), renamed: Some(rgba(0x9cced7ff).into()), + renamed_background: Some(rgba(0x2f3739ff).into()), + renamed_border: Some(rgba(0x435255ff).into()), success: Some(rgba(0x5dc2a3ff).into()), + success_background: Some(rgba(0x182e23ff).into()), + success_border: Some(rgba(0x254839ff).into()), unreachable: Some(rgba(0x75718eff).into()), + unreachable_background: Some(rgba(0x292739ff).into()), + unreachable_border: Some(rgba(0x423f55ff).into()), warning: Some(rgba(0xf5c177ff).into()), + warning_background: Some(rgba(0x50341aff).into()), + warning_border: Some(rgba(0x6d4d2bff).into()), ..Default::default() }, player: Some(PlayerColors(vec![ diff --git a/crates/theme2/src/themes/sandcastle.rs b/crates/theme2/src/themes/sandcastle.rs index fcd18e0d94..68bff2840f 100644 --- a/crates/theme2/src/themes/sandcastle.rs +++ b/crates/theme2/src/themes/sandcastle.rs @@ -96,19 +96,47 @@ pub fn sandcastle() -> UserThemeFamily { }, status: StatusColorsRefinement { conflict: Some(rgba(0xa07e3bff).into()), + conflict_background: Some(rgba(0x231d12ff).into()), + conflict_border: Some(rgba(0x392e1aff).into()), created: Some(rgba(0x83a598ff).into()), + created_background: Some(rgba(0x1e2321ff).into()), + created_border: Some(rgba(0x303a36ff).into()), deleted: Some(rgba(0xb4637aff).into()), + deleted_background: Some(rgba(0x26191cff).into()), + deleted_border: Some(rgba(0x3f272dff).into()), error: Some(rgba(0xb4637aff).into()), + error_background: Some(rgba(0x26191cff).into()), + error_border: Some(rgba(0x3f272dff).into()), hidden: Some(rgba(0x827568ff).into()), - hint: Some(rgba(0x528b8bff).into()), + hidden_background: Some(rgba(0x333944ff).into()), + hidden_border: Some(rgba(0x393f4aff).into()), + hint: Some(rgba(0x727d68ff).into()), + hint_background: Some(rgba(0x171f1fff).into()), + hint_border: Some(rgba(0x223232ff).into()), ignored: Some(rgba(0xa69782ff).into()), + ignored_background: Some(rgba(0x333944ff).into()), + ignored_border: Some(rgba(0x3d4350ff).into()), info: Some(rgba(0x528b8bff).into()), + info_background: Some(rgba(0x171f1fff).into()), + info_border: Some(rgba(0x223232ff).into()), modified: Some(rgba(0xa07e3bff).into()), + modified_background: Some(rgba(0x231d12ff).into()), + modified_border: Some(rgba(0x392e1aff).into()), predictive: Some(rgba(0x83a598ff).into()), + predictive_background: Some(rgba(0x1e2321ff).into()), + predictive_border: Some(rgba(0x303a36ff).into()), renamed: Some(rgba(0x528b8bff).into()), + renamed_background: Some(rgba(0x171f1fff).into()), + renamed_border: Some(rgba(0x223232ff).into()), success: Some(rgba(0x83a598ff).into()), + success_background: Some(rgba(0x1e2321ff).into()), + success_border: Some(rgba(0x303a36ff).into()), unreachable: Some(rgba(0xa69782ff).into()), + unreachable_background: Some(rgba(0x333944ff).into()), + unreachable_border: Some(rgba(0x3d4350ff).into()), warning: Some(rgba(0xa07e3bff).into()), + warning_background: Some(rgba(0x231d12ff).into()), + warning_border: Some(rgba(0x392e1aff).into()), ..Default::default() }, player: Some(PlayerColors(vec![ diff --git a/crates/theme2/src/themes/solarized.rs b/crates/theme2/src/themes/solarized.rs index a855eed1f3..93bda79738 100644 --- a/crates/theme2/src/themes/solarized.rs +++ b/crates/theme2/src/themes/solarized.rs @@ -97,19 +97,47 @@ pub fn solarized() -> UserThemeFamily { }, status: StatusColorsRefinement { conflict: Some(rgba(0xb58904ff).into()), + conflict_background: Some(rgba(0xf5e6d0ff).into()), + conflict_border: Some(rgba(0xebd3aaff).into()), created: Some(rgba(0x859904ff).into()), + created_background: Some(rgba(0xe9ead0ff).into()), + created_border: Some(rgba(0xd6d9abff).into()), deleted: Some(rgba(0xdc3330ff).into()), + deleted_background: Some(rgba(0xffd9d2ff).into()), + deleted_border: Some(rgba(0xffbbafff).into()), error: Some(rgba(0xdc3330ff).into()), + error_background: Some(rgba(0xffd9d2ff).into()), + error_border: Some(rgba(0xffbbafff).into()), hidden: Some(rgba(0x6a7f86ff).into()), - hint: Some(rgba(0x298bd1ff).into()), + hidden_background: Some(rgba(0xcfd0c4ff).into()), + hidden_border: Some(rgba(0xb7bdb6ff).into()), + hint: Some(rgba(0x5889a3ff).into()), + hint_background: Some(rgba(0xdbe6f6ff).into()), + hint_border: Some(rgba(0xbfd3efff).into()), ignored: Some(rgba(0x34555eff).into()), + ignored_background: Some(rgba(0xcfd0c4ff).into()), + ignored_border: Some(rgba(0x9faaa8ff).into()), info: Some(rgba(0x298bd1ff).into()), + info_background: Some(rgba(0xdbe6f6ff).into()), + info_border: Some(rgba(0xbfd3efff).into()), modified: Some(rgba(0xb58904ff).into()), + modified_background: Some(rgba(0xf5e6d0ff).into()), + modified_border: Some(rgba(0xebd3aaff).into()), predictive: Some(rgba(0x859904ff).into()), + predictive_background: Some(rgba(0xe9ead0ff).into()), + predictive_border: Some(rgba(0xd6d9abff).into()), renamed: Some(rgba(0x298bd1ff).into()), + renamed_background: Some(rgba(0xdbe6f6ff).into()), + renamed_border: Some(rgba(0xbfd3efff).into()), success: Some(rgba(0x859904ff).into()), + success_background: Some(rgba(0xe9ead0ff).into()), + success_border: Some(rgba(0xd6d9abff).into()), unreachable: Some(rgba(0x34555eff).into()), + unreachable_background: Some(rgba(0xcfd0c4ff).into()), + unreachable_border: Some(rgba(0x9faaa8ff).into()), warning: Some(rgba(0xb58904ff).into()), + warning_background: Some(rgba(0xf5e6d0ff).into()), + warning_border: Some(rgba(0xebd3aaff).into()), ..Default::default() }, player: Some(PlayerColors(vec![ @@ -513,19 +541,47 @@ pub fn solarized() -> UserThemeFamily { }, status: StatusColorsRefinement { conflict: Some(rgba(0xb58903ff).into()), + conflict_background: Some(rgba(0x2f1e0cff).into()), + conflict_border: Some(rgba(0x473110ff).into()), created: Some(rgba(0x859904ff).into()), + created_background: Some(rgba(0x1f210cff).into()), + created_border: Some(rgba(0x323610ff).into()), deleted: Some(rgba(0xdc3330ff).into()), + deleted_background: Some(rgba(0x4a090fff).into()), + deleted_border: Some(rgba(0x641116ff).into()), error: Some(rgba(0xdc3330ff).into()), + error_background: Some(rgba(0x4a090fff).into()), + error_border: Some(rgba(0x641116ff).into()), hidden: Some(rgba(0x6f8389ff).into()), - hint: Some(rgba(0x288bd1ff).into()), + hidden_background: Some(rgba(0x083743ff).into()), + hidden_border: Some(rgba(0x19424dff).into()), + hint: Some(rgba(0x4f8297ff).into()), + hint_background: Some(rgba(0x141f2cff).into()), + hint_border: Some(rgba(0x1c3249ff).into()), ignored: Some(rgba(0x93a1a1ff).into()), + ignored_background: Some(rgba(0x083743ff).into()), + ignored_border: Some(rgba(0x2b4f58ff).into()), info: Some(rgba(0x288bd1ff).into()), + info_background: Some(rgba(0x141f2cff).into()), + info_border: Some(rgba(0x1c3249ff).into()), modified: Some(rgba(0xb58903ff).into()), + modified_background: Some(rgba(0x2f1e0cff).into()), + modified_border: Some(rgba(0x473110ff).into()), predictive: Some(rgba(0x859904ff).into()), + predictive_background: Some(rgba(0x1f210cff).into()), + predictive_border: Some(rgba(0x323610ff).into()), renamed: Some(rgba(0x288bd1ff).into()), + renamed_background: Some(rgba(0x141f2cff).into()), + renamed_border: Some(rgba(0x1c3249ff).into()), success: Some(rgba(0x859904ff).into()), + success_background: Some(rgba(0x1f210cff).into()), + success_border: Some(rgba(0x323610ff).into()), unreachable: Some(rgba(0x93a1a1ff).into()), + unreachable_background: Some(rgba(0x083743ff).into()), + unreachable_border: Some(rgba(0x2b4f58ff).into()), warning: Some(rgba(0xb58903ff).into()), + warning_background: Some(rgba(0x2f1e0cff).into()), + warning_border: Some(rgba(0x473110ff).into()), ..Default::default() }, player: Some(PlayerColors(vec![ diff --git a/crates/theme2/src/themes/summercamp.rs b/crates/theme2/src/themes/summercamp.rs index 7a0692c292..0dd28f2628 100644 --- a/crates/theme2/src/themes/summercamp.rs +++ b/crates/theme2/src/themes/summercamp.rs @@ -96,19 +96,47 @@ pub fn summercamp() -> UserThemeFamily { }, status: StatusColorsRefinement { conflict: Some(rgba(0xf1fe29ff).into()), + conflict_background: Some(rgba(0x556305ff).into()), + conflict_border: Some(rgba(0x727f0aff).into()), created: Some(rgba(0x5dea5aff).into()), + created_background: Some(rgba(0x0a4d13ff).into()), + created_border: Some(rgba(0x1a6a20ff).into()), deleted: Some(rgba(0xe35142ff).into()), + deleted_background: Some(rgba(0x491013ff).into()), + deleted_border: Some(rgba(0x651c1cff).into()), error: Some(rgba(0xe35142ff).into()), + error_background: Some(rgba(0x491013ff).into()), + error_border: Some(rgba(0x651c1cff).into()), hidden: Some(rgba(0x4c4735ff).into()), - hint: Some(rgba(0x499befff).into()), + hidden_background: Some(rgba(0x2a261cff).into()), + hidden_border: Some(rgba(0x2e2a1fff).into()), + hint: Some(rgba(0x246e61ff).into()), + hint_background: Some(rgba(0x0e2242ff).into()), + hint_border: Some(rgba(0x193761ff).into()), ignored: Some(rgba(0x736e55ff).into()), + ignored_background: Some(rgba(0x2a261cff).into()), + ignored_border: Some(rgba(0x312d21ff).into()), info: Some(rgba(0x499befff).into()), + info_background: Some(rgba(0x0e2242ff).into()), + info_border: Some(rgba(0x193761ff).into()), modified: Some(rgba(0xf1fe29ff).into()), + modified_background: Some(rgba(0x556305ff).into()), + modified_border: Some(rgba(0x727f0aff).into()), predictive: Some(rgba(0x5dea5aff).into()), + predictive_background: Some(rgba(0x0a4d13ff).into()), + predictive_border: Some(rgba(0x1a6a20ff).into()), renamed: Some(rgba(0x499befff).into()), + renamed_background: Some(rgba(0x0e2242ff).into()), + renamed_border: Some(rgba(0x193761ff).into()), success: Some(rgba(0x5dea5aff).into()), + success_background: Some(rgba(0x0a4d13ff).into()), + success_border: Some(rgba(0x1a6a20ff).into()), unreachable: Some(rgba(0x736e55ff).into()), + unreachable_background: Some(rgba(0x2a261cff).into()), + unreachable_border: Some(rgba(0x312d21ff).into()), warning: Some(rgba(0xf1fe29ff).into()), + warning_background: Some(rgba(0x556305ff).into()), + warning_border: Some(rgba(0x727f0aff).into()), ..Default::default() }, player: Some(PlayerColors(vec![ diff --git a/crates/theme_importer/src/theme_printer.rs b/crates/theme_importer/src/theme_printer.rs index e760327582..f708e4305e 100644 --- a/crates/theme_importer/src/theme_printer.rs +++ b/crates/theme_importer/src/theme_printer.rs @@ -310,19 +310,47 @@ impl<'a> Debug for StatusColorsRefinementPrinter<'a> { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { let status_colors = vec![ ("conflict", self.0.conflict), + ("conflict_background", self.0.conflict_background), + ("conflict_border", self.0.conflict_border), ("created", self.0.created), + ("created_background", self.0.created_background), + ("created_border", self.0.created_border), ("deleted", self.0.deleted), + ("deleted_background", self.0.deleted_background), + ("deleted_border", self.0.deleted_border), ("error", self.0.error), + ("error_background", self.0.error_background), + ("error_border", self.0.error_border), ("hidden", self.0.hidden), + ("hidden_background", self.0.hidden_background), + ("hidden_border", self.0.hidden_border), ("hint", self.0.hint), + ("hint_background", self.0.hint_background), + ("hint_border", self.0.hint_border), ("ignored", self.0.ignored), + ("ignored_background", self.0.ignored_background), + ("ignored_border", self.0.ignored_border), ("info", self.0.info), + ("info_background", self.0.info_background), + ("info_border", self.0.info_border), ("modified", self.0.modified), + ("modified_background", self.0.modified_background), + ("modified_border", self.0.modified_border), ("predictive", self.0.predictive), + ("predictive_background", self.0.predictive_background), + ("predictive_border", self.0.predictive_border), ("renamed", self.0.renamed), + ("renamed_background", self.0.renamed_background), + ("renamed_border", self.0.renamed_border), ("success", self.0.success), + ("success_background", self.0.success_background), + ("success_border", self.0.success_border), ("unreachable", self.0.unreachable), + ("unreachable_background", self.0.unreachable_background), + ("unreachable_border", self.0.unreachable_border), ("warning", self.0.warning), + ("warning_background", self.0.warning_background), + ("warning_border", self.0.warning_border), ]; f.write_str("StatusColorsRefinement {")?; diff --git a/crates/theme_importer/src/zed1/converter.rs b/crates/theme_importer/src/zed1/converter.rs index ef201b361e..555df7ab72 100644 --- a/crates/theme_importer/src/zed1/converter.rs +++ b/crates/theme_importer/src/zed1/converter.rs @@ -76,21 +76,56 @@ impl Zed1ThemeConverter { let lowest = &base_theme.lowest; + let editor = &self.theme.editor; + Ok(StatusColorsRefinement { created: convert(lowest.positive.default.foreground), + created_background: convert(lowest.positive.default.background), + created_border: convert(lowest.positive.default.border), modified: convert(lowest.warning.default.foreground), + modified_background: convert(lowest.warning.default.background), + modified_border: convert(lowest.warning.default.border), deleted: convert(lowest.negative.default.foreground), + deleted_background: convert(lowest.negative.default.background), + deleted_border: convert(lowest.negative.default.border), success: convert(lowest.positive.default.foreground), + success_background: convert(lowest.positive.default.background), + success_border: convert(lowest.positive.default.border), warning: convert(lowest.warning.default.foreground), + warning_background: convert(lowest.warning.default.background), + warning_border: convert(lowest.warning.default.border), error: convert(lowest.negative.default.foreground), - hint: convert(lowest.accent.default.foreground), + error_background: convert(lowest.negative.default.background), + error_border: convert(lowest.negative.default.border), + // The `hint` color used in Zed1 is inlined from the syntax colors. + hint: editor + .hint + .color + .map(zed1_color_to_hsla) + .or(convert(lowest.accent.default.foreground)), + hint_background: convert(lowest.accent.default.background), + hint_border: convert(lowest.accent.default.border), predictive: convert(lowest.positive.default.foreground), + predictive_background: convert(lowest.positive.default.background), + predictive_border: convert(lowest.positive.default.border), conflict: convert(lowest.warning.default.foreground), + conflict_background: convert(lowest.warning.default.background), + conflict_border: convert(lowest.warning.default.border), hidden: convert(lowest.base.disabled.foreground), + hidden_background: convert(lowest.base.disabled.background), + hidden_border: convert(lowest.base.disabled.border), ignored: convert(lowest.variant.default.foreground), + ignored_background: convert(lowest.variant.default.background), + ignored_border: convert(lowest.variant.default.border), info: convert(lowest.accent.default.foreground), + info_background: convert(lowest.accent.default.background), + info_border: convert(lowest.accent.default.border), renamed: convert(lowest.accent.default.foreground), + renamed_background: convert(lowest.accent.default.background), + renamed_border: convert(lowest.accent.default.border), unreachable: convert(lowest.variant.default.foreground), // TODO: Should this be transparent? + unreachable_background: convert(lowest.variant.default.background), + unreachable_border: convert(lowest.variant.default.border), }) } diff --git a/crates/theme_selector/Cargo.toml b/crates/theme_selector/Cargo.toml index 7e97d39186..fb3feb8d38 100644 --- a/crates/theme_selector/Cargo.toml +++ b/crates/theme_selector/Cargo.toml @@ -9,6 +9,7 @@ path = "src/theme_selector.rs" doctest = false [dependencies] +client = { path = "../client" } editor = { path = "../editor" } fuzzy = { path = "../fuzzy" } fs = { path = "../fs" } diff --git a/crates/theme_selector/src/theme_selector.rs b/crates/theme_selector/src/theme_selector.rs index 1969b0256a..4495413061 100644 --- a/crates/theme_selector/src/theme_selector.rs +++ b/crates/theme_selector/src/theme_selector.rs @@ -1,3 +1,4 @@ +use client::{telemetry::Telemetry, TelemetrySettings}; use feature_flags::FeatureFlagAppExt; use fs::Fs; use fuzzy::{match_strings, StringMatch, StringMatchCandidate}; @@ -19,7 +20,8 @@ pub fn init(cx: &mut AppContext) { pub fn toggle(workspace: &mut Workspace, _: &Toggle, cx: &mut ViewContext) { workspace.toggle_modal(cx, |workspace, cx| { let fs = workspace.app_state().fs.clone(); - cx.add_view(|cx| ThemeSelector::new(ThemeSelectorDelegate::new(fs, cx), cx)) + let telemetry = workspace.client().telemetry().clone(); + cx.add_view(|cx| ThemeSelector::new(ThemeSelectorDelegate::new(fs, telemetry, cx), cx)) }); } @@ -48,10 +50,15 @@ pub struct ThemeSelectorDelegate { original_theme: Arc, selection_completed: bool, selected_index: usize, + telemetry: Arc, } impl ThemeSelectorDelegate { - fn new(fs: Arc, cx: &mut ViewContext) -> Self { + fn new( + fs: Arc, + telemetry: Arc, + cx: &mut ViewContext, + ) -> Self { let original_theme = theme::current(cx).clone(); let staff_mode = cx.is_staff(); @@ -74,6 +81,7 @@ impl ThemeSelectorDelegate { original_theme: original_theme.clone(), selected_index: 0, selection_completed: false, + telemetry, }; this.select_if_matching(&original_theme.meta.name); this @@ -124,6 +132,11 @@ impl PickerDelegate for ThemeSelectorDelegate { self.selection_completed = true; let theme_name = theme::current(cx).meta.name.clone(); + + let telemetry_settings = *settings::get::(cx); + self.telemetry + .report_setting_event(telemetry_settings, "theme", theme_name.to_string()); + update_settings_file::(self.fs.clone(), cx, |settings| { settings.theme = Some(theme_name); }); diff --git a/crates/theme_selector2/Cargo.toml b/crates/theme_selector2/Cargo.toml index 853a53af68..da9e3a4d16 100644 --- a/crates/theme_selector2/Cargo.toml +++ b/crates/theme_selector2/Cargo.toml @@ -9,17 +9,18 @@ path = "src/theme_selector.rs" doctest = false [dependencies] +client = { package = "client2", path = "../client2" } editor = { package = "editor2", path = "../editor2" } -fuzzy = { package = "fuzzy2", path = "../fuzzy2" } -fs = { package = "fs2", path = "../fs2" } -gpui = { package = "gpui2", path = "../gpui2" } -ui = { package = "ui2", path = "../ui2" } -picker = { package = "picker2", path = "../picker2" } -theme = { package = "theme2", path = "../theme2" } -settings = { package = "settings2", path = "../settings2" } feature_flags = { package = "feature_flags2", path = "../feature_flags2" } -workspace = { package = "workspace2", path = "../workspace2" } +fs = { package = "fs2", path = "../fs2" } +fuzzy = { package = "fuzzy2", path = "../fuzzy2" } +gpui = { package = "gpui2", path = "../gpui2" } +picker = { package = "picker2", path = "../picker2" } +settings = { package = "settings2", path = "../settings2" } +theme = { package = "theme2", path = "../theme2" } +ui = { package = "ui2", path = "../ui2" } util = { path = "../util" } +workspace = { package = "workspace2", path = "../workspace2" } log.workspace = true parking_lot.workspace = true postage.workspace = true diff --git a/crates/theme_selector2/src/theme_selector.rs b/crates/theme_selector2/src/theme_selector.rs index 075b12fc18..aa268c2989 100644 --- a/crates/theme_selector2/src/theme_selector.rs +++ b/crates/theme_selector2/src/theme_selector.rs @@ -1,3 +1,4 @@ +use client::{telemetry::Telemetry, TelemetrySettings}; use feature_flags::FeatureFlagAppExt; use fs::Fs; use fuzzy::{match_strings, StringMatch, StringMatchCandidate}; @@ -6,7 +7,7 @@ use gpui::{ VisualContext, WeakView, }; use picker::{Picker, PickerDelegate}; -use settings::{update_settings_file, SettingsStore}; +use settings::{update_settings_file, Settings, SettingsStore}; use std::sync::Arc; use theme::{Theme, ThemeMeta, ThemeRegistry, ThemeSettings}; use ui::{prelude::*, v_stack, ListItem, ListItemSpacing}; @@ -26,9 +27,10 @@ pub fn init(cx: &mut AppContext) { pub fn toggle(workspace: &mut Workspace, _: &Toggle, cx: &mut ViewContext) { let fs = workspace.app_state().fs.clone(); + let telemetry = workspace.client().telemetry().clone(); workspace.toggle_modal(cx, |cx| { ThemeSelector::new( - ThemeSelectorDelegate::new(cx.view().downgrade(), fs, cx), + ThemeSelectorDelegate::new(cx.view().downgrade(), fs, telemetry, cx), cx, ) }); @@ -86,6 +88,7 @@ pub struct ThemeSelectorDelegate { original_theme: Arc, selection_completed: bool, selected_index: usize, + telemetry: Arc, view: WeakView, } @@ -93,6 +96,7 @@ impl ThemeSelectorDelegate { fn new( weak_view: WeakView, fs: Arc, + telemetry: Arc, cx: &mut ViewContext, ) -> Self { let original_theme = cx.theme().clone(); @@ -122,6 +126,7 @@ impl ThemeSelectorDelegate { original_theme: original_theme.clone(), selected_index: 0, selection_completed: false, + telemetry, view: weak_view, }; this.select_if_matching(&original_theme.name); @@ -175,6 +180,11 @@ impl PickerDelegate for ThemeSelectorDelegate { self.selection_completed = true; let theme_name = cx.theme().name.clone(); + + let telemetry_settings = TelemetrySettings::get_global(cx).clone(); + self.telemetry + .report_setting_event(telemetry_settings, "theme", theme_name.to_string()); + update_settings_file::(self.fs.clone(), cx, move |settings| { settings.theme = Some(theme_name.to_string()); }); diff --git a/crates/workspace2/src/dock.rs b/crates/workspace2/src/dock.rs index 3d853cdee1..08949dfd21 100644 --- a/crates/workspace2/src/dock.rs +++ b/crates/workspace2/src/dock.rs @@ -29,8 +29,8 @@ pub trait Panel: FocusableView + EventEmitter { fn set_position(&mut self, position: DockPosition, cx: &mut ViewContext); fn size(&self, cx: &WindowContext) -> Pixels; fn set_size(&mut self, size: Option, cx: &mut ViewContext); - // todo!("We should have a icon tooltip method, rather than using persistant_name") fn icon(&self, cx: &WindowContext) -> Option; + fn icon_tooltip(&self, cx: &WindowContext) -> Option<&'static str>; fn toggle_action(&self) -> Box; fn icon_label(&self, _: &WindowContext) -> Option { None @@ -54,6 +54,7 @@ pub trait PanelHandle: Send + Sync { fn size(&self, cx: &WindowContext) -> Pixels; fn set_size(&self, size: Option, cx: &mut WindowContext); fn icon(&self, cx: &WindowContext) -> Option; + fn icon_tooltip(&self, cx: &WindowContext) -> Option<&'static str>; fn toggle_action(&self, cx: &WindowContext) -> Box; fn icon_label(&self, cx: &WindowContext) -> Option; fn focus_handle(&self, cx: &AppContext) -> FocusHandle; @@ -108,6 +109,10 @@ where self.read(cx).icon(cx) } + fn icon_tooltip(&self, cx: &WindowContext) -> Option<&'static str> { + self.read(cx).icon_tooltip(cx) + } + fn toggle_action(&self, cx: &WindowContext) -> Box { self.read(cx).toggle_action() } @@ -612,6 +617,7 @@ impl Render for PanelButtons { .enumerate() .filter_map(|(i, entry)| { let icon = entry.panel.icon(cx)?; + let icon_tooltip = entry.panel.icon_tooltip(cx)?; let name = entry.panel.persistent_name(); let panel = entry.panel.clone(); @@ -627,7 +633,7 @@ impl Render for PanelButtons { } else { let action = entry.panel.toggle_action(cx); - (action, name.into()) + (action, icon_tooltip.into()) }; Some( @@ -748,6 +754,10 @@ pub mod test { None } + fn icon_tooltip(&self, _cx: &WindowContext) -> Option<&'static str> { + None + } + fn toggle_action(&self) -> Box { ToggleTestPanel.boxed_clone() } diff --git a/crates/zed/src/main.rs b/crates/zed/src/main.rs index da8ff80c31..831a5bb8de 100644 --- a/crates/zed/src/main.rs +++ b/crates/zed/src/main.rs @@ -168,6 +168,11 @@ fn main() { client.telemetry().start(installation_id, session_id, cx); let telemetry_settings = *settings::get::(cx); + client.telemetry().report_setting_event( + telemetry_settings, + "theme", + theme::current(cx).meta.name.to_string(), + ); let event_operation = match existing_installation_id_found { Some(false) => "first open", _ => "open", diff --git a/crates/zed2/src/main.rs b/crates/zed2/src/main.rs index a801f0ec18..53c4855dc7 100644 --- a/crates/zed2/src/main.rs +++ b/crates/zed2/src/main.rs @@ -173,6 +173,11 @@ fn main() { client.telemetry().start(installation_id, session_id, cx); let telemetry_settings = *client::TelemetrySettings::get_global(cx); + client.telemetry().report_setting_event( + telemetry_settings, + "theme", + cx.theme().name.to_string(), + ); let event_operation = match existing_installation_id_found { Some(false) => "first open", _ => "open", diff --git a/script/deploy b/script/deploy-collab similarity index 76% rename from script/deploy rename to script/deploy-collab index b6da3f8f84..c5386298fa 100755 --- a/script/deploy +++ b/script/deploy-collab @@ -10,11 +10,6 @@ fi environment=$1 version=$2 -if [[ ${environment} == "nightly" ]]; then - echo "nightly is not yet supported" - exit 1 -fi - export_vars_for_environment ${environment} image_id=$(image_id_for_version ${version}) @@ -23,6 +18,6 @@ export ZED_KUBE_NAMESPACE=${environment} export ZED_IMAGE_ID=${image_id} target_zed_kube_cluster -envsubst < crates/collab/k8s/manifest.template.yml | kubectl apply -f - +envsubst < crates/collab/k8s/collab.template.yml | kubectl apply -f - echo "deployed collab v${version} to ${environment}" diff --git a/script/deploy-postgrest b/script/deploy-postgrest new file mode 100755 index 0000000000..f94a140274 --- /dev/null +++ b/script/deploy-postgrest @@ -0,0 +1,25 @@ +#!/bin/bash + +set -eu +source script/lib/deploy-helpers.sh + +if [[ $# < 1 ]]; then + echo "Usage: $0 (postgrest not needed on preview or nightly)" + exit 1 +fi +environment=$1 + +if [[ ${environment} == "preview" || ${environment} == "nightly" ]]; then + echo "website does not exist in preview or nightly" + exit 1 +fi + +export_vars_for_environment ${environment} + +export ZED_DO_CERTIFICATE_ID=$(doctl compute certificate list --format ID --no-header) +export ZED_KUBE_NAMESPACE=${environment} + +target_zed_kube_cluster +envsubst < crates/collab/k8s/postgrest.template.yml | kubectl apply -f - + +echo "deployed postgrest"