Merge branch 'main' into refine-render-traits
This commit is contained in:
commit
406edd279a
97 changed files with 3995 additions and 1527 deletions
2
Cargo.lock
generated
2
Cargo.lock
generated
|
@ -9838,6 +9838,7 @@ dependencies = [
|
||||||
name = "theme_selector"
|
name = "theme_selector"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
"client",
|
||||||
"editor",
|
"editor",
|
||||||
"feature_flags",
|
"feature_flags",
|
||||||
"fs",
|
"fs",
|
||||||
|
@ -9858,6 +9859,7 @@ dependencies = [
|
||||||
name = "theme_selector2"
|
name = "theme_selector2"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
"client2",
|
||||||
"editor2",
|
"editor2",
|
||||||
"feature_flags2",
|
"feature_flags2",
|
||||||
"fs2",
|
"fs2",
|
||||||
|
|
|
@ -1281,6 +1281,10 @@ impl Panel for AssistantPanel {
|
||||||
Some(Icon::Ai)
|
Some(Icon::Ai)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn icon_tooltip(&self, _cx: &WindowContext) -> Option<&'static str> {
|
||||||
|
Some("Assistant Panel")
|
||||||
|
}
|
||||||
|
|
||||||
fn toggle_action(&self) -> Box<dyn Action> {
|
fn toggle_action(&self) -> Box<dyn Action> {
|
||||||
Box::new(ToggleFocus)
|
Box::new(ToggleFocus)
|
||||||
}
|
}
|
||||||
|
|
|
@ -113,6 +113,11 @@ pub enum ClickhouseEvent {
|
||||||
operation: &'static str,
|
operation: &'static str,
|
||||||
milliseconds_since_first_event: i64,
|
milliseconds_since_first_event: i64,
|
||||||
},
|
},
|
||||||
|
Setting {
|
||||||
|
setting: &'static str,
|
||||||
|
value: String,
|
||||||
|
milliseconds_since_first_event: i64,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(debug_assertions)]
|
#[cfg(debug_assertions)]
|
||||||
|
@ -354,6 +359,21 @@ impl Telemetry {
|
||||||
self.report_clickhouse_event(event, telemetry_settings, immediate_flush)
|
self.report_clickhouse_event(event, telemetry_settings, immediate_flush)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn report_setting_event(
|
||||||
|
self: &Arc<Self>,
|
||||||
|
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 {
|
fn milliseconds_since_first_event(&self) -> i64 {
|
||||||
let mut state = self.state.lock();
|
let mut state = self.state.lock();
|
||||||
match state.first_event_datetime {
|
match state.first_event_datetime {
|
||||||
|
|
|
@ -28,6 +28,7 @@ struct TelemetryState {
|
||||||
app_metadata: AppMetadata,
|
app_metadata: AppMetadata,
|
||||||
architecture: &'static str,
|
architecture: &'static str,
|
||||||
clickhouse_events_queue: Vec<ClickhouseEventWrapper>,
|
clickhouse_events_queue: Vec<ClickhouseEventWrapper>,
|
||||||
|
flush_clickhouse_events_task: Option<Task<()>>,
|
||||||
log_file: Option<NamedTempFile>,
|
log_file: Option<NamedTempFile>,
|
||||||
is_staff: Option<bool>,
|
is_staff: Option<bool>,
|
||||||
first_event_datetime: Option<DateTime<Utc>>,
|
first_event_datetime: Option<DateTime<Utc>>,
|
||||||
|
@ -111,6 +112,11 @@ pub enum ClickhouseEvent {
|
||||||
operation: &'static str,
|
operation: &'static str,
|
||||||
milliseconds_since_first_event: i64,
|
milliseconds_since_first_event: i64,
|
||||||
},
|
},
|
||||||
|
Setting {
|
||||||
|
setting: &'static str,
|
||||||
|
value: String,
|
||||||
|
milliseconds_since_first_event: i64,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(debug_assertions)]
|
#[cfg(debug_assertions)]
|
||||||
|
@ -119,6 +125,12 @@ const MAX_QUEUE_LEN: usize = 1;
|
||||||
#[cfg(not(debug_assertions))]
|
#[cfg(not(debug_assertions))]
|
||||||
const MAX_QUEUE_LEN: usize = 50;
|
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 {
|
impl Telemetry {
|
||||||
pub fn new(client: Arc<dyn HttpClient>, cx: &mut AppContext) -> Arc<Self> {
|
pub fn new(client: Arc<dyn HttpClient>, cx: &mut AppContext) -> Arc<Self> {
|
||||||
let release_channel = if cx.has_global::<ReleaseChannel>() {
|
let release_channel = if cx.has_global::<ReleaseChannel>() {
|
||||||
|
@ -139,6 +151,7 @@ impl Telemetry {
|
||||||
metrics_id: None,
|
metrics_id: None,
|
||||||
session_id: None,
|
session_id: None,
|
||||||
clickhouse_events_queue: Default::default(),
|
clickhouse_events_queue: Default::default(),
|
||||||
|
flush_clickhouse_events_task: Default::default(),
|
||||||
log_file: None,
|
log_file: None,
|
||||||
is_staff: None,
|
is_staff: None,
|
||||||
first_event_datetime: None,
|
first_event_datetime: None,
|
||||||
|
@ -370,6 +383,21 @@ impl Telemetry {
|
||||||
self.report_clickhouse_event(event, telemetry_settings, immediate_flush)
|
self.report_clickhouse_event(event, telemetry_settings, immediate_flush)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn report_setting_event(
|
||||||
|
self: &Arc<Self>,
|
||||||
|
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 {
|
fn milliseconds_since_first_event(&self) -> i64 {
|
||||||
let mut state = self.state.lock();
|
let mut state = self.state.lock();
|
||||||
match state.first_event_datetime {
|
match state.first_event_datetime {
|
||||||
|
@ -404,6 +432,13 @@ impl Telemetry {
|
||||||
if immediate_flush || state.clickhouse_events_queue.len() >= MAX_QUEUE_LEN {
|
if immediate_flush || state.clickhouse_events_queue.len() >= MAX_QUEUE_LEN {
|
||||||
drop(state);
|
drop(state);
|
||||||
self.flush_clickhouse_events();
|
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();
|
let mut state = self.state.lock();
|
||||||
state.first_event_datetime = None;
|
state.first_event_datetime = None;
|
||||||
let mut events = mem::take(&mut state.clickhouse_events_queue);
|
let mut events = mem::take(&mut state.clickhouse_events_queue);
|
||||||
|
state.flush_clickhouse_events_task.take();
|
||||||
drop(state);
|
drop(state);
|
||||||
|
|
||||||
let this = self.clone();
|
let this = self.clone();
|
||||||
|
|
1
crates/collab/k8s
Symbolic link
1
crates/collab/k8s
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
../collab2/k8s
|
|
@ -1,4 +0,0 @@
|
||||||
ZED_ENVIRONMENT=production
|
|
||||||
RUST_LOG=info
|
|
||||||
INVITE_LINK_PREFIX=https://zed.dev/invites/
|
|
||||||
DATABASE_MAX_CONNECTIONS=85
|
|
|
@ -1,4 +0,0 @@
|
||||||
ZED_ENVIRONMENT=staging
|
|
||||||
RUST_LOG=info
|
|
||||||
INVITE_LINK_PREFIX=https://staging.zed.dev/invites/
|
|
||||||
DATABASE_MAX_CONNECTIONS=5
|
|
|
@ -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
|
|
|
@ -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
|
|
|
@ -23,25 +23,6 @@ spec:
|
||||||
port: 443
|
port: 443
|
||||||
targetPort: 8080
|
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
|
apiVersion: apps/v1
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
|
@ -138,40 +119,3 @@ spec:
|
||||||
# FIXME - Switch to the more restrictive `PERFMON` capability.
|
# FIXME - Switch to the more restrictive `PERFMON` capability.
|
||||||
# This capability isn't yet available in a stable version of Debian.
|
# This capability isn't yet available in a stable version of Debian.
|
||||||
add: ["SYS_ADMIN"]
|
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
|
|
|
@ -1,4 +1,4 @@
|
||||||
ZED_ENVIRONMENT=preview
|
ZED_ENVIRONMENT=nightly
|
||||||
RUST_LOG=info
|
RUST_LOG=info
|
||||||
INVITE_LINK_PREFIX=https://zed.dev/invites/
|
INVITE_LINK_PREFIX=https://zed.dev/invites/
|
||||||
DATABASE_MAX_CONNECTIONS=10
|
DATABASE_MAX_CONNECTIONS=10
|
55
crates/collab2/k8s/postgrest.template.yml
Normal file
55
crates/collab2/k8s/postgrest.template.yml
Normal file
|
@ -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
|
|
@ -611,6 +611,10 @@ impl Panel for ChatPanel {
|
||||||
Some(ui::Icon::MessageBubbles)
|
Some(ui::Icon::MessageBubbles)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn icon_tooltip(&self, _cx: &WindowContext) -> Option<&'static str> {
|
||||||
|
Some("Chat Panel")
|
||||||
|
}
|
||||||
|
|
||||||
fn toggle_action(&self) -> Box<dyn gpui::Action> {
|
fn toggle_action(&self) -> Box<dyn gpui::Action> {
|
||||||
Box::new(ToggleFocus)
|
Box::new(ToggleFocus)
|
||||||
}
|
}
|
||||||
|
|
|
@ -2163,40 +2163,71 @@ impl CollabPanel {
|
||||||
.child(
|
.child(
|
||||||
h_stack()
|
h_stack()
|
||||||
.id(channel_id as usize)
|
.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()))
|
.child(Label::new(channel.name.clone()))
|
||||||
.children(face_pile.map(|face_pile| face_pile.render(cx))),
|
.children(face_pile.map(|face_pile| face_pile.render(cx))),
|
||||||
)
|
)
|
||||||
.end_slot(
|
.end_slot(
|
||||||
h_stack()
|
h_stack()
|
||||||
|
.absolute()
|
||||||
|
// 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(
|
.child(
|
||||||
IconButton::new("channel_chat", Icon::MessageBubbles)
|
h_stack()
|
||||||
.icon_size(IconSize::Small)
|
.px_1()
|
||||||
.icon_color(if has_messages_notification {
|
// The element hover background has a slight transparency to it, so we
|
||||||
Color::Default
|
// need to apply it to the inner element so that it blends with the solid
|
||||||
} else {
|
// background color of the absolutely-positioned element.
|
||||||
Color::Muted
|
.group_hover("", |style| {
|
||||||
|
style.bg(cx.theme().colors().ghost_element_hover)
|
||||||
})
|
})
|
||||||
.when(!has_messages_notification, |this| {
|
.child(
|
||||||
this.visible_on_hover("")
|
IconButton::new("channel_chat", Icon::MessageBubbles)
|
||||||
})
|
.icon_size(IconSize::Small)
|
||||||
.on_click(cx.listener(move |this, _, cx| {
|
.icon_color(if has_messages_notification {
|
||||||
this.join_channel_chat(channel_id, cx)
|
Color::Default
|
||||||
}))
|
} else {
|
||||||
.tooltip(|cx| Tooltip::text("Open channel chat", cx)),
|
Color::Muted
|
||||||
)
|
})
|
||||||
.child(
|
.when(!has_messages_notification, |this| {
|
||||||
IconButton::new("channel_notes", Icon::File)
|
this.visible_on_hover("")
|
||||||
.icon_size(IconSize::Small)
|
})
|
||||||
.icon_color(if has_notes_notification {
|
.on_click(cx.listener(move |this, _, cx| {
|
||||||
Color::Default
|
this.join_channel_chat(channel_id, cx)
|
||||||
} else {
|
}))
|
||||||
Color::Muted
|
.tooltip(|cx| Tooltip::text("Open channel chat", cx)),
|
||||||
})
|
)
|
||||||
.when(!has_notes_notification, |this| this.visible_on_hover(""))
|
.child(
|
||||||
.on_click(cx.listener(move |this, _, cx| {
|
IconButton::new("channel_notes", Icon::File)
|
||||||
this.open_channel_notes(channel_id, cx)
|
.icon_size(IconSize::Small)
|
||||||
}))
|
.icon_color(if has_notes_notification {
|
||||||
.tooltip(|cx| Tooltip::text("Open channel notes", cx)),
|
Color::Default
|
||||||
|
} else {
|
||||||
|
Color::Muted
|
||||||
|
})
|
||||||
|
.when(!has_notes_notification, |this| {
|
||||||
|
this.visible_on_hover("")
|
||||||
|
})
|
||||||
|
.on_click(cx.listener(move |this, _, cx| {
|
||||||
|
this.open_channel_notes(channel_id, cx)
|
||||||
|
}))
|
||||||
|
.tooltip(|cx| Tooltip::text("Open channel notes", cx)),
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
@ -2331,6 +2362,10 @@ impl Panel for CollabPanel {
|
||||||
.then(|| ui::Icon::Collab)
|
.then(|| ui::Icon::Collab)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn icon_tooltip(&self, _cx: &WindowContext) -> Option<&'static str> {
|
||||||
|
Some("Collab Panel")
|
||||||
|
}
|
||||||
|
|
||||||
fn toggle_action(&self) -> Box<dyn gpui::Action> {
|
fn toggle_action(&self) -> Box<dyn gpui::Action> {
|
||||||
Box::new(ToggleFocus)
|
Box::new(ToggleFocus)
|
||||||
}
|
}
|
||||||
|
|
|
@ -661,6 +661,10 @@ impl Panel for NotificationPanel {
|
||||||
.then(|| Icon::Bell)
|
.then(|| Icon::Bell)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn icon_tooltip(&self, _cx: &WindowContext) -> Option<&'static str> {
|
||||||
|
Some("Notification Panel")
|
||||||
|
}
|
||||||
|
|
||||||
fn icon_label(&self, cx: &WindowContext) -> Option<String> {
|
fn icon_label(&self, cx: &WindowContext) -> Option<String> {
|
||||||
let count = self.notification_store.read(cx).unread_notification_count();
|
let count = self.notification_store.read(cx).unread_notification_count();
|
||||||
if count == 0 {
|
if count == 0 {
|
||||||
|
|
|
@ -13,7 +13,7 @@ use editor::{
|
||||||
};
|
};
|
||||||
use futures::future::try_join_all;
|
use futures::future::try_join_all;
|
||||||
use gpui::{
|
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,
|
FocusableView, HighlightStyle, InteractiveElement, IntoElement, Model, ParentElement, Render,
|
||||||
SharedString, Styled, StyledText, Subscription, Task, View, ViewContext, VisualContext,
|
SharedString, Styled, StyledText, Subscription, Task, View, ViewContext, VisualContext,
|
||||||
WeakView, WindowContext,
|
WeakView, WindowContext,
|
||||||
|
@ -663,6 +663,7 @@ impl Item for ProjectDiagnosticsEditor {
|
||||||
.when(self.summary.warning_count > 0, |then| {
|
.when(self.summary.warning_count > 0, |then| {
|
||||||
then.child(
|
then.child(
|
||||||
h_stack()
|
h_stack()
|
||||||
|
.gap_1()
|
||||||
.child(
|
.child(
|
||||||
IconElement::new(Icon::ExclamationTriangle).color(Color::Warning),
|
IconElement::new(Icon::ExclamationTriangle).color(Color::Warning),
|
||||||
)
|
)
|
||||||
|
@ -799,12 +800,20 @@ fn diagnostic_header_renderer(diagnostic: Diagnostic) -> RenderBlock {
|
||||||
h_stack()
|
h_stack()
|
||||||
.gap_3()
|
.gap_3()
|
||||||
.map(|stack| {
|
.map(|stack| {
|
||||||
let icon = if diagnostic.severity == DiagnosticSeverity::ERROR {
|
stack.child(
|
||||||
IconElement::new(Icon::XCircle).color(Color::Error)
|
svg()
|
||||||
} else {
|
.size(cx.text_style().font_size)
|
||||||
IconElement::new(Icon::ExclamationTriangle).color(Color::Warning)
|
.flex_none()
|
||||||
};
|
.map(|icon| {
|
||||||
stack.child(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(
|
.child(
|
||||||
h_stack()
|
h_stack()
|
||||||
|
@ -818,7 +827,11 @@ fn diagnostic_header_renderer(diagnostic: Diagnostic) -> RenderBlock {
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
.when_some(diagnostic.code.as_ref(), |stack, code| {
|
.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),
|
||||||
|
)
|
||||||
}),
|
}),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
@ -826,7 +839,11 @@ fn diagnostic_header_renderer(diagnostic: Diagnostic) -> RenderBlock {
|
||||||
h_stack()
|
h_stack()
|
||||||
.gap_1()
|
.gap_1()
|
||||||
.when_some(diagnostic.source.as_ref(), |stack, source| {
|
.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()
|
.into_any_element()
|
||||||
|
|
|
@ -536,7 +536,7 @@ impl DisplaySnapshot {
|
||||||
// Omit underlines for HINT/INFO diagnostics on 'unnecessary' code.
|
// Omit underlines for HINT/INFO diagnostics on 'unnecessary' code.
|
||||||
if severity <= DiagnosticSeverity::WARNING || !chunk.is_unnecessary {
|
if severity <= DiagnosticSeverity::WARNING || !chunk.is_unnecessary {
|
||||||
let diagnostic_color =
|
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 {
|
diagnostic_highlight.underline = Some(UnderlineStyle {
|
||||||
color: Some(diagnostic_color),
|
color: Some(diagnostic_color),
|
||||||
thickness: 1.0.into(),
|
thickness: 1.0.into(),
|
||||||
|
|
|
@ -97,7 +97,7 @@ use std::{
|
||||||
pub use sum_tree::Bias;
|
pub use sum_tree::Bias;
|
||||||
use sum_tree::TreeMap;
|
use sum_tree::TreeMap;
|
||||||
use text::{OffsetUtf16, Rope};
|
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, Popover, Tooltip};
|
use ui::{h_stack, ButtonSize, ButtonStyle, Icon, IconButton, Popover, Tooltip};
|
||||||
use ui::{prelude::*, IconSize};
|
use ui::{prelude::*, IconSize};
|
||||||
use util::{post_inc, RangeExt, ResultExt, TryFutureExt};
|
use util::{post_inc, RangeExt, ResultExt, TryFutureExt};
|
||||||
|
@ -512,7 +512,7 @@ pub struct EditorStyle {
|
||||||
pub text: TextStyle,
|
pub text: TextStyle,
|
||||||
pub scrollbar_width: Pixels,
|
pub scrollbar_width: Pixels,
|
||||||
pub syntax: Arc<SyntaxTheme>,
|
pub syntax: Arc<SyntaxTheme>,
|
||||||
pub diagnostic_style: DiagnosticStyle,
|
pub status: StatusColors,
|
||||||
pub inlays_style: HighlightStyle,
|
pub inlays_style: HighlightStyle,
|
||||||
pub suggestions_style: HighlightStyle,
|
pub suggestions_style: HighlightStyle,
|
||||||
}
|
}
|
||||||
|
@ -1195,7 +1195,6 @@ impl CompletionsMenu {
|
||||||
.min_w(px(260.))
|
.min_w(px(260.))
|
||||||
.max_w(px(640.))
|
.max_w(px(640.))
|
||||||
.w(px(500.))
|
.w(px(500.))
|
||||||
.text_ui()
|
|
||||||
.overflow_y_scroll()
|
.overflow_y_scroll()
|
||||||
// Prevent a mouse down on documentation from being propagated to the editor,
|
// Prevent a mouse down on documentation from being propagated to the editor,
|
||||||
// because that would move the cursor.
|
// because that would move the cursor.
|
||||||
|
@ -1251,7 +1250,6 @@ impl CompletionsMenu {
|
||||||
.max_w(px(540.))
|
.max_w(px(540.))
|
||||||
.whitespace_nowrap()
|
.whitespace_nowrap()
|
||||||
.overflow_hidden()
|
.overflow_hidden()
|
||||||
.text_ui()
|
|
||||||
.px_1()
|
.px_1()
|
||||||
.rounded(px(4.))
|
.rounded(px(4.))
|
||||||
.bg(cx.theme().colors().ghost_element_background)
|
.bg(cx.theme().colors().ghost_element_background)
|
||||||
|
@ -1425,7 +1423,6 @@ impl CodeActionsMenu {
|
||||||
let colors = cx.theme().colors();
|
let colors = cx.theme().colors();
|
||||||
div()
|
div()
|
||||||
.px_2()
|
.px_2()
|
||||||
.text_ui()
|
|
||||||
.text_color(colors.text)
|
.text_color(colors.text)
|
||||||
.when(selected, |style| {
|
.when(selected, |style| {
|
||||||
style
|
style
|
||||||
|
@ -7662,10 +7659,7 @@ impl Editor {
|
||||||
text: text_style,
|
text: text_style,
|
||||||
scrollbar_width: cx.editor_style.scrollbar_width,
|
scrollbar_width: cx.editor_style.scrollbar_width,
|
||||||
syntax: cx.editor_style.syntax.clone(),
|
syntax: cx.editor_style.syntax.clone(),
|
||||||
diagnostic_style: cx
|
status: cx.editor_style.status.clone(),
|
||||||
.editor_style
|
|
||||||
.diagnostic_style
|
|
||||||
.clone(),
|
|
||||||
// todo!("what about the rest of the highlight style parts for inlays and suggestions?")
|
// todo!("what about the rest of the highlight style parts for inlays and suggestions?")
|
||||||
inlays_style: HighlightStyle {
|
inlays_style: HighlightStyle {
|
||||||
color: Some(cx.theme().status().hint),
|
color: Some(cx.theme().status().hint),
|
||||||
|
@ -9335,7 +9329,7 @@ impl Render for Editor {
|
||||||
text: text_style,
|
text: text_style,
|
||||||
scrollbar_width: px(12.),
|
scrollbar_width: px(12.),
|
||||||
syntax: cx.theme().syntax().clone(),
|
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?")
|
// todo!("what about the rest of the highlight style parts?")
|
||||||
inlays_style: HighlightStyle {
|
inlays_style: HighlightStyle {
|
||||||
color: Some(cx.theme().status().hint),
|
color: Some(cx.theme().status().hint),
|
||||||
|
@ -9789,21 +9783,17 @@ pub fn highlight_diagnostic_message(diagnostic: &Diagnostic) -> (SharedString, V
|
||||||
(text_without_backticks.into(), code_ranges)
|
(text_without_backticks.into(), code_ranges)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn diagnostic_style(
|
pub fn diagnostic_style(severity: DiagnosticSeverity, valid: bool, colors: &StatusColors) -> Hsla {
|
||||||
severity: DiagnosticSeverity,
|
|
||||||
valid: bool,
|
|
||||||
style: &DiagnosticStyle,
|
|
||||||
) -> Hsla {
|
|
||||||
match (severity, valid) {
|
match (severity, valid) {
|
||||||
(DiagnosticSeverity::ERROR, true) => style.error,
|
(DiagnosticSeverity::ERROR, true) => colors.error,
|
||||||
(DiagnosticSeverity::ERROR, false) => style.error,
|
(DiagnosticSeverity::ERROR, false) => colors.error,
|
||||||
(DiagnosticSeverity::WARNING, true) => style.warning,
|
(DiagnosticSeverity::WARNING, true) => colors.warning,
|
||||||
(DiagnosticSeverity::WARNING, false) => style.warning,
|
(DiagnosticSeverity::WARNING, false) => colors.warning,
|
||||||
(DiagnosticSeverity::INFORMATION, true) => style.info,
|
(DiagnosticSeverity::INFORMATION, true) => colors.info,
|
||||||
(DiagnosticSeverity::INFORMATION, false) => style.info,
|
(DiagnosticSeverity::INFORMATION, false) => colors.info,
|
||||||
(DiagnosticSeverity::HINT, true) => style.info,
|
(DiagnosticSeverity::HINT, true) => colors.info,
|
||||||
(DiagnosticSeverity::HINT, false) => style.info,
|
(DiagnosticSeverity::HINT, false) => colors.info,
|
||||||
_ => style.ignored,
|
_ => colors.ignored,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -52,7 +52,7 @@ use std::{
|
||||||
use sum_tree::Bias;
|
use sum_tree::Bias;
|
||||||
use theme::{ActiveTheme, PlayerColor};
|
use theme::{ActiveTheme, PlayerColor};
|
||||||
use ui::prelude::*;
|
use ui::prelude::*;
|
||||||
use ui::{h_stack, ButtonLike, ButtonStyle, IconButton, Label, Tooltip};
|
use ui::{h_stack, ButtonLike, ButtonStyle, IconButton, Tooltip};
|
||||||
use util::ResultExt;
|
use util::ResultExt;
|
||||||
use workspace::item::Item;
|
use workspace::item::Item;
|
||||||
|
|
||||||
|
@ -2305,13 +2305,17 @@ impl EditorElement {
|
||||||
h_stack().gap_3().child(
|
h_stack().gap_3().child(
|
||||||
h_stack()
|
h_stack()
|
||||||
.gap_2()
|
.gap_2()
|
||||||
.child(Label::new(
|
.child(
|
||||||
filename
|
filename
|
||||||
.map(SharedString::from)
|
.map(SharedString::from)
|
||||||
.unwrap_or_else(|| "untitled".into()),
|
.unwrap_or_else(|| "untitled".into()),
|
||||||
))
|
)
|
||||||
.when_some(parent_path, |then, path| {
|
.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()))
|
this.child(div().size_full().bg(gpui::green()))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
// .child("⋯")
|
|
||||||
// .children(jump_icon) // .p_x(gutter_padding)
|
|
||||||
};
|
};
|
||||||
element.into_any()
|
element.into_any()
|
||||||
}
|
}
|
||||||
|
@ -2811,50 +2813,65 @@ impl Element for EditorElement {
|
||||||
) {
|
) {
|
||||||
let editor = self.editor.clone();
|
let editor = self.editor.clone();
|
||||||
|
|
||||||
let mut layout = self.compute_layout(bounds, cx);
|
cx.with_text_style(
|
||||||
let gutter_bounds = Bounds {
|
Some(gpui::TextStyleRefinement {
|
||||||
origin: bounds.origin,
|
font_size: Some(self.style.text.font_size),
|
||||||
size: layout.gutter_size,
|
..Default::default()
|
||||||
};
|
}),
|
||||||
let text_bounds = Bounds {
|
|cx| {
|
||||||
origin: gutter_bounds.upper_right(),
|
let mut layout = self.compute_layout(bounds, cx);
|
||||||
size: layout.text_size,
|
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 focus_handle = editor.focus_handle(cx);
|
||||||
let key_context = self.editor.read(cx).key_context(cx);
|
let key_context = self.editor.read(cx).key_context(cx);
|
||||||
cx.with_key_dispatch(Some(key_context), Some(focus_handle.clone()), |_, cx| {
|
cx.with_key_dispatch(Some(key_context), Some(focus_handle.clone()), |_, cx| {
|
||||||
self.register_actions(cx);
|
self.register_actions(cx);
|
||||||
self.register_key_listeners(cx);
|
self.register_key_listeners(cx);
|
||||||
|
|
||||||
cx.with_content_mask(Some(ContentMask { bounds }), |cx| {
|
cx.with_content_mask(Some(ContentMask { bounds }), |cx| {
|
||||||
let input_handler = ElementInputHandler::new(bounds, self.editor.clone(), cx);
|
let input_handler =
|
||||||
cx.handle_input(&focus_handle, 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);
|
self.paint_background(gutter_bounds, text_bounds, &layout, cx);
|
||||||
if layout.gutter_size.width > Pixels::ZERO {
|
if layout.gutter_size.width > Pixels::ZERO {
|
||||||
self.paint_gutter(gutter_bounds, &mut layout, cx);
|
self.paint_gutter(gutter_bounds, &mut layout, cx);
|
||||||
}
|
}
|
||||||
self.paint_text(text_bounds, &mut layout, cx);
|
self.paint_text(text_bounds, &mut layout, cx);
|
||||||
|
|
||||||
cx.with_z_index(0, |cx| {
|
cx.with_z_index(0, |cx| {
|
||||||
self.paint_mouse_listeners(bounds, gutter_bounds, text_bounds, &layout, cx);
|
self.paint_mouse_listeners(
|
||||||
});
|
bounds,
|
||||||
if !layout.blocks.is_empty() {
|
gutter_bounds,
|
||||||
cx.with_z_index(0, |cx| {
|
text_bounds,
|
||||||
cx.with_element_id(Some("editor_blocks"), |cx| {
|
&layout,
|
||||||
self.paint_blocks(bounds, &mut layout, cx);
|
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| {
|
cx.with_z_index(1, |cx| {
|
||||||
self.paint_overlays(text_bounds, &mut layout, 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));
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
|
},
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,12 +6,13 @@ use crate::{
|
||||||
};
|
};
|
||||||
use futures::FutureExt;
|
use futures::FutureExt;
|
||||||
use gpui::{
|
use gpui::{
|
||||||
actions, div, px, AnyElement, CursorStyle, InteractiveElement, IntoElement, Model, MouseButton,
|
actions, div, px, AnyElement, CursorStyle, Hsla, InteractiveElement, IntoElement, Model,
|
||||||
ParentElement, Pixels, SharedString, Size, StatefulInteractiveElement, Styled, Task,
|
MouseButton, ParentElement, Pixels, SharedString, Size, StatefulInteractiveElement, Styled,
|
||||||
ViewContext, WeakView,
|
Task, ViewContext, WeakView,
|
||||||
};
|
};
|
||||||
use language::{markdown, Bias, DiagnosticEntry, Language, LanguageRegistry, ParsedMarkdown};
|
use language::{markdown, Bias, DiagnosticEntry, Language, LanguageRegistry, ParsedMarkdown};
|
||||||
|
|
||||||
|
use lsp::DiagnosticSeverity;
|
||||||
use project::{HoverBlock, HoverBlockKind, InlayHintLabelPart, Project};
|
use project::{HoverBlock, HoverBlockKind, InlayHintLabelPart, Project};
|
||||||
use settings::Settings;
|
use settings::Settings;
|
||||||
use std::{ops::Range, sync::Arc, time::Duration};
|
use std::{ops::Range, sync::Arc, time::Duration};
|
||||||
|
@ -477,7 +478,6 @@ impl InfoPopover {
|
||||||
div()
|
div()
|
||||||
.id("info_popover")
|
.id("info_popover")
|
||||||
.elevation_2(cx)
|
.elevation_2(cx)
|
||||||
.text_ui()
|
|
||||||
.p_2()
|
.p_2()
|
||||||
.overflow_y_scroll()
|
.overflow_y_scroll()
|
||||||
.max_w(max_size.width)
|
.max_w(max_size.width)
|
||||||
|
@ -514,16 +514,50 @@ impl DiagnosticPopover {
|
||||||
None => self.local_diagnostic.diagnostic.message.clone(),
|
None => self.local_diagnostic.diagnostic.message.clone(),
|
||||||
};
|
};
|
||||||
|
|
||||||
let container_bg = crate::diagnostic_style(
|
struct DiagnosticColors {
|
||||||
self.local_diagnostic.diagnostic.severity,
|
pub text: Hsla,
|
||||||
true,
|
pub background: Hsla,
|
||||||
&style.diagnostic_style,
|
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()
|
div()
|
||||||
.id("diagnostic")
|
.id("diagnostic")
|
||||||
.overflow_y_scroll()
|
.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_w(max_size.width)
|
||||||
.max_h(max_size.height)
|
.max_h(max_size.height)
|
||||||
.cursor(CursorStyle::PointingHand)
|
.cursor(CursorStyle::PointingHand)
|
||||||
|
|
|
@ -162,7 +162,7 @@ impl Renderer {
|
||||||
"underline_fragment",
|
"underline_fragment",
|
||||||
PIXEL_FORMAT,
|
PIXEL_FORMAT,
|
||||||
);
|
);
|
||||||
let cv_texture_cache = CVMetalTextureCache::new(device.as_ptr()).unwrap();
|
let cv_texture_cache = unsafe { CVMetalTextureCache::new(device.as_ptr()).unwrap() };
|
||||||
Self {
|
Self {
|
||||||
layer,
|
layer,
|
||||||
command_queue: device.new_command_queue(),
|
command_queue: device.new_command_queue(),
|
||||||
|
@ -887,28 +887,30 @@ impl Renderer {
|
||||||
core_video::kCVPixelFormatType_420YpCbCr8BiPlanarFullRange
|
core_video::kCVPixelFormatType_420YpCbCr8BiPlanarFullRange
|
||||||
);
|
);
|
||||||
|
|
||||||
let y_texture = self
|
let y_texture = unsafe {
|
||||||
.cv_texture_cache
|
self.cv_texture_cache
|
||||||
.create_texture_from_image(
|
.create_texture_from_image(
|
||||||
surface.image_buffer.as_concrete_TypeRef(),
|
surface.image_buffer.as_concrete_TypeRef(),
|
||||||
ptr::null(),
|
ptr::null(),
|
||||||
MTLPixelFormat::R8Unorm,
|
MTLPixelFormat::R8Unorm,
|
||||||
surface.image_buffer.plane_width(0),
|
surface.image_buffer.plane_width(0),
|
||||||
surface.image_buffer.plane_height(0),
|
surface.image_buffer.plane_height(0),
|
||||||
0,
|
0,
|
||||||
)
|
)
|
||||||
.unwrap();
|
.unwrap()
|
||||||
let cb_cr_texture = self
|
};
|
||||||
.cv_texture_cache
|
let cb_cr_texture = unsafe {
|
||||||
.create_texture_from_image(
|
self.cv_texture_cache
|
||||||
surface.image_buffer.as_concrete_TypeRef(),
|
.create_texture_from_image(
|
||||||
ptr::null(),
|
surface.image_buffer.as_concrete_TypeRef(),
|
||||||
MTLPixelFormat::RG8Unorm,
|
ptr::null(),
|
||||||
surface.image_buffer.plane_width(1),
|
MTLPixelFormat::RG8Unorm,
|
||||||
surface.image_buffer.plane_height(1),
|
surface.image_buffer.plane_width(1),
|
||||||
1,
|
surface.image_buffer.plane_height(1),
|
||||||
)
|
1,
|
||||||
.unwrap();
|
)
|
||||||
|
.unwrap()
|
||||||
|
};
|
||||||
|
|
||||||
align_offset(offset);
|
align_offset(offset);
|
||||||
let next_offset = *offset + mem::size_of::<shaders::GPUISurface>();
|
let next_offset = *offset + mem::size_of::<shaders::GPUISurface>();
|
||||||
|
|
|
@ -52,7 +52,7 @@ pub struct AppCell {
|
||||||
impl AppCell {
|
impl AppCell {
|
||||||
#[track_caller]
|
#[track_caller]
|
||||||
pub fn borrow(&self) -> AppRef {
|
pub fn borrow(&self) -> AppRef {
|
||||||
if let Some(_) = option_env!("TRACK_THREAD_BORROWS") {
|
if option_env!("TRACK_THREAD_BORROWS").is_some() {
|
||||||
let thread_id = std::thread::current().id();
|
let thread_id = std::thread::current().id();
|
||||||
eprintln!("borrowed {thread_id:?}");
|
eprintln!("borrowed {thread_id:?}");
|
||||||
}
|
}
|
||||||
|
@ -61,7 +61,7 @@ impl AppCell {
|
||||||
|
|
||||||
#[track_caller]
|
#[track_caller]
|
||||||
pub fn borrow_mut(&self) -> AppRefMut {
|
pub fn borrow_mut(&self) -> AppRefMut {
|
||||||
if let Some(_) = option_env!("TRACK_THREAD_BORROWS") {
|
if option_env!("TRACK_THREAD_BORROWS").is_some() {
|
||||||
let thread_id = std::thread::current().id();
|
let thread_id = std::thread::current().id();
|
||||||
eprintln!("borrowed {thread_id:?}");
|
eprintln!("borrowed {thread_id:?}");
|
||||||
}
|
}
|
||||||
|
@ -74,7 +74,7 @@ pub struct AppRef<'a>(Ref<'a, AppContext>);
|
||||||
|
|
||||||
impl<'a> Drop for AppRef<'a> {
|
impl<'a> Drop for AppRef<'a> {
|
||||||
fn drop(&mut self) {
|
fn drop(&mut self) {
|
||||||
if let Some(_) = option_env!("TRACK_THREAD_BORROWS") {
|
if option_env!("TRACK_THREAD_BORROWS").is_some() {
|
||||||
let thread_id = std::thread::current().id();
|
let thread_id = std::thread::current().id();
|
||||||
eprintln!("dropped borrow from {thread_id:?}");
|
eprintln!("dropped borrow from {thread_id:?}");
|
||||||
}
|
}
|
||||||
|
@ -86,7 +86,7 @@ pub struct AppRefMut<'a>(RefMut<'a, AppContext>);
|
||||||
|
|
||||||
impl<'a> Drop for AppRefMut<'a> {
|
impl<'a> Drop for AppRefMut<'a> {
|
||||||
fn drop(&mut self) {
|
fn drop(&mut self) {
|
||||||
if let Some(_) = option_env!("TRACK_THREAD_BORROWS") {
|
if option_env!("TRACK_THREAD_BORROWS").is_some() {
|
||||||
let thread_id = std::thread::current().id();
|
let thread_id = std::thread::current().id();
|
||||||
eprintln!("dropped {thread_id:?}");
|
eprintln!("dropped {thread_id:?}");
|
||||||
}
|
}
|
||||||
|
@ -130,7 +130,7 @@ impl App {
|
||||||
let this = Rc::downgrade(&self.0);
|
let this = Rc::downgrade(&self.0);
|
||||||
self.0.borrow().platform.on_open_urls(Box::new(move |urls| {
|
self.0.borrow().platform.on_open_urls(Box::new(move |urls| {
|
||||||
if let Some(app) = this.upgrade() {
|
if let Some(app) = this.upgrade() {
|
||||||
callback(urls, &mut *app.borrow_mut());
|
callback(urls, &mut app.borrow_mut());
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
self
|
self
|
||||||
|
@ -280,7 +280,7 @@ impl AppContext {
|
||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
|
|
||||||
init_app_menus(platform.as_ref(), &mut *app.borrow_mut());
|
init_app_menus(platform.as_ref(), &mut app.borrow_mut());
|
||||||
|
|
||||||
platform.on_quit(Box::new({
|
platform.on_quit(Box::new({
|
||||||
let cx = app.clone();
|
let cx = app.clone();
|
||||||
|
@ -428,7 +428,7 @@ impl AppContext {
|
||||||
pub fn windows(&self) -> Vec<AnyWindowHandle> {
|
pub fn windows(&self) -> Vec<AnyWindowHandle> {
|
||||||
self.windows
|
self.windows
|
||||||
.values()
|
.values()
|
||||||
.filter_map(|window| Some(window.as_ref()?.handle.clone()))
|
.filter_map(|window| Some(window.as_ref()?.handle))
|
||||||
.collect()
|
.collect()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -808,7 +808,7 @@ impl AppContext {
|
||||||
self.push_effect(Effect::NotifyGlobalObservers { global_type });
|
self.push_effect(Effect::NotifyGlobalObservers { global_type });
|
||||||
self.globals_by_type
|
self.globals_by_type
|
||||||
.entry(global_type)
|
.entry(global_type)
|
||||||
.or_insert_with(|| Box::new(G::default()))
|
.or_insert_with(|| Box::<G>::default())
|
||||||
.downcast_mut::<G>()
|
.downcast_mut::<G>()
|
||||||
.unwrap()
|
.unwrap()
|
||||||
}
|
}
|
||||||
|
@ -993,7 +993,7 @@ impl AppContext {
|
||||||
(),
|
(),
|
||||||
Box::new(move |cx| {
|
Box::new(move |cx| {
|
||||||
let future = on_quit(cx);
|
let future = on_quit(cx);
|
||||||
async move { future.await }.boxed_local()
|
future.boxed_local()
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
activate();
|
activate();
|
||||||
|
|
|
@ -106,7 +106,7 @@ impl AsyncAppContext {
|
||||||
.upgrade()
|
.upgrade()
|
||||||
.ok_or_else(|| anyhow!("app was released"))?;
|
.ok_or_else(|| anyhow!("app was released"))?;
|
||||||
let mut lock = app.borrow_mut();
|
let mut lock = app.borrow_mut();
|
||||||
Ok(f(&mut *lock))
|
Ok(f(&mut lock))
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn open_window<V>(
|
pub fn open_window<V>(
|
||||||
|
|
|
@ -327,9 +327,9 @@ impl<T: 'static> Model<T> {
|
||||||
cx.entities.read(self)
|
cx.entities.read(self)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn read_with<'a, R, C: Context>(
|
pub fn read_with<R, C: Context>(
|
||||||
&self,
|
&self,
|
||||||
cx: &'a C,
|
cx: &C,
|
||||||
f: impl FnOnce(&T, &AppContext) -> R,
|
f: impl FnOnce(&T, &AppContext) -> R,
|
||||||
) -> C::Result<R> {
|
) -> C::Result<R> {
|
||||||
cx.read_model(self, f)
|
cx.read_model(self, f)
|
||||||
|
|
|
@ -262,12 +262,12 @@ impl<'a, T> Context for ModelContext<'a, T> {
|
||||||
|
|
||||||
impl<T> Borrow<AppContext> for ModelContext<'_, T> {
|
impl<T> Borrow<AppContext> for ModelContext<'_, T> {
|
||||||
fn borrow(&self) -> &AppContext {
|
fn borrow(&self) -> &AppContext {
|
||||||
&self.app
|
self.app
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<T> BorrowMut<AppContext> for ModelContext<'_, T> {
|
impl<T> BorrowMut<AppContext> for ModelContext<'_, T> {
|
||||||
fn borrow_mut(&mut self) -> &mut AppContext {
|
fn borrow_mut(&mut self) -> &mut AppContext {
|
||||||
&mut self.app
|
self.app
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,7 +34,7 @@ impl fmt::Debug for Rgba {
|
||||||
impl Rgba {
|
impl Rgba {
|
||||||
pub fn blend(&self, other: Rgba) -> Self {
|
pub fn blend(&self, other: Rgba) -> Self {
|
||||||
if other.a >= 1.0 {
|
if other.a >= 1.0 {
|
||||||
return other;
|
other
|
||||||
} else if other.a <= 0.0 {
|
} else if other.a <= 0.0 {
|
||||||
return *self;
|
return *self;
|
||||||
} else {
|
} else {
|
||||||
|
@ -117,7 +117,7 @@ impl TryFrom<&'_ str> for Rgba {
|
||||||
const RRGGBB: usize = "rrggbb".len();
|
const RRGGBB: usize = "rrggbb".len();
|
||||||
const RRGGBBAA: usize = "rrggbbaa".len();
|
const RRGGBBAA: usize = "rrggbbaa".len();
|
||||||
|
|
||||||
const EXPECTED_FORMATS: &'static str = "Expected #rgb, #rgba, #rrggbb, or #rrggbbaa";
|
const EXPECTED_FORMATS: &str = "Expected #rgb, #rgba, #rrggbb, or #rrggbbaa";
|
||||||
|
|
||||||
let Some(("", hex)) = value.trim().split_once('#') else {
|
let Some(("", hex)) = value.trim().split_once('#') else {
|
||||||
bail!("invalid RGBA hex color: '{value}'. {EXPECTED_FORMATS}");
|
bail!("invalid RGBA hex color: '{value}'. {EXPECTED_FORMATS}");
|
||||||
|
@ -328,7 +328,7 @@ impl Hsla {
|
||||||
let alpha = other.a;
|
let alpha = other.a;
|
||||||
|
|
||||||
if alpha >= 1.0 {
|
if alpha >= 1.0 {
|
||||||
return other;
|
other
|
||||||
} else if alpha <= 0.0 {
|
} else if alpha <= 0.0 {
|
||||||
return self;
|
return self;
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -176,21 +176,20 @@ impl Interactivity {
|
||||||
{
|
{
|
||||||
self.mouse_move_listeners
|
self.mouse_move_listeners
|
||||||
.push(Box::new(move |event, bounds, phase, cx| {
|
.push(Box::new(move |event, bounds, phase, cx| {
|
||||||
if phase == DispatchPhase::Capture {
|
if phase == DispatchPhase::Capture
|
||||||
if cx
|
&& cx
|
||||||
.active_drag
|
.active_drag
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.is_some_and(|drag| drag.value.as_ref().type_id() == TypeId::of::<T>())
|
.is_some_and(|drag| drag.value.as_ref().type_id() == TypeId::of::<T>())
|
||||||
{
|
{
|
||||||
(listener)(
|
(listener)(
|
||||||
&DragMoveEvent {
|
&DragMoveEvent {
|
||||||
event: event.clone(),
|
event: event.clone(),
|
||||||
bounds: bounds.bounds,
|
bounds: bounds.bounds,
|
||||||
drag: PhantomData,
|
drag: PhantomData,
|
||||||
},
|
},
|
||||||
cx,
|
cx,
|
||||||
);
|
);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
@ -236,7 +235,7 @@ impl Interactivity {
|
||||||
|
|
||||||
pub fn on_boxed_action(
|
pub fn on_boxed_action(
|
||||||
&mut self,
|
&mut self,
|
||||||
action: &Box<dyn Action>,
|
action: &dyn Action,
|
||||||
listener: impl Fn(&Box<dyn Action>, &mut WindowContext) + 'static,
|
listener: impl Fn(&Box<dyn Action>, &mut WindowContext) + 'static,
|
||||||
) {
|
) {
|
||||||
let action = action.boxed_clone();
|
let action = action.boxed_clone();
|
||||||
|
@ -511,7 +510,7 @@ pub trait InteractiveElement: Sized {
|
||||||
|
|
||||||
fn on_boxed_action(
|
fn on_boxed_action(
|
||||||
mut self,
|
mut self,
|
||||||
action: &Box<dyn Action>,
|
action: &dyn Action,
|
||||||
listener: impl Fn(&Box<dyn Action>, &mut WindowContext) + 'static,
|
listener: impl Fn(&Box<dyn Action>, &mut WindowContext) + 'static,
|
||||||
) -> Self {
|
) -> Self {
|
||||||
self.interactivity().on_boxed_action(action, listener);
|
self.interactivity().on_boxed_action(action, listener);
|
||||||
|
@ -878,6 +877,7 @@ impl DivState {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Default)]
|
||||||
pub struct Interactivity {
|
pub struct Interactivity {
|
||||||
pub element_id: Option<ElementId>,
|
pub element_id: Option<ElementId>,
|
||||||
pub key_context: Option<KeyContext>,
|
pub key_context: Option<KeyContext>,
|
||||||
|
@ -921,12 +921,12 @@ pub struct InteractiveBounds {
|
||||||
|
|
||||||
impl InteractiveBounds {
|
impl InteractiveBounds {
|
||||||
pub fn visibly_contains(&self, point: &Point<Pixels>, cx: &WindowContext) -> bool {
|
pub fn visibly_contains(&self, point: &Point<Pixels>, cx: &WindowContext) -> bool {
|
||||||
self.bounds.contains(point) && cx.was_top_layer(&point, &self.stacking_order)
|
self.bounds.contains(point) && cx.was_top_layer(point, &self.stacking_order)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn drag_target_contains(&self, point: &Point<Pixels>, cx: &WindowContext) -> bool {
|
pub fn drag_target_contains(&self, point: &Point<Pixels>, cx: &WindowContext) -> bool {
|
||||||
self.bounds.contains(point)
|
self.bounds.contains(point)
|
||||||
&& cx.was_top_layer_under_active_drag(&point, &self.stacking_order)
|
&& cx.was_top_layer_under_active_drag(point, &self.stacking_order)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1009,8 +1009,7 @@ impl Interactivity {
|
||||||
None,
|
None,
|
||||||
)
|
)
|
||||||
.ok()
|
.ok()
|
||||||
.map(|mut text| text.pop())
|
.and_then(|mut text| text.pop())
|
||||||
.flatten()
|
|
||||||
{
|
{
|
||||||
text.paint(bounds.origin, FONT_SIZE, cx).ok();
|
text.paint(bounds.origin, FONT_SIZE, cx).ok();
|
||||||
|
|
||||||
|
@ -1024,7 +1023,6 @@ impl Interactivity {
|
||||||
{
|
{
|
||||||
let command_held = cx.modifiers().command;
|
let command_held = cx.modifiers().command;
|
||||||
cx.on_key_event({
|
cx.on_key_event({
|
||||||
let text_bounds = text_bounds.clone();
|
|
||||||
move |e: &crate::ModifiersChangedEvent, _phase, cx| {
|
move |e: &crate::ModifiersChangedEvent, _phase, cx| {
|
||||||
if e.modifiers.command != command_held
|
if e.modifiers.command != command_held
|
||||||
&& text_bounds.contains(&cx.mouse_position())
|
&& text_bounds.contains(&cx.mouse_position())
|
||||||
|
@ -1037,17 +1035,16 @@ impl Interactivity {
|
||||||
let hovered = bounds.contains(&cx.mouse_position());
|
let hovered = bounds.contains(&cx.mouse_position());
|
||||||
cx.on_mouse_event(
|
cx.on_mouse_event(
|
||||||
move |event: &MouseMoveEvent, phase, cx| {
|
move |event: &MouseMoveEvent, phase, cx| {
|
||||||
if phase == DispatchPhase::Capture {
|
if phase == DispatchPhase::Capture
|
||||||
if bounds.contains(&event.position) != hovered {
|
&& bounds.contains(&event.position) != hovered
|
||||||
cx.notify();
|
{
|
||||||
}
|
cx.notify();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
cx.on_mouse_event({
|
cx.on_mouse_event({
|
||||||
let location = self.location.clone().unwrap();
|
let location = self.location.unwrap();
|
||||||
let text_bounds = text_bounds.clone();
|
|
||||||
move |e: &crate::MouseDownEvent, phase, cx| {
|
move |e: &crate::MouseDownEvent, phase, cx| {
|
||||||
if text_bounds.contains(&e.position)
|
if text_bounds.contains(&e.position)
|
||||||
&& phase.capture()
|
&& phase.capture()
|
||||||
|
@ -1188,10 +1185,10 @@ impl Interactivity {
|
||||||
if let Some(group_bounds) = hover_group_bounds {
|
if let Some(group_bounds) = hover_group_bounds {
|
||||||
let hovered = group_bounds.contains(&cx.mouse_position());
|
let hovered = group_bounds.contains(&cx.mouse_position());
|
||||||
cx.on_mouse_event(move |event: &MouseMoveEvent, phase, cx| {
|
cx.on_mouse_event(move |event: &MouseMoveEvent, phase, cx| {
|
||||||
if phase == DispatchPhase::Capture {
|
if phase == DispatchPhase::Capture
|
||||||
if group_bounds.contains(&event.position) != hovered {
|
&& group_bounds.contains(&event.position) != hovered
|
||||||
cx.notify();
|
{
|
||||||
}
|
cx.notify();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -1203,10 +1200,10 @@ impl Interactivity {
|
||||||
let bounds = bounds.intersect(&cx.content_mask().bounds);
|
let bounds = bounds.intersect(&cx.content_mask().bounds);
|
||||||
let hovered = bounds.contains(&cx.mouse_position());
|
let hovered = bounds.contains(&cx.mouse_position());
|
||||||
cx.on_mouse_event(move |event: &MouseMoveEvent, phase, cx| {
|
cx.on_mouse_event(move |event: &MouseMoveEvent, phase, cx| {
|
||||||
if phase == DispatchPhase::Capture {
|
if phase == DispatchPhase::Capture
|
||||||
if bounds.contains(&event.position) != hovered {
|
&& bounds.contains(&event.position) != hovered
|
||||||
cx.notify();
|
{
|
||||||
}
|
cx.notify();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -1366,7 +1363,7 @@ impl Interactivity {
|
||||||
&& !cx.has_active_drag();
|
&& !cx.has_active_drag();
|
||||||
let mut was_hovered = was_hovered.borrow_mut();
|
let mut was_hovered = was_hovered.borrow_mut();
|
||||||
|
|
||||||
if is_hovered != was_hovered.clone() {
|
if is_hovered != *was_hovered {
|
||||||
*was_hovered = is_hovered;
|
*was_hovered = is_hovered;
|
||||||
drop(was_hovered);
|
drop(was_hovered);
|
||||||
|
|
||||||
|
@ -1693,46 +1690,6 @@ impl Interactivity {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Default for Interactivity {
|
|
||||||
fn default() -> Self {
|
|
||||||
Self {
|
|
||||||
element_id: None,
|
|
||||||
key_context: None,
|
|
||||||
focusable: false,
|
|
||||||
tracked_focus_handle: None,
|
|
||||||
scroll_handle: None,
|
|
||||||
// scroll_offset: Point::default(),
|
|
||||||
group: None,
|
|
||||||
base_style: Box::new(StyleRefinement::default()),
|
|
||||||
focus_style: None,
|
|
||||||
in_focus_style: None,
|
|
||||||
hover_style: None,
|
|
||||||
group_hover_style: None,
|
|
||||||
active_style: None,
|
|
||||||
group_active_style: None,
|
|
||||||
drag_over_styles: Vec::new(),
|
|
||||||
group_drag_over_styles: Vec::new(),
|
|
||||||
mouse_down_listeners: Vec::new(),
|
|
||||||
mouse_up_listeners: Vec::new(),
|
|
||||||
mouse_move_listeners: Vec::new(),
|
|
||||||
scroll_wheel_listeners: Vec::new(),
|
|
||||||
key_down_listeners: Vec::new(),
|
|
||||||
key_up_listeners: Vec::new(),
|
|
||||||
action_listeners: Vec::new(),
|
|
||||||
drop_listeners: Vec::new(),
|
|
||||||
can_drop_predicate: None,
|
|
||||||
click_listeners: Vec::new(),
|
|
||||||
drag_listener: None,
|
|
||||||
hover_listener: None,
|
|
||||||
tooltip_builder: None,
|
|
||||||
block_mouse: false,
|
|
||||||
|
|
||||||
#[cfg(debug_assertions)]
|
|
||||||
location: None,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Default)]
|
#[derive(Default)]
|
||||||
pub struct InteractiveElementState {
|
pub struct InteractiveElementState {
|
||||||
pub focus_handle: Option<FocusHandle>,
|
pub focus_handle: Option<FocusHandle>,
|
||||||
|
@ -1942,13 +1899,19 @@ struct ScrollHandleState {
|
||||||
#[derive(Clone)]
|
#[derive(Clone)]
|
||||||
pub struct ScrollHandle(Rc<RefCell<ScrollHandleState>>);
|
pub struct ScrollHandle(Rc<RefCell<ScrollHandleState>>);
|
||||||
|
|
||||||
|
impl Default for ScrollHandle {
|
||||||
|
fn default() -> Self {
|
||||||
|
Self::new()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
impl ScrollHandle {
|
impl ScrollHandle {
|
||||||
pub fn new() -> Self {
|
pub fn new() -> Self {
|
||||||
Self(Rc::default())
|
Self(Rc::default())
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn offset(&self) -> Point<Pixels> {
|
pub fn offset(&self) -> Point<Pixels> {
|
||||||
self.0.borrow().offset.borrow().clone()
|
*self.0.borrow().offset.borrow()
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn top_item(&self) -> usize {
|
pub fn top_item(&self) -> usize {
|
||||||
|
|
|
@ -71,9 +71,11 @@ impl Element for Overlay {
|
||||||
.map(|child| child.request_layout(cx))
|
.map(|child| child.request_layout(cx))
|
||||||
.collect::<SmallVec<_>>();
|
.collect::<SmallVec<_>>();
|
||||||
|
|
||||||
let mut overlay_style = Style::default();
|
let overlay_style = Style {
|
||||||
overlay_style.position = Position::Absolute;
|
position: Position::Absolute,
|
||||||
overlay_style.display = Display::Flex;
|
display: Display::Flex,
|
||||||
|
..Style::default()
|
||||||
|
};
|
||||||
|
|
||||||
let layout_id = cx.request_layout(&overlay_style, child_layout_ids.iter().copied());
|
let layout_id = cx.request_layout(&overlay_style, child_layout_ids.iter().copied());
|
||||||
|
|
||||||
|
@ -147,7 +149,9 @@ impl Element for Overlay {
|
||||||
desired.origin.y = limits.origin.y;
|
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| {
|
cx.break_content_mask(|cx| {
|
||||||
for child in &mut self.children {
|
for child in &mut self.children {
|
||||||
child.paint(cx);
|
child.paint(cx);
|
||||||
|
|
|
@ -171,7 +171,6 @@ impl TextState {
|
||||||
let line_height = text_style
|
let line_height = text_style
|
||||||
.line_height
|
.line_height
|
||||||
.to_pixels(font_size.into(), cx.rem_size());
|
.to_pixels(font_size.into(), cx.rem_size());
|
||||||
let text = SharedString::from(text);
|
|
||||||
|
|
||||||
let runs = if let Some(runs) = runs {
|
let runs = if let Some(runs) = runs {
|
||||||
runs
|
runs
|
||||||
|
|
|
@ -41,7 +41,7 @@ where
|
||||||
item_to_measure_index: 0,
|
item_to_measure_index: 0,
|
||||||
render_items: Box::new(render_range),
|
render_items: Box::new(render_range),
|
||||||
interactivity: Interactivity {
|
interactivity: Interactivity {
|
||||||
element_id: Some(id.into()),
|
element_id: Some(id),
|
||||||
base_style: Box::new(base_style),
|
base_style: Box::new(base_style),
|
||||||
|
|
||||||
#[cfg(debug_assertions)]
|
#[cfg(debug_assertions)]
|
||||||
|
|
|
@ -80,6 +80,12 @@ impl<T> Future for Task<T> {
|
||||||
#[derive(Clone, Copy, PartialEq, Eq, Hash, Debug)]
|
#[derive(Clone, Copy, PartialEq, Eq, Hash, Debug)]
|
||||||
pub struct TaskLabel(NonZeroUsize);
|
pub struct TaskLabel(NonZeroUsize);
|
||||||
|
|
||||||
|
impl Default for TaskLabel {
|
||||||
|
fn default() -> Self {
|
||||||
|
Self::new()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
impl TaskLabel {
|
impl TaskLabel {
|
||||||
pub fn new() -> Self {
|
pub fn new() -> Self {
|
||||||
static NEXT_TASK_LABEL: AtomicUsize = AtomicUsize::new(1);
|
static NEXT_TASK_LABEL: AtomicUsize = AtomicUsize::new(1);
|
||||||
|
|
|
@ -1601,13 +1601,13 @@ impl Edges<Pixels> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Into<Edges<Pixels>> for f32 {
|
impl From<f32> for Edges<Pixels> {
|
||||||
fn into(self) -> Edges<Pixels> {
|
fn from(val: f32) -> Self {
|
||||||
Edges {
|
Edges {
|
||||||
top: self.into(),
|
top: val.into(),
|
||||||
right: self.into(),
|
right: val.into(),
|
||||||
bottom: self.into(),
|
bottom: val.into(),
|
||||||
left: self.into(),
|
left: val.into(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1840,24 +1840,24 @@ where
|
||||||
|
|
||||||
impl<T> Copy for Corners<T> where T: Copy + Clone + Default + Debug {}
|
impl<T> Copy for Corners<T> where T: Copy + Clone + Default + Debug {}
|
||||||
|
|
||||||
impl Into<Corners<Pixels>> for f32 {
|
impl From<f32> for Corners<Pixels> {
|
||||||
fn into(self) -> Corners<Pixels> {
|
fn from(val: f32) -> Self {
|
||||||
Corners {
|
Corners {
|
||||||
top_left: self.into(),
|
top_left: val.into(),
|
||||||
top_right: self.into(),
|
top_right: val.into(),
|
||||||
bottom_right: self.into(),
|
bottom_right: val.into(),
|
||||||
bottom_left: self.into(),
|
bottom_left: val.into(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Into<Corners<Pixels>> for Pixels {
|
impl From<Pixels> for Corners<Pixels> {
|
||||||
fn into(self) -> Corners<Pixels> {
|
fn from(val: Pixels) -> Self {
|
||||||
Corners {
|
Corners {
|
||||||
top_left: self,
|
top_left: val,
|
||||||
top_right: self,
|
top_right: val,
|
||||||
bottom_right: self,
|
bottom_right: val,
|
||||||
bottom_left: self,
|
bottom_left: val,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1896,7 +1896,6 @@ impl Into<Corners<Pixels>> for Pixels {
|
||||||
Div,
|
Div,
|
||||||
DivAssign,
|
DivAssign,
|
||||||
PartialEq,
|
PartialEq,
|
||||||
PartialOrd,
|
|
||||||
Serialize,
|
Serialize,
|
||||||
Deserialize,
|
Deserialize,
|
||||||
)]
|
)]
|
||||||
|
@ -2039,9 +2038,15 @@ impl Mul<Pixels> for Pixels {
|
||||||
|
|
||||||
impl Eq for Pixels {}
|
impl Eq for Pixels {}
|
||||||
|
|
||||||
|
impl PartialOrd for Pixels {
|
||||||
|
fn partial_cmp(&self, other: &Self) -> Option<cmp::Ordering> {
|
||||||
|
self.0.partial_cmp(&other.0)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
impl Ord for Pixels {
|
impl Ord for Pixels {
|
||||||
fn cmp(&self, other: &Self) -> cmp::Ordering {
|
fn cmp(&self, other: &Self) -> cmp::Ordering {
|
||||||
self.0.partial_cmp(&other.0).unwrap()
|
self.partial_cmp(other).unwrap()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2517,12 +2522,12 @@ impl Debug for Length {
|
||||||
///
|
///
|
||||||
/// A `DefiniteLength` representing the relative length as a fraction of the parent's size.
|
/// A `DefiniteLength` representing the relative length as a fraction of the parent's size.
|
||||||
pub fn relative(fraction: f32) -> DefiniteLength {
|
pub fn relative(fraction: f32) -> DefiniteLength {
|
||||||
DefiniteLength::Fraction(fraction).into()
|
DefiniteLength::Fraction(fraction)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Returns the Golden Ratio, i.e. `~(1.0 + sqrt(5.0)) / 2.0`.
|
/// Returns the Golden Ratio, i.e. `~(1.0 + sqrt(5.0)) / 2.0`.
|
||||||
pub fn phi() -> DefiniteLength {
|
pub fn phi() -> DefiniteLength {
|
||||||
relative(1.61803398875)
|
relative(1.618_034)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Constructs a `Rems` value representing a length in rems.
|
/// Constructs a `Rems` value representing a length in rems.
|
||||||
|
|
|
@ -258,7 +258,7 @@ impl InputEvent {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn mouse_event<'a>(&'a self) -> Option<&'a dyn Any> {
|
pub fn mouse_event(&self) -> Option<&dyn Any> {
|
||||||
match self {
|
match self {
|
||||||
InputEvent::KeyDown { .. } => None,
|
InputEvent::KeyDown { .. } => None,
|
||||||
InputEvent::KeyUp { .. } => None,
|
InputEvent::KeyUp { .. } => None,
|
||||||
|
@ -272,7 +272,7 @@ impl InputEvent {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn keyboard_event<'a>(&'a self) -> Option<&'a dyn Any> {
|
pub fn keyboard_event(&self) -> Option<&dyn Any> {
|
||||||
match self {
|
match self {
|
||||||
InputEvent::KeyDown(event) => Some(event),
|
InputEvent::KeyDown(event) => Some(event),
|
||||||
InputEvent::KeyUp(event) => Some(event),
|
InputEvent::KeyUp(event) => Some(event),
|
||||||
|
|
|
@ -200,7 +200,7 @@ impl DispatchTree {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
false
|
||||||
})
|
})
|
||||||
.cloned()
|
.cloned()
|
||||||
.collect()
|
.collect()
|
||||||
|
|
|
@ -54,7 +54,7 @@ impl KeyBinding {
|
||||||
pending_keystrokes: &[Keystroke],
|
pending_keystrokes: &[Keystroke],
|
||||||
contexts: &[KeyContext],
|
contexts: &[KeyContext],
|
||||||
) -> KeyMatch {
|
) -> KeyMatch {
|
||||||
if self.keystrokes.as_ref().starts_with(&pending_keystrokes)
|
if self.keystrokes.as_ref().starts_with(pending_keystrokes)
|
||||||
&& self.matches_context(contexts)
|
&& self.matches_context(contexts)
|
||||||
{
|
{
|
||||||
// If the binding is completed, push it onto the matches list
|
// If the binding is completed, push it onto the matches list
|
||||||
|
|
|
@ -24,7 +24,7 @@ impl KeyContext {
|
||||||
pub fn parse(source: &str) -> Result<Self> {
|
pub fn parse(source: &str) -> Result<Self> {
|
||||||
let mut context = Self::default();
|
let mut context = Self::default();
|
||||||
let source = skip_whitespace(source);
|
let source = skip_whitespace(source);
|
||||||
Self::parse_expr(&source, &mut context)?;
|
Self::parse_expr(source, &mut context)?;
|
||||||
Ok(context)
|
Ok(context)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -220,7 +220,7 @@ impl KeyBindingContextPredicate {
|
||||||
}
|
}
|
||||||
'!' => {
|
'!' => {
|
||||||
let source = skip_whitespace(&source[1..]);
|
let source = skip_whitespace(&source[1..]);
|
||||||
let (predicate, source) = Self::parse_expr(&source, PRECEDENCE_NOT)?;
|
let (predicate, source) = Self::parse_expr(source, PRECEDENCE_NOT)?;
|
||||||
Ok((KeyBindingContextPredicate::Not(Box::new(predicate)), source))
|
Ok((KeyBindingContextPredicate::Not(Box::new(predicate)), source))
|
||||||
}
|
}
|
||||||
_ if is_identifier_char(next) => {
|
_ if is_identifier_char(next) => {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
///! Macos screen have a y axis that goings up from the bottom of the screen and
|
//! Macos screen have a y axis that goings up from the bottom of the screen and
|
||||||
///! an origin at the bottom left of the main display.
|
//! an origin at the bottom left of the main display.
|
||||||
mod dispatcher;
|
mod dispatcher;
|
||||||
mod display;
|
mod display;
|
||||||
mod display_linker;
|
mod display_linker;
|
||||||
|
|
|
@ -23,6 +23,12 @@ pub struct MacDispatcher {
|
||||||
parker: Arc<Mutex<Parker>>,
|
parker: Arc<Mutex<Parker>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl Default for MacDispatcher {
|
||||||
|
fn default() -> Self {
|
||||||
|
Self::new()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
impl MacDispatcher {
|
impl MacDispatcher {
|
||||||
pub fn new() -> Self {
|
pub fn new() -> Self {
|
||||||
MacDispatcher {
|
MacDispatcher {
|
||||||
|
|
|
@ -41,7 +41,7 @@ impl MacDisplay {
|
||||||
CGGetActiveDisplayList(display_count, displays.as_mut_ptr(), &mut display_count);
|
CGGetActiveDisplayList(display_count, displays.as_mut_ptr(), &mut display_count);
|
||||||
displays.set_len(display_count as usize);
|
displays.set_len(display_count as usize);
|
||||||
|
|
||||||
displays.into_iter().map(|display| MacDisplay(display))
|
displays.into_iter().map(MacDisplay)
|
||||||
} else {
|
} else {
|
||||||
panic!("Failed to get active display list");
|
panic!("Failed to get active display list");
|
||||||
}
|
}
|
||||||
|
|
|
@ -49,7 +49,6 @@ impl MacDisplayLinker {
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
log::warn!("DisplayLink could not be obtained for {:?}", display_id);
|
log::warn!("DisplayLink could not be obtained for {:?}", display_id);
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -64,7 +64,7 @@ impl PlatformAtlas for MetalAtlas {
|
||||||
) -> Result<AtlasTile> {
|
) -> Result<AtlasTile> {
|
||||||
let mut lock = self.0.lock();
|
let mut lock = self.0.lock();
|
||||||
if let Some(tile) = lock.tiles_by_key.get(key) {
|
if let Some(tile) = lock.tiles_by_key.get(key) {
|
||||||
return Ok(tile.clone());
|
Ok(tile.clone())
|
||||||
} else {
|
} else {
|
||||||
let (size, bytes) = build()?;
|
let (size, bytes) = build()?;
|
||||||
let tile = lock.allocate(size, key.texture_kind());
|
let tile = lock.allocate(size, key.texture_kind());
|
||||||
|
@ -203,7 +203,7 @@ impl MetalAtlasTexture {
|
||||||
region,
|
region,
|
||||||
0,
|
0,
|
||||||
bytes.as_ptr() as *const _,
|
bytes.as_ptr() as *const _,
|
||||||
u32::from(bounds.size.width.to_bytes(self.bytes_per_pixel())) as u64,
|
bounds.size.width.to_bytes(self.bytes_per_pixel()) as u64,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -66,12 +66,10 @@ impl MetalRenderer {
|
||||||
.expect("error building metal library");
|
.expect("error building metal library");
|
||||||
|
|
||||||
fn to_float2_bits(point: crate::PointF) -> u64 {
|
fn to_float2_bits(point: crate::PointF) -> u64 {
|
||||||
unsafe {
|
let mut output = point.y.to_bits() as u64;
|
||||||
let mut output = mem::transmute::<_, u32>(point.y.to_bits()) as u64;
|
output <<= 32;
|
||||||
output <<= 32;
|
output |= point.x.to_bits() as u64;
|
||||||
output |= mem::transmute::<_, u32>(point.x.to_bits()) as u64;
|
output
|
||||||
output
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
let unit_vertices = [
|
let unit_vertices = [
|
||||||
|
@ -174,12 +172,12 @@ impl MetalRenderer {
|
||||||
unit_vertices,
|
unit_vertices,
|
||||||
instances,
|
instances,
|
||||||
sprite_atlas,
|
sprite_atlas,
|
||||||
core_video_texture_cache: CVMetalTextureCache::new(device.as_ptr()).unwrap(),
|
core_video_texture_cache: unsafe { CVMetalTextureCache::new(device.as_ptr()).unwrap() },
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn layer(&self) -> &metal::MetalLayerRef {
|
pub fn layer(&self) -> &metal::MetalLayerRef {
|
||||||
&*self.layer
|
&self.layer
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn sprite_atlas(&self) -> &Arc<MetalAtlas> {
|
pub fn sprite_atlas(&self) -> &Arc<MetalAtlas> {
|
||||||
|
@ -206,7 +204,7 @@ impl MetalRenderer {
|
||||||
let command_buffer = command_queue.new_command_buffer();
|
let command_buffer = command_queue.new_command_buffer();
|
||||||
let mut instance_offset = 0;
|
let mut instance_offset = 0;
|
||||||
|
|
||||||
let path_tiles = self.rasterize_paths(scene.paths(), &mut instance_offset, &command_buffer);
|
let path_tiles = self.rasterize_paths(scene.paths(), &mut instance_offset, command_buffer);
|
||||||
|
|
||||||
let render_pass_descriptor = metal::RenderPassDescriptor::new();
|
let render_pass_descriptor = metal::RenderPassDescriptor::new();
|
||||||
let color_attachment = render_pass_descriptor
|
let color_attachment = render_pass_descriptor
|
||||||
|
@ -429,7 +427,7 @@ impl MetalRenderer {
|
||||||
&viewport_size as *const Size<DevicePixels> as *const _,
|
&viewport_size as *const Size<DevicePixels> as *const _,
|
||||||
);
|
);
|
||||||
|
|
||||||
let shadow_bytes_len = mem::size_of::<Shadow>() * shadows.len();
|
let shadow_bytes_len = std::mem::size_of_val(shadows);
|
||||||
let buffer_contents = unsafe { (self.instances.contents() as *mut u8).add(*offset) };
|
let buffer_contents = unsafe { (self.instances.contents() as *mut u8).add(*offset) };
|
||||||
unsafe {
|
unsafe {
|
||||||
ptr::copy_nonoverlapping(
|
ptr::copy_nonoverlapping(
|
||||||
|
@ -489,7 +487,7 @@ impl MetalRenderer {
|
||||||
&viewport_size as *const Size<DevicePixels> as *const _,
|
&viewport_size as *const Size<DevicePixels> as *const _,
|
||||||
);
|
);
|
||||||
|
|
||||||
let quad_bytes_len = mem::size_of::<Quad>() * quads.len();
|
let quad_bytes_len = std::mem::size_of_val(quads);
|
||||||
let buffer_contents = unsafe { (self.instances.contents() as *mut u8).add(*offset) };
|
let buffer_contents = unsafe { (self.instances.contents() as *mut u8).add(*offset) };
|
||||||
unsafe {
|
unsafe {
|
||||||
ptr::copy_nonoverlapping(quads.as_ptr() as *const u8, buffer_contents, quad_bytes_len);
|
ptr::copy_nonoverlapping(quads.as_ptr() as *const u8, buffer_contents, quad_bytes_len);
|
||||||
|
@ -537,7 +535,7 @@ impl MetalRenderer {
|
||||||
let mut prev_texture_id = None;
|
let mut prev_texture_id = None;
|
||||||
let mut sprites = SmallVec::<[_; 1]>::new();
|
let mut sprites = SmallVec::<[_; 1]>::new();
|
||||||
let mut paths_and_tiles = paths
|
let mut paths_and_tiles = paths
|
||||||
.into_iter()
|
.iter()
|
||||||
.map(|path| (path, tiles_by_path_id.get(&path.id).unwrap()))
|
.map(|path| (path, tiles_by_path_id.get(&path.id).unwrap()))
|
||||||
.peekable();
|
.peekable();
|
||||||
|
|
||||||
|
@ -652,7 +650,7 @@ impl MetalRenderer {
|
||||||
&viewport_size as *const Size<DevicePixels> as *const _,
|
&viewport_size as *const Size<DevicePixels> as *const _,
|
||||||
);
|
);
|
||||||
|
|
||||||
let quad_bytes_len = mem::size_of::<Underline>() * underlines.len();
|
let quad_bytes_len = std::mem::size_of_val(underlines);
|
||||||
let buffer_contents = unsafe { (self.instances.contents() as *mut u8).add(*offset) };
|
let buffer_contents = unsafe { (self.instances.contents() as *mut u8).add(*offset) };
|
||||||
unsafe {
|
unsafe {
|
||||||
ptr::copy_nonoverlapping(
|
ptr::copy_nonoverlapping(
|
||||||
|
@ -723,7 +721,7 @@ impl MetalRenderer {
|
||||||
);
|
);
|
||||||
command_encoder.set_fragment_texture(SpriteInputIndex::AtlasTexture as u64, Some(&texture));
|
command_encoder.set_fragment_texture(SpriteInputIndex::AtlasTexture as u64, Some(&texture));
|
||||||
|
|
||||||
let sprite_bytes_len = mem::size_of::<MonochromeSprite>() * sprites.len();
|
let sprite_bytes_len = std::mem::size_of_val(sprites);
|
||||||
let buffer_contents = unsafe { (self.instances.contents() as *mut u8).add(*offset) };
|
let buffer_contents = unsafe { (self.instances.contents() as *mut u8).add(*offset) };
|
||||||
unsafe {
|
unsafe {
|
||||||
ptr::copy_nonoverlapping(
|
ptr::copy_nonoverlapping(
|
||||||
|
@ -794,7 +792,7 @@ impl MetalRenderer {
|
||||||
);
|
);
|
||||||
command_encoder.set_fragment_texture(SpriteInputIndex::AtlasTexture as u64, Some(&texture));
|
command_encoder.set_fragment_texture(SpriteInputIndex::AtlasTexture as u64, Some(&texture));
|
||||||
|
|
||||||
let sprite_bytes_len = mem::size_of::<PolychromeSprite>() * sprites.len();
|
let sprite_bytes_len = std::mem::size_of_val(sprites);
|
||||||
let buffer_contents = unsafe { (self.instances.contents() as *mut u8).add(*offset) };
|
let buffer_contents = unsafe { (self.instances.contents() as *mut u8).add(*offset) };
|
||||||
unsafe {
|
unsafe {
|
||||||
ptr::copy_nonoverlapping(
|
ptr::copy_nonoverlapping(
|
||||||
|
@ -849,28 +847,30 @@ impl MetalRenderer {
|
||||||
media::core_video::kCVPixelFormatType_420YpCbCr8BiPlanarFullRange
|
media::core_video::kCVPixelFormatType_420YpCbCr8BiPlanarFullRange
|
||||||
);
|
);
|
||||||
|
|
||||||
let y_texture = self
|
let y_texture = unsafe {
|
||||||
.core_video_texture_cache
|
self.core_video_texture_cache
|
||||||
.create_texture_from_image(
|
.create_texture_from_image(
|
||||||
surface.image_buffer.as_concrete_TypeRef(),
|
surface.image_buffer.as_concrete_TypeRef(),
|
||||||
ptr::null(),
|
ptr::null(),
|
||||||
MTLPixelFormat::R8Unorm,
|
MTLPixelFormat::R8Unorm,
|
||||||
surface.image_buffer.plane_width(0),
|
surface.image_buffer.plane_width(0),
|
||||||
surface.image_buffer.plane_height(0),
|
surface.image_buffer.plane_height(0),
|
||||||
0,
|
0,
|
||||||
)
|
)
|
||||||
.unwrap();
|
.unwrap()
|
||||||
let cb_cr_texture = self
|
};
|
||||||
.core_video_texture_cache
|
let cb_cr_texture = unsafe {
|
||||||
.create_texture_from_image(
|
self.core_video_texture_cache
|
||||||
surface.image_buffer.as_concrete_TypeRef(),
|
.create_texture_from_image(
|
||||||
ptr::null(),
|
surface.image_buffer.as_concrete_TypeRef(),
|
||||||
MTLPixelFormat::RG8Unorm,
|
ptr::null(),
|
||||||
surface.image_buffer.plane_width(1),
|
MTLPixelFormat::RG8Unorm,
|
||||||
surface.image_buffer.plane_height(1),
|
surface.image_buffer.plane_width(1),
|
||||||
1,
|
surface.image_buffer.plane_height(1),
|
||||||
)
|
1,
|
||||||
.unwrap();
|
)
|
||||||
|
.unwrap()
|
||||||
|
};
|
||||||
|
|
||||||
align_offset(offset);
|
align_offset(offset);
|
||||||
let next_offset = *offset + mem::size_of::<Surface>();
|
let next_offset = *offset + mem::size_of::<Surface>();
|
||||||
|
|
|
@ -166,6 +166,12 @@ pub struct MacPlatformState {
|
||||||
finish_launching: Option<Box<dyn FnOnce()>>,
|
finish_launching: Option<Box<dyn FnOnce()>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl Default for MacPlatform {
|
||||||
|
fn default() -> Self {
|
||||||
|
Self::new()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
impl MacPlatform {
|
impl MacPlatform {
|
||||||
pub fn new() -> Self {
|
pub fn new() -> Self {
|
||||||
let dispatcher = Arc::new(MacDispatcher::new());
|
let dispatcher = Arc::new(MacDispatcher::new());
|
||||||
|
@ -219,7 +225,12 @@ impl MacPlatform {
|
||||||
menu.setDelegate_(delegate);
|
menu.setDelegate_(delegate);
|
||||||
|
|
||||||
for item_config in menu_config.items {
|
for item_config in menu_config.items {
|
||||||
menu.addItem_(self.create_menu_item(item_config, delegate, actions, keymap));
|
menu.addItem_(Self::create_menu_item(
|
||||||
|
item_config,
|
||||||
|
delegate,
|
||||||
|
actions,
|
||||||
|
keymap,
|
||||||
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
let menu_item = NSMenuItem::new(nil).autorelease();
|
let menu_item = NSMenuItem::new(nil).autorelease();
|
||||||
|
@ -236,7 +247,6 @@ impl MacPlatform {
|
||||||
}
|
}
|
||||||
|
|
||||||
unsafe fn create_menu_item(
|
unsafe fn create_menu_item(
|
||||||
&self,
|
|
||||||
item: MenuItem,
|
item: MenuItem,
|
||||||
delegate: id,
|
delegate: id,
|
||||||
actions: &mut Vec<Box<dyn Action>>,
|
actions: &mut Vec<Box<dyn Action>>,
|
||||||
|
@ -342,7 +352,7 @@ impl MacPlatform {
|
||||||
let submenu = NSMenu::new(nil).autorelease();
|
let submenu = NSMenu::new(nil).autorelease();
|
||||||
submenu.setDelegate_(delegate);
|
submenu.setDelegate_(delegate);
|
||||||
for item in items {
|
for item in items {
|
||||||
submenu.addItem_(self.create_menu_item(item, delegate, actions, keymap));
|
submenu.addItem_(Self::create_menu_item(item, delegate, actions, keymap));
|
||||||
}
|
}
|
||||||
item.setSubmenu_(submenu);
|
item.setSubmenu_(submenu);
|
||||||
item.setTitle_(ns_string(name));
|
item.setTitle_(ns_string(name));
|
||||||
|
@ -475,7 +485,6 @@ impl Platform for MacPlatform {
|
||||||
|
|
||||||
fn displays(&self) -> Vec<Rc<dyn PlatformDisplay>> {
|
fn displays(&self) -> Vec<Rc<dyn PlatformDisplay>> {
|
||||||
MacDisplay::all()
|
MacDisplay::all()
|
||||||
.into_iter()
|
|
||||||
.map(|screen| Rc::new(screen) as Rc<_>)
|
.map(|screen| Rc::new(screen) as Rc<_>)
|
||||||
.collect()
|
.collect()
|
||||||
}
|
}
|
||||||
|
@ -1035,7 +1044,6 @@ extern "C" fn will_terminate(this: &mut Object, _: Sel, _: id) {
|
||||||
extern "C" fn open_urls(this: &mut Object, _: Sel, _: id, urls: id) {
|
extern "C" fn open_urls(this: &mut Object, _: Sel, _: id, urls: id) {
|
||||||
let urls = unsafe {
|
let urls = unsafe {
|
||||||
(0..urls.count())
|
(0..urls.count())
|
||||||
.into_iter()
|
|
||||||
.filter_map(|i| {
|
.filter_map(|i| {
|
||||||
let url = urls.objectAtIndex(i);
|
let url = urls.objectAtIndex(i);
|
||||||
match CStr::from_ptr(url.absoluteString().UTF8String() as *mut c_char).to_str() {
|
match CStr::from_ptr(url.absoluteString().UTF8String() as *mut c_char).to_str() {
|
||||||
|
|
|
@ -335,7 +335,7 @@ impl MacTextSystemState {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Ok((bitmap_size.into(), bytes))
|
Ok((bitmap_size, bytes))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -343,10 +343,10 @@ impl MacTextSystemState {
|
||||||
// Construct the attributed string, converting UTF8 ranges to UTF16 ranges.
|
// Construct the attributed string, converting UTF8 ranges to UTF16 ranges.
|
||||||
let mut string = CFMutableAttributedString::new();
|
let mut string = CFMutableAttributedString::new();
|
||||||
{
|
{
|
||||||
string.replace_str(&CFString::new(text.as_ref()), CFRange::init(0, 0));
|
string.replace_str(&CFString::new(text), CFRange::init(0, 0));
|
||||||
let utf16_line_len = string.char_len() as usize;
|
let utf16_line_len = string.char_len() as usize;
|
||||||
|
|
||||||
let mut ix_converter = StringIndexConverter::new(text.as_ref());
|
let mut ix_converter = StringIndexConverter::new(text);
|
||||||
for run in font_runs {
|
for run in font_runs {
|
||||||
let utf8_end = ix_converter.utf8_ix + run.len;
|
let utf8_end = ix_converter.utf8_ix + run.len;
|
||||||
let utf16_start = ix_converter.utf16_ix;
|
let utf16_start = ix_converter.utf16_ix;
|
||||||
|
@ -390,7 +390,7 @@ impl MacTextSystemState {
|
||||||
};
|
};
|
||||||
let font_id = self.id_for_native_font(font);
|
let font_id = self.id_for_native_font(font);
|
||||||
|
|
||||||
let mut ix_converter = StringIndexConverter::new(text.as_ref());
|
let mut ix_converter = StringIndexConverter::new(text);
|
||||||
let mut glyphs = SmallVec::new();
|
let mut glyphs = SmallVec::new();
|
||||||
for ((glyph_id, position), glyph_utf16_ix) in run
|
for ((glyph_id, position), glyph_utf16_ix) in run
|
||||||
.glyphs()
|
.glyphs()
|
||||||
|
@ -453,7 +453,7 @@ impl MacTextSystemState {
|
||||||
if ix_converter.utf8_ix >= text.len() {
|
if ix_converter.utf8_ix >= text.len() {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break_indices.push(ix_converter.utf8_ix as usize);
|
break_indices.push(ix_converter.utf8_ix);
|
||||||
}
|
}
|
||||||
break_indices
|
break_indices
|
||||||
}
|
}
|
||||||
|
|
|
@ -487,7 +487,7 @@ impl MacWindow {
|
||||||
let display = options
|
let display = options
|
||||||
.display_id
|
.display_id
|
||||||
.and_then(|display_id| MacDisplay::all().find(|display| display.id() == display_id))
|
.and_then(|display_id| MacDisplay::all().find(|display| display.id() == display_id))
|
||||||
.unwrap_or_else(|| MacDisplay::primary());
|
.unwrap_or_else(MacDisplay::primary);
|
||||||
|
|
||||||
let mut target_screen = nil;
|
let mut target_screen = nil;
|
||||||
let screens = NSScreen::screens(nil);
|
let screens = NSScreen::screens(nil);
|
||||||
|
@ -701,7 +701,7 @@ impl PlatformWindow for MacWindow {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn content_size(&self) -> Size<Pixels> {
|
fn content_size(&self) -> Size<Pixels> {
|
||||||
self.0.as_ref().lock().content_size().into()
|
self.0.as_ref().lock().content_size()
|
||||||
}
|
}
|
||||||
|
|
||||||
fn scale_factor(&self) -> f32 {
|
fn scale_factor(&self) -> f32 {
|
||||||
|
@ -1338,12 +1338,10 @@ extern "C" fn window_did_change_key_status(this: &Object, selector: Sel, _: id)
|
||||||
// The following code detects the spurious event and invokes `resignKeyWindow`:
|
// The following code detects the spurious event and invokes `resignKeyWindow`:
|
||||||
// in theory, we're not supposed to invoke this method manually but it balances out
|
// in theory, we're not supposed to invoke this method manually but it balances out
|
||||||
// the spurious `becomeKeyWindow` event and helps us work around that bug.
|
// the spurious `becomeKeyWindow` event and helps us work around that bug.
|
||||||
if selector == sel!(windowDidBecomeKey:) {
|
if selector == sel!(windowDidBecomeKey:) && !is_active {
|
||||||
if !is_active {
|
unsafe {
|
||||||
unsafe {
|
let _: () = msg_send![lock.native_window, resignKeyWindow];
|
||||||
let _: () = msg_send![lock.native_window, resignKeyWindow];
|
return;
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1664,11 +1662,11 @@ extern "C" fn accepts_first_mouse(this: &Object, _: Sel, _: id) -> BOOL {
|
||||||
unsafe {
|
unsafe {
|
||||||
let state = get_window_state(this);
|
let state = get_window_state(this);
|
||||||
let lock = state.as_ref().lock();
|
let lock = state.as_ref().lock();
|
||||||
return if lock.kind == WindowKind::PopUp {
|
if lock.kind == WindowKind::PopUp {
|
||||||
YES
|
YES
|
||||||
} else {
|
} else {
|
||||||
NO
|
NO
|
||||||
};
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -14,6 +14,7 @@ pub type LayerId = u32;
|
||||||
|
|
||||||
pub type DrawOrder = u32;
|
pub type DrawOrder = u32;
|
||||||
|
|
||||||
|
#[derive(Default)]
|
||||||
pub(crate) struct SceneBuilder {
|
pub(crate) struct SceneBuilder {
|
||||||
last_order: Option<(StackingOrder, LayerId)>,
|
last_order: Option<(StackingOrder, LayerId)>,
|
||||||
layers_by_order: BTreeMap<StackingOrder, LayerId>,
|
layers_by_order: BTreeMap<StackingOrder, LayerId>,
|
||||||
|
@ -26,22 +27,6 @@ pub(crate) struct SceneBuilder {
|
||||||
surfaces: Vec<Surface>,
|
surfaces: Vec<Surface>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Default for SceneBuilder {
|
|
||||||
fn default() -> Self {
|
|
||||||
SceneBuilder {
|
|
||||||
last_order: None,
|
|
||||||
layers_by_order: BTreeMap::new(),
|
|
||||||
shadows: Vec::new(),
|
|
||||||
quads: Vec::new(),
|
|
||||||
paths: Vec::new(),
|
|
||||||
underlines: Vec::new(),
|
|
||||||
monochrome_sprites: Vec::new(),
|
|
||||||
polychrome_sprites: Vec::new(),
|
|
||||||
surfaces: Vec::new(),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl SceneBuilder {
|
impl SceneBuilder {
|
||||||
pub fn build(&mut self) -> Scene {
|
pub fn build(&mut self) -> Scene {
|
||||||
let mut orders = vec![0; self.layers_by_order.len()];
|
let mut orders = vec![0; self.layers_by_order.len()];
|
||||||
|
|
|
@ -60,9 +60,9 @@ impl<'a> PartialEq<&'a str> for SharedString {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Into<Arc<str>> for SharedString {
|
impl From<SharedString> for Arc<str> {
|
||||||
fn into(self) -> Arc<str> {
|
fn from(val: SharedString) -> Self {
|
||||||
match self.0 {
|
match val.0 {
|
||||||
ArcCow::Borrowed(borrowed) => Arc::from(borrowed),
|
ArcCow::Borrowed(borrowed) => Arc::from(borrowed),
|
||||||
ArcCow::Owned(owned) => owned.clone(),
|
ArcCow::Owned(owned) => owned.clone(),
|
||||||
}
|
}
|
||||||
|
@ -75,9 +75,9 @@ impl<T: Into<ArcCow<'static, str>>> From<T> for SharedString {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Into<String> for SharedString {
|
impl From<SharedString> for String {
|
||||||
fn into(self) -> String {
|
fn from(val: SharedString) -> Self {
|
||||||
self.0.to_string()
|
val.0.to_string()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -210,7 +210,7 @@ impl TextStyle {
|
||||||
pub fn font(&self) -> Font {
|
pub fn font(&self) -> Font {
|
||||||
Font {
|
Font {
|
||||||
family: self.font_family.clone(),
|
family: self.font_family.clone(),
|
||||||
features: self.font_features.clone(),
|
features: self.font_features,
|
||||||
weight: self.font_weight,
|
weight: self.font_weight,
|
||||||
style: self.font_style,
|
style: self.font_style,
|
||||||
}
|
}
|
||||||
|
@ -232,7 +232,7 @@ impl TextStyle {
|
||||||
},
|
},
|
||||||
color: self.color,
|
color: self.color,
|
||||||
background_color: self.background_color,
|
background_color: self.background_color,
|
||||||
underline: self.underline.clone(),
|
underline: self.underline,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -386,12 +386,14 @@ impl Style {
|
||||||
let background_color = self.background.as_ref().and_then(Fill::color);
|
let background_color = self.background.as_ref().and_then(Fill::color);
|
||||||
if background_color.map_or(false, |color| !color.is_transparent()) {
|
if background_color.map_or(false, |color| !color.is_transparent()) {
|
||||||
cx.with_z_index(1, |cx| {
|
cx.with_z_index(1, |cx| {
|
||||||
|
let mut border_color = background_color.unwrap_or_default();
|
||||||
|
border_color.a = 0.;
|
||||||
cx.paint_quad(quad(
|
cx.paint_quad(quad(
|
||||||
bounds,
|
bounds,
|
||||||
self.corner_radii.to_pixels(bounds.size, rem_size),
|
self.corner_radii.to_pixels(bounds.size, rem_size),
|
||||||
background_color.unwrap_or_default(),
|
background_color.unwrap_or_default(),
|
||||||
Edges::default(),
|
Edges::default(),
|
||||||
Hsla::transparent_black(),
|
border_color,
|
||||||
));
|
));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -426,10 +428,12 @@ impl Style {
|
||||||
bottom_bounds.upper_right(),
|
bottom_bounds.upper_right(),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
let mut background = self.border_color.unwrap_or_default();
|
||||||
|
background.a = 0.;
|
||||||
let quad = quad(
|
let quad = quad(
|
||||||
bounds,
|
bounds,
|
||||||
corner_radii,
|
corner_radii,
|
||||||
Hsla::transparent_black(),
|
background,
|
||||||
border_widths,
|
border_widths,
|
||||||
self.border_color.unwrap_or_default(),
|
self.border_color.unwrap_or_default(),
|
||||||
);
|
);
|
||||||
|
@ -570,7 +574,7 @@ impl From<&TextStyle> for HighlightStyle {
|
||||||
font_weight: Some(other.font_weight),
|
font_weight: Some(other.font_weight),
|
||||||
font_style: Some(other.font_style),
|
font_style: Some(other.font_style),
|
||||||
background_color: other.background_color,
|
background_color: other.background_color,
|
||||||
underline: other.underline.clone(),
|
underline: other.underline,
|
||||||
fade_out: None,
|
fade_out: None,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -53,7 +53,7 @@ where
|
||||||
lock.subscribers
|
lock.subscribers
|
||||||
.entry(emitter_key.clone())
|
.entry(emitter_key.clone())
|
||||||
.or_default()
|
.or_default()
|
||||||
.get_or_insert_with(|| Default::default())
|
.get_or_insert_with(Default::default)
|
||||||
.insert(
|
.insert(
|
||||||
subscriber_id,
|
subscriber_id,
|
||||||
Subscriber {
|
Subscriber {
|
||||||
|
@ -90,7 +90,7 @@ where
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn remove(&self, emitter: &EmitterKey) -> impl IntoIterator<Item = Callback> {
|
pub fn remove(&self, emitter: &EmitterKey) -> impl IntoIterator<Item = Callback> {
|
||||||
let subscribers = self.0.lock().subscribers.remove(&emitter);
|
let subscribers = self.0.lock().subscribers.remove(emitter);
|
||||||
subscribers
|
subscribers
|
||||||
.unwrap_or_default()
|
.unwrap_or_default()
|
||||||
.map(|s| s.into_values())
|
.map(|s| s.into_values())
|
||||||
|
@ -131,7 +131,7 @@ where
|
||||||
let mut lock = self.0.lock();
|
let mut lock = self.0.lock();
|
||||||
|
|
||||||
// Add any new subscribers that were added while invoking the callback.
|
// Add any new subscribers that were added while invoking the callback.
|
||||||
if let Some(Some(new_subscribers)) = lock.subscribers.remove(&emitter) {
|
if let Some(Some(new_subscribers)) = lock.subscribers.remove(emitter) {
|
||||||
subscribers.extend(new_subscribers);
|
subscribers.extend(new_subscribers);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -29,8 +29,7 @@ pub struct TaffyLayoutEngine {
|
||||||
>,
|
>,
|
||||||
}
|
}
|
||||||
|
|
||||||
static EXPECT_MESSAGE: &'static str =
|
static EXPECT_MESSAGE: &str = "we should avoid taffy layout errors by construction if possible";
|
||||||
"we should avoid taffy layout errors by construction if possible";
|
|
||||||
|
|
||||||
impl TaffyLayoutEngine {
|
impl TaffyLayoutEngine {
|
||||||
pub fn new() -> Self {
|
pub fn new() -> Self {
|
||||||
|
@ -246,7 +245,7 @@ impl ToTaffy<taffy::style::Style> for Style {
|
||||||
fn to_taffy(&self, rem_size: Pixels) -> taffy::style::Style {
|
fn to_taffy(&self, rem_size: Pixels) -> taffy::style::Style {
|
||||||
taffy::style::Style {
|
taffy::style::Style {
|
||||||
display: self.display,
|
display: self.display,
|
||||||
overflow: self.overflow.clone().into(),
|
overflow: self.overflow.into(),
|
||||||
scrollbar_width: self.scrollbar_width,
|
scrollbar_width: self.scrollbar_width,
|
||||||
position: self.position,
|
position: self.position,
|
||||||
inset: self.inset.to_taffy(rem_size),
|
inset: self.inset.to_taffy(rem_size),
|
||||||
|
@ -378,14 +377,14 @@ where
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<T, T2> Into<TaffyPoint<T2>> for Point<T>
|
impl<T, T2> From<Point<T>> for TaffyPoint<T2>
|
||||||
where
|
where
|
||||||
T: Into<T2> + Clone + Default + Debug,
|
T: Into<T2> + Clone + Default + Debug,
|
||||||
{
|
{
|
||||||
fn into(self) -> TaffyPoint<T2> {
|
fn from(val: Point<T>) -> Self {
|
||||||
TaffyPoint {
|
TaffyPoint {
|
||||||
x: self.x.into(),
|
x: val.x.into(),
|
||||||
y: self.y.into(),
|
y: val.y.into(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -396,8 +395,8 @@ where
|
||||||
{
|
{
|
||||||
fn to_taffy(&self, rem_size: Pixels) -> TaffySize<U> {
|
fn to_taffy(&self, rem_size: Pixels) -> TaffySize<U> {
|
||||||
TaffySize {
|
TaffySize {
|
||||||
width: self.width.to_taffy(rem_size).into(),
|
width: self.width.to_taffy(rem_size),
|
||||||
height: self.height.to_taffy(rem_size).into(),
|
height: self.height.to_taffy(rem_size),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -408,10 +407,10 @@ where
|
||||||
{
|
{
|
||||||
fn to_taffy(&self, rem_size: Pixels) -> TaffyRect<U> {
|
fn to_taffy(&self, rem_size: Pixels) -> TaffyRect<U> {
|
||||||
TaffyRect {
|
TaffyRect {
|
||||||
top: self.top.to_taffy(rem_size).into(),
|
top: self.top.to_taffy(rem_size),
|
||||||
right: self.right.to_taffy(rem_size).into(),
|
right: self.right.to_taffy(rem_size),
|
||||||
bottom: self.bottom.to_taffy(rem_size).into(),
|
bottom: self.bottom.to_taffy(rem_size),
|
||||||
left: self.left.to_taffy(rem_size).into(),
|
left: self.left.to_taffy(rem_size),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -106,7 +106,7 @@ impl TextSystem {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn units_per_em(&self, font_id: FontId) -> u32 {
|
pub fn units_per_em(&self, font_id: FontId) -> u32 {
|
||||||
self.read_metrics(font_id, |metrics| metrics.units_per_em as u32)
|
self.read_metrics(font_id, |metrics| metrics.units_per_em)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn cap_height(&self, font_id: FontId, font_size: Pixels) -> Pixels {
|
pub fn cap_height(&self, font_id: FontId, font_size: Pixels) -> Pixels {
|
||||||
|
@ -174,7 +174,7 @@ impl TextSystem {
|
||||||
|
|
||||||
let layout = self
|
let layout = self
|
||||||
.line_layout_cache
|
.line_layout_cache
|
||||||
.layout_line(&text, font_size, &font_runs);
|
.layout_line(text, font_size, &font_runs);
|
||||||
|
|
||||||
font_runs.clear();
|
font_runs.clear();
|
||||||
self.font_runs_pool.lock().push(font_runs);
|
self.font_runs_pool.lock().push(font_runs);
|
||||||
|
@ -208,7 +208,7 @@ impl TextSystem {
|
||||||
len: run.len as u32,
|
len: run.len as u32,
|
||||||
color: run.color,
|
color: run.color,
|
||||||
background_color: run.background_color,
|
background_color: run.background_color,
|
||||||
underline: run.underline.clone(),
|
underline: run.underline,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -268,7 +268,7 @@ impl TextSystem {
|
||||||
len: run_len_within_line as u32,
|
len: run_len_within_line as u32,
|
||||||
color: run.color,
|
color: run.color,
|
||||||
background_color: run.background_color,
|
background_color: run.background_color,
|
||||||
underline: run.underline.clone(),
|
underline: run.underline,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -287,7 +287,7 @@ impl TextSystem {
|
||||||
lines.push(WrappedLine {
|
lines.push(WrappedLine {
|
||||||
layout,
|
layout,
|
||||||
decoration_runs,
|
decoration_runs,
|
||||||
text: SharedString::from(line_text),
|
text: line_text,
|
||||||
});
|
});
|
||||||
|
|
||||||
// Skip `\n` character.
|
// Skip `\n` character.
|
||||||
|
@ -338,7 +338,7 @@ impl TextSystem {
|
||||||
pub fn raster_bounds(&self, params: &RenderGlyphParams) -> Result<Bounds<DevicePixels>> {
|
pub fn raster_bounds(&self, params: &RenderGlyphParams) -> Result<Bounds<DevicePixels>> {
|
||||||
let raster_bounds = self.raster_bounds.upgradable_read();
|
let raster_bounds = self.raster_bounds.upgradable_read();
|
||||||
if let Some(bounds) = raster_bounds.get(params) {
|
if let Some(bounds) = raster_bounds.get(params) {
|
||||||
Ok(bounds.clone())
|
Ok(*bounds)
|
||||||
} else {
|
} else {
|
||||||
let mut raster_bounds = RwLockUpgradableReadGuard::upgrade(raster_bounds);
|
let mut raster_bounds = RwLockUpgradableReadGuard::upgrade(raster_bounds);
|
||||||
let bounds = self.platform_text_system.glyph_raster_bounds(params)?;
|
let bounds = self.platform_text_system.glyph_raster_bounds(params)?;
|
||||||
|
@ -374,7 +374,7 @@ impl Drop for LineWrapperHandle {
|
||||||
let wrapper = self.wrapper.take().unwrap();
|
let wrapper = self.wrapper.take().unwrap();
|
||||||
state
|
state
|
||||||
.get_mut(&FontIdWithSize {
|
.get_mut(&FontIdWithSize {
|
||||||
font_id: wrapper.font_id.clone(),
|
font_id: wrapper.font_id,
|
||||||
font_size: wrapper.font_size,
|
font_size: wrapper.font_size,
|
||||||
})
|
})
|
||||||
.unwrap()
|
.unwrap()
|
||||||
|
@ -438,9 +438,10 @@ impl FontWeight {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Allows italic or oblique faces to be selected.
|
/// Allows italic or oblique faces to be selected.
|
||||||
#[derive(Clone, Copy, Eq, PartialEq, Debug, Hash)]
|
#[derive(Clone, Copy, Eq, PartialEq, Debug, Hash, Default)]
|
||||||
pub enum FontStyle {
|
pub enum FontStyle {
|
||||||
/// A face that is neither italic not obliqued.
|
/// A face that is neither italic not obliqued.
|
||||||
|
#[default]
|
||||||
Normal,
|
Normal,
|
||||||
/// A form that is generally cursive in nature.
|
/// A form that is generally cursive in nature.
|
||||||
Italic,
|
Italic,
|
||||||
|
@ -448,12 +449,6 @@ pub enum FontStyle {
|
||||||
Oblique,
|
Oblique,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Default for FontStyle {
|
|
||||||
fn default() -> FontStyle {
|
|
||||||
FontStyle::Normal
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl Display for FontStyle {
|
impl Display for FontStyle {
|
||||||
fn fmt(&self, f: &mut Formatter) -> fmt::Result {
|
fn fmt(&self, f: &mut Formatter) -> fmt::Result {
|
||||||
Debug::fmt(self, f)
|
Debug::fmt(self, f)
|
||||||
|
|
|
@ -97,14 +97,12 @@ impl LineWrapper {
|
||||||
self.cached_ascii_char_widths[c as usize] = Some(width);
|
self.cached_ascii_char_widths[c as usize] = Some(width);
|
||||||
width
|
width
|
||||||
}
|
}
|
||||||
|
} else if let Some(cached_width) = self.cached_other_char_widths.get(&c) {
|
||||||
|
*cached_width
|
||||||
} else {
|
} else {
|
||||||
if let Some(cached_width) = self.cached_other_char_widths.get(&c) {
|
let width = self.compute_width_for_char(c);
|
||||||
*cached_width
|
self.cached_other_char_widths.insert(c, width);
|
||||||
} else {
|
width
|
||||||
let width = self.compute_width_for_char(c);
|
|
||||||
self.cached_other_char_widths.insert(c, width);
|
|
||||||
width
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -221,7 +221,7 @@ impl<V: Render> From<View<V>> for AnyView {
|
||||||
AnyView {
|
AnyView {
|
||||||
model: value.model.into_any(),
|
model: value.model.into_any(),
|
||||||
layout: any_view::layout::<V>,
|
layout: any_view::layout::<V>,
|
||||||
paint: any_view::paint::<V>,
|
paint: any_view::paint,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -243,7 +243,7 @@ impl Element for AnyView {
|
||||||
state.is_some(),
|
state.is_some(),
|
||||||
"state is None. Did you include an AnyView twice in the tree?"
|
"state is None. Did you include an AnyView twice in the tree?"
|
||||||
);
|
);
|
||||||
(self.paint)(&self, state.as_mut().unwrap(), cx)
|
(self.paint)(self, state.as_mut().unwrap(), cx)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -293,7 +293,7 @@ impl<V: 'static + Render> From<WeakView<V>> for AnyWeakView {
|
||||||
Self {
|
Self {
|
||||||
model: view.model.into(),
|
model: view.model.into(),
|
||||||
layout: any_view::layout::<V>,
|
layout: any_view::layout::<V>,
|
||||||
paint: any_view::paint::<V>,
|
paint: any_view::paint,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -325,11 +325,7 @@ mod any_view {
|
||||||
(layout_id, element)
|
(layout_id, element)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub(crate) fn paint<V: 'static + Render>(
|
pub(crate) fn paint(_view: &AnyView, element: &mut AnyElement, cx: &mut WindowContext) {
|
||||||
_view: &AnyView,
|
|
||||||
element: &mut AnyElement,
|
|
||||||
cx: &mut WindowContext,
|
|
||||||
) {
|
|
||||||
element.paint(cx);
|
element.paint(cx);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,6 +26,7 @@ use std::{
|
||||||
any::{Any, TypeId},
|
any::{Any, TypeId},
|
||||||
borrow::{Borrow, BorrowMut, Cow},
|
borrow::{Borrow, BorrowMut, Cow},
|
||||||
cell::RefCell,
|
cell::RefCell,
|
||||||
|
collections::hash_map::Entry,
|
||||||
fmt::Debug,
|
fmt::Debug,
|
||||||
future::Future,
|
future::Future,
|
||||||
hash::{Hash, Hasher},
|
hash::{Hash, Hasher},
|
||||||
|
@ -403,7 +404,7 @@ impl Window {
|
||||||
element_id_stack: GlobalElementId::default(),
|
element_id_stack: GlobalElementId::default(),
|
||||||
rendered_frame: Frame::new(DispatchTree::new(cx.keymap.clone(), cx.actions.clone())),
|
rendered_frame: Frame::new(DispatchTree::new(cx.keymap.clone(), cx.actions.clone())),
|
||||||
next_frame: Frame::new(DispatchTree::new(cx.keymap.clone(), cx.actions.clone())),
|
next_frame: Frame::new(DispatchTree::new(cx.keymap.clone(), cx.actions.clone())),
|
||||||
frame_arena: Arena::new(1 * 1024 * 1024),
|
frame_arena: Arena::new(1024 * 1024),
|
||||||
focus_handles: Arc::new(RwLock::new(SlotMap::with_key())),
|
focus_handles: Arc::new(RwLock::new(SlotMap::with_key())),
|
||||||
focus_listeners: SubscriberSet::new(),
|
focus_listeners: SubscriberSet::new(),
|
||||||
blur_listeners: SubscriberSet::new(),
|
blur_listeners: SubscriberSet::new(),
|
||||||
|
@ -637,7 +638,8 @@ impl<'a> WindowContext<'a> {
|
||||||
let handle = self.window.handle;
|
let handle = self.window.handle;
|
||||||
let display_id = self.window.display_id;
|
let display_id = self.window.display_id;
|
||||||
|
|
||||||
if !self.frame_consumers.contains_key(&display_id) {
|
let mut frame_consumers = std::mem::take(&mut self.app.frame_consumers);
|
||||||
|
if let Entry::Vacant(e) = frame_consumers.entry(display_id) {
|
||||||
let (tx, mut rx) = mpsc::unbounded::<()>();
|
let (tx, mut rx) = mpsc::unbounded::<()>();
|
||||||
self.platform.set_display_link_output_callback(
|
self.platform.set_display_link_output_callback(
|
||||||
display_id,
|
display_id,
|
||||||
|
@ -669,8 +671,10 @@ impl<'a> WindowContext<'a> {
|
||||||
.ok();
|
.ok();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
self.frame_consumers.insert(display_id, consumer_task);
|
e.insert(consumer_task);
|
||||||
}
|
}
|
||||||
|
debug_assert!(self.app.frame_consumers.is_empty());
|
||||||
|
self.app.frame_consumers = frame_consumers;
|
||||||
|
|
||||||
if self.next_frame_callbacks.is_empty() {
|
if self.next_frame_callbacks.is_empty() {
|
||||||
self.platform.start_display_link(display_id);
|
self.platform.start_display_link(display_id);
|
||||||
|
@ -718,7 +722,7 @@ impl<'a> WindowContext<'a> {
|
||||||
children: impl IntoIterator<Item = LayoutId>,
|
children: impl IntoIterator<Item = LayoutId>,
|
||||||
) -> LayoutId {
|
) -> LayoutId {
|
||||||
self.app.layout_id_buffer.clear();
|
self.app.layout_id_buffer.clear();
|
||||||
self.app.layout_id_buffer.extend(children.into_iter());
|
self.app.layout_id_buffer.extend(children);
|
||||||
let rem_size = self.rem_size();
|
let rem_size = self.rem_size();
|
||||||
|
|
||||||
self.window.layout_engine.as_mut().unwrap().request_layout(
|
self.window.layout_engine.as_mut().unwrap().request_layout(
|
||||||
|
@ -844,7 +848,7 @@ impl<'a> WindowContext<'a> {
|
||||||
let text_style = self.text_style();
|
let text_style = self.text_style();
|
||||||
text_style
|
text_style
|
||||||
.line_height
|
.line_height
|
||||||
.to_pixels(text_style.font_size.into(), rem_size)
|
.to_pixels(text_style.font_size, rem_size)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Call to prevent the default action of an event. Currently only used to prevent
|
/// Call to prevent the default action of an event. Currently only used to prevent
|
||||||
|
@ -966,7 +970,7 @@ impl<'a> WindowContext<'a> {
|
||||||
pub fn add_opaque_layer(&mut self, bounds: Bounds<Pixels>) {
|
pub fn add_opaque_layer(&mut self, bounds: Bounds<Pixels>) {
|
||||||
let stacking_order = self.window.next_frame.z_index_stack.clone();
|
let stacking_order = self.window.next_frame.z_index_stack.clone();
|
||||||
let depth_map = &mut self.window.next_frame.depth_map;
|
let depth_map = &mut self.window.next_frame.depth_map;
|
||||||
match depth_map.binary_search_by(|(level, _)| stacking_order.cmp(&level)) {
|
match depth_map.binary_search_by(|(level, _)| stacking_order.cmp(level)) {
|
||||||
Ok(i) | Err(i) => depth_map.insert(i, (stacking_order, bounds)),
|
Ok(i) | Err(i) => depth_map.insert(i, (stacking_order, bounds)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1886,7 +1890,7 @@ impl Context for WindowContext<'_> {
|
||||||
T: 'static,
|
T: 'static,
|
||||||
{
|
{
|
||||||
let entity = self.entities.read(handle);
|
let entity = self.entities.read(handle);
|
||||||
read(&*entity, &*self.app)
|
read(entity, &*self.app)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn read_window<T, R>(
|
fn read_window<T, R>(
|
||||||
|
@ -1946,7 +1950,7 @@ impl VisualContext for WindowContext<'_> {
|
||||||
update: impl FnOnce(&mut T, &mut ViewContext<'_, T>) -> R,
|
update: impl FnOnce(&mut T, &mut ViewContext<'_, T>) -> R,
|
||||||
) -> Self::Result<R> {
|
) -> Self::Result<R> {
|
||||||
let mut lease = self.app.entities.lease(&view.model);
|
let mut lease = self.app.entities.lease(&view.model);
|
||||||
let mut cx = ViewContext::new(&mut *self.app, &mut *self.window, &view);
|
let mut cx = ViewContext::new(&mut *self.app, &mut *self.window, view);
|
||||||
let result = update(&mut *lease, &mut cx);
|
let result = update(&mut *lease, &mut cx);
|
||||||
cx.app.entities.end_lease(lease);
|
cx.app.entities.end_lease(lease);
|
||||||
result
|
result
|
||||||
|
@ -1983,25 +1987,25 @@ impl<'a> std::ops::Deref for WindowContext<'a> {
|
||||||
type Target = AppContext;
|
type Target = AppContext;
|
||||||
|
|
||||||
fn deref(&self) -> &Self::Target {
|
fn deref(&self) -> &Self::Target {
|
||||||
&self.app
|
self.app
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a> std::ops::DerefMut for WindowContext<'a> {
|
impl<'a> std::ops::DerefMut for WindowContext<'a> {
|
||||||
fn deref_mut(&mut self) -> &mut Self::Target {
|
fn deref_mut(&mut self) -> &mut Self::Target {
|
||||||
&mut self.app
|
self.app
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a> Borrow<AppContext> for WindowContext<'a> {
|
impl<'a> Borrow<AppContext> for WindowContext<'a> {
|
||||||
fn borrow(&self) -> &AppContext {
|
fn borrow(&self) -> &AppContext {
|
||||||
&self.app
|
self.app
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a> BorrowMut<AppContext> for WindowContext<'a> {
|
impl<'a> BorrowMut<AppContext> for WindowContext<'a> {
|
||||||
fn borrow_mut(&mut self) -> &mut AppContext {
|
fn borrow_mut(&mut self) -> &mut AppContext {
|
||||||
&mut self.app
|
self.app
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2033,7 +2037,7 @@ pub trait BorrowWindow: BorrowMut<Window> + BorrowMut<AppContext> {
|
||||||
) -> R {
|
) -> R {
|
||||||
if let Some(id) = id.map(Into::into) {
|
if let Some(id) = id.map(Into::into) {
|
||||||
let window = self.window_mut();
|
let window = self.window_mut();
|
||||||
window.element_id_stack.push(id.into());
|
window.element_id_stack.push(id);
|
||||||
let result = f(self);
|
let result = f(self);
|
||||||
let window: &mut Window = self.borrow_mut();
|
let window: &mut Window = self.borrow_mut();
|
||||||
window.element_id_stack.pop();
|
window.element_id_stack.pop();
|
||||||
|
@ -2255,13 +2259,13 @@ pub trait BorrowWindow: BorrowMut<Window> + BorrowMut<AppContext> {
|
||||||
|
|
||||||
impl Borrow<Window> for WindowContext<'_> {
|
impl Borrow<Window> for WindowContext<'_> {
|
||||||
fn borrow(&self) -> &Window {
|
fn borrow(&self) -> &Window {
|
||||||
&self.window
|
self.window
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl BorrowMut<Window> for WindowContext<'_> {
|
impl BorrowMut<Window> for WindowContext<'_> {
|
||||||
fn borrow_mut(&mut self) -> &mut Window {
|
fn borrow_mut(&mut self) -> &mut Window {
|
||||||
&mut self.window
|
self.window
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2915,10 +2919,7 @@ impl<V> Copy for WindowHandle<V> {}
|
||||||
|
|
||||||
impl<V> Clone for WindowHandle<V> {
|
impl<V> Clone for WindowHandle<V> {
|
||||||
fn clone(&self) -> Self {
|
fn clone(&self) -> Self {
|
||||||
WindowHandle {
|
*self
|
||||||
any_handle: self.any_handle,
|
|
||||||
state_type: PhantomData,
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2936,9 +2937,9 @@ impl<V> Hash for WindowHandle<V> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<V: 'static> Into<AnyWindowHandle> for WindowHandle<V> {
|
impl<V: 'static> From<WindowHandle<V>> for AnyWindowHandle {
|
||||||
fn into(self) -> AnyWindowHandle {
|
fn from(val: WindowHandle<V>) -> Self {
|
||||||
self.any_handle
|
val.any_handle
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -102,7 +102,7 @@ fn generate_methods() -> Vec<TokenStream2> {
|
||||||
fn generate_predefined_setter(
|
fn generate_predefined_setter(
|
||||||
name: &'static str,
|
name: &'static str,
|
||||||
length: &'static str,
|
length: &'static str,
|
||||||
fields: &Vec<TokenStream2>,
|
fields: &[TokenStream2],
|
||||||
length_tokens: &TokenStream2,
|
length_tokens: &TokenStream2,
|
||||||
negate: bool,
|
negate: bool,
|
||||||
doc_string: &str,
|
doc_string: &str,
|
||||||
|
@ -143,12 +143,12 @@ fn generate_predefined_setter(
|
||||||
fn generate_custom_value_setter(
|
fn generate_custom_value_setter(
|
||||||
prefix: &'static str,
|
prefix: &'static str,
|
||||||
length_type: TokenStream2,
|
length_type: TokenStream2,
|
||||||
fields: &Vec<TokenStream2>,
|
fields: &[TokenStream2],
|
||||||
doc_string: &str,
|
doc_string: &str,
|
||||||
) -> TokenStream2 {
|
) -> TokenStream2 {
|
||||||
let method_name = format_ident!("{}", prefix);
|
let method_name = format_ident!("{}", prefix);
|
||||||
|
|
||||||
let mut iter = fields.into_iter();
|
let mut iter = fields.iter();
|
||||||
let last = iter.next_back().unwrap();
|
let last = iter.next_back().unwrap();
|
||||||
let field_assignments = iter
|
let field_assignments = iter
|
||||||
.map(|field_tokens| {
|
.map(|field_tokens| {
|
||||||
|
|
|
@ -108,25 +108,23 @@ pub mod core_video {
|
||||||
impl_CFTypeDescription!(CVMetalTextureCache);
|
impl_CFTypeDescription!(CVMetalTextureCache);
|
||||||
|
|
||||||
impl CVMetalTextureCache {
|
impl CVMetalTextureCache {
|
||||||
pub fn new(metal_device: *mut MTLDevice) -> Result<Self> {
|
pub unsafe fn new(metal_device: *mut MTLDevice) -> Result<Self> {
|
||||||
unsafe {
|
let mut this = ptr::null();
|
||||||
let mut this = ptr::null();
|
let result = CVMetalTextureCacheCreate(
|
||||||
let result = CVMetalTextureCacheCreate(
|
kCFAllocatorDefault,
|
||||||
kCFAllocatorDefault,
|
ptr::null(),
|
||||||
ptr::null(),
|
metal_device,
|
||||||
metal_device,
|
ptr::null(),
|
||||||
ptr::null(),
|
&mut this,
|
||||||
&mut this,
|
);
|
||||||
);
|
if result == kCVReturnSuccess {
|
||||||
if result == kCVReturnSuccess {
|
Ok(CVMetalTextureCache::wrap_under_create_rule(this))
|
||||||
Ok(CVMetalTextureCache::wrap_under_create_rule(this))
|
} else {
|
||||||
} else {
|
Err(anyhow!("could not create texture cache, code: {}", result))
|
||||||
Err(anyhow!("could not create texture cache, code: {}", result))
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn create_texture_from_image(
|
pub unsafe fn create_texture_from_image(
|
||||||
&self,
|
&self,
|
||||||
source: CVImageBufferRef,
|
source: CVImageBufferRef,
|
||||||
texture_attributes: CFDictionaryRef,
|
texture_attributes: CFDictionaryRef,
|
||||||
|
@ -135,24 +133,22 @@ pub mod core_video {
|
||||||
height: usize,
|
height: usize,
|
||||||
plane_index: usize,
|
plane_index: usize,
|
||||||
) -> Result<CVMetalTexture> {
|
) -> Result<CVMetalTexture> {
|
||||||
unsafe {
|
let mut this = ptr::null();
|
||||||
let mut this = ptr::null();
|
let result = CVMetalTextureCacheCreateTextureFromImage(
|
||||||
let result = CVMetalTextureCacheCreateTextureFromImage(
|
kCFAllocatorDefault,
|
||||||
kCFAllocatorDefault,
|
self.as_concrete_TypeRef(),
|
||||||
self.as_concrete_TypeRef(),
|
source,
|
||||||
source,
|
texture_attributes,
|
||||||
texture_attributes,
|
pixel_format,
|
||||||
pixel_format,
|
width,
|
||||||
width,
|
height,
|
||||||
height,
|
plane_index,
|
||||||
plane_index,
|
&mut this,
|
||||||
&mut this,
|
);
|
||||||
);
|
if result == kCVReturnSuccess {
|
||||||
if result == kCVReturnSuccess {
|
Ok(CVMetalTexture::wrap_under_create_rule(this))
|
||||||
Ok(CVMetalTexture::wrap_under_create_rule(this))
|
} else {
|
||||||
} else {
|
Err(anyhow!("could not create texture, code: {}", result))
|
||||||
Err(anyhow!("could not create texture, code: {}", result))
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -438,60 +434,56 @@ pub mod video_toolbox {
|
||||||
impl_CFTypeDescription!(VTCompressionSession);
|
impl_CFTypeDescription!(VTCompressionSession);
|
||||||
|
|
||||||
impl VTCompressionSession {
|
impl VTCompressionSession {
|
||||||
pub fn new(
|
pub unsafe fn new(
|
||||||
width: usize,
|
width: usize,
|
||||||
height: usize,
|
height: usize,
|
||||||
codec: CMVideoCodecType,
|
codec: CMVideoCodecType,
|
||||||
callback: VTCompressionOutputCallback,
|
callback: VTCompressionOutputCallback,
|
||||||
callback_data: *const c_void,
|
callback_data: *const c_void,
|
||||||
) -> Result<Self> {
|
) -> Result<Self> {
|
||||||
unsafe {
|
let mut this = ptr::null();
|
||||||
let mut this = ptr::null();
|
let result = VTCompressionSessionCreate(
|
||||||
let result = VTCompressionSessionCreate(
|
ptr::null(),
|
||||||
ptr::null(),
|
width as i32,
|
||||||
width as i32,
|
height as i32,
|
||||||
height as i32,
|
codec,
|
||||||
codec,
|
ptr::null(),
|
||||||
ptr::null(),
|
ptr::null(),
|
||||||
ptr::null(),
|
ptr::null(),
|
||||||
ptr::null(),
|
callback,
|
||||||
callback,
|
callback_data,
|
||||||
callback_data,
|
&mut this,
|
||||||
&mut this,
|
);
|
||||||
);
|
|
||||||
|
|
||||||
if result == 0 {
|
if result == 0 {
|
||||||
Ok(Self::wrap_under_create_rule(this))
|
Ok(Self::wrap_under_create_rule(this))
|
||||||
} else {
|
} else {
|
||||||
Err(anyhow!(
|
Err(anyhow!(
|
||||||
"error creating compression session, code {}",
|
"error creating compression session, code {}",
|
||||||
result
|
result
|
||||||
))
|
))
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn encode_frame(
|
pub unsafe fn encode_frame(
|
||||||
&self,
|
&self,
|
||||||
buffer: CVImageBufferRef,
|
buffer: CVImageBufferRef,
|
||||||
presentation_timestamp: CMTime,
|
presentation_timestamp: CMTime,
|
||||||
duration: CMTime,
|
duration: CMTime,
|
||||||
) -> Result<()> {
|
) -> Result<()> {
|
||||||
unsafe {
|
let result = VTCompressionSessionEncodeFrame(
|
||||||
let result = VTCompressionSessionEncodeFrame(
|
self.as_concrete_TypeRef(),
|
||||||
self.as_concrete_TypeRef(),
|
buffer,
|
||||||
buffer,
|
presentation_timestamp,
|
||||||
presentation_timestamp,
|
duration,
|
||||||
duration,
|
ptr::null(),
|
||||||
ptr::null(),
|
ptr::null(),
|
||||||
ptr::null(),
|
ptr::null_mut(),
|
||||||
ptr::null_mut(),
|
);
|
||||||
);
|
if result == 0 {
|
||||||
if result == 0 {
|
Ok(())
|
||||||
Ok(())
|
} else {
|
||||||
} else {
|
Err(anyhow!("error encoding frame, code {}", result))
|
||||||
Err(anyhow!("error encoding frame, code {}", result))
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1612,6 +1612,10 @@ impl Panel for ProjectPanel {
|
||||||
Some(ui::Icon::FileTree)
|
Some(ui::Icon::FileTree)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn icon_tooltip(&self, _cx: &WindowContext) -> Option<&'static str> {
|
||||||
|
Some("Project Panel")
|
||||||
|
}
|
||||||
|
|
||||||
fn toggle_action(&self) -> Box<dyn Action> {
|
fn toggle_action(&self) -> Box<dyn Action> {
|
||||||
Box::new(ToggleFocus)
|
Box::new(ToggleFocus)
|
||||||
}
|
}
|
||||||
|
|
|
@ -85,9 +85,7 @@ pub fn derive_refineable(input: TokenStream) -> TokenStream {
|
||||||
// Append to where_clause or create a new one if it doesn't exist
|
// Append to where_clause or create a new one if it doesn't exist
|
||||||
let where_clause = match where_clause.cloned() {
|
let where_clause = match where_clause.cloned() {
|
||||||
Some(mut where_clause) => {
|
Some(mut where_clause) => {
|
||||||
where_clause
|
where_clause.predicates.extend(type_param_bounds);
|
||||||
.predicates
|
|
||||||
.extend(type_param_bounds.into_iter());
|
|
||||||
where_clause.clone()
|
where_clause.clone()
|
||||||
}
|
}
|
||||||
None => WhereClause {
|
None => WhereClause {
|
||||||
|
|
|
@ -27,7 +27,7 @@ pub struct CascadeSlot(usize);
|
||||||
impl<S: Refineable + Default> Cascade<S> {
|
impl<S: Refineable + Default> Cascade<S> {
|
||||||
pub fn reserve(&mut self) -> CascadeSlot {
|
pub fn reserve(&mut self) -> CascadeSlot {
|
||||||
self.0.push(None);
|
self.0.push(None);
|
||||||
return CascadeSlot(self.0.len() - 1);
|
CascadeSlot(self.0.len() - 1)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn base(&mut self) -> &mut S::Refinement {
|
pub fn base(&mut self) -> &mut S::Refinement {
|
||||||
|
@ -40,10 +40,8 @@ impl<S: Refineable + Default> Cascade<S> {
|
||||||
|
|
||||||
pub fn merged(&self) -> S::Refinement {
|
pub fn merged(&self) -> S::Refinement {
|
||||||
let mut merged = self.0[0].clone().unwrap();
|
let mut merged = self.0[0].clone().unwrap();
|
||||||
for refinement in self.0.iter().skip(1) {
|
for refinement in self.0.iter().skip(1).flatten() {
|
||||||
if let Some(refinement) = refinement {
|
merged.refine(refinement);
|
||||||
merged.refine(refinement);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
merged
|
merged
|
||||||
}
|
}
|
||||||
|
|
|
@ -906,7 +906,7 @@ impl Chunk {
|
||||||
|
|
||||||
fn clip_offset_utf16(&self, target: OffsetUtf16, bias: Bias) -> OffsetUtf16 {
|
fn clip_offset_utf16(&self, target: OffsetUtf16, bias: Bias) -> OffsetUtf16 {
|
||||||
let mut code_units = self.0.encode_utf16();
|
let mut code_units = self.0.encode_utf16();
|
||||||
let mut offset = code_units.by_ref().take(target.0 as usize).count();
|
let mut offset = code_units.by_ref().take(target.0).count();
|
||||||
if char::decode_utf16(code_units).next().transpose().is_err() {
|
if char::decode_utf16(code_units).next().transpose().is_err() {
|
||||||
match bias {
|
match bias {
|
||||||
Bias::Left => offset -= 1,
|
Bias::Left => offset -= 1,
|
||||||
|
|
|
@ -20,8 +20,8 @@ impl Connection {
|
||||||
self.sqlite3,
|
self.sqlite3,
|
||||||
sql_str.as_c_str().as_ptr(),
|
sql_str.as_c_str().as_ptr(),
|
||||||
None,
|
None,
|
||||||
0 as *mut _,
|
std::ptr::null_mut(),
|
||||||
0 as *mut _,
|
std::ptr::null_mut(),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
self.last_error()
|
self.last_error()
|
||||||
|
|
|
@ -232,13 +232,13 @@ impl<'a> Statement<'a> {
|
||||||
.last_error()
|
.last_error()
|
||||||
.with_context(|| format!("Failed to read text length at {index}"))?;
|
.with_context(|| format!("Failed to read text length at {index}"))?;
|
||||||
|
|
||||||
let slice = unsafe { slice::from_raw_parts(pointer as *const u8, len) };
|
let slice = unsafe { slice::from_raw_parts(pointer, len) };
|
||||||
Ok(str::from_utf8(slice)?)
|
Ok(str::from_utf8(slice)?)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn bind<T: Bind>(&self, value: &T, index: i32) -> Result<i32> {
|
pub fn bind<T: Bind>(&self, value: &T, index: i32) -> Result<i32> {
|
||||||
debug_assert!(index > 0);
|
debug_assert!(index > 0);
|
||||||
Ok(value.bind(self, index)?)
|
value.bind(self, index)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn column<T: Column>(&mut self) -> Result<T> {
|
pub fn column<T: Column>(&mut self) -> Result<T> {
|
||||||
|
|
|
@ -10,14 +10,14 @@ use crate::{connection::Connection, domain::Migrator, util::UnboundedSyncSender}
|
||||||
const MIGRATION_RETRIES: usize = 10;
|
const MIGRATION_RETRIES: usize = 10;
|
||||||
|
|
||||||
type QueuedWrite = Box<dyn 'static + Send + FnOnce()>;
|
type QueuedWrite = Box<dyn 'static + Send + FnOnce()>;
|
||||||
type WriteQueueConstructor =
|
type WriteQueue = Box<dyn 'static + Send + Sync + Fn(QueuedWrite)>;
|
||||||
Box<dyn 'static + Send + FnMut() -> Box<dyn 'static + Send + Sync + Fn(QueuedWrite)>>;
|
type WriteQueueConstructor = Box<dyn 'static + Send + FnMut() -> WriteQueue>;
|
||||||
lazy_static! {
|
lazy_static! {
|
||||||
/// List of queues of tasks by database uri. This lets us serialize writes to the database
|
/// List of queues of tasks by database uri. This lets us serialize writes to the database
|
||||||
/// and have a single worker thread per db file. This means many thread safe connections
|
/// and have a single worker thread per db file. This means many thread safe connections
|
||||||
/// (possibly with different migrations) could all be communicating with the same background
|
/// (possibly with different migrations) could all be communicating with the same background
|
||||||
/// thread.
|
/// thread.
|
||||||
static ref QUEUES: RwLock<HashMap<Arc<str>, Box<dyn 'static + Send + Sync + Fn(QueuedWrite)>>> =
|
static ref QUEUES: RwLock<HashMap<Arc<str>, WriteQueue>> =
|
||||||
Default::default();
|
Default::default();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -40,7 +40,7 @@ impl<K: Clone + Debug + Default + Ord, V: Clone + Debug> TreeMap<K, V> {
|
||||||
self.0.is_empty()
|
self.0.is_empty()
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn get<'a>(&self, key: &'a K) -> Option<&V> {
|
pub fn get(&self, key: &K) -> Option<&V> {
|
||||||
let mut cursor = self.0.cursor::<MapKeyRef<'_, K>>();
|
let mut cursor = self.0.cursor::<MapKeyRef<'_, K>>();
|
||||||
cursor.seek(&MapKeyRef(Some(key)), Bias::Left, &());
|
cursor.seek(&MapKeyRef(Some(key)), Bias::Left, &());
|
||||||
if let Some(item) = cursor.item() {
|
if let Some(item) = cursor.item() {
|
||||||
|
@ -98,9 +98,7 @@ impl<K: Clone + Debug + Default + Ord, V: Clone + Debug> TreeMap<K, V> {
|
||||||
let from_key = MapKeyRef(Some(from));
|
let from_key = MapKeyRef(Some(from));
|
||||||
cursor.seek(&from_key, Bias::Left, &());
|
cursor.seek(&from_key, Bias::Left, &());
|
||||||
|
|
||||||
cursor
|
cursor.map(|map_entry| (&map_entry.key, &map_entry.value))
|
||||||
.into_iter()
|
|
||||||
.map(|map_entry| (&map_entry.key, &map_entry.value))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn update<F, T>(&mut self, key: &K, f: F) -> Option<T>
|
pub fn update<F, T>(&mut self, key: &K, f: F) -> Option<T>
|
||||||
|
|
|
@ -419,6 +419,10 @@ impl Panel for TerminalPanel {
|
||||||
Some(Icon::Terminal)
|
Some(Icon::Terminal)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn icon_tooltip(&self, _cx: &WindowContext) -> Option<&'static str> {
|
||||||
|
Some("Terminal Panel")
|
||||||
|
}
|
||||||
|
|
||||||
fn toggle_action(&self) -> Box<dyn gpui::Action> {
|
fn toggle_action(&self) -> Box<dyn gpui::Action> {
|
||||||
Box::new(ToggleFocus)
|
Box::new(ToggleFocus)
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,11 +20,11 @@ impl Locator {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn min_ref() -> &'static Self {
|
pub fn min_ref() -> &'static Self {
|
||||||
&*MIN
|
&MIN
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn max_ref() -> &'static Self {
|
pub fn max_ref() -> &'static Self {
|
||||||
&*MAX
|
&MAX
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn assign(&mut self, other: &Self) {
|
pub fn assign(&mut self, other: &Self) {
|
||||||
|
|
|
@ -18,7 +18,7 @@ impl Topic {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn publish(&self, edits: impl Clone + IntoIterator<Item = Edit<usize>>) {
|
pub fn publish(&self, edits: impl Clone + IntoIterator<Item = Edit<usize>>) {
|
||||||
publish(&mut *self.0.lock(), edits);
|
publish(&mut self.0.lock(), edits);
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn publish_mut(&mut self, edits: impl Clone + IntoIterator<Item = Edit<usize>>) {
|
pub fn publish_mut(&mut self, edits: impl Clone + IntoIterator<Item = Edit<usize>>) {
|
||||||
|
|
|
@ -2652,7 +2652,7 @@ impl LineEnding {
|
||||||
max_ix -= 1;
|
max_ix -= 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if let Some(ix) = text[..max_ix].find(&['\n']) {
|
if let Some(ix) = text[..max_ix].find(['\n']) {
|
||||||
if ix > 0 && text.as_bytes()[ix - 1] == b'\r' {
|
if ix > 0 && text.as_bytes()[ix - 1] == b'\r' {
|
||||||
Self::Windows
|
Self::Windows
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -8,7 +8,7 @@ use components::{
|
||||||
};
|
};
|
||||||
use gpui::{
|
use gpui::{
|
||||||
color::Color,
|
color::Color,
|
||||||
elements::{Border, ContainerStyle, ImageStyle, LabelStyle, Shadow, SvgStyle, TooltipStyle},
|
elements::{Border, ContainerStyle, ImageStyle, LabelStyle, SvgStyle, TooltipStyle},
|
||||||
fonts::{HighlightStyle, TextStyle},
|
fonts::{HighlightStyle, TextStyle},
|
||||||
platform, AppContext, AssetSource, MouseState,
|
platform, AppContext, AssetSource, MouseState,
|
||||||
};
|
};
|
||||||
|
@ -1276,15 +1276,9 @@ pub struct WelcomeStyle {
|
||||||
pub struct ColorScheme {
|
pub struct ColorScheme {
|
||||||
pub name: String,
|
pub name: String,
|
||||||
pub is_light: bool,
|
pub is_light: bool,
|
||||||
pub ramps: RampSet,
|
|
||||||
pub lowest: Layer,
|
pub lowest: Layer,
|
||||||
pub middle: Layer,
|
pub middle: Layer,
|
||||||
pub highest: Layer,
|
pub highest: Layer,
|
||||||
|
|
||||||
pub popover_shadow: Shadow,
|
|
||||||
pub modal_shadow: Shadow,
|
|
||||||
|
|
||||||
pub players: Vec<Player>,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone, Deserialize, Default, JsonSchema)]
|
#[derive(Clone, Deserialize, Default, JsonSchema)]
|
||||||
|
|
|
@ -13,91 +13,82 @@ impl ThemeColors {
|
||||||
let system = SystemColors::default();
|
let system = SystemColors::default();
|
||||||
|
|
||||||
Self {
|
Self {
|
||||||
background: neutral().light().step_1(),
|
|
||||||
border: neutral().light().step_6(),
|
border: neutral().light().step_6(),
|
||||||
border_disabled: neutral().light().step_3(),
|
border_variant: neutral().light().step_5(),
|
||||||
border_focused: blue().light().step_5(),
|
border_focused: blue().light().step_5(),
|
||||||
border_selected: blue().light().step_5(),
|
border_selected: blue().light().step_5(),
|
||||||
border_transparent: system.transparent,
|
border_transparent: system.transparent,
|
||||||
border_variant: neutral().light().step_5(),
|
border_disabled: neutral().light().step_3(),
|
||||||
code_block_background: gpui::transparent_black(),
|
|
||||||
code_block_border: gpui::transparent_black(),
|
|
||||||
drop_target_background: blue().light_alpha().step_2(),
|
|
||||||
editor_active_line_background: neutral().light_alpha().step_3(),
|
|
||||||
editor_active_line_number: neutral().light().step_11(),
|
|
||||||
editor_active_wrap_guide: neutral().light_alpha().step_8(), // todo!("pick the right colors")
|
|
||||||
editor_foreground: neutral().light().step_12(),
|
|
||||||
editor_background: neutral().light().step_1(),
|
|
||||||
editor_document_highlight_read_background: neutral().light_alpha().step_3(), // todo!("pick the right colors")
|
|
||||||
editor_document_highlight_write_background: neutral().light_alpha().step_4(), // todo!("pick the right colors")
|
|
||||||
editor_gutter_background: neutral().light().step_1(), // todo!("pick the right colors")
|
|
||||||
editor_highlighted_line_background: neutral().light_alpha().step_3(),
|
|
||||||
editor_invisible: neutral().light().step_10(),
|
|
||||||
editor_line_number: neutral().light().step_10(),
|
|
||||||
editor_subheader_background: neutral().light().step_2(),
|
|
||||||
editor_wrap_guide: neutral().light_alpha().step_7(),
|
|
||||||
element_active: neutral().light_alpha().step_5(),
|
|
||||||
element_background: neutral().light().step_3(),
|
|
||||||
element_disabled: neutral().light_alpha().step_3(),
|
|
||||||
element_hover: neutral().light_alpha().step_4(),
|
|
||||||
element_selected: neutral().light_alpha().step_5(),
|
|
||||||
elevated_surface_background: neutral().light().step_2(),
|
elevated_surface_background: neutral().light().step_2(),
|
||||||
emphasis: neutral().light().step_12(),
|
|
||||||
ghost_element_active: neutral().light_alpha().step_4(),
|
|
||||||
ghost_element_background: system.transparent,
|
|
||||||
ghost_element_disabled: neutral().light_alpha().step_3(),
|
|
||||||
ghost_element_hover: neutral().light_alpha().step_3(),
|
|
||||||
ghost_element_selected: neutral().light_alpha().step_5(),
|
|
||||||
headline: blue().light().step_9(),
|
|
||||||
icon: neutral().light().step_11(),
|
|
||||||
icon_accent: blue().light().step_11(),
|
|
||||||
icon_disabled: neutral().light().step_9(),
|
|
||||||
icon_muted: neutral().light().step_10(),
|
|
||||||
icon_placeholder: neutral().light().step_10(),
|
|
||||||
inline_code_background: gpui::transparent_black(),
|
|
||||||
inline_code_border: gpui::transparent_black(),
|
|
||||||
link_text: orange().light().step_9(),
|
|
||||||
link_text_hover: orange().light().step_10(),
|
|
||||||
link_uri: green().light().step_9(),
|
|
||||||
pane_focused_border: blue().light().step_5(),
|
|
||||||
panel_background: neutral().light().step_2(),
|
|
||||||
panel_focused_border: blue().light().step_5(),
|
|
||||||
paragraph: neutral().light().step_12(),
|
|
||||||
scrollbar_thumb_background: neutral().light_alpha().step_3(),
|
|
||||||
scrollbar_thumb_border: gpui::transparent_black(),
|
|
||||||
scrollbar_thumb_hover_background: neutral().light_alpha().step_4(),
|
|
||||||
scrollbar_track_background: gpui::transparent_black(),
|
|
||||||
scrollbar_track_border: neutral().light().step_5(),
|
|
||||||
search_match_background: neutral().light().step_2(), // todo!(this was inserted by Mikayla)
|
|
||||||
status_bar_background: neutral().light().step_2(),
|
|
||||||
surface_background: neutral().light().step_2(),
|
surface_background: neutral().light().step_2(),
|
||||||
tab_active_background: neutral().light().step_1(),
|
background: neutral().light().step_1(),
|
||||||
tab_bar_background: neutral().light().step_2(),
|
element_background: neutral().light().step_3(),
|
||||||
tab_inactive_background: neutral().light().step_2(),
|
element_hover: neutral().light_alpha().step_4(), // todo!("pick the right colors")
|
||||||
terminal_ansi_black: black().light().step_12(),
|
element_active: neutral().light_alpha().step_5(),
|
||||||
terminal_ansi_blue: blue().light().step_11(),
|
element_selected: neutral().light_alpha().step_5(),
|
||||||
terminal_ansi_bright_black: black().light().step_11(),
|
element_disabled: neutral().light_alpha().step_3(), // todo!("pick the right colors")
|
||||||
terminal_ansi_bright_blue: blue().light().step_10(),
|
drop_target_background: blue().light_alpha().step_2(), // todo!("pick the right colors")
|
||||||
terminal_ansi_bright_cyan: cyan().light().step_10(),
|
ghost_element_background: system.transparent, // todo!("pick the right colors")
|
||||||
terminal_ansi_bright_green: green().light().step_10(),
|
ghost_element_hover: neutral().light_alpha().step_3(),
|
||||||
terminal_ansi_bright_magenta: violet().light().step_10(),
|
ghost_element_active: neutral().light_alpha().step_4(),
|
||||||
terminal_ansi_bright_red: red().light().step_10(),
|
ghost_element_selected: neutral().light_alpha().step_5(),
|
||||||
terminal_ansi_bright_white: neutral().light().step_11(),
|
ghost_element_disabled: neutral().light_alpha().step_3(),
|
||||||
terminal_ansi_bright_yellow: yellow().light().step_10(),
|
|
||||||
terminal_ansi_cyan: cyan().light().step_11(),
|
|
||||||
terminal_ansi_green: green().light().step_11(),
|
|
||||||
terminal_ansi_magenta: violet().light().step_11(),
|
|
||||||
terminal_ansi_red: red().light().step_11(),
|
|
||||||
terminal_ansi_white: neutral().light().step_12(),
|
|
||||||
terminal_ansi_yellow: yellow().light().step_11(),
|
|
||||||
terminal_background: neutral().light().step_1(),
|
|
||||||
text: neutral().light().step_12(),
|
text: neutral().light().step_12(),
|
||||||
text_accent: blue().light().step_11(),
|
|
||||||
text_disabled: neutral().light().step_9(),
|
|
||||||
text_muted: neutral().light().step_10(),
|
text_muted: neutral().light().step_10(),
|
||||||
text_placeholder: neutral().light().step_10(),
|
text_placeholder: neutral().light().step_10(),
|
||||||
|
text_disabled: neutral().light().step_9(),
|
||||||
|
text_accent: blue().light().step_11(),
|
||||||
|
icon: neutral().light().step_11(),
|
||||||
|
icon_muted: neutral().light().step_10(),
|
||||||
|
icon_disabled: neutral().light().step_9(),
|
||||||
|
icon_placeholder: neutral().light().step_10(),
|
||||||
|
icon_accent: blue().light().step_11(),
|
||||||
|
status_bar_background: neutral().light().step_2(),
|
||||||
title_bar_background: neutral().light().step_2(),
|
title_bar_background: neutral().light().step_2(),
|
||||||
toolbar_background: neutral().light().step_1(),
|
toolbar_background: neutral().light().step_1(),
|
||||||
|
tab_bar_background: neutral().light().step_2(),
|
||||||
|
tab_inactive_background: neutral().light().step_2(),
|
||||||
|
tab_active_background: neutral().light().step_1(),
|
||||||
|
search_match_background: neutral().light().step_2(),
|
||||||
|
panel_background: neutral().light().step_2(),
|
||||||
|
panel_focused_border: blue().light().step_5(),
|
||||||
|
pane_focused_border: blue().light().step_5(),
|
||||||
|
scrollbar_thumb_background: neutral().light_alpha().step_3(),
|
||||||
|
scrollbar_thumb_hover_background: neutral().light_alpha().step_4(),
|
||||||
|
scrollbar_thumb_border: gpui::transparent_black(),
|
||||||
|
scrollbar_track_background: gpui::transparent_black(),
|
||||||
|
scrollbar_track_border: neutral().light().step_5(),
|
||||||
|
editor_foreground: neutral().light().step_12(),
|
||||||
|
editor_background: neutral().light().step_1(), // todo!(this was inserted by Mikayla)
|
||||||
|
editor_gutter_background: neutral().light().step_1(),
|
||||||
|
editor_subheader_background: neutral().light().step_2(),
|
||||||
|
editor_active_line_background: neutral().light_alpha().step_3(),
|
||||||
|
editor_highlighted_line_background: neutral().light_alpha().step_3(),
|
||||||
|
editor_line_number: neutral().light().step_10(),
|
||||||
|
editor_active_line_number: neutral().light().step_11(),
|
||||||
|
editor_invisible: neutral().light().step_10(),
|
||||||
|
editor_wrap_guide: neutral().light_alpha().step_7(),
|
||||||
|
editor_active_wrap_guide: neutral().light_alpha().step_8(),
|
||||||
|
editor_document_highlight_read_background: neutral().light_alpha().step_3(),
|
||||||
|
editor_document_highlight_write_background: neutral().light_alpha().step_4(),
|
||||||
|
terminal_background: neutral().light().step_1(),
|
||||||
|
terminal_ansi_bright_black: black().light().step_11(),
|
||||||
|
terminal_ansi_bright_red: red().light().step_10(),
|
||||||
|
terminal_ansi_bright_green: green().light().step_10(),
|
||||||
|
terminal_ansi_bright_yellow: yellow().light().step_10(),
|
||||||
|
terminal_ansi_bright_blue: blue().light().step_10(),
|
||||||
|
terminal_ansi_bright_magenta: violet().light().step_10(),
|
||||||
|
terminal_ansi_bright_cyan: cyan().light().step_10(),
|
||||||
|
terminal_ansi_bright_white: neutral().light().step_11(),
|
||||||
|
terminal_ansi_black: black().light().step_12(),
|
||||||
|
terminal_ansi_red: red().light().step_11(),
|
||||||
|
terminal_ansi_green: green().light().step_11(),
|
||||||
|
terminal_ansi_yellow: yellow().light().step_11(),
|
||||||
|
terminal_ansi_blue: blue().light().step_11(),
|
||||||
|
terminal_ansi_magenta: violet().light().step_11(),
|
||||||
|
terminal_ansi_cyan: cyan().light().step_11(),
|
||||||
|
terminal_ansi_white: neutral().light().step_12(),
|
||||||
|
link_text_hover: orange().light().step_10(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -105,91 +96,82 @@ impl ThemeColors {
|
||||||
let system = SystemColors::default();
|
let system = SystemColors::default();
|
||||||
|
|
||||||
Self {
|
Self {
|
||||||
background: neutral().dark().step_1(),
|
|
||||||
border: neutral().dark().step_6(),
|
border: neutral().dark().step_6(),
|
||||||
border_disabled: neutral().dark().step_3(),
|
border_variant: neutral().dark().step_5(),
|
||||||
border_focused: blue().dark().step_5(),
|
border_focused: blue().dark().step_5(),
|
||||||
border_selected: blue().dark().step_5(),
|
border_selected: blue().dark().step_5(),
|
||||||
border_transparent: system.transparent,
|
border_transparent: system.transparent,
|
||||||
border_variant: neutral().dark().step_5(),
|
border_disabled: neutral().dark().step_3(),
|
||||||
code_block_background: gpui::transparent_black(),
|
|
||||||
code_block_border: gpui::transparent_black(),
|
|
||||||
drop_target_background: blue().dark_alpha().step_2(),
|
|
||||||
editor_active_line_background: neutral().dark_alpha().step_3(),
|
|
||||||
editor_active_line_number: neutral().dark_alpha().step_12(),
|
|
||||||
editor_active_wrap_guide: neutral().dark_alpha().step_4(), // todo!("pick the right colors")
|
|
||||||
editor_background: neutral().dark().step_1(),
|
|
||||||
editor_document_highlight_read_background: neutral().dark_alpha().step_4(), // todo!("pick the right colors")
|
|
||||||
editor_document_highlight_write_background: neutral().dark_alpha().step_4(), // todo!("pick the right colors")
|
|
||||||
editor_foreground: neutral().dark().step_12(),
|
|
||||||
editor_gutter_background: neutral().dark().step_1(),
|
|
||||||
editor_highlighted_line_background: neutral().dark_alpha().step_4(), // todo!("pick the right colors")
|
|
||||||
editor_invisible: neutral().dark_alpha().step_4(), // todo!("pick the right colors")
|
|
||||||
editor_line_number: neutral().dark_alpha().step_10(),
|
|
||||||
editor_subheader_background: neutral().dark().step_3(),
|
|
||||||
editor_wrap_guide: neutral().dark_alpha().step_4(), // todo!("pick the right colors")
|
|
||||||
element_active: neutral().dark_alpha().step_5(),
|
|
||||||
element_background: neutral().dark().step_3(),
|
|
||||||
element_disabled: neutral().dark_alpha().step_3(),
|
|
||||||
element_hover: neutral().dark_alpha().step_4(),
|
|
||||||
element_selected: neutral().dark_alpha().step_5(),
|
|
||||||
elevated_surface_background: neutral().dark().step_2(),
|
elevated_surface_background: neutral().dark().step_2(),
|
||||||
emphasis: neutral().dark().step_12(),
|
|
||||||
ghost_element_active: neutral().dark_alpha().step_5(),
|
|
||||||
ghost_element_background: system.transparent,
|
|
||||||
ghost_element_disabled: neutral().dark_alpha().step_3(),
|
|
||||||
ghost_element_hover: neutral().dark_alpha().step_4(),
|
|
||||||
ghost_element_selected: neutral().dark_alpha().step_5(),
|
|
||||||
headline: blue().dark().step_9(),
|
|
||||||
icon: neutral().dark().step_11(),
|
|
||||||
icon_accent: blue().dark().step_11(),
|
|
||||||
icon_disabled: neutral().dark().step_9(),
|
|
||||||
icon_muted: neutral().dark().step_10(),
|
|
||||||
icon_placeholder: neutral().dark().step_10(),
|
|
||||||
inline_code_background: gpui::transparent_black(),
|
|
||||||
inline_code_border: gpui::transparent_black(),
|
|
||||||
link_text: orange().dark().step_9(),
|
|
||||||
link_text_hover: orange().dark().step_10(),
|
|
||||||
link_uri: green().dark().step_9(),
|
|
||||||
pane_focused_border: blue().dark().step_5(),
|
|
||||||
panel_background: neutral().dark().step_2(),
|
|
||||||
panel_focused_border: blue().dark().step_5(),
|
|
||||||
paragraph: neutral().dark().step_12(),
|
|
||||||
scrollbar_thumb_background: neutral().dark_alpha().step_3(),
|
|
||||||
scrollbar_thumb_border: gpui::transparent_black(),
|
|
||||||
scrollbar_thumb_hover_background: neutral().dark_alpha().step_4(),
|
|
||||||
scrollbar_track_background: gpui::transparent_black(),
|
|
||||||
scrollbar_track_border: neutral().dark().step_5(),
|
|
||||||
search_match_background: neutral().dark().step_2(), // todo!(this was inserted by Mikayla)
|
|
||||||
status_bar_background: neutral().dark().step_2(),
|
|
||||||
surface_background: neutral().dark().step_2(),
|
surface_background: neutral().dark().step_2(),
|
||||||
tab_active_background: neutral().dark().step_1(),
|
background: neutral().dark().step_1(),
|
||||||
tab_bar_background: neutral().dark().step_2(),
|
element_background: neutral().dark().step_3(),
|
||||||
tab_inactive_background: neutral().dark().step_2(),
|
element_hover: neutral().dark_alpha().step_4(), // todo!("pick the right colors")
|
||||||
terminal_ansi_black: black().dark().step_12(),
|
element_active: neutral().dark_alpha().step_5(),
|
||||||
terminal_ansi_blue: blue().dark().step_11(),
|
element_selected: neutral().dark_alpha().step_5(), // todo!("pick the right colors")
|
||||||
terminal_ansi_bright_black: black().dark().step_11(),
|
element_disabled: neutral().dark_alpha().step_3(), // todo!("pick the right colors")
|
||||||
terminal_ansi_bright_blue: blue().dark().step_10(),
|
drop_target_background: blue().dark_alpha().step_2(),
|
||||||
terminal_ansi_bright_cyan: cyan().dark().step_10(),
|
ghost_element_background: system.transparent,
|
||||||
terminal_ansi_bright_green: green().dark().step_10(),
|
ghost_element_hover: neutral().dark_alpha().step_4(), // todo!("pick the right colors")
|
||||||
terminal_ansi_bright_magenta: violet().dark().step_10(),
|
ghost_element_active: neutral().dark_alpha().step_5(), // todo!("pick the right colors")
|
||||||
terminal_ansi_bright_red: red().dark().step_10(),
|
ghost_element_selected: neutral().dark_alpha().step_5(),
|
||||||
terminal_ansi_bright_white: neutral().dark().step_11(),
|
ghost_element_disabled: neutral().dark_alpha().step_3(),
|
||||||
terminal_ansi_bright_yellow: yellow().dark().step_10(),
|
text: neutral().dark().step_12(), // todo!("pick the right colors")
|
||||||
terminal_ansi_cyan: cyan().dark().step_11(),
|
|
||||||
terminal_ansi_green: green().dark().step_11(),
|
|
||||||
terminal_ansi_magenta: violet().dark().step_11(),
|
|
||||||
terminal_ansi_red: red().dark().step_11(),
|
|
||||||
terminal_ansi_white: neutral().dark().step_12(),
|
|
||||||
terminal_ansi_yellow: yellow().dark().step_11(),
|
|
||||||
terminal_background: neutral().dark().step_1(),
|
|
||||||
text: neutral().dark().step_12(),
|
|
||||||
text_accent: blue().dark().step_11(),
|
|
||||||
text_disabled: neutral().dark().step_9(),
|
|
||||||
text_muted: neutral().dark().step_11(),
|
text_muted: neutral().dark().step_11(),
|
||||||
text_placeholder: neutral().dark().step_10(),
|
text_placeholder: neutral().dark().step_10(),
|
||||||
|
text_disabled: neutral().dark().step_9(),
|
||||||
|
text_accent: blue().dark().step_11(),
|
||||||
|
icon: neutral().dark().step_11(),
|
||||||
|
icon_muted: neutral().dark().step_10(),
|
||||||
|
icon_disabled: neutral().dark().step_9(),
|
||||||
|
icon_placeholder: neutral().dark().step_10(),
|
||||||
|
icon_accent: blue().dark().step_11(),
|
||||||
|
status_bar_background: neutral().dark().step_2(),
|
||||||
title_bar_background: neutral().dark().step_2(),
|
title_bar_background: neutral().dark().step_2(),
|
||||||
toolbar_background: neutral().dark().step_1(),
|
toolbar_background: neutral().dark().step_1(),
|
||||||
|
tab_bar_background: neutral().dark().step_2(),
|
||||||
|
tab_inactive_background: neutral().dark().step_2(),
|
||||||
|
tab_active_background: neutral().dark().step_1(),
|
||||||
|
search_match_background: neutral().dark().step_2(),
|
||||||
|
panel_background: neutral().dark().step_2(),
|
||||||
|
panel_focused_border: blue().dark().step_5(),
|
||||||
|
pane_focused_border: blue().dark().step_5(),
|
||||||
|
scrollbar_thumb_background: neutral().dark_alpha().step_3(),
|
||||||
|
scrollbar_thumb_hover_background: neutral().dark_alpha().step_4(),
|
||||||
|
scrollbar_thumb_border: gpui::transparent_black(),
|
||||||
|
scrollbar_track_background: gpui::transparent_black(),
|
||||||
|
scrollbar_track_border: neutral().dark().step_5(), // todo!(this was inserted by Mikayla)
|
||||||
|
editor_foreground: neutral().dark().step_12(),
|
||||||
|
editor_background: neutral().dark().step_1(),
|
||||||
|
editor_gutter_background: neutral().dark().step_1(),
|
||||||
|
editor_subheader_background: neutral().dark().step_3(),
|
||||||
|
editor_active_line_background: neutral().dark_alpha().step_3(),
|
||||||
|
editor_highlighted_line_background: neutral().dark_alpha().step_4(),
|
||||||
|
editor_line_number: neutral().dark_alpha().step_10(),
|
||||||
|
editor_active_line_number: neutral().dark_alpha().step_12(),
|
||||||
|
editor_invisible: neutral().dark_alpha().step_4(),
|
||||||
|
editor_wrap_guide: neutral().dark_alpha().step_4(),
|
||||||
|
editor_active_wrap_guide: neutral().dark_alpha().step_4(),
|
||||||
|
editor_document_highlight_read_background: neutral().dark_alpha().step_4(),
|
||||||
|
editor_document_highlight_write_background: neutral().dark_alpha().step_4(),
|
||||||
|
terminal_background: neutral().dark().step_1(),
|
||||||
|
terminal_ansi_bright_black: black().dark().step_11(),
|
||||||
|
terminal_ansi_bright_red: red().dark().step_10(),
|
||||||
|
terminal_ansi_bright_green: green().dark().step_10(),
|
||||||
|
terminal_ansi_bright_yellow: yellow().dark().step_10(),
|
||||||
|
terminal_ansi_bright_blue: blue().dark().step_10(),
|
||||||
|
terminal_ansi_bright_magenta: violet().dark().step_10(),
|
||||||
|
terminal_ansi_bright_cyan: cyan().dark().step_10(),
|
||||||
|
terminal_ansi_bright_white: neutral().dark().step_11(),
|
||||||
|
terminal_ansi_black: black().dark().step_12(),
|
||||||
|
terminal_ansi_red: red().dark().step_11(),
|
||||||
|
terminal_ansi_green: green().dark().step_11(),
|
||||||
|
terminal_ansi_yellow: yellow().dark().step_11(),
|
||||||
|
terminal_ansi_blue: blue().dark().step_11(),
|
||||||
|
terminal_ansi_magenta: violet().dark().step_11(),
|
||||||
|
terminal_ansi_cyan: cyan().dark().step_11(),
|
||||||
|
terminal_ansi_white: neutral().dark().step_12(),
|
||||||
|
link_text_hover: orange().dark().step_10(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,7 +23,6 @@ pub(crate) fn one_dark() -> Theme {
|
||||||
let elevated_surface = hsla(225. / 360., 12. / 100., 17. / 100., 1.);
|
let elevated_surface = hsla(225. / 360., 12. / 100., 17. / 100., 1.);
|
||||||
|
|
||||||
let blue = hsla(207.8 / 360., 81. / 100., 66. / 100., 1.0);
|
let blue = hsla(207.8 / 360., 81. / 100., 66. / 100., 1.0);
|
||||||
let light_gray = hsla(218.8 / 360., 14. / 100., 71. / 100., 1.0);
|
|
||||||
let gray = hsla(218.8 / 360., 10. / 100., 40. / 100., 1.0);
|
let gray = hsla(218.8 / 360., 10. / 100., 40. / 100., 1.0);
|
||||||
let green = hsla(95. / 360., 38. / 100., 62. / 100., 1.0);
|
let green = hsla(95. / 360., 38. / 100., 62. / 100., 1.0);
|
||||||
let orange = hsla(29. / 360., 54. / 100., 61. / 100., 1.0);
|
let orange = hsla(29. / 360., 54. / 100., 61. / 100., 1.0);
|
||||||
|
@ -123,32 +122,51 @@ pub(crate) fn one_dark() -> Theme {
|
||||||
scrollbar_track_background: gpui::transparent_black(),
|
scrollbar_track_background: gpui::transparent_black(),
|
||||||
scrollbar_track_border: hsla(228. / 360., 8. / 100., 25. / 100., 1.),
|
scrollbar_track_border: hsla(228. / 360., 8. / 100., 25. / 100., 1.),
|
||||||
editor_foreground: hsla(218. / 360., 14. / 100., 71. / 100., 1.),
|
editor_foreground: hsla(218. / 360., 14. / 100., 71. / 100., 1.),
|
||||||
headline: hsla(355. / 360., 65. / 100., 65. / 100., 1.),
|
|
||||||
paragraph: light_gray,
|
|
||||||
link_text: blue,
|
|
||||||
link_text_hover: blue,
|
link_text_hover: blue,
|
||||||
link_uri: teal,
|
|
||||||
inline_code_background: gpui::transparent_black(),
|
|
||||||
inline_code_border: gpui::transparent_black(),
|
|
||||||
code_block_background: gpui::transparent_black(),
|
|
||||||
code_block_border: gpui::transparent_black(),
|
|
||||||
emphasis: orange,
|
|
||||||
},
|
},
|
||||||
status: StatusColors {
|
status: StatusColors {
|
||||||
conflict: yellow,
|
conflict: yellow,
|
||||||
|
conflict_background: yellow,
|
||||||
|
conflict_border: yellow,
|
||||||
created: green,
|
created: green,
|
||||||
|
created_background: green,
|
||||||
|
created_border: green,
|
||||||
deleted: red,
|
deleted: red,
|
||||||
|
deleted_background: red,
|
||||||
|
deleted_border: red,
|
||||||
error: red,
|
error: red,
|
||||||
|
error_background: red,
|
||||||
|
error_border: red,
|
||||||
hidden: gray,
|
hidden: gray,
|
||||||
|
hidden_background: gray,
|
||||||
|
hidden_border: gray,
|
||||||
hint: blue,
|
hint: blue,
|
||||||
|
hint_background: blue,
|
||||||
|
hint_border: blue,
|
||||||
ignored: gray,
|
ignored: gray,
|
||||||
|
ignored_background: gray,
|
||||||
|
ignored_border: gray,
|
||||||
info: blue,
|
info: blue,
|
||||||
|
info_background: blue,
|
||||||
|
info_border: blue,
|
||||||
modified: yellow,
|
modified: yellow,
|
||||||
|
modified_background: yellow,
|
||||||
|
modified_border: yellow,
|
||||||
predictive: gray,
|
predictive: gray,
|
||||||
|
predictive_background: gray,
|
||||||
|
predictive_border: gray,
|
||||||
renamed: blue,
|
renamed: blue,
|
||||||
|
renamed_background: blue,
|
||||||
|
renamed_border: blue,
|
||||||
success: green,
|
success: green,
|
||||||
|
success_background: green,
|
||||||
|
success_border: green,
|
||||||
unreachable: gray,
|
unreachable: gray,
|
||||||
|
unreachable_background: gray,
|
||||||
|
unreachable_border: gray,
|
||||||
warning: yellow,
|
warning: yellow,
|
||||||
|
warning_background: yellow,
|
||||||
|
warning_border: yellow,
|
||||||
},
|
},
|
||||||
player: PlayerColors::dark(),
|
player: PlayerColors::dark(),
|
||||||
syntax: Arc::new(SyntaxTheme {
|
syntax: Arc::new(SyntaxTheme {
|
||||||
|
|
|
@ -206,16 +206,7 @@ pub struct ThemeColors {
|
||||||
// ===
|
// ===
|
||||||
// UI/Rich Text
|
// UI/Rich Text
|
||||||
// ===
|
// ===
|
||||||
pub headline: Hsla,
|
|
||||||
pub paragraph: Hsla,
|
|
||||||
pub link_text: Hsla,
|
|
||||||
pub link_text_hover: Hsla,
|
pub link_text_hover: Hsla,
|
||||||
pub link_uri: Hsla,
|
|
||||||
pub inline_code_background: Hsla,
|
|
||||||
pub inline_code_border: Hsla,
|
|
||||||
pub code_block_background: Hsla,
|
|
||||||
pub code_block_border: Hsla,
|
|
||||||
pub emphasis: Hsla,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Refineable, Clone)]
|
#[derive(Refineable, Clone)]
|
||||||
|
|
|
@ -9,45 +9,73 @@ pub struct StatusColors {
|
||||||
/// Indicates some kind of conflict, like a file changed on disk while it was open, or
|
/// Indicates some kind of conflict, like a file changed on disk while it was open, or
|
||||||
/// merge conflicts in a Git repository.
|
/// merge conflicts in a Git repository.
|
||||||
pub conflict: Hsla,
|
pub conflict: Hsla,
|
||||||
|
pub conflict_background: Hsla,
|
||||||
|
pub conflict_border: Hsla,
|
||||||
|
|
||||||
/// Indicates something new, like a new file added to a Git repository.
|
/// Indicates something new, like a new file added to a Git repository.
|
||||||
pub created: Hsla,
|
pub created: Hsla,
|
||||||
|
pub created_background: Hsla,
|
||||||
|
pub created_border: Hsla,
|
||||||
|
|
||||||
/// Indicates that something no longer exists, like a deleted file.
|
/// Indicates that something no longer exists, like a deleted file.
|
||||||
pub deleted: Hsla,
|
pub deleted: Hsla,
|
||||||
|
pub deleted_background: Hsla,
|
||||||
|
pub deleted_border: Hsla,
|
||||||
|
|
||||||
/// Indicates a system error, a failed operation or a diagnostic error.
|
/// Indicates a system error, a failed operation or a diagnostic error.
|
||||||
pub error: Hsla,
|
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.
|
/// Represents a hidden status, such as a file being hidden in a file tree.
|
||||||
pub hidden: Hsla,
|
pub hidden: Hsla,
|
||||||
|
pub hidden_background: Hsla,
|
||||||
|
pub hidden_border: Hsla,
|
||||||
|
|
||||||
/// Indicates a hint or some kind of additional information.
|
/// Indicates a hint or some kind of additional information.
|
||||||
pub hint: Hsla,
|
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.
|
/// Indicates that something is deliberately ignored, such as a file or operation ignored by Git.
|
||||||
pub ignored: Hsla,
|
pub ignored: Hsla,
|
||||||
|
pub ignored_background: Hsla,
|
||||||
|
pub ignored_border: Hsla,
|
||||||
|
|
||||||
/// Represents informational status updates or messages.
|
/// Represents informational status updates or messages.
|
||||||
pub info: Hsla,
|
pub info: Hsla,
|
||||||
|
pub info_background: Hsla,
|
||||||
|
pub info_border: Hsla,
|
||||||
|
|
||||||
/// Indicates a changed or altered status, like a file that has been edited.
|
/// Indicates a changed or altered status, like a file that has been edited.
|
||||||
pub modified: Hsla,
|
pub modified: Hsla,
|
||||||
|
pub modified_background: Hsla,
|
||||||
|
pub modified_border: Hsla,
|
||||||
|
|
||||||
/// Indicates something that is predicted, like automatic code completion, or generated code.
|
/// Indicates something that is predicted, like automatic code completion, or generated code.
|
||||||
pub predictive: Hsla,
|
pub predictive: Hsla,
|
||||||
|
pub predictive_background: Hsla,
|
||||||
|
pub predictive_border: Hsla,
|
||||||
|
|
||||||
/// Represents a renamed status, such as a file that has been renamed.
|
/// Represents a renamed status, such as a file that has been renamed.
|
||||||
pub renamed: Hsla,
|
pub renamed: Hsla,
|
||||||
|
pub renamed_background: Hsla,
|
||||||
|
pub renamed_border: Hsla,
|
||||||
|
|
||||||
/// Indicates a successful operation or task completion.
|
/// Indicates a successful operation or task completion.
|
||||||
pub success: Hsla,
|
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.
|
/// Indicates some kind of unreachable status, like a block of code that can never be reached.
|
||||||
pub unreachable: Hsla,
|
pub unreachable: Hsla,
|
||||||
|
pub unreachable_background: Hsla,
|
||||||
|
pub unreachable_border: Hsla,
|
||||||
|
|
||||||
/// Represents a warning status, like an operation that is about to fail.
|
/// Represents a warning status, like an operation that is about to fail.
|
||||||
pub warning: Hsla,
|
pub warning: Hsla,
|
||||||
|
pub warning_background: Hsla,
|
||||||
|
pub warning_border: Hsla,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Default for StatusColors {
|
impl Default for StatusColors {
|
||||||
|
@ -78,38 +106,94 @@ impl StatusColors {
|
||||||
pub fn dark() -> Self {
|
pub fn dark() -> Self {
|
||||||
Self {
|
Self {
|
||||||
conflict: red().dark().step_9(),
|
conflict: red().dark().step_9(),
|
||||||
|
conflict_background: red().dark().step_9(),
|
||||||
|
conflict_border: red().dark().step_9(),
|
||||||
created: grass().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: red().dark().step_9(),
|
||||||
|
deleted_background: red().dark().step_9(),
|
||||||
|
deleted_border: red().dark().step_9(),
|
||||||
error: 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: neutral().dark().step_9(),
|
||||||
|
hidden_background: neutral().dark().step_9(),
|
||||||
|
hidden_border: neutral().dark().step_9(),
|
||||||
hint: blue().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: neutral().dark().step_9(),
|
||||||
|
ignored_background: neutral().dark().step_9(),
|
||||||
|
ignored_border: neutral().dark().step_9(),
|
||||||
info: blue().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: yellow().dark().step_9(),
|
||||||
|
modified_background: yellow().dark().step_9(),
|
||||||
|
modified_border: yellow().dark().step_9(),
|
||||||
predictive: neutral().dark_alpha().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: blue().dark().step_9(),
|
||||||
|
renamed_background: blue().dark().step_9(),
|
||||||
|
renamed_border: blue().dark().step_9(),
|
||||||
success: grass().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: neutral().dark().step_10(),
|
||||||
|
unreachable_background: neutral().dark().step_10(),
|
||||||
|
unreachable_border: neutral().dark().step_10(),
|
||||||
warning: yellow().dark().step_9(),
|
warning: yellow().dark().step_9(),
|
||||||
|
warning_background: yellow().dark().step_9(),
|
||||||
|
warning_border: yellow().dark().step_9(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn light() -> Self {
|
pub fn light() -> Self {
|
||||||
Self {
|
Self {
|
||||||
conflict: red().light().step_9(),
|
conflict: red().light().step_9(),
|
||||||
|
conflict_background: red().light().step_9(),
|
||||||
|
conflict_border: red().light().step_9(),
|
||||||
created: grass().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: red().light().step_9(),
|
||||||
|
deleted_background: red().light().step_9(),
|
||||||
|
deleted_border: red().light().step_9(),
|
||||||
error: 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: neutral().light().step_9(),
|
||||||
|
hidden_background: neutral().light().step_9(),
|
||||||
|
hidden_border: neutral().light().step_9(),
|
||||||
hint: blue().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: neutral().light().step_9(),
|
||||||
|
ignored_background: neutral().light().step_9(),
|
||||||
|
ignored_border: neutral().light().step_9(),
|
||||||
info: blue().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: yellow().light().step_9(),
|
||||||
|
modified_background: yellow().light().step_9(),
|
||||||
|
modified_border: yellow().light().step_9(),
|
||||||
predictive: neutral().light_alpha().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: blue().light().step_9(),
|
||||||
|
renamed_background: blue().light().step_9(),
|
||||||
|
renamed_border: blue().light().step_9(),
|
||||||
success: grass().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: neutral().light().step_10(),
|
||||||
|
unreachable_background: neutral().light().step_10(),
|
||||||
|
unreachable_border: neutral().light().step_10(),
|
||||||
warning: yellow().light().step_9(),
|
warning: yellow().light().step_9(),
|
||||||
|
warning_background: yellow().light().step_9(),
|
||||||
|
warning_border: yellow().light().step_9(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -134,18 +134,6 @@ impl Theme {
|
||||||
self.syntax().color(name)
|
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.
|
/// Returns the [`Appearance`] for the theme.
|
||||||
#[inline(always)]
|
#[inline(always)]
|
||||||
pub fn appearance(&self) -> Appearance {
|
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 {
|
pub fn color_alpha(color: Hsla, alpha: f32) -> Hsla {
|
||||||
let mut color = color;
|
let mut color = color;
|
||||||
color.a = alpha;
|
color.a = alpha;
|
||||||
|
|
|
@ -19,36 +19,61 @@ pub fn andromeda() -> UserThemeFamily {
|
||||||
appearance: Appearance::Dark,
|
appearance: Appearance::Dark,
|
||||||
styles: UserThemeStylesRefinement {
|
styles: UserThemeStylesRefinement {
|
||||||
colors: ThemeColorsRefinement {
|
colors: ThemeColorsRefinement {
|
||||||
border: Some(rgba(0x252931ff).into()),
|
border: Some(rgba(0x2b2f39ff).into()),
|
||||||
border_variant: Some(rgba(0x21232aff).into()),
|
border_variant: Some(rgba(0x2b2f39ff).into()),
|
||||||
|
border_focused: Some(rgba(0x183a34ff).into()),
|
||||||
|
border_selected: Some(rgba(0x183a34ff).into()),
|
||||||
|
border_transparent: Some(rgba(0x00000000).into()),
|
||||||
|
border_disabled: Some(rgba(0x292d37ff).into()),
|
||||||
elevated_surface_background: Some(rgba(0x21242bff).into()),
|
elevated_surface_background: Some(rgba(0x21242bff).into()),
|
||||||
|
surface_background: Some(rgba(0x21242bff).into()),
|
||||||
background: Some(rgba(0x262a33ff).into()),
|
background: Some(rgba(0x262a33ff).into()),
|
||||||
panel_background: Some(rgba(0x21242bff).into()),
|
panel_background: Some(rgba(0x21242bff).into()),
|
||||||
element_hover: Some(rgba(0x2b2f3980).into()),
|
element_background: Some(rgba(0x21242bff).into()),
|
||||||
element_selected: Some(rgba(0x383b4580).into()),
|
element_hover: Some(rgba(0x252931ff).into()),
|
||||||
|
element_active: Some(rgba(0x2a2f39ff).into()),
|
||||||
|
element_selected: Some(rgba(0x2a2f39ff).into()),
|
||||||
|
element_disabled: Some(rgba(0x21242bff).into()),
|
||||||
drop_target_background: Some(rgba(0xaca8ae80).into()),
|
drop_target_background: Some(rgba(0xaca8ae80).into()),
|
||||||
|
ghost_element_background: Some(rgba(0x00000000).into()),
|
||||||
|
ghost_element_hover: Some(rgba(0x252931ff).into()),
|
||||||
|
ghost_element_active: Some(rgba(0x2a2f39ff).into()),
|
||||||
|
ghost_element_selected: Some(rgba(0x2a2f39ff).into()),
|
||||||
|
ghost_element_disabled: Some(rgba(0x21242bff).into()),
|
||||||
text: Some(rgba(0xf7f7f8ff).into()),
|
text: Some(rgba(0xf7f7f8ff).into()),
|
||||||
text_muted: Some(rgba(0xaca8aeff).into()),
|
text_muted: Some(rgba(0xaca8aeff).into()),
|
||||||
text_placeholder: Some(rgba(0x474a53ff).into()),
|
text_placeholder: Some(rgba(0x6b6b73ff).into()),
|
||||||
text_disabled: Some(rgba(0xf7f7f8ff).into()),
|
text_disabled: Some(rgba(0x6b6b73ff).into()),
|
||||||
text_accent: Some(rgba(0x11a793ff).into()),
|
text_accent: Some(rgba(0x11a793ff).into()),
|
||||||
|
icon: Some(rgba(0xf7f7f8ff).into()),
|
||||||
|
icon_muted: Some(rgba(0xaca8aeff).into()),
|
||||||
|
icon_disabled: Some(rgba(0x6b6b73ff).into()),
|
||||||
|
icon_placeholder: Some(rgba(0xaca8aeff).into()),
|
||||||
|
icon_accent: Some(rgba(0x11a793ff).into()),
|
||||||
status_bar_background: Some(rgba(0x262a33ff).into()),
|
status_bar_background: Some(rgba(0x262a33ff).into()),
|
||||||
title_bar_background: Some(rgba(0x262a33ff).into()),
|
title_bar_background: Some(rgba(0x262a33ff).into()),
|
||||||
toolbar_background: Some(rgba(0x1e2025ff).into()),
|
toolbar_background: Some(rgba(0x1e2025ff).into()),
|
||||||
tab_bar_background: Some(rgba(0x21242bff).into()),
|
tab_bar_background: Some(rgba(0x21242bff).into()),
|
||||||
tab_inactive_background: Some(rgba(0x21242bff).into()),
|
tab_inactive_background: Some(rgba(0x21242bff).into()),
|
||||||
tab_active_background: Some(rgba(0x1e2025ff).into()),
|
tab_active_background: Some(rgba(0x1e2025ff).into()),
|
||||||
scrollbar_thumb_background: Some(rgba(0xf7f7f84d).into()),
|
scrollbar_thumb_background: Some(rgba(0xf7f7f84c).into()),
|
||||||
scrollbar_thumb_hover_background: Some(rgba(0xf7f7f84d).into()),
|
scrollbar_thumb_hover_background: Some(rgba(0x252931ff).into()),
|
||||||
scrollbar_thumb_border: Some(rgba(0x21232aff).into()),
|
scrollbar_thumb_border: Some(rgba(0x252931ff).into()),
|
||||||
|
scrollbar_track_background: Some(rgba(0x1e2025ff).into()),
|
||||||
scrollbar_track_border: Some(rgba(0x21232aff).into()),
|
scrollbar_track_border: Some(rgba(0x21232aff).into()),
|
||||||
editor_foreground: Some(rgba(0xf7f7f8ff).into()),
|
editor_foreground: Some(rgba(0xf7f7f8ff).into()),
|
||||||
editor_background: Some(rgba(0x1e2025ff).into()),
|
editor_background: Some(rgba(0x1e2025ff).into()),
|
||||||
editor_gutter_background: Some(rgba(0x1e2025ff).into()),
|
editor_gutter_background: Some(rgba(0x1e2025ff).into()),
|
||||||
|
editor_subheader_background: Some(rgba(0x21242bff).into()),
|
||||||
|
editor_active_line_background: Some(rgba(0x21242bbf).into()),
|
||||||
|
editor_highlighted_line_background: Some(rgba(0x21242bff).into()),
|
||||||
editor_line_number: Some(rgba(0xf7f7f859).into()),
|
editor_line_number: Some(rgba(0xf7f7f859).into()),
|
||||||
editor_active_line_number: Some(rgba(0xf7f7f8ff).into()),
|
editor_active_line_number: Some(rgba(0xf7f7f8ff).into()),
|
||||||
|
editor_invisible: Some(rgba(0xaca8aeff).into()),
|
||||||
editor_wrap_guide: Some(rgba(0xf7f7f80d).into()),
|
editor_wrap_guide: Some(rgba(0xf7f7f80d).into()),
|
||||||
editor_active_wrap_guide: Some(rgba(0xf7f7f81a).into()),
|
editor_active_wrap_guide: Some(rgba(0xf7f7f81a).into()),
|
||||||
|
editor_document_highlight_read_background: Some(rgba(0x11a7931a).into()),
|
||||||
|
editor_document_highlight_write_background: Some(rgba(0x64646d66).into()),
|
||||||
terminal_background: Some(rgba(0x1e2025ff).into()),
|
terminal_background: Some(rgba(0x1e2025ff).into()),
|
||||||
terminal_ansi_bright_black: Some(rgba(0x40434cff).into()),
|
terminal_ansi_bright_black: Some(rgba(0x40434cff).into()),
|
||||||
terminal_ansi_bright_red: Some(rgba(0x8e103aff).into()),
|
terminal_ansi_bright_red: Some(rgba(0x8e103aff).into()),
|
||||||
|
@ -66,16 +91,52 @@ pub fn andromeda() -> UserThemeFamily {
|
||||||
terminal_ansi_magenta: Some(rgba(0xc74decff).into()),
|
terminal_ansi_magenta: Some(rgba(0xc74decff).into()),
|
||||||
terminal_ansi_cyan: Some(rgba(0x09e7c6ff).into()),
|
terminal_ansi_cyan: Some(rgba(0x09e7c6ff).into()),
|
||||||
terminal_ansi_white: Some(rgba(0xf7f7f8ff).into()),
|
terminal_ansi_white: Some(rgba(0xf7f7f8ff).into()),
|
||||||
|
link_text_hover: Some(rgba(0x11a793ff).into()),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
status: StatusColorsRefinement {
|
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: Some(rgba(0x96df72ff).into()),
|
||||||
deleted: Some(rgba(0xcd1d5aff).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: Some(rgba(0xf82872ff).into()),
|
||||||
|
error_background: Some(rgba(0x55051bff).into()),
|
||||||
|
error_border: Some(rgba(0x720a2bff).into()),
|
||||||
|
hidden: Some(rgba(0x6b6b73ff).into()),
|
||||||
|
hidden_background: Some(rgba(0x262a33ff).into()),
|
||||||
|
hidden_border: Some(rgba(0x292d37ff).into()),
|
||||||
hint: Some(rgba(0x618399ff).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: Some(rgba(0xfee56dff).into()),
|
||||||
success: Some(rgba(0xf7f7f8ff).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: Some(rgba(0xfee56dff).into()),
|
||||||
|
warning_background: Some(rgba(0x5c5015ff).into()),
|
||||||
|
warning_border: Some(rgba(0x796b26ff).into()),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
player: Some(PlayerColors(vec![
|
player: Some(PlayerColors(vec![
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -20,36 +20,61 @@ pub fn ayu() -> UserThemeFamily {
|
||||||
appearance: Appearance::Dark,
|
appearance: Appearance::Dark,
|
||||||
styles: UserThemeStylesRefinement {
|
styles: UserThemeStylesRefinement {
|
||||||
colors: ThemeColorsRefinement {
|
colors: ThemeColorsRefinement {
|
||||||
border: Some(rgba(0x2d2f34ff).into()),
|
border: Some(rgba(0x3f4043ff).into()),
|
||||||
border_variant: Some(rgba(0x1b1e24ff).into()),
|
border_variant: Some(rgba(0x3f4043ff).into()),
|
||||||
|
border_focused: Some(rgba(0x1b4a6eff).into()),
|
||||||
|
border_selected: Some(rgba(0x1b4a6eff).into()),
|
||||||
|
border_transparent: Some(rgba(0x00000000).into()),
|
||||||
|
border_disabled: Some(rgba(0x383a3eff).into()),
|
||||||
elevated_surface_background: Some(rgba(0x1f2127ff).into()),
|
elevated_surface_background: Some(rgba(0x1f2127ff).into()),
|
||||||
|
surface_background: Some(rgba(0x1f2127ff).into()),
|
||||||
background: Some(rgba(0x313337ff).into()),
|
background: Some(rgba(0x313337ff).into()),
|
||||||
panel_background: Some(rgba(0x1f2127ff).into()),
|
panel_background: Some(rgba(0x1f2127ff).into()),
|
||||||
element_hover: Some(rgba(0x3f404380).into()),
|
element_background: Some(rgba(0x1f2127ff).into()),
|
||||||
element_selected: Some(rgba(0x50515280).into()),
|
element_hover: Some(rgba(0x2d2f34ff).into()),
|
||||||
|
element_active: Some(rgba(0x3e4043ff).into()),
|
||||||
|
element_selected: Some(rgba(0x3e4043ff).into()),
|
||||||
|
element_disabled: Some(rgba(0x1f2127ff).into()),
|
||||||
drop_target_background: Some(rgba(0x8a898680).into()),
|
drop_target_background: Some(rgba(0x8a898680).into()),
|
||||||
|
ghost_element_background: Some(rgba(0x00000000).into()),
|
||||||
|
ghost_element_hover: Some(rgba(0x2d2f34ff).into()),
|
||||||
|
ghost_element_active: Some(rgba(0x3e4043ff).into()),
|
||||||
|
ghost_element_selected: Some(rgba(0x3e4043ff).into()),
|
||||||
|
ghost_element_disabled: Some(rgba(0x1f2127ff).into()),
|
||||||
text: Some(rgba(0xbfbdb6ff).into()),
|
text: Some(rgba(0xbfbdb6ff).into()),
|
||||||
text_muted: Some(rgba(0x8a8986ff).into()),
|
text_muted: Some(rgba(0x8a8986ff).into()),
|
||||||
text_placeholder: Some(rgba(0x58595aff).into()),
|
text_placeholder: Some(rgba(0x696a6aff).into()),
|
||||||
text_disabled: Some(rgba(0xbfbdb6ff).into()),
|
text_disabled: Some(rgba(0x696a6aff).into()),
|
||||||
text_accent: Some(rgba(0x5ac2feff).into()),
|
text_accent: Some(rgba(0x5ac2feff).into()),
|
||||||
|
icon: Some(rgba(0xbfbdb6ff).into()),
|
||||||
|
icon_muted: Some(rgba(0x8a8986ff).into()),
|
||||||
|
icon_disabled: Some(rgba(0x696a6aff).into()),
|
||||||
|
icon_placeholder: Some(rgba(0x8a8986ff).into()),
|
||||||
|
icon_accent: Some(rgba(0x5ac2feff).into()),
|
||||||
status_bar_background: Some(rgba(0x313337ff).into()),
|
status_bar_background: Some(rgba(0x313337ff).into()),
|
||||||
title_bar_background: Some(rgba(0x313337ff).into()),
|
title_bar_background: Some(rgba(0x313337ff).into()),
|
||||||
toolbar_background: Some(rgba(0x0d1017ff).into()),
|
toolbar_background: Some(rgba(0x0d1017ff).into()),
|
||||||
tab_bar_background: Some(rgba(0x1f2127ff).into()),
|
tab_bar_background: Some(rgba(0x1f2127ff).into()),
|
||||||
tab_inactive_background: Some(rgba(0x1f2127ff).into()),
|
tab_inactive_background: Some(rgba(0x1f2127ff).into()),
|
||||||
tab_active_background: Some(rgba(0x0d1017ff).into()),
|
tab_active_background: Some(rgba(0x0d1017ff).into()),
|
||||||
scrollbar_thumb_background: Some(rgba(0xbfbdb64d).into()),
|
scrollbar_thumb_background: Some(rgba(0xbfbdb64c).into()),
|
||||||
scrollbar_thumb_hover_background: Some(rgba(0xbfbdb64d).into()),
|
scrollbar_thumb_hover_background: Some(rgba(0x2d2f34ff).into()),
|
||||||
scrollbar_thumb_border: Some(rgba(0x1b1e24ff).into()),
|
scrollbar_thumb_border: Some(rgba(0x2d2f34ff).into()),
|
||||||
|
scrollbar_track_background: Some(rgba(0x0d1017ff).into()),
|
||||||
scrollbar_track_border: Some(rgba(0x1b1e24ff).into()),
|
scrollbar_track_border: Some(rgba(0x1b1e24ff).into()),
|
||||||
editor_foreground: Some(rgba(0xbfbdb6ff).into()),
|
editor_foreground: Some(rgba(0xbfbdb6ff).into()),
|
||||||
editor_background: Some(rgba(0x0d1017ff).into()),
|
editor_background: Some(rgba(0x0d1017ff).into()),
|
||||||
editor_gutter_background: Some(rgba(0x0d1017ff).into()),
|
editor_gutter_background: Some(rgba(0x0d1017ff).into()),
|
||||||
|
editor_subheader_background: Some(rgba(0x1f2127ff).into()),
|
||||||
|
editor_active_line_background: Some(rgba(0x1f2127bf).into()),
|
||||||
|
editor_highlighted_line_background: Some(rgba(0x1f2127ff).into()),
|
||||||
editor_line_number: Some(rgba(0xbfbdb659).into()),
|
editor_line_number: Some(rgba(0xbfbdb659).into()),
|
||||||
editor_active_line_number: Some(rgba(0xbfbdb6ff).into()),
|
editor_active_line_number: Some(rgba(0xbfbdb6ff).into()),
|
||||||
|
editor_invisible: Some(rgba(0x8a8986ff).into()),
|
||||||
editor_wrap_guide: Some(rgba(0xbfbdb60d).into()),
|
editor_wrap_guide: Some(rgba(0xbfbdb60d).into()),
|
||||||
editor_active_wrap_guide: Some(rgba(0xbfbdb61a).into()),
|
editor_active_wrap_guide: Some(rgba(0xbfbdb61a).into()),
|
||||||
|
editor_document_highlight_read_background: Some(rgba(0x5ac2fe1a).into()),
|
||||||
|
editor_document_highlight_write_background: Some(rgba(0x66676766).into()),
|
||||||
terminal_background: Some(rgba(0x0d1017ff).into()),
|
terminal_background: Some(rgba(0x0d1017ff).into()),
|
||||||
terminal_ansi_bright_black: Some(rgba(0x545557ff).into()),
|
terminal_ansi_bright_black: Some(rgba(0x545557ff).into()),
|
||||||
terminal_ansi_bright_red: Some(rgba(0x83363cff).into()),
|
terminal_ansi_bright_red: Some(rgba(0x83363cff).into()),
|
||||||
|
@ -67,16 +92,52 @@ pub fn ayu() -> UserThemeFamily {
|
||||||
terminal_ansi_magenta: Some(rgba(0x3abae5ff).into()),
|
terminal_ansi_magenta: Some(rgba(0x3abae5ff).into()),
|
||||||
terminal_ansi_cyan: Some(rgba(0x95e5cbff).into()),
|
terminal_ansi_cyan: Some(rgba(0x95e5cbff).into()),
|
||||||
terminal_ansi_white: Some(rgba(0xbfbdb6ff).into()),
|
terminal_ansi_white: Some(rgba(0xbfbdb6ff).into()),
|
||||||
|
link_text_hover: Some(rgba(0x5ac2feff).into()),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
status: StatusColorsRefinement {
|
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: Some(rgba(0xaad84cff).into()),
|
||||||
deleted: Some(rgba(0xc3595fff).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: Some(rgba(0xef7178ff).into()),
|
||||||
|
error_background: Some(rgba(0x48171cff).into()),
|
||||||
|
error_border: Some(rgba(0x66272dff).into()),
|
||||||
|
hidden: Some(rgba(0x696a6aff).into()),
|
||||||
|
hidden_background: Some(rgba(0x313337ff).into()),
|
||||||
|
hidden_border: Some(rgba(0x383a3eff).into()),
|
||||||
hint: Some(rgba(0x638c81ff).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: Some(rgba(0xfeb454ff).into()),
|
||||||
success: Some(rgba(0xbfbdb6ff).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: Some(rgba(0xfeb454ff).into()),
|
||||||
|
warning_background: Some(rgba(0x572916ff).into()),
|
||||||
|
warning_border: Some(rgba(0x754221ff).into()),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
player: Some(PlayerColors(vec![
|
player: Some(PlayerColors(vec![
|
||||||
|
@ -403,36 +464,61 @@ pub fn ayu() -> UserThemeFamily {
|
||||||
appearance: Appearance::Light,
|
appearance: Appearance::Light,
|
||||||
styles: UserThemeStylesRefinement {
|
styles: UserThemeStylesRefinement {
|
||||||
colors: ThemeColorsRefinement {
|
colors: ThemeColorsRefinement {
|
||||||
border: Some(rgba(0xdfe0e1ff).into()),
|
border: Some(rgba(0xcfd1d2ff).into()),
|
||||||
border_variant: Some(rgba(0xefeff0ff).into()),
|
border_variant: Some(rgba(0xcfd1d2ff).into()),
|
||||||
|
border_focused: Some(rgba(0xc4daf6ff).into()),
|
||||||
|
border_selected: Some(rgba(0xc4daf6ff).into()),
|
||||||
|
border_transparent: Some(rgba(0x00000000).into()),
|
||||||
|
border_disabled: Some(rgba(0xd5d6d8ff).into()),
|
||||||
elevated_surface_background: Some(rgba(0xececedff).into()),
|
elevated_surface_background: Some(rgba(0xececedff).into()),
|
||||||
|
surface_background: Some(rgba(0xececedff).into()),
|
||||||
background: Some(rgba(0xdcdddeff).into()),
|
background: Some(rgba(0xdcdddeff).into()),
|
||||||
panel_background: Some(rgba(0xececedff).into()),
|
panel_background: Some(rgba(0xececedff).into()),
|
||||||
element_hover: Some(rgba(0xcfd1d280).into()),
|
element_background: Some(rgba(0xececedff).into()),
|
||||||
element_selected: Some(rgba(0xc0c2c480).into()),
|
element_hover: Some(rgba(0xdfe0e1ff).into()),
|
||||||
|
element_active: Some(rgba(0xd0d1d3ff).into()),
|
||||||
|
element_selected: Some(rgba(0xd0d1d3ff).into()),
|
||||||
|
element_disabled: Some(rgba(0xececedff).into()),
|
||||||
drop_target_background: Some(rgba(0x8c8f9380).into()),
|
drop_target_background: Some(rgba(0x8c8f9380).into()),
|
||||||
|
ghost_element_background: Some(rgba(0x00000000).into()),
|
||||||
|
ghost_element_hover: Some(rgba(0xdfe0e1ff).into()),
|
||||||
|
ghost_element_active: Some(rgba(0xd0d1d3ff).into()),
|
||||||
|
ghost_element_selected: Some(rgba(0xd0d1d3ff).into()),
|
||||||
|
ghost_element_disabled: Some(rgba(0xececedff).into()),
|
||||||
text: Some(rgba(0x5c6166ff).into()),
|
text: Some(rgba(0x5c6166ff).into()),
|
||||||
text_muted: Some(rgba(0x8c8f93ff).into()),
|
text_muted: Some(rgba(0x8c8f93ff).into()),
|
||||||
text_placeholder: Some(rgba(0xb9bbbdff).into()),
|
text_placeholder: Some(rgba(0xa9acaeff).into()),
|
||||||
text_disabled: Some(rgba(0x5c6166ff).into()),
|
text_disabled: Some(rgba(0xa9acaeff).into()),
|
||||||
text_accent: Some(rgba(0x3b9ee5ff).into()),
|
text_accent: Some(rgba(0x3b9ee5ff).into()),
|
||||||
|
icon: Some(rgba(0x5c6166ff).into()),
|
||||||
|
icon_muted: Some(rgba(0x8c8f93ff).into()),
|
||||||
|
icon_disabled: Some(rgba(0xa9acaeff).into()),
|
||||||
|
icon_placeholder: Some(rgba(0x8c8f93ff).into()),
|
||||||
|
icon_accent: Some(rgba(0x3b9ee5ff).into()),
|
||||||
status_bar_background: Some(rgba(0xdcdddeff).into()),
|
status_bar_background: Some(rgba(0xdcdddeff).into()),
|
||||||
title_bar_background: Some(rgba(0xdcdddeff).into()),
|
title_bar_background: Some(rgba(0xdcdddeff).into()),
|
||||||
toolbar_background: Some(rgba(0xfcfcfcff).into()),
|
toolbar_background: Some(rgba(0xfcfcfcff).into()),
|
||||||
tab_bar_background: Some(rgba(0xececedff).into()),
|
tab_bar_background: Some(rgba(0xececedff).into()),
|
||||||
tab_inactive_background: Some(rgba(0xececedff).into()),
|
tab_inactive_background: Some(rgba(0xececedff).into()),
|
||||||
tab_active_background: Some(rgba(0xfcfcfcff).into()),
|
tab_active_background: Some(rgba(0xfcfcfcff).into()),
|
||||||
scrollbar_thumb_background: Some(rgba(0x5c61664d).into()),
|
scrollbar_thumb_background: Some(rgba(0x5c61664c).into()),
|
||||||
scrollbar_thumb_hover_background: Some(rgba(0x5c61664d).into()),
|
scrollbar_thumb_hover_background: Some(rgba(0xdfe0e1ff).into()),
|
||||||
scrollbar_thumb_border: Some(rgba(0xefeff0ff).into()),
|
scrollbar_thumb_border: Some(rgba(0xdfe0e1ff).into()),
|
||||||
|
scrollbar_track_background: Some(rgba(0xfcfcfcff).into()),
|
||||||
scrollbar_track_border: Some(rgba(0xefeff0ff).into()),
|
scrollbar_track_border: Some(rgba(0xefeff0ff).into()),
|
||||||
editor_foreground: Some(rgba(0x5c6166ff).into()),
|
editor_foreground: Some(rgba(0x5c6166ff).into()),
|
||||||
editor_background: Some(rgba(0xfcfcfcff).into()),
|
editor_background: Some(rgba(0xfcfcfcff).into()),
|
||||||
editor_gutter_background: Some(rgba(0xfcfcfcff).into()),
|
editor_gutter_background: Some(rgba(0xfcfcfcff).into()),
|
||||||
|
editor_subheader_background: Some(rgba(0xececedff).into()),
|
||||||
|
editor_active_line_background: Some(rgba(0xececedbf).into()),
|
||||||
|
editor_highlighted_line_background: Some(rgba(0xececedff).into()),
|
||||||
editor_line_number: Some(rgba(0x5c616659).into()),
|
editor_line_number: Some(rgba(0x5c616659).into()),
|
||||||
editor_active_line_number: Some(rgba(0x5c6166ff).into()),
|
editor_active_line_number: Some(rgba(0x5c6166ff).into()),
|
||||||
|
editor_invisible: Some(rgba(0x8c8f93ff).into()),
|
||||||
editor_wrap_guide: Some(rgba(0x5c61660d).into()),
|
editor_wrap_guide: Some(rgba(0x5c61660d).into()),
|
||||||
editor_active_wrap_guide: Some(rgba(0x5c61661a).into()),
|
editor_active_wrap_guide: Some(rgba(0x5c61661a).into()),
|
||||||
|
editor_document_highlight_read_background: Some(rgba(0x3b9ee51a).into()),
|
||||||
|
editor_document_highlight_write_background: Some(rgba(0xacafb166).into()),
|
||||||
terminal_background: Some(rgba(0xfcfcfcff).into()),
|
terminal_background: Some(rgba(0xfcfcfcff).into()),
|
||||||
terminal_ansi_bright_black: Some(rgba(0xbcbec0ff).into()),
|
terminal_ansi_bright_black: Some(rgba(0xbcbec0ff).into()),
|
||||||
terminal_ansi_bright_red: Some(rgba(0xfebab6ff).into()),
|
terminal_ansi_bright_red: Some(rgba(0xfebab6ff).into()),
|
||||||
|
@ -450,16 +536,52 @@ pub fn ayu() -> UserThemeFamily {
|
||||||
terminal_ansi_magenta: Some(rgba(0x56b4d3ff).into()),
|
terminal_ansi_magenta: Some(rgba(0x56b4d3ff).into()),
|
||||||
terminal_ansi_cyan: Some(rgba(0x4dbf99ff).into()),
|
terminal_ansi_cyan: Some(rgba(0x4dbf99ff).into()),
|
||||||
terminal_ansi_white: Some(rgba(0x5c6166ff).into()),
|
terminal_ansi_white: Some(rgba(0x5c6166ff).into()),
|
||||||
|
link_text_hover: Some(rgba(0x3b9ee5ff).into()),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
status: StatusColorsRefinement {
|
status: StatusColorsRefinement {
|
||||||
created: Some(rgba(0xa1c24bff).into()),
|
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: Some(rgba(0xef7271ff).into()),
|
||||||
|
deleted_background: Some(rgba(0xffe3e1ff).into()),
|
||||||
|
deleted_border: Some(rgba(0xffcdcaff).into()),
|
||||||
error: Some(rgba(0xef7271ff).into()),
|
error: Some(rgba(0xef7271ff).into()),
|
||||||
|
error_background: Some(rgba(0xffe3e1ff).into()),
|
||||||
|
error_border: Some(rgba(0xffcdcaff).into()),
|
||||||
|
hidden: Some(rgba(0xa9acaeff).into()),
|
||||||
|
hidden_background: Some(rgba(0xdcdddeff).into()),
|
||||||
|
hidden_border: Some(rgba(0xd5d6d8ff).into()),
|
||||||
hint: Some(rgba(0x8ca7c2ff).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: Some(rgba(0xf1ae4aff).into()),
|
||||||
success: Some(rgba(0x5c6166ff).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: Some(rgba(0xf1ae4aff).into()),
|
||||||
|
warning_background: Some(rgba(0xffeedaff).into()),
|
||||||
|
warning_border: Some(rgba(0xffe1beff).into()),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
player: Some(PlayerColors(vec![
|
player: Some(PlayerColors(vec![
|
||||||
|
@ -786,36 +908,61 @@ pub fn ayu() -> UserThemeFamily {
|
||||||
appearance: Appearance::Dark,
|
appearance: Appearance::Dark,
|
||||||
styles: UserThemeStylesRefinement {
|
styles: UserThemeStylesRefinement {
|
||||||
colors: ThemeColorsRefinement {
|
colors: ThemeColorsRefinement {
|
||||||
border: Some(rgba(0x43464fff).into()),
|
border: Some(rgba(0x53565dff).into()),
|
||||||
border_variant: Some(rgba(0x323641ff).into()),
|
border_variant: Some(rgba(0x53565dff).into()),
|
||||||
|
border_focused: Some(rgba(0x24556fff).into()),
|
||||||
|
border_selected: Some(rgba(0x24556fff).into()),
|
||||||
|
border_transparent: Some(rgba(0x00000000).into()),
|
||||||
|
border_disabled: Some(rgba(0x4d5058ff).into()),
|
||||||
elevated_surface_background: Some(rgba(0x353944ff).into()),
|
elevated_surface_background: Some(rgba(0x353944ff).into()),
|
||||||
|
surface_background: Some(rgba(0x353944ff).into()),
|
||||||
background: Some(rgba(0x464a52ff).into()),
|
background: Some(rgba(0x464a52ff).into()),
|
||||||
panel_background: Some(rgba(0x353944ff).into()),
|
panel_background: Some(rgba(0x353944ff).into()),
|
||||||
element_hover: Some(rgba(0x53565d80).into()),
|
element_background: Some(rgba(0x353944ff).into()),
|
||||||
element_selected: Some(rgba(0x63656a80).into()),
|
element_hover: Some(rgba(0x43464fff).into()),
|
||||||
|
element_active: Some(rgba(0x53565dff).into()),
|
||||||
|
element_selected: Some(rgba(0x53565dff).into()),
|
||||||
|
element_disabled: Some(rgba(0x353944ff).into()),
|
||||||
drop_target_background: Some(rgba(0x9a9a9880).into()),
|
drop_target_background: Some(rgba(0x9a9a9880).into()),
|
||||||
|
ghost_element_background: Some(rgba(0x00000000).into()),
|
||||||
|
ghost_element_hover: Some(rgba(0x43464fff).into()),
|
||||||
|
ghost_element_active: Some(rgba(0x53565dff).into()),
|
||||||
|
ghost_element_selected: Some(rgba(0x53565dff).into()),
|
||||||
|
ghost_element_disabled: Some(rgba(0x353944ff).into()),
|
||||||
text: Some(rgba(0xcccac2ff).into()),
|
text: Some(rgba(0xcccac2ff).into()),
|
||||||
text_muted: Some(rgba(0x9a9a98ff).into()),
|
text_muted: Some(rgba(0x9a9a98ff).into()),
|
||||||
text_placeholder: Some(rgba(0x6b6d71ff).into()),
|
text_placeholder: Some(rgba(0x7b7d7fff).into()),
|
||||||
text_disabled: Some(rgba(0xcccac2ff).into()),
|
text_disabled: Some(rgba(0x7b7d7fff).into()),
|
||||||
text_accent: Some(rgba(0x73cffeff).into()),
|
text_accent: Some(rgba(0x73cffeff).into()),
|
||||||
|
icon: Some(rgba(0xcccac2ff).into()),
|
||||||
|
icon_muted: Some(rgba(0x9a9a98ff).into()),
|
||||||
|
icon_disabled: Some(rgba(0x7b7d7fff).into()),
|
||||||
|
icon_placeholder: Some(rgba(0x9a9a98ff).into()),
|
||||||
|
icon_accent: Some(rgba(0x73cffeff).into()),
|
||||||
status_bar_background: Some(rgba(0x464a52ff).into()),
|
status_bar_background: Some(rgba(0x464a52ff).into()),
|
||||||
title_bar_background: Some(rgba(0x464a52ff).into()),
|
title_bar_background: Some(rgba(0x464a52ff).into()),
|
||||||
toolbar_background: Some(rgba(0x242936ff).into()),
|
toolbar_background: Some(rgba(0x242936ff).into()),
|
||||||
tab_bar_background: Some(rgba(0x353944ff).into()),
|
tab_bar_background: Some(rgba(0x353944ff).into()),
|
||||||
tab_inactive_background: Some(rgba(0x353944ff).into()),
|
tab_inactive_background: Some(rgba(0x353944ff).into()),
|
||||||
tab_active_background: Some(rgba(0x242936ff).into()),
|
tab_active_background: Some(rgba(0x242936ff).into()),
|
||||||
scrollbar_thumb_background: Some(rgba(0xcccac24d).into()),
|
scrollbar_thumb_background: Some(rgba(0xcccac24c).into()),
|
||||||
scrollbar_thumb_hover_background: Some(rgba(0xcccac24d).into()),
|
scrollbar_thumb_hover_background: Some(rgba(0x43464fff).into()),
|
||||||
scrollbar_thumb_border: Some(rgba(0x323641ff).into()),
|
scrollbar_thumb_border: Some(rgba(0x43464fff).into()),
|
||||||
|
scrollbar_track_background: Some(rgba(0x242936ff).into()),
|
||||||
scrollbar_track_border: Some(rgba(0x323641ff).into()),
|
scrollbar_track_border: Some(rgba(0x323641ff).into()),
|
||||||
editor_foreground: Some(rgba(0xcccac2ff).into()),
|
editor_foreground: Some(rgba(0xcccac2ff).into()),
|
||||||
editor_background: Some(rgba(0x242936ff).into()),
|
editor_background: Some(rgba(0x242936ff).into()),
|
||||||
editor_gutter_background: Some(rgba(0x242936ff).into()),
|
editor_gutter_background: Some(rgba(0x242936ff).into()),
|
||||||
|
editor_subheader_background: Some(rgba(0x353944ff).into()),
|
||||||
|
editor_active_line_background: Some(rgba(0x353944bf).into()),
|
||||||
|
editor_highlighted_line_background: Some(rgba(0x353944ff).into()),
|
||||||
editor_line_number: Some(rgba(0xcccac259).into()),
|
editor_line_number: Some(rgba(0xcccac259).into()),
|
||||||
editor_active_line_number: Some(rgba(0xcccac2ff).into()),
|
editor_active_line_number: Some(rgba(0xcccac2ff).into()),
|
||||||
|
editor_invisible: Some(rgba(0x9a9a98ff).into()),
|
||||||
editor_wrap_guide: Some(rgba(0xcccac20d).into()),
|
editor_wrap_guide: Some(rgba(0xcccac20d).into()),
|
||||||
editor_active_wrap_guide: Some(rgba(0xcccac21a).into()),
|
editor_active_wrap_guide: Some(rgba(0xcccac21a).into()),
|
||||||
|
editor_document_highlight_read_background: Some(rgba(0x73cffe1a).into()),
|
||||||
|
editor_document_highlight_write_background: Some(rgba(0x787a7c66).into()),
|
||||||
terminal_background: Some(rgba(0x242936ff).into()),
|
terminal_background: Some(rgba(0x242936ff).into()),
|
||||||
terminal_ansi_bright_black: Some(rgba(0x67696eff).into()),
|
terminal_ansi_bright_black: Some(rgba(0x67696eff).into()),
|
||||||
terminal_ansi_bright_red: Some(rgba(0x83403dff).into()),
|
terminal_ansi_bright_red: Some(rgba(0x83403dff).into()),
|
||||||
|
@ -833,16 +980,52 @@ pub fn ayu() -> UserThemeFamily {
|
||||||
terminal_ansi_magenta: Some(rgba(0x5ccee5ff).into()),
|
terminal_ansi_magenta: Some(rgba(0x5ccee5ff).into()),
|
||||||
terminal_ansi_cyan: Some(rgba(0x95e5cbff).into()),
|
terminal_ansi_cyan: Some(rgba(0x95e5cbff).into()),
|
||||||
terminal_ansi_white: Some(rgba(0xcccac2ff).into()),
|
terminal_ansi_white: Some(rgba(0xcccac2ff).into()),
|
||||||
|
link_text_hover: Some(rgba(0x73cffeff).into()),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
status: StatusColorsRefinement {
|
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: Some(rgba(0xd5fe80ff).into()),
|
||||||
deleted: Some(rgba(0xc46a60ff).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: Some(rgba(0xf18779ff).into()),
|
||||||
|
error_background: Some(rgba(0x481b1cff).into()),
|
||||||
|
error_border: Some(rgba(0x662e2dff).into()),
|
||||||
|
hidden: Some(rgba(0x7b7d7fff).into()),
|
||||||
|
hidden_background: Some(rgba(0x464a52ff).into()),
|
||||||
|
hidden_border: Some(rgba(0x4d5058ff).into()),
|
||||||
hint: Some(rgba(0x7399a3ff).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: Some(rgba(0xfed073ff).into()),
|
||||||
success: Some(rgba(0xcccac2ff).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: Some(rgba(0xfed073ff).into()),
|
||||||
|
warning_background: Some(rgba(0x584018ff).into()),
|
||||||
|
warning_border: Some(rgba(0x765a29ff).into()),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
player: Some(PlayerColors(vec![
|
player: Some(PlayerColors(vec![
|
||||||
|
|
|
@ -20,36 +20,61 @@ pub fn gruvbox() -> UserThemeFamily {
|
||||||
appearance: Appearance::Light,
|
appearance: Appearance::Light,
|
||||||
styles: UserThemeStylesRefinement {
|
styles: UserThemeStylesRefinement {
|
||||||
colors: ThemeColorsRefinement {
|
colors: ThemeColorsRefinement {
|
||||||
border: Some(rgba(0xddcca7ff).into()),
|
border: Some(rgba(0xc9b99aff).into()),
|
||||||
border_variant: Some(rgba(0xefe2bcff).into()),
|
border_variant: Some(rgba(0xc9b99aff).into()),
|
||||||
|
border_focused: Some(rgba(0xaec6cdff).into()),
|
||||||
|
border_selected: Some(rgba(0xaec6cdff).into()),
|
||||||
|
border_transparent: Some(rgba(0x00000000).into()),
|
||||||
|
border_disabled: Some(rgba(0xd1c09eff).into()),
|
||||||
elevated_surface_background: Some(rgba(0xecddb5ff).into()),
|
elevated_surface_background: Some(rgba(0xecddb5ff).into()),
|
||||||
|
surface_background: Some(rgba(0xecddb5ff).into()),
|
||||||
background: Some(rgba(0xd9c8a4ff).into()),
|
background: Some(rgba(0xd9c8a4ff).into()),
|
||||||
panel_background: Some(rgba(0xecddb5ff).into()),
|
panel_background: Some(rgba(0xecddb5ff).into()),
|
||||||
element_hover: Some(rgba(0xc9b99a80).into()),
|
element_background: Some(rgba(0xecddb5ff).into()),
|
||||||
element_selected: Some(rgba(0xb5a68e80).into()),
|
element_hover: Some(rgba(0xddcca7ff).into()),
|
||||||
|
element_active: Some(rgba(0xc9b99aff).into()),
|
||||||
|
element_selected: Some(rgba(0xc9b99aff).into()),
|
||||||
|
element_disabled: Some(rgba(0xecddb5ff).into()),
|
||||||
drop_target_background: Some(rgba(0x5f565080).into()),
|
drop_target_background: Some(rgba(0x5f565080).into()),
|
||||||
|
ghost_element_background: Some(rgba(0x00000000).into()),
|
||||||
|
ghost_element_hover: Some(rgba(0xddcca7ff).into()),
|
||||||
|
ghost_element_active: Some(rgba(0xc9b99aff).into()),
|
||||||
|
ghost_element_selected: Some(rgba(0xc9b99aff).into()),
|
||||||
|
ghost_element_disabled: Some(rgba(0xecddb5ff).into()),
|
||||||
text: Some(rgba(0x282828ff).into()),
|
text: Some(rgba(0x282828ff).into()),
|
||||||
text_muted: Some(rgba(0x5f5650ff).into()),
|
text_muted: Some(rgba(0x5f5650ff).into()),
|
||||||
text_placeholder: Some(rgba(0xad9e87ff).into()),
|
text_placeholder: Some(rgba(0x8a7c6fff).into()),
|
||||||
text_disabled: Some(rgba(0x282828ff).into()),
|
text_disabled: Some(rgba(0x8a7c6fff).into()),
|
||||||
text_accent: Some(rgba(0x0b6678ff).into()),
|
text_accent: Some(rgba(0x0b6678ff).into()),
|
||||||
|
icon: Some(rgba(0x282828ff).into()),
|
||||||
|
icon_muted: Some(rgba(0x5f5650ff).into()),
|
||||||
|
icon_disabled: Some(rgba(0x8a7c6fff).into()),
|
||||||
|
icon_placeholder: Some(rgba(0x5f5650ff).into()),
|
||||||
|
icon_accent: Some(rgba(0x0b6678ff).into()),
|
||||||
status_bar_background: Some(rgba(0xd9c8a4ff).into()),
|
status_bar_background: Some(rgba(0xd9c8a4ff).into()),
|
||||||
title_bar_background: Some(rgba(0xd9c8a4ff).into()),
|
title_bar_background: Some(rgba(0xd9c8a4ff).into()),
|
||||||
toolbar_background: Some(rgba(0xf9f5d7ff).into()),
|
toolbar_background: Some(rgba(0xf9f5d7ff).into()),
|
||||||
tab_bar_background: Some(rgba(0xecddb5ff).into()),
|
tab_bar_background: Some(rgba(0xecddb5ff).into()),
|
||||||
tab_inactive_background: Some(rgba(0xecddb5ff).into()),
|
tab_inactive_background: Some(rgba(0xecddb5ff).into()),
|
||||||
tab_active_background: Some(rgba(0xf9f5d7ff).into()),
|
tab_active_background: Some(rgba(0xf9f5d7ff).into()),
|
||||||
scrollbar_thumb_background: Some(rgba(0x2828284d).into()),
|
scrollbar_thumb_background: Some(rgba(0x2828284c).into()),
|
||||||
scrollbar_thumb_hover_background: Some(rgba(0x2828284d).into()),
|
scrollbar_thumb_hover_background: Some(rgba(0xddcca7ff).into()),
|
||||||
scrollbar_thumb_border: Some(rgba(0xefe2bcff).into()),
|
scrollbar_thumb_border: Some(rgba(0xddcca7ff).into()),
|
||||||
|
scrollbar_track_background: Some(rgba(0xf9f5d7ff).into()),
|
||||||
scrollbar_track_border: Some(rgba(0xefe2bcff).into()),
|
scrollbar_track_border: Some(rgba(0xefe2bcff).into()),
|
||||||
editor_foreground: Some(rgba(0x282828ff).into()),
|
editor_foreground: Some(rgba(0x282828ff).into()),
|
||||||
editor_background: Some(rgba(0xf9f5d7ff).into()),
|
editor_background: Some(rgba(0xf9f5d7ff).into()),
|
||||||
editor_gutter_background: Some(rgba(0xf9f5d7ff).into()),
|
editor_gutter_background: Some(rgba(0xf9f5d7ff).into()),
|
||||||
|
editor_subheader_background: Some(rgba(0xecddb5ff).into()),
|
||||||
|
editor_active_line_background: Some(rgba(0xecddb5bf).into()),
|
||||||
|
editor_highlighted_line_background: Some(rgba(0xecddb5ff).into()),
|
||||||
editor_line_number: Some(rgba(0x28282859).into()),
|
editor_line_number: Some(rgba(0x28282859).into()),
|
||||||
editor_active_line_number: Some(rgba(0x282828ff).into()),
|
editor_active_line_number: Some(rgba(0x282828ff).into()),
|
||||||
|
editor_invisible: Some(rgba(0x5f5650ff).into()),
|
||||||
editor_wrap_guide: Some(rgba(0x2828280d).into()),
|
editor_wrap_guide: Some(rgba(0x2828280d).into()),
|
||||||
editor_active_wrap_guide: Some(rgba(0x2828281a).into()),
|
editor_active_wrap_guide: Some(rgba(0x2828281a).into()),
|
||||||
|
editor_document_highlight_read_background: Some(rgba(0x0b66781a).into()),
|
||||||
|
editor_document_highlight_write_background: Some(rgba(0x92847466).into()),
|
||||||
terminal_background: Some(rgba(0xf9f5d7ff).into()),
|
terminal_background: Some(rgba(0xf9f5d7ff).into()),
|
||||||
terminal_ansi_bright_black: Some(rgba(0xb1a28aff).into()),
|
terminal_ansi_bright_black: Some(rgba(0xb1a28aff).into()),
|
||||||
terminal_ansi_bright_red: Some(rgba(0xdc8c7bff).into()),
|
terminal_ansi_bright_red: Some(rgba(0xdc8c7bff).into()),
|
||||||
|
@ -67,16 +92,52 @@ pub fn gruvbox() -> UserThemeFamily {
|
||||||
terminal_ansi_magenta: Some(rgba(0x7c6f64ff).into()),
|
terminal_ansi_magenta: Some(rgba(0x7c6f64ff).into()),
|
||||||
terminal_ansi_cyan: Some(rgba(0x437b59ff).into()),
|
terminal_ansi_cyan: Some(rgba(0x437b59ff).into()),
|
||||||
terminal_ansi_white: Some(rgba(0x282828ff).into()),
|
terminal_ansi_white: Some(rgba(0x282828ff).into()),
|
||||||
|
link_text_hover: Some(rgba(0x0b6678ff).into()),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
status: StatusColorsRefinement {
|
status: StatusColorsRefinement {
|
||||||
created: Some(rgba(0x958e43ff).into()),
|
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: Some(rgba(0x9d0408ff).into()),
|
||||||
|
deleted_background: Some(rgba(0xf4d1c9ff).into()),
|
||||||
|
deleted_border: Some(rgba(0xe8ac9eff).into()),
|
||||||
error: Some(rgba(0x9d0408ff).into()),
|
error: Some(rgba(0x9d0408ff).into()),
|
||||||
|
error_background: Some(rgba(0xf4d1c9ff).into()),
|
||||||
|
error_border: Some(rgba(0xe8ac9eff).into()),
|
||||||
|
hidden: Some(rgba(0x8a7c6fff).into()),
|
||||||
|
hidden_background: Some(rgba(0xd9c8a4ff).into()),
|
||||||
|
hidden_border: Some(rgba(0xd1c09eff).into()),
|
||||||
hint: Some(rgba(0x677562ff).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: Some(rgba(0xb57616ff).into()),
|
||||||
success: Some(rgba(0x282828ff).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: Some(rgba(0xb57616ff).into()),
|
||||||
|
warning_background: Some(rgba(0xf5e2d0ff).into()),
|
||||||
|
warning_border: Some(rgba(0xebccabff).into()),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
player: Some(PlayerColors(vec![
|
player: Some(PlayerColors(vec![
|
||||||
|
@ -410,36 +471,61 @@ pub fn gruvbox() -> UserThemeFamily {
|
||||||
appearance: Appearance::Dark,
|
appearance: Appearance::Dark,
|
||||||
styles: UserThemeStylesRefinement {
|
styles: UserThemeStylesRefinement {
|
||||||
colors: ThemeColorsRefinement {
|
colors: ThemeColorsRefinement {
|
||||||
border: Some(rgba(0x494340ff).into()),
|
border: Some(rgba(0x5b534dff).into()),
|
||||||
border_variant: Some(rgba(0x393634ff).into()),
|
border_variant: Some(rgba(0x5b534dff).into()),
|
||||||
|
border_focused: Some(rgba(0x303a36ff).into()),
|
||||||
|
border_selected: Some(rgba(0x303a36ff).into()),
|
||||||
|
border_transparent: Some(rgba(0x00000000).into()),
|
||||||
|
border_disabled: Some(rgba(0x544c48ff).into()),
|
||||||
elevated_surface_background: Some(rgba(0x3b3735ff).into()),
|
elevated_surface_background: Some(rgba(0x3b3735ff).into()),
|
||||||
|
surface_background: Some(rgba(0x3b3735ff).into()),
|
||||||
background: Some(rgba(0x4c4642ff).into()),
|
background: Some(rgba(0x4c4642ff).into()),
|
||||||
panel_background: Some(rgba(0x3b3735ff).into()),
|
panel_background: Some(rgba(0x3b3735ff).into()),
|
||||||
element_hover: Some(rgba(0x5b534d80).into()),
|
element_background: Some(rgba(0x3b3735ff).into()),
|
||||||
element_selected: Some(rgba(0x6e635a80).into()),
|
element_hover: Some(rgba(0x494340ff).into()),
|
||||||
|
element_active: Some(rgba(0x5b524cff).into()),
|
||||||
|
element_selected: Some(rgba(0x5b524cff).into()),
|
||||||
|
element_disabled: Some(rgba(0x3b3735ff).into()),
|
||||||
drop_target_background: Some(rgba(0xc5b59780).into()),
|
drop_target_background: Some(rgba(0xc5b59780).into()),
|
||||||
|
ghost_element_background: Some(rgba(0x00000000).into()),
|
||||||
|
ghost_element_hover: Some(rgba(0x494340ff).into()),
|
||||||
|
ghost_element_active: Some(rgba(0x5b524cff).into()),
|
||||||
|
ghost_element_selected: Some(rgba(0x5b524cff).into()),
|
||||||
|
ghost_element_disabled: Some(rgba(0x3b3735ff).into()),
|
||||||
text: Some(rgba(0xfbf1c7ff).into()),
|
text: Some(rgba(0xfbf1c7ff).into()),
|
||||||
text_muted: Some(rgba(0xc5b597ff).into()),
|
text_muted: Some(rgba(0xc5b597ff).into()),
|
||||||
text_placeholder: Some(rgba(0x776b61ff).into()),
|
text_placeholder: Some(rgba(0x9a8c79ff).into()),
|
||||||
text_disabled: Some(rgba(0xfbf1c7ff).into()),
|
text_disabled: Some(rgba(0x9a8c79ff).into()),
|
||||||
text_accent: Some(rgba(0x83a598ff).into()),
|
text_accent: Some(rgba(0x83a598ff).into()),
|
||||||
|
icon: Some(rgba(0xfbf1c7ff).into()),
|
||||||
|
icon_muted: Some(rgba(0xc5b597ff).into()),
|
||||||
|
icon_disabled: Some(rgba(0x9a8c79ff).into()),
|
||||||
|
icon_placeholder: Some(rgba(0xc5b597ff).into()),
|
||||||
|
icon_accent: Some(rgba(0x83a598ff).into()),
|
||||||
status_bar_background: Some(rgba(0x4c4642ff).into()),
|
status_bar_background: Some(rgba(0x4c4642ff).into()),
|
||||||
title_bar_background: Some(rgba(0x4c4642ff).into()),
|
title_bar_background: Some(rgba(0x4c4642ff).into()),
|
||||||
toolbar_background: Some(rgba(0x32302fff).into()),
|
toolbar_background: Some(rgba(0x32302fff).into()),
|
||||||
tab_bar_background: Some(rgba(0x3b3735ff).into()),
|
tab_bar_background: Some(rgba(0x3b3735ff).into()),
|
||||||
tab_inactive_background: Some(rgba(0x3b3735ff).into()),
|
tab_inactive_background: Some(rgba(0x3b3735ff).into()),
|
||||||
tab_active_background: Some(rgba(0x32302fff).into()),
|
tab_active_background: Some(rgba(0x32302fff).into()),
|
||||||
scrollbar_thumb_background: Some(rgba(0xfbf1c74d).into()),
|
scrollbar_thumb_background: Some(rgba(0xfbf1c74c).into()),
|
||||||
scrollbar_thumb_hover_background: Some(rgba(0xfbf1c74d).into()),
|
scrollbar_thumb_hover_background: Some(rgba(0x494340ff).into()),
|
||||||
scrollbar_thumb_border: Some(rgba(0x393634ff).into()),
|
scrollbar_thumb_border: Some(rgba(0x494340ff).into()),
|
||||||
|
scrollbar_track_background: Some(rgba(0x32302fff).into()),
|
||||||
scrollbar_track_border: Some(rgba(0x393634ff).into()),
|
scrollbar_track_border: Some(rgba(0x393634ff).into()),
|
||||||
editor_foreground: Some(rgba(0xebdbb2ff).into()),
|
editor_foreground: Some(rgba(0xebdbb2ff).into()),
|
||||||
editor_background: Some(rgba(0x32302fff).into()),
|
editor_background: Some(rgba(0x32302fff).into()),
|
||||||
editor_gutter_background: Some(rgba(0x32302fff).into()),
|
editor_gutter_background: Some(rgba(0x32302fff).into()),
|
||||||
|
editor_subheader_background: Some(rgba(0x3b3735ff).into()),
|
||||||
|
editor_active_line_background: Some(rgba(0x3b3735bf).into()),
|
||||||
|
editor_highlighted_line_background: Some(rgba(0x3b3735ff).into()),
|
||||||
editor_line_number: Some(rgba(0xfbf1c759).into()),
|
editor_line_number: Some(rgba(0xfbf1c759).into()),
|
||||||
editor_active_line_number: Some(rgba(0xfbf1c7ff).into()),
|
editor_active_line_number: Some(rgba(0xfbf1c7ff).into()),
|
||||||
|
editor_invisible: Some(rgba(0xc5b597ff).into()),
|
||||||
editor_wrap_guide: Some(rgba(0xfbf1c70d).into()),
|
editor_wrap_guide: Some(rgba(0xfbf1c70d).into()),
|
||||||
editor_active_wrap_guide: Some(rgba(0xfbf1c71a).into()),
|
editor_active_wrap_guide: Some(rgba(0xfbf1c71a).into()),
|
||||||
|
editor_document_highlight_read_background: Some(rgba(0x83a5981a).into()),
|
||||||
|
editor_document_highlight_write_background: Some(rgba(0x92847466).into()),
|
||||||
terminal_background: Some(rgba(0x32302fff).into()),
|
terminal_background: Some(rgba(0x32302fff).into()),
|
||||||
terminal_ansi_bright_black: Some(rgba(0x73675eff).into()),
|
terminal_ansi_bright_black: Some(rgba(0x73675eff).into()),
|
||||||
terminal_ansi_bright_red: Some(rgba(0x93211eff).into()),
|
terminal_ansi_bright_red: Some(rgba(0x93211eff).into()),
|
||||||
|
@ -457,16 +543,52 @@ pub fn gruvbox() -> UserThemeFamily {
|
||||||
terminal_ansi_magenta: Some(rgba(0xa89984ff).into()),
|
terminal_ansi_magenta: Some(rgba(0xa89984ff).into()),
|
||||||
terminal_ansi_cyan: Some(rgba(0x8ec07cff).into()),
|
terminal_ansi_cyan: Some(rgba(0x8ec07cff).into()),
|
||||||
terminal_ansi_white: Some(rgba(0xfbf1c7ff).into()),
|
terminal_ansi_white: Some(rgba(0xfbf1c7ff).into()),
|
||||||
|
link_text_hover: Some(rgba(0x83a598ff).into()),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
status: StatusColorsRefinement {
|
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: Some(rgba(0xb8bb27ff).into()),
|
||||||
deleted: Some(rgba(0xd0382bff).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: Some(rgba(0xfb4a35ff).into()),
|
||||||
|
error_background: Some(rgba(0x5a0a10ff).into()),
|
||||||
|
error_border: Some(rgba(0x771618ff).into()),
|
||||||
|
hidden: Some(rgba(0x9a8c79ff).into()),
|
||||||
|
hidden_background: Some(rgba(0x4c4642ff).into()),
|
||||||
|
hidden_border: Some(rgba(0x544c48ff).into()),
|
||||||
hint: Some(rgba(0x8d957eff).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: Some(rgba(0xf9bd30ff).into()),
|
||||||
success: Some(rgba(0xfbf1c7ff).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: Some(rgba(0xf9bd30ff).into()),
|
||||||
|
warning_background: Some(rgba(0x582f10ff).into()),
|
||||||
|
warning_border: Some(rgba(0x754916ff).into()),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
player: Some(PlayerColors(vec![
|
player: Some(PlayerColors(vec![
|
||||||
|
@ -800,36 +922,61 @@ pub fn gruvbox() -> UserThemeFamily {
|
||||||
appearance: Appearance::Light,
|
appearance: Appearance::Light,
|
||||||
styles: UserThemeStylesRefinement {
|
styles: UserThemeStylesRefinement {
|
||||||
colors: ThemeColorsRefinement {
|
colors: ThemeColorsRefinement {
|
||||||
border: Some(rgba(0xddcca7ff).into()),
|
border: Some(rgba(0xc9b99aff).into()),
|
||||||
border_variant: Some(rgba(0xefe1b8ff).into()),
|
border_variant: Some(rgba(0xc9b99aff).into()),
|
||||||
|
border_focused: Some(rgba(0xaec6cdff).into()),
|
||||||
|
border_selected: Some(rgba(0xaec6cdff).into()),
|
||||||
|
border_transparent: Some(rgba(0x00000000).into()),
|
||||||
|
border_disabled: Some(rgba(0xd1c09eff).into()),
|
||||||
elevated_surface_background: Some(rgba(0xecddb4ff).into()),
|
elevated_surface_background: Some(rgba(0xecddb4ff).into()),
|
||||||
|
surface_background: Some(rgba(0xecddb4ff).into()),
|
||||||
background: Some(rgba(0xd9c8a4ff).into()),
|
background: Some(rgba(0xd9c8a4ff).into()),
|
||||||
panel_background: Some(rgba(0xecddb4ff).into()),
|
panel_background: Some(rgba(0xecddb4ff).into()),
|
||||||
element_hover: Some(rgba(0xc9b99a80).into()),
|
element_background: Some(rgba(0xecddb4ff).into()),
|
||||||
element_selected: Some(rgba(0xb5a68e80).into()),
|
element_hover: Some(rgba(0xddcca7ff).into()),
|
||||||
|
element_active: Some(rgba(0xc9b99aff).into()),
|
||||||
|
element_selected: Some(rgba(0xc9b99aff).into()),
|
||||||
|
element_disabled: Some(rgba(0xecddb4ff).into()),
|
||||||
drop_target_background: Some(rgba(0x5f565080).into()),
|
drop_target_background: Some(rgba(0x5f565080).into()),
|
||||||
|
ghost_element_background: Some(rgba(0x00000000).into()),
|
||||||
|
ghost_element_hover: Some(rgba(0xddcca7ff).into()),
|
||||||
|
ghost_element_active: Some(rgba(0xc9b99aff).into()),
|
||||||
|
ghost_element_selected: Some(rgba(0xc9b99aff).into()),
|
||||||
|
ghost_element_disabled: Some(rgba(0xecddb4ff).into()),
|
||||||
text: Some(rgba(0x282828ff).into()),
|
text: Some(rgba(0x282828ff).into()),
|
||||||
text_muted: Some(rgba(0x5f5650ff).into()),
|
text_muted: Some(rgba(0x5f5650ff).into()),
|
||||||
text_placeholder: Some(rgba(0xad9e87ff).into()),
|
text_placeholder: Some(rgba(0x8a7c6fff).into()),
|
||||||
text_disabled: Some(rgba(0x282828ff).into()),
|
text_disabled: Some(rgba(0x8a7c6fff).into()),
|
||||||
text_accent: Some(rgba(0x0b6678ff).into()),
|
text_accent: Some(rgba(0x0b6678ff).into()),
|
||||||
|
icon: Some(rgba(0x282828ff).into()),
|
||||||
|
icon_muted: Some(rgba(0x5f5650ff).into()),
|
||||||
|
icon_disabled: Some(rgba(0x8a7c6fff).into()),
|
||||||
|
icon_placeholder: Some(rgba(0x5f5650ff).into()),
|
||||||
|
icon_accent: Some(rgba(0x0b6678ff).into()),
|
||||||
status_bar_background: Some(rgba(0xd9c8a4ff).into()),
|
status_bar_background: Some(rgba(0xd9c8a4ff).into()),
|
||||||
title_bar_background: Some(rgba(0xd9c8a4ff).into()),
|
title_bar_background: Some(rgba(0xd9c8a4ff).into()),
|
||||||
toolbar_background: Some(rgba(0xfbf1c7ff).into()),
|
toolbar_background: Some(rgba(0xfbf1c7ff).into()),
|
||||||
tab_bar_background: Some(rgba(0xecddb4ff).into()),
|
tab_bar_background: Some(rgba(0xecddb4ff).into()),
|
||||||
tab_inactive_background: Some(rgba(0xecddb4ff).into()),
|
tab_inactive_background: Some(rgba(0xecddb4ff).into()),
|
||||||
tab_active_background: Some(rgba(0xfbf1c7ff).into()),
|
tab_active_background: Some(rgba(0xfbf1c7ff).into()),
|
||||||
scrollbar_thumb_background: Some(rgba(0x2828284d).into()),
|
scrollbar_thumb_background: Some(rgba(0x2828284c).into()),
|
||||||
scrollbar_thumb_hover_background: Some(rgba(0x2828284d).into()),
|
scrollbar_thumb_hover_background: Some(rgba(0xddcca7ff).into()),
|
||||||
scrollbar_thumb_border: Some(rgba(0xefe1b8ff).into()),
|
scrollbar_thumb_border: Some(rgba(0xddcca7ff).into()),
|
||||||
|
scrollbar_track_background: Some(rgba(0xfbf1c7ff).into()),
|
||||||
scrollbar_track_border: Some(rgba(0xefe1b8ff).into()),
|
scrollbar_track_border: Some(rgba(0xefe1b8ff).into()),
|
||||||
editor_foreground: Some(rgba(0x282828ff).into()),
|
editor_foreground: Some(rgba(0x282828ff).into()),
|
||||||
editor_background: Some(rgba(0xfbf1c7ff).into()),
|
editor_background: Some(rgba(0xfbf1c7ff).into()),
|
||||||
editor_gutter_background: Some(rgba(0xfbf1c7ff).into()),
|
editor_gutter_background: Some(rgba(0xfbf1c7ff).into()),
|
||||||
|
editor_subheader_background: Some(rgba(0xecddb4ff).into()),
|
||||||
|
editor_active_line_background: Some(rgba(0xecddb4bf).into()),
|
||||||
|
editor_highlighted_line_background: Some(rgba(0xecddb4ff).into()),
|
||||||
editor_line_number: Some(rgba(0x28282859).into()),
|
editor_line_number: Some(rgba(0x28282859).into()),
|
||||||
editor_active_line_number: Some(rgba(0x282828ff).into()),
|
editor_active_line_number: Some(rgba(0x282828ff).into()),
|
||||||
|
editor_invisible: Some(rgba(0x5f5650ff).into()),
|
||||||
editor_wrap_guide: Some(rgba(0x2828280d).into()),
|
editor_wrap_guide: Some(rgba(0x2828280d).into()),
|
||||||
editor_active_wrap_guide: Some(rgba(0x2828281a).into()),
|
editor_active_wrap_guide: Some(rgba(0x2828281a).into()),
|
||||||
|
editor_document_highlight_read_background: Some(rgba(0x0b66781a).into()),
|
||||||
|
editor_document_highlight_write_background: Some(rgba(0x92847466).into()),
|
||||||
terminal_background: Some(rgba(0xfbf1c7ff).into()),
|
terminal_background: Some(rgba(0xfbf1c7ff).into()),
|
||||||
terminal_ansi_bright_black: Some(rgba(0xb1a28aff).into()),
|
terminal_ansi_bright_black: Some(rgba(0xb1a28aff).into()),
|
||||||
terminal_ansi_bright_red: Some(rgba(0xdc8c7bff).into()),
|
terminal_ansi_bright_red: Some(rgba(0xdc8c7bff).into()),
|
||||||
|
@ -847,16 +994,52 @@ pub fn gruvbox() -> UserThemeFamily {
|
||||||
terminal_ansi_magenta: Some(rgba(0x7c6f64ff).into()),
|
terminal_ansi_magenta: Some(rgba(0x7c6f64ff).into()),
|
||||||
terminal_ansi_cyan: Some(rgba(0x437b59ff).into()),
|
terminal_ansi_cyan: Some(rgba(0x437b59ff).into()),
|
||||||
terminal_ansi_white: Some(rgba(0x282828ff).into()),
|
terminal_ansi_white: Some(rgba(0x282828ff).into()),
|
||||||
|
link_text_hover: Some(rgba(0x0b6678ff).into()),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
status: StatusColorsRefinement {
|
status: StatusColorsRefinement {
|
||||||
created: Some(rgba(0x958e43ff).into()),
|
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: Some(rgba(0x9d0408ff).into()),
|
||||||
|
deleted_background: Some(rgba(0xf4d1c9ff).into()),
|
||||||
|
deleted_border: Some(rgba(0xe8ac9eff).into()),
|
||||||
error: Some(rgba(0x9d0408ff).into()),
|
error: Some(rgba(0x9d0408ff).into()),
|
||||||
|
error_background: Some(rgba(0xf4d1c9ff).into()),
|
||||||
|
error_border: Some(rgba(0xe8ac9eff).into()),
|
||||||
|
hidden: Some(rgba(0x8a7c6fff).into()),
|
||||||
|
hidden_background: Some(rgba(0xd9c8a4ff).into()),
|
||||||
|
hidden_border: Some(rgba(0xd1c09eff).into()),
|
||||||
hint: Some(rgba(0x677562ff).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: Some(rgba(0xb57616ff).into()),
|
||||||
success: Some(rgba(0x282828ff).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: Some(rgba(0xb57616ff).into()),
|
||||||
|
warning_background: Some(rgba(0xf5e2d0ff).into()),
|
||||||
|
warning_border: Some(rgba(0xebccabff).into()),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
player: Some(PlayerColors(vec![
|
player: Some(PlayerColors(vec![
|
||||||
|
@ -1190,36 +1373,61 @@ pub fn gruvbox() -> UserThemeFamily {
|
||||||
appearance: Appearance::Dark,
|
appearance: Appearance::Dark,
|
||||||
styles: UserThemeStylesRefinement {
|
styles: UserThemeStylesRefinement {
|
||||||
colors: ThemeColorsRefinement {
|
colors: ThemeColorsRefinement {
|
||||||
border: Some(rgba(0x494340ff).into()),
|
border: Some(rgba(0x5b534dff).into()),
|
||||||
border_variant: Some(rgba(0x373432ff).into()),
|
border_variant: Some(rgba(0x5b534dff).into()),
|
||||||
|
border_focused: Some(rgba(0x303a36ff).into()),
|
||||||
|
border_selected: Some(rgba(0x303a36ff).into()),
|
||||||
|
border_transparent: Some(rgba(0x00000000).into()),
|
||||||
|
border_disabled: Some(rgba(0x544c48ff).into()),
|
||||||
elevated_surface_background: Some(rgba(0x3a3735ff).into()),
|
elevated_surface_background: Some(rgba(0x3a3735ff).into()),
|
||||||
|
surface_background: Some(rgba(0x3a3735ff).into()),
|
||||||
background: Some(rgba(0x4c4642ff).into()),
|
background: Some(rgba(0x4c4642ff).into()),
|
||||||
panel_background: Some(rgba(0x3a3735ff).into()),
|
panel_background: Some(rgba(0x3a3735ff).into()),
|
||||||
element_hover: Some(rgba(0x5b534d80).into()),
|
element_background: Some(rgba(0x3a3735ff).into()),
|
||||||
element_selected: Some(rgba(0x6e635a80).into()),
|
element_hover: Some(rgba(0x494340ff).into()),
|
||||||
|
element_active: Some(rgba(0x5b524cff).into()),
|
||||||
|
element_selected: Some(rgba(0x5b524cff).into()),
|
||||||
|
element_disabled: Some(rgba(0x3a3735ff).into()),
|
||||||
drop_target_background: Some(rgba(0xc5b59780).into()),
|
drop_target_background: Some(rgba(0xc5b59780).into()),
|
||||||
|
ghost_element_background: Some(rgba(0x00000000).into()),
|
||||||
|
ghost_element_hover: Some(rgba(0x494340ff).into()),
|
||||||
|
ghost_element_active: Some(rgba(0x5b524cff).into()),
|
||||||
|
ghost_element_selected: Some(rgba(0x5b524cff).into()),
|
||||||
|
ghost_element_disabled: Some(rgba(0x3a3735ff).into()),
|
||||||
text: Some(rgba(0xfbf1c7ff).into()),
|
text: Some(rgba(0xfbf1c7ff).into()),
|
||||||
text_muted: Some(rgba(0xc5b597ff).into()),
|
text_muted: Some(rgba(0xc5b597ff).into()),
|
||||||
text_placeholder: Some(rgba(0x776b61ff).into()),
|
text_placeholder: Some(rgba(0x9a8c79ff).into()),
|
||||||
text_disabled: Some(rgba(0xfbf1c7ff).into()),
|
text_disabled: Some(rgba(0x9a8c79ff).into()),
|
||||||
text_accent: Some(rgba(0x83a598ff).into()),
|
text_accent: Some(rgba(0x83a598ff).into()),
|
||||||
|
icon: Some(rgba(0xfbf1c7ff).into()),
|
||||||
|
icon_muted: Some(rgba(0xc5b597ff).into()),
|
||||||
|
icon_disabled: Some(rgba(0x9a8c79ff).into()),
|
||||||
|
icon_placeholder: Some(rgba(0xc5b597ff).into()),
|
||||||
|
icon_accent: Some(rgba(0x83a598ff).into()),
|
||||||
status_bar_background: Some(rgba(0x4c4642ff).into()),
|
status_bar_background: Some(rgba(0x4c4642ff).into()),
|
||||||
title_bar_background: Some(rgba(0x4c4642ff).into()),
|
title_bar_background: Some(rgba(0x4c4642ff).into()),
|
||||||
toolbar_background: Some(rgba(0x282828ff).into()),
|
toolbar_background: Some(rgba(0x282828ff).into()),
|
||||||
tab_bar_background: Some(rgba(0x3a3735ff).into()),
|
tab_bar_background: Some(rgba(0x3a3735ff).into()),
|
||||||
tab_inactive_background: Some(rgba(0x3a3735ff).into()),
|
tab_inactive_background: Some(rgba(0x3a3735ff).into()),
|
||||||
tab_active_background: Some(rgba(0x282828ff).into()),
|
tab_active_background: Some(rgba(0x282828ff).into()),
|
||||||
scrollbar_thumb_background: Some(rgba(0xfbf1c74d).into()),
|
scrollbar_thumb_background: Some(rgba(0xfbf1c74c).into()),
|
||||||
scrollbar_thumb_hover_background: Some(rgba(0xfbf1c74d).into()),
|
scrollbar_thumb_hover_background: Some(rgba(0x494340ff).into()),
|
||||||
scrollbar_thumb_border: Some(rgba(0x373432ff).into()),
|
scrollbar_thumb_border: Some(rgba(0x494340ff).into()),
|
||||||
|
scrollbar_track_background: Some(rgba(0x282828ff).into()),
|
||||||
scrollbar_track_border: Some(rgba(0x373432ff).into()),
|
scrollbar_track_border: Some(rgba(0x373432ff).into()),
|
||||||
editor_foreground: Some(rgba(0xebdbb2ff).into()),
|
editor_foreground: Some(rgba(0xebdbb2ff).into()),
|
||||||
editor_background: Some(rgba(0x282828ff).into()),
|
editor_background: Some(rgba(0x282828ff).into()),
|
||||||
editor_gutter_background: Some(rgba(0x282828ff).into()),
|
editor_gutter_background: Some(rgba(0x282828ff).into()),
|
||||||
|
editor_subheader_background: Some(rgba(0x3a3735ff).into()),
|
||||||
|
editor_active_line_background: Some(rgba(0x3a3735bf).into()),
|
||||||
|
editor_highlighted_line_background: Some(rgba(0x3a3735ff).into()),
|
||||||
editor_line_number: Some(rgba(0xfbf1c759).into()),
|
editor_line_number: Some(rgba(0xfbf1c759).into()),
|
||||||
editor_active_line_number: Some(rgba(0xfbf1c7ff).into()),
|
editor_active_line_number: Some(rgba(0xfbf1c7ff).into()),
|
||||||
|
editor_invisible: Some(rgba(0xc5b597ff).into()),
|
||||||
editor_wrap_guide: Some(rgba(0xfbf1c70d).into()),
|
editor_wrap_guide: Some(rgba(0xfbf1c70d).into()),
|
||||||
editor_active_wrap_guide: Some(rgba(0xfbf1c71a).into()),
|
editor_active_wrap_guide: Some(rgba(0xfbf1c71a).into()),
|
||||||
|
editor_document_highlight_read_background: Some(rgba(0x83a5981a).into()),
|
||||||
|
editor_document_highlight_write_background: Some(rgba(0x92847466).into()),
|
||||||
terminal_background: Some(rgba(0x282828ff).into()),
|
terminal_background: Some(rgba(0x282828ff).into()),
|
||||||
terminal_ansi_bright_black: Some(rgba(0x73675eff).into()),
|
terminal_ansi_bright_black: Some(rgba(0x73675eff).into()),
|
||||||
terminal_ansi_bright_red: Some(rgba(0x93211eff).into()),
|
terminal_ansi_bright_red: Some(rgba(0x93211eff).into()),
|
||||||
|
@ -1237,16 +1445,52 @@ pub fn gruvbox() -> UserThemeFamily {
|
||||||
terminal_ansi_magenta: Some(rgba(0xa89984ff).into()),
|
terminal_ansi_magenta: Some(rgba(0xa89984ff).into()),
|
||||||
terminal_ansi_cyan: Some(rgba(0x8ec07cff).into()),
|
terminal_ansi_cyan: Some(rgba(0x8ec07cff).into()),
|
||||||
terminal_ansi_white: Some(rgba(0xfbf1c7ff).into()),
|
terminal_ansi_white: Some(rgba(0xfbf1c7ff).into()),
|
||||||
|
link_text_hover: Some(rgba(0x83a598ff).into()),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
status: StatusColorsRefinement {
|
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: Some(rgba(0xb8bb27ff).into()),
|
||||||
deleted: Some(rgba(0xd0382bff).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: Some(rgba(0xfb4a35ff).into()),
|
||||||
|
error_background: Some(rgba(0x5a0a10ff).into()),
|
||||||
|
error_border: Some(rgba(0x771618ff).into()),
|
||||||
|
hidden: Some(rgba(0x9a8c79ff).into()),
|
||||||
|
hidden_background: Some(rgba(0x4c4642ff).into()),
|
||||||
|
hidden_border: Some(rgba(0x544c48ff).into()),
|
||||||
hint: Some(rgba(0x8d957eff).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: Some(rgba(0xf9bd30ff).into()),
|
||||||
success: Some(rgba(0xfbf1c7ff).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: Some(rgba(0xf9bd30ff).into()),
|
||||||
|
warning_background: Some(rgba(0x582f10ff).into()),
|
||||||
|
warning_border: Some(rgba(0x754916ff).into()),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
player: Some(PlayerColors(vec![
|
player: Some(PlayerColors(vec![
|
||||||
|
@ -1580,36 +1824,61 @@ pub fn gruvbox() -> UserThemeFamily {
|
||||||
appearance: Appearance::Light,
|
appearance: Appearance::Light,
|
||||||
styles: UserThemeStylesRefinement {
|
styles: UserThemeStylesRefinement {
|
||||||
colors: ThemeColorsRefinement {
|
colors: ThemeColorsRefinement {
|
||||||
border: Some(rgba(0xddcca7ff).into()),
|
border: Some(rgba(0xc9b99aff).into()),
|
||||||
border_variant: Some(rgba(0xeddeb5ff).into()),
|
border_variant: Some(rgba(0xc9b99aff).into()),
|
||||||
|
border_focused: Some(rgba(0xaec6cdff).into()),
|
||||||
|
border_selected: Some(rgba(0xaec6cdff).into()),
|
||||||
|
border_transparent: Some(rgba(0x00000000).into()),
|
||||||
|
border_disabled: Some(rgba(0xd1c09eff).into()),
|
||||||
elevated_surface_background: Some(rgba(0xecdcb3ff).into()),
|
elevated_surface_background: Some(rgba(0xecdcb3ff).into()),
|
||||||
|
surface_background: Some(rgba(0xecdcb3ff).into()),
|
||||||
background: Some(rgba(0xd9c8a4ff).into()),
|
background: Some(rgba(0xd9c8a4ff).into()),
|
||||||
panel_background: Some(rgba(0xecdcb3ff).into()),
|
panel_background: Some(rgba(0xecdcb3ff).into()),
|
||||||
element_hover: Some(rgba(0xc9b99a80).into()),
|
element_background: Some(rgba(0xecdcb3ff).into()),
|
||||||
element_selected: Some(rgba(0xb5a68e80).into()),
|
element_hover: Some(rgba(0xddcca7ff).into()),
|
||||||
|
element_active: Some(rgba(0xc9b99aff).into()),
|
||||||
|
element_selected: Some(rgba(0xc9b99aff).into()),
|
||||||
|
element_disabled: Some(rgba(0xecdcb3ff).into()),
|
||||||
drop_target_background: Some(rgba(0x5f565080).into()),
|
drop_target_background: Some(rgba(0x5f565080).into()),
|
||||||
|
ghost_element_background: Some(rgba(0x00000000).into()),
|
||||||
|
ghost_element_hover: Some(rgba(0xddcca7ff).into()),
|
||||||
|
ghost_element_active: Some(rgba(0xc9b99aff).into()),
|
||||||
|
ghost_element_selected: Some(rgba(0xc9b99aff).into()),
|
||||||
|
ghost_element_disabled: Some(rgba(0xecdcb3ff).into()),
|
||||||
text: Some(rgba(0x282828ff).into()),
|
text: Some(rgba(0x282828ff).into()),
|
||||||
text_muted: Some(rgba(0x5f5650ff).into()),
|
text_muted: Some(rgba(0x5f5650ff).into()),
|
||||||
text_placeholder: Some(rgba(0xad9e87ff).into()),
|
text_placeholder: Some(rgba(0x8a7c6fff).into()),
|
||||||
text_disabled: Some(rgba(0x282828ff).into()),
|
text_disabled: Some(rgba(0x8a7c6fff).into()),
|
||||||
text_accent: Some(rgba(0x0b6678ff).into()),
|
text_accent: Some(rgba(0x0b6678ff).into()),
|
||||||
|
icon: Some(rgba(0x282828ff).into()),
|
||||||
|
icon_muted: Some(rgba(0x5f5650ff).into()),
|
||||||
|
icon_disabled: Some(rgba(0x8a7c6fff).into()),
|
||||||
|
icon_placeholder: Some(rgba(0x5f5650ff).into()),
|
||||||
|
icon_accent: Some(rgba(0x0b6678ff).into()),
|
||||||
status_bar_background: Some(rgba(0xd9c8a4ff).into()),
|
status_bar_background: Some(rgba(0xd9c8a4ff).into()),
|
||||||
title_bar_background: Some(rgba(0xd9c8a4ff).into()),
|
title_bar_background: Some(rgba(0xd9c8a4ff).into()),
|
||||||
toolbar_background: Some(rgba(0xf2e5bcff).into()),
|
toolbar_background: Some(rgba(0xf2e5bcff).into()),
|
||||||
tab_bar_background: Some(rgba(0xecdcb3ff).into()),
|
tab_bar_background: Some(rgba(0xecdcb3ff).into()),
|
||||||
tab_inactive_background: Some(rgba(0xecdcb3ff).into()),
|
tab_inactive_background: Some(rgba(0xecdcb3ff).into()),
|
||||||
tab_active_background: Some(rgba(0xf2e5bcff).into()),
|
tab_active_background: Some(rgba(0xf2e5bcff).into()),
|
||||||
scrollbar_thumb_background: Some(rgba(0x2828284d).into()),
|
scrollbar_thumb_background: Some(rgba(0x2828284c).into()),
|
||||||
scrollbar_thumb_hover_background: Some(rgba(0x2828284d).into()),
|
scrollbar_thumb_hover_background: Some(rgba(0xddcca7ff).into()),
|
||||||
scrollbar_thumb_border: Some(rgba(0xeddeb5ff).into()),
|
scrollbar_thumb_border: Some(rgba(0xddcca7ff).into()),
|
||||||
|
scrollbar_track_background: Some(rgba(0xf2e5bcff).into()),
|
||||||
scrollbar_track_border: Some(rgba(0xeddeb5ff).into()),
|
scrollbar_track_border: Some(rgba(0xeddeb5ff).into()),
|
||||||
editor_foreground: Some(rgba(0x282828ff).into()),
|
editor_foreground: Some(rgba(0x282828ff).into()),
|
||||||
editor_background: Some(rgba(0xf2e5bcff).into()),
|
editor_background: Some(rgba(0xf2e5bcff).into()),
|
||||||
editor_gutter_background: Some(rgba(0xf2e5bcff).into()),
|
editor_gutter_background: Some(rgba(0xf2e5bcff).into()),
|
||||||
|
editor_subheader_background: Some(rgba(0xecdcb3ff).into()),
|
||||||
|
editor_active_line_background: Some(rgba(0xecdcb3bf).into()),
|
||||||
|
editor_highlighted_line_background: Some(rgba(0xecdcb3ff).into()),
|
||||||
editor_line_number: Some(rgba(0x28282859).into()),
|
editor_line_number: Some(rgba(0x28282859).into()),
|
||||||
editor_active_line_number: Some(rgba(0x282828ff).into()),
|
editor_active_line_number: Some(rgba(0x282828ff).into()),
|
||||||
|
editor_invisible: Some(rgba(0x5f5650ff).into()),
|
||||||
editor_wrap_guide: Some(rgba(0x2828280d).into()),
|
editor_wrap_guide: Some(rgba(0x2828280d).into()),
|
||||||
editor_active_wrap_guide: Some(rgba(0x2828281a).into()),
|
editor_active_wrap_guide: Some(rgba(0x2828281a).into()),
|
||||||
|
editor_document_highlight_read_background: Some(rgba(0x0b66781a).into()),
|
||||||
|
editor_document_highlight_write_background: Some(rgba(0x92847466).into()),
|
||||||
terminal_background: Some(rgba(0xf2e5bcff).into()),
|
terminal_background: Some(rgba(0xf2e5bcff).into()),
|
||||||
terminal_ansi_bright_black: Some(rgba(0xb1a28aff).into()),
|
terminal_ansi_bright_black: Some(rgba(0xb1a28aff).into()),
|
||||||
terminal_ansi_bright_red: Some(rgba(0xdc8c7bff).into()),
|
terminal_ansi_bright_red: Some(rgba(0xdc8c7bff).into()),
|
||||||
|
@ -1627,16 +1896,52 @@ pub fn gruvbox() -> UserThemeFamily {
|
||||||
terminal_ansi_magenta: Some(rgba(0x7c6f64ff).into()),
|
terminal_ansi_magenta: Some(rgba(0x7c6f64ff).into()),
|
||||||
terminal_ansi_cyan: Some(rgba(0x437b59ff).into()),
|
terminal_ansi_cyan: Some(rgba(0x437b59ff).into()),
|
||||||
terminal_ansi_white: Some(rgba(0x282828ff).into()),
|
terminal_ansi_white: Some(rgba(0x282828ff).into()),
|
||||||
|
link_text_hover: Some(rgba(0x0b6678ff).into()),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
status: StatusColorsRefinement {
|
status: StatusColorsRefinement {
|
||||||
created: Some(rgba(0x958e43ff).into()),
|
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: Some(rgba(0x9d0408ff).into()),
|
||||||
|
deleted_background: Some(rgba(0xf4d1c9ff).into()),
|
||||||
|
deleted_border: Some(rgba(0xe8ac9eff).into()),
|
||||||
error: Some(rgba(0x9d0408ff).into()),
|
error: Some(rgba(0x9d0408ff).into()),
|
||||||
|
error_background: Some(rgba(0xf4d1c9ff).into()),
|
||||||
|
error_border: Some(rgba(0xe8ac9eff).into()),
|
||||||
|
hidden: Some(rgba(0x8a7c6fff).into()),
|
||||||
|
hidden_background: Some(rgba(0xd9c8a4ff).into()),
|
||||||
|
hidden_border: Some(rgba(0xd1c09eff).into()),
|
||||||
hint: Some(rgba(0x677562ff).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: Some(rgba(0xb57616ff).into()),
|
||||||
success: Some(rgba(0x282828ff).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: Some(rgba(0xb57616ff).into()),
|
||||||
|
warning_background: Some(rgba(0xf5e2d0ff).into()),
|
||||||
|
warning_border: Some(rgba(0xebccabff).into()),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
player: Some(PlayerColors(vec![
|
player: Some(PlayerColors(vec![
|
||||||
|
@ -1970,36 +2275,61 @@ pub fn gruvbox() -> UserThemeFamily {
|
||||||
appearance: Appearance::Dark,
|
appearance: Appearance::Dark,
|
||||||
styles: UserThemeStylesRefinement {
|
styles: UserThemeStylesRefinement {
|
||||||
colors: ThemeColorsRefinement {
|
colors: ThemeColorsRefinement {
|
||||||
border: Some(rgba(0x494340ff).into()),
|
border: Some(rgba(0x5b534dff).into()),
|
||||||
border_variant: Some(rgba(0x343130ff).into()),
|
border_variant: Some(rgba(0x5b534dff).into()),
|
||||||
|
border_focused: Some(rgba(0x303a36ff).into()),
|
||||||
|
border_selected: Some(rgba(0x303a36ff).into()),
|
||||||
|
border_transparent: Some(rgba(0x00000000).into()),
|
||||||
|
border_disabled: Some(rgba(0x544c48ff).into()),
|
||||||
elevated_surface_background: Some(rgba(0x393634ff).into()),
|
elevated_surface_background: Some(rgba(0x393634ff).into()),
|
||||||
|
surface_background: Some(rgba(0x393634ff).into()),
|
||||||
background: Some(rgba(0x4c4642ff).into()),
|
background: Some(rgba(0x4c4642ff).into()),
|
||||||
panel_background: Some(rgba(0x393634ff).into()),
|
panel_background: Some(rgba(0x393634ff).into()),
|
||||||
element_hover: Some(rgba(0x5b534d80).into()),
|
element_background: Some(rgba(0x393634ff).into()),
|
||||||
element_selected: Some(rgba(0x6e635a80).into()),
|
element_hover: Some(rgba(0x494340ff).into()),
|
||||||
|
element_active: Some(rgba(0x5b524cff).into()),
|
||||||
|
element_selected: Some(rgba(0x5b524cff).into()),
|
||||||
|
element_disabled: Some(rgba(0x393634ff).into()),
|
||||||
drop_target_background: Some(rgba(0xc5b59780).into()),
|
drop_target_background: Some(rgba(0xc5b59780).into()),
|
||||||
|
ghost_element_background: Some(rgba(0x00000000).into()),
|
||||||
|
ghost_element_hover: Some(rgba(0x494340ff).into()),
|
||||||
|
ghost_element_active: Some(rgba(0x5b524cff).into()),
|
||||||
|
ghost_element_selected: Some(rgba(0x5b524cff).into()),
|
||||||
|
ghost_element_disabled: Some(rgba(0x393634ff).into()),
|
||||||
text: Some(rgba(0xfbf1c7ff).into()),
|
text: Some(rgba(0xfbf1c7ff).into()),
|
||||||
text_muted: Some(rgba(0xc5b597ff).into()),
|
text_muted: Some(rgba(0xc5b597ff).into()),
|
||||||
text_placeholder: Some(rgba(0x776b61ff).into()),
|
text_placeholder: Some(rgba(0x9a8c79ff).into()),
|
||||||
text_disabled: Some(rgba(0xfbf1c7ff).into()),
|
text_disabled: Some(rgba(0x9a8c79ff).into()),
|
||||||
text_accent: Some(rgba(0x83a598ff).into()),
|
text_accent: Some(rgba(0x83a598ff).into()),
|
||||||
|
icon: Some(rgba(0xfbf1c7ff).into()),
|
||||||
|
icon_muted: Some(rgba(0xc5b597ff).into()),
|
||||||
|
icon_disabled: Some(rgba(0x9a8c79ff).into()),
|
||||||
|
icon_placeholder: Some(rgba(0xc5b597ff).into()),
|
||||||
|
icon_accent: Some(rgba(0x83a598ff).into()),
|
||||||
status_bar_background: Some(rgba(0x4c4642ff).into()),
|
status_bar_background: Some(rgba(0x4c4642ff).into()),
|
||||||
title_bar_background: Some(rgba(0x4c4642ff).into()),
|
title_bar_background: Some(rgba(0x4c4642ff).into()),
|
||||||
toolbar_background: Some(rgba(0x1d2021ff).into()),
|
toolbar_background: Some(rgba(0x1d2021ff).into()),
|
||||||
tab_bar_background: Some(rgba(0x393634ff).into()),
|
tab_bar_background: Some(rgba(0x393634ff).into()),
|
||||||
tab_inactive_background: Some(rgba(0x393634ff).into()),
|
tab_inactive_background: Some(rgba(0x393634ff).into()),
|
||||||
tab_active_background: Some(rgba(0x1d2021ff).into()),
|
tab_active_background: Some(rgba(0x1d2021ff).into()),
|
||||||
scrollbar_thumb_background: Some(rgba(0xfbf1c74d).into()),
|
scrollbar_thumb_background: Some(rgba(0xfbf1c74c).into()),
|
||||||
scrollbar_thumb_hover_background: Some(rgba(0xfbf1c74d).into()),
|
scrollbar_thumb_hover_background: Some(rgba(0x494340ff).into()),
|
||||||
scrollbar_thumb_border: Some(rgba(0x343130ff).into()),
|
scrollbar_thumb_border: Some(rgba(0x494340ff).into()),
|
||||||
|
scrollbar_track_background: Some(rgba(0x1d2021ff).into()),
|
||||||
scrollbar_track_border: Some(rgba(0x343130ff).into()),
|
scrollbar_track_border: Some(rgba(0x343130ff).into()),
|
||||||
editor_foreground: Some(rgba(0xebdbb2ff).into()),
|
editor_foreground: Some(rgba(0xebdbb2ff).into()),
|
||||||
editor_background: Some(rgba(0x1d2021ff).into()),
|
editor_background: Some(rgba(0x1d2021ff).into()),
|
||||||
editor_gutter_background: Some(rgba(0x1d2021ff).into()),
|
editor_gutter_background: Some(rgba(0x1d2021ff).into()),
|
||||||
|
editor_subheader_background: Some(rgba(0x393634ff).into()),
|
||||||
|
editor_active_line_background: Some(rgba(0x393634bf).into()),
|
||||||
|
editor_highlighted_line_background: Some(rgba(0x393634ff).into()),
|
||||||
editor_line_number: Some(rgba(0xfbf1c759).into()),
|
editor_line_number: Some(rgba(0xfbf1c759).into()),
|
||||||
editor_active_line_number: Some(rgba(0xfbf1c7ff).into()),
|
editor_active_line_number: Some(rgba(0xfbf1c7ff).into()),
|
||||||
|
editor_invisible: Some(rgba(0xc5b597ff).into()),
|
||||||
editor_wrap_guide: Some(rgba(0xfbf1c70d).into()),
|
editor_wrap_guide: Some(rgba(0xfbf1c70d).into()),
|
||||||
editor_active_wrap_guide: Some(rgba(0xfbf1c71a).into()),
|
editor_active_wrap_guide: Some(rgba(0xfbf1c71a).into()),
|
||||||
|
editor_document_highlight_read_background: Some(rgba(0x83a5981a).into()),
|
||||||
|
editor_document_highlight_write_background: Some(rgba(0x92847466).into()),
|
||||||
terminal_background: Some(rgba(0x1d2021ff).into()),
|
terminal_background: Some(rgba(0x1d2021ff).into()),
|
||||||
terminal_ansi_bright_black: Some(rgba(0x73675eff).into()),
|
terminal_ansi_bright_black: Some(rgba(0x73675eff).into()),
|
||||||
terminal_ansi_bright_red: Some(rgba(0x93211eff).into()),
|
terminal_ansi_bright_red: Some(rgba(0x93211eff).into()),
|
||||||
|
@ -2017,16 +2347,52 @@ pub fn gruvbox() -> UserThemeFamily {
|
||||||
terminal_ansi_magenta: Some(rgba(0xa89984ff).into()),
|
terminal_ansi_magenta: Some(rgba(0xa89984ff).into()),
|
||||||
terminal_ansi_cyan: Some(rgba(0x8ec07cff).into()),
|
terminal_ansi_cyan: Some(rgba(0x8ec07cff).into()),
|
||||||
terminal_ansi_white: Some(rgba(0xfbf1c7ff).into()),
|
terminal_ansi_white: Some(rgba(0xfbf1c7ff).into()),
|
||||||
|
link_text_hover: Some(rgba(0x83a598ff).into()),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
status: StatusColorsRefinement {
|
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: Some(rgba(0xb8bb27ff).into()),
|
||||||
deleted: Some(rgba(0xd0382bff).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: Some(rgba(0xfb4a35ff).into()),
|
||||||
|
error_background: Some(rgba(0x5a0a10ff).into()),
|
||||||
|
error_border: Some(rgba(0x771618ff).into()),
|
||||||
|
hidden: Some(rgba(0x9a8c79ff).into()),
|
||||||
|
hidden_background: Some(rgba(0x4c4642ff).into()),
|
||||||
|
hidden_border: Some(rgba(0x544c48ff).into()),
|
||||||
hint: Some(rgba(0x8d957eff).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: Some(rgba(0xf9bd30ff).into()),
|
||||||
success: Some(rgba(0xfbf1c7ff).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: Some(rgba(0xf9bd30ff).into()),
|
||||||
|
warning_background: Some(rgba(0x582f10ff).into()),
|
||||||
|
warning_border: Some(rgba(0x754916ff).into()),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
player: Some(PlayerColors(vec![
|
player: Some(PlayerColors(vec![
|
||||||
|
|
|
@ -20,36 +20,61 @@ pub fn one() -> UserThemeFamily {
|
||||||
appearance: Appearance::Light,
|
appearance: Appearance::Light,
|
||||||
styles: UserThemeStylesRefinement {
|
styles: UserThemeStylesRefinement {
|
||||||
colors: ThemeColorsRefinement {
|
colors: ThemeColorsRefinement {
|
||||||
border: Some(rgba(0xdfdfe0ff).into()),
|
border: Some(rgba(0xc9c9caff).into()),
|
||||||
border_variant: Some(rgba(0xeeeeeeff).into()),
|
border_variant: Some(rgba(0xc9c9caff).into()),
|
||||||
|
border_focused: Some(rgba(0xcbcdf6ff).into()),
|
||||||
|
border_selected: Some(rgba(0xcbcdf6ff).into()),
|
||||||
|
border_transparent: Some(rgba(0x00000000).into()),
|
||||||
|
border_disabled: Some(rgba(0xd3d3d4ff).into()),
|
||||||
elevated_surface_background: Some(rgba(0xebebecff).into()),
|
elevated_surface_background: Some(rgba(0xebebecff).into()),
|
||||||
|
surface_background: Some(rgba(0xebebecff).into()),
|
||||||
background: Some(rgba(0xdcdcddff).into()),
|
background: Some(rgba(0xdcdcddff).into()),
|
||||||
panel_background: Some(rgba(0xebebecff).into()),
|
panel_background: Some(rgba(0xebebecff).into()),
|
||||||
element_hover: Some(rgba(0xc9c9ca80).into()),
|
element_background: Some(rgba(0xebebecff).into()),
|
||||||
element_selected: Some(rgba(0xafafaf80).into()),
|
element_hover: Some(rgba(0xdfdfe0ff).into()),
|
||||||
|
element_active: Some(rgba(0xcacacaff).into()),
|
||||||
|
element_selected: Some(rgba(0xcacacaff).into()),
|
||||||
|
element_disabled: Some(rgba(0xebebecff).into()),
|
||||||
drop_target_background: Some(rgba(0x7f818880).into()),
|
drop_target_background: Some(rgba(0x7f818880).into()),
|
||||||
|
ghost_element_background: Some(rgba(0x00000000).into()),
|
||||||
|
ghost_element_hover: Some(rgba(0xdfdfe0ff).into()),
|
||||||
|
ghost_element_active: Some(rgba(0xcacacaff).into()),
|
||||||
|
ghost_element_selected: Some(rgba(0xcacacaff).into()),
|
||||||
|
ghost_element_disabled: Some(rgba(0xebebecff).into()),
|
||||||
text: Some(rgba(0x383a41ff).into()),
|
text: Some(rgba(0x383a41ff).into()),
|
||||||
text_muted: Some(rgba(0x7f8188ff).into()),
|
text_muted: Some(rgba(0x7f8188ff).into()),
|
||||||
text_placeholder: Some(rgba(0xa7a7a8ff).into()),
|
text_placeholder: Some(rgba(0xa1a1a3ff).into()),
|
||||||
text_disabled: Some(rgba(0x383a41ff).into()),
|
text_disabled: Some(rgba(0xa1a1a3ff).into()),
|
||||||
text_accent: Some(rgba(0x5c79e2ff).into()),
|
text_accent: Some(rgba(0x5c79e2ff).into()),
|
||||||
|
icon: Some(rgba(0x383a41ff).into()),
|
||||||
|
icon_muted: Some(rgba(0x7f8188ff).into()),
|
||||||
|
icon_disabled: Some(rgba(0xa1a1a3ff).into()),
|
||||||
|
icon_placeholder: Some(rgba(0x7f8188ff).into()),
|
||||||
|
icon_accent: Some(rgba(0x5c79e2ff).into()),
|
||||||
status_bar_background: Some(rgba(0xdcdcddff).into()),
|
status_bar_background: Some(rgba(0xdcdcddff).into()),
|
||||||
title_bar_background: Some(rgba(0xdcdcddff).into()),
|
title_bar_background: Some(rgba(0xdcdcddff).into()),
|
||||||
toolbar_background: Some(rgba(0xfafafaff).into()),
|
toolbar_background: Some(rgba(0xfafafaff).into()),
|
||||||
tab_bar_background: Some(rgba(0xebebecff).into()),
|
tab_bar_background: Some(rgba(0xebebecff).into()),
|
||||||
tab_inactive_background: Some(rgba(0xebebecff).into()),
|
tab_inactive_background: Some(rgba(0xebebecff).into()),
|
||||||
tab_active_background: Some(rgba(0xfafafaff).into()),
|
tab_active_background: Some(rgba(0xfafafaff).into()),
|
||||||
scrollbar_thumb_background: Some(rgba(0x383a414d).into()),
|
scrollbar_thumb_background: Some(rgba(0x383a414c).into()),
|
||||||
scrollbar_thumb_hover_background: Some(rgba(0x383a414d).into()),
|
scrollbar_thumb_hover_background: Some(rgba(0xdfdfe0ff).into()),
|
||||||
scrollbar_thumb_border: Some(rgba(0xeeeeeeff).into()),
|
scrollbar_thumb_border: Some(rgba(0xdfdfe0ff).into()),
|
||||||
|
scrollbar_track_background: Some(rgba(0xfafafaff).into()),
|
||||||
scrollbar_track_border: Some(rgba(0xeeeeeeff).into()),
|
scrollbar_track_border: Some(rgba(0xeeeeeeff).into()),
|
||||||
editor_foreground: Some(rgba(0x383a41ff).into()),
|
editor_foreground: Some(rgba(0x383a41ff).into()),
|
||||||
editor_background: Some(rgba(0xfafafaff).into()),
|
editor_background: Some(rgba(0xfafafaff).into()),
|
||||||
editor_gutter_background: Some(rgba(0xfafafaff).into()),
|
editor_gutter_background: Some(rgba(0xfafafaff).into()),
|
||||||
|
editor_subheader_background: Some(rgba(0xebebecff).into()),
|
||||||
|
editor_active_line_background: Some(rgba(0xebebecbf).into()),
|
||||||
|
editor_highlighted_line_background: Some(rgba(0xebebecff).into()),
|
||||||
editor_line_number: Some(rgba(0x383a4159).into()),
|
editor_line_number: Some(rgba(0x383a4159).into()),
|
||||||
editor_active_line_number: Some(rgba(0x383a41ff).into()),
|
editor_active_line_number: Some(rgba(0x383a41ff).into()),
|
||||||
|
editor_invisible: Some(rgba(0x7f8188ff).into()),
|
||||||
editor_wrap_guide: Some(rgba(0x383a410d).into()),
|
editor_wrap_guide: Some(rgba(0x383a410d).into()),
|
||||||
editor_active_wrap_guide: Some(rgba(0x383a411a).into()),
|
editor_active_wrap_guide: Some(rgba(0x383a411a).into()),
|
||||||
|
editor_document_highlight_read_background: Some(rgba(0x5c79e21a).into()),
|
||||||
|
editor_document_highlight_write_background: Some(rgba(0xa3a3a466).into()),
|
||||||
terminal_background: Some(rgba(0xfafafaff).into()),
|
terminal_background: Some(rgba(0xfafafaff).into()),
|
||||||
terminal_ansi_bright_black: Some(rgba(0xaaaaaaff).into()),
|
terminal_ansi_bright_black: Some(rgba(0xaaaaaaff).into()),
|
||||||
terminal_ansi_bright_red: Some(rgba(0xf0b0a4ff).into()),
|
terminal_ansi_bright_red: Some(rgba(0xf0b0a4ff).into()),
|
||||||
|
@ -67,16 +92,52 @@ pub fn one() -> UserThemeFamily {
|
||||||
terminal_ansi_magenta: Some(rgba(0x994fa6ff).into()),
|
terminal_ansi_magenta: Some(rgba(0x994fa6ff).into()),
|
||||||
terminal_ansi_cyan: Some(rgba(0x3b82b7ff).into()),
|
terminal_ansi_cyan: Some(rgba(0x3b82b7ff).into()),
|
||||||
terminal_ansi_white: Some(rgba(0x383a41ff).into()),
|
terminal_ansi_white: Some(rgba(0x383a41ff).into()),
|
||||||
|
link_text_hover: Some(rgba(0x5c79e2ff).into()),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
status: StatusColorsRefinement {
|
status: StatusColorsRefinement {
|
||||||
created: Some(rgba(0x84b278ff).into()),
|
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: Some(rgba(0xd36151ff).into()),
|
||||||
|
deleted_background: Some(rgba(0xfbdfd9ff).into()),
|
||||||
|
deleted_border: Some(rgba(0xf6c6bdff).into()),
|
||||||
error: Some(rgba(0xd36151ff).into()),
|
error: Some(rgba(0xd36151ff).into()),
|
||||||
|
error_background: Some(rgba(0xfbdfd9ff).into()),
|
||||||
|
error_border: Some(rgba(0xf6c6bdff).into()),
|
||||||
|
hidden: Some(rgba(0xa1a1a3ff).into()),
|
||||||
|
hidden_background: Some(rgba(0xdcdcddff).into()),
|
||||||
|
hidden_border: Some(rgba(0xd3d3d4ff).into()),
|
||||||
hint: Some(rgba(0x9295beff).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: Some(rgba(0xdec184ff).into()),
|
||||||
success: Some(rgba(0x383a41ff).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: Some(rgba(0xdec184ff).into()),
|
||||||
|
warning_background: Some(rgba(0xfaf2e6ff).into()),
|
||||||
|
warning_border: Some(rgba(0xf5e8d2ff).into()),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
player: Some(PlayerColors(vec![
|
player: Some(PlayerColors(vec![
|
||||||
|
@ -410,36 +471,61 @@ pub fn one() -> UserThemeFamily {
|
||||||
appearance: Appearance::Dark,
|
appearance: Appearance::Dark,
|
||||||
styles: UserThemeStylesRefinement {
|
styles: UserThemeStylesRefinement {
|
||||||
colors: ThemeColorsRefinement {
|
colors: ThemeColorsRefinement {
|
||||||
border: Some(rgba(0x363c46ff).into()),
|
border: Some(rgba(0x464b57ff).into()),
|
||||||
border_variant: Some(rgba(0x2e333cff).into()),
|
border_variant: Some(rgba(0x464b57ff).into()),
|
||||||
|
border_focused: Some(rgba(0x293c5bff).into()),
|
||||||
|
border_selected: Some(rgba(0x293c5bff).into()),
|
||||||
|
border_transparent: Some(rgba(0x00000000).into()),
|
||||||
|
border_disabled: Some(rgba(0x414754ff).into()),
|
||||||
elevated_surface_background: Some(rgba(0x2f343eff).into()),
|
elevated_surface_background: Some(rgba(0x2f343eff).into()),
|
||||||
|
surface_background: Some(rgba(0x2f343eff).into()),
|
||||||
background: Some(rgba(0x3b414dff).into()),
|
background: Some(rgba(0x3b414dff).into()),
|
||||||
panel_background: Some(rgba(0x2f343eff).into()),
|
panel_background: Some(rgba(0x2f343eff).into()),
|
||||||
element_hover: Some(rgba(0x464b5780).into()),
|
element_background: Some(rgba(0x2f343eff).into()),
|
||||||
element_selected: Some(rgba(0x4f545e80).into()),
|
element_hover: Some(rgba(0x363c46ff).into()),
|
||||||
|
element_active: Some(rgba(0x454a56ff).into()),
|
||||||
|
element_selected: Some(rgba(0x454a56ff).into()),
|
||||||
|
element_disabled: Some(rgba(0x2f343eff).into()),
|
||||||
drop_target_background: Some(rgba(0x83899480).into()),
|
drop_target_background: Some(rgba(0x83899480).into()),
|
||||||
|
ghost_element_background: Some(rgba(0x00000000).into()),
|
||||||
|
ghost_element_hover: Some(rgba(0x363c46ff).into()),
|
||||||
|
ghost_element_active: Some(rgba(0x454a56ff).into()),
|
||||||
|
ghost_element_selected: Some(rgba(0x454a56ff).into()),
|
||||||
|
ghost_element_disabled: Some(rgba(0x2f343eff).into()),
|
||||||
text: Some(rgba(0xc8ccd4ff).into()),
|
text: Some(rgba(0xc8ccd4ff).into()),
|
||||||
text_muted: Some(rgba(0x838994ff).into()),
|
text_muted: Some(rgba(0x838994ff).into()),
|
||||||
text_placeholder: Some(rgba(0x545862ff).into()),
|
text_placeholder: Some(rgba(0x555a63ff).into()),
|
||||||
text_disabled: Some(rgba(0xc8ccd4ff).into()),
|
text_disabled: Some(rgba(0x555a63ff).into()),
|
||||||
text_accent: Some(rgba(0x74ade8ff).into()),
|
text_accent: Some(rgba(0x74ade8ff).into()),
|
||||||
|
icon: Some(rgba(0xc8ccd4ff).into()),
|
||||||
|
icon_muted: Some(rgba(0x838994ff).into()),
|
||||||
|
icon_disabled: Some(rgba(0x555a63ff).into()),
|
||||||
|
icon_placeholder: Some(rgba(0x838994ff).into()),
|
||||||
|
icon_accent: Some(rgba(0x74ade8ff).into()),
|
||||||
status_bar_background: Some(rgba(0x3b414dff).into()),
|
status_bar_background: Some(rgba(0x3b414dff).into()),
|
||||||
title_bar_background: Some(rgba(0x3b414dff).into()),
|
title_bar_background: Some(rgba(0x3b414dff).into()),
|
||||||
toolbar_background: Some(rgba(0x282c34ff).into()),
|
toolbar_background: Some(rgba(0x282c34ff).into()),
|
||||||
tab_bar_background: Some(rgba(0x2f343eff).into()),
|
tab_bar_background: Some(rgba(0x2f343eff).into()),
|
||||||
tab_inactive_background: Some(rgba(0x2f343eff).into()),
|
tab_inactive_background: Some(rgba(0x2f343eff).into()),
|
||||||
tab_active_background: Some(rgba(0x282c34ff).into()),
|
tab_active_background: Some(rgba(0x282c34ff).into()),
|
||||||
scrollbar_thumb_background: Some(rgba(0xc8ccd44d).into()),
|
scrollbar_thumb_background: Some(rgba(0xc8ccd44c).into()),
|
||||||
scrollbar_thumb_hover_background: Some(rgba(0xc8ccd44d).into()),
|
scrollbar_thumb_hover_background: Some(rgba(0x363c46ff).into()),
|
||||||
scrollbar_thumb_border: Some(rgba(0x2e333cff).into()),
|
scrollbar_thumb_border: Some(rgba(0x363c46ff).into()),
|
||||||
|
scrollbar_track_background: Some(rgba(0x282c34ff).into()),
|
||||||
scrollbar_track_border: Some(rgba(0x2e333cff).into()),
|
scrollbar_track_border: Some(rgba(0x2e333cff).into()),
|
||||||
editor_foreground: Some(rgba(0xacb2beff).into()),
|
editor_foreground: Some(rgba(0xacb2beff).into()),
|
||||||
editor_background: Some(rgba(0x282c34ff).into()),
|
editor_background: Some(rgba(0x282c34ff).into()),
|
||||||
editor_gutter_background: Some(rgba(0x282c34ff).into()),
|
editor_gutter_background: Some(rgba(0x282c34ff).into()),
|
||||||
|
editor_subheader_background: Some(rgba(0x2f343eff).into()),
|
||||||
|
editor_active_line_background: Some(rgba(0x2f343ebf).into()),
|
||||||
|
editor_highlighted_line_background: Some(rgba(0x2f343eff).into()),
|
||||||
editor_line_number: Some(rgba(0xc8ccd459).into()),
|
editor_line_number: Some(rgba(0xc8ccd459).into()),
|
||||||
editor_active_line_number: Some(rgba(0xc8ccd4ff).into()),
|
editor_active_line_number: Some(rgba(0xc8ccd4ff).into()),
|
||||||
|
editor_invisible: Some(rgba(0x838994ff).into()),
|
||||||
editor_wrap_guide: Some(rgba(0xc8ccd40d).into()),
|
editor_wrap_guide: Some(rgba(0xc8ccd40d).into()),
|
||||||
editor_active_wrap_guide: Some(rgba(0xc8ccd41a).into()),
|
editor_active_wrap_guide: Some(rgba(0xc8ccd41a).into()),
|
||||||
|
editor_document_highlight_read_background: Some(rgba(0x74ade81a).into()),
|
||||||
|
editor_document_highlight_write_background: Some(rgba(0x555a6366).into()),
|
||||||
terminal_background: Some(rgba(0x282c34ff).into()),
|
terminal_background: Some(rgba(0x282c34ff).into()),
|
||||||
terminal_ansi_bright_black: Some(rgba(0x525661ff).into()),
|
terminal_ansi_bright_black: Some(rgba(0x525661ff).into()),
|
||||||
terminal_ansi_bright_red: Some(rgba(0x673a3cff).into()),
|
terminal_ansi_bright_red: Some(rgba(0x673a3cff).into()),
|
||||||
|
@ -457,16 +543,52 @@ pub fn one() -> UserThemeFamily {
|
||||||
terminal_ansi_magenta: Some(rgba(0xbe5046ff).into()),
|
terminal_ansi_magenta: Some(rgba(0xbe5046ff).into()),
|
||||||
terminal_ansi_cyan: Some(rgba(0x6fb4c0ff).into()),
|
terminal_ansi_cyan: Some(rgba(0x6fb4c0ff).into()),
|
||||||
terminal_ansi_white: Some(rgba(0xc8ccd4ff).into()),
|
terminal_ansi_white: Some(rgba(0xc8ccd4ff).into()),
|
||||||
|
link_text_hover: Some(rgba(0x74ade8ff).into()),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
status: StatusColorsRefinement {
|
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: Some(rgba(0xa1c181ff).into()),
|
||||||
deleted: Some(rgba(0xa45a5eff).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: Some(rgba(0xd07277ff).into()),
|
||||||
|
error_background: Some(rgba(0x301b1cff).into()),
|
||||||
|
error_border: Some(rgba(0x4c2b2cff).into()),
|
||||||
|
hidden: Some(rgba(0x555a63ff).into()),
|
||||||
|
hidden_background: Some(rgba(0x3b414dff).into()),
|
||||||
|
hidden_border: Some(rgba(0x414754ff).into()),
|
||||||
hint: Some(rgba(0x5b708aff).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: Some(rgba(0xdec184ff).into()),
|
||||||
success: Some(rgba(0xc8ccd4ff).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: Some(rgba(0xdec184ff).into()),
|
||||||
|
warning_background: Some(rgba(0x41331dff).into()),
|
||||||
|
warning_border: Some(rgba(0x5d4c2fff).into()),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
player: Some(PlayerColors(vec![
|
player: Some(PlayerColors(vec![
|
||||||
|
|
|
@ -20,36 +20,61 @@ pub fn rose_pine() -> UserThemeFamily {
|
||||||
appearance: Appearance::Light,
|
appearance: Appearance::Light,
|
||||||
styles: UserThemeStylesRefinement {
|
styles: UserThemeStylesRefinement {
|
||||||
colors: ThemeColorsRefinement {
|
colors: ThemeColorsRefinement {
|
||||||
border: Some(rgba(0xe5e0dfff).into()),
|
border: Some(rgba(0xdcd6d5ff).into()),
|
||||||
border_variant: Some(rgba(0xfdf8f1ff).into()),
|
border_variant: Some(rgba(0xdcd6d5ff).into()),
|
||||||
|
border_focused: Some(rgba(0xc3d7dbff).into()),
|
||||||
|
border_selected: Some(rgba(0xc3d7dbff).into()),
|
||||||
|
border_transparent: Some(rgba(0x00000000).into()),
|
||||||
|
border_disabled: Some(rgba(0xd0cccfff).into()),
|
||||||
elevated_surface_background: Some(rgba(0xfef9f2ff).into()),
|
elevated_surface_background: Some(rgba(0xfef9f2ff).into()),
|
||||||
|
surface_background: Some(rgba(0xfef9f2ff).into()),
|
||||||
background: Some(rgba(0xdcd8d8ff).into()),
|
background: Some(rgba(0xdcd8d8ff).into()),
|
||||||
panel_background: Some(rgba(0xfef9f2ff).into()),
|
panel_background: Some(rgba(0xfef9f2ff).into()),
|
||||||
element_hover: Some(rgba(0xdcd6d580).into()),
|
element_background: Some(rgba(0xfef9f2ff).into()),
|
||||||
element_selected: Some(rgba(0xc1bac180).into()),
|
element_hover: Some(rgba(0xe5e0dfff).into()),
|
||||||
|
element_active: Some(rgba(0xdbd5d4ff).into()),
|
||||||
|
element_selected: Some(rgba(0xdbd5d4ff).into()),
|
||||||
|
element_disabled: Some(rgba(0xfef9f2ff).into()),
|
||||||
drop_target_background: Some(rgba(0x706c8c80).into()),
|
drop_target_background: Some(rgba(0x706c8c80).into()),
|
||||||
|
ghost_element_background: Some(rgba(0x00000000).into()),
|
||||||
|
ghost_element_hover: Some(rgba(0xe5e0dfff).into()),
|
||||||
|
ghost_element_active: Some(rgba(0xdbd5d4ff).into()),
|
||||||
|
ghost_element_selected: Some(rgba(0xdbd5d4ff).into()),
|
||||||
|
ghost_element_disabled: Some(rgba(0xfef9f2ff).into()),
|
||||||
text: Some(rgba(0x575279ff).into()),
|
text: Some(rgba(0x575279ff).into()),
|
||||||
text_muted: Some(rgba(0x706c8cff).into()),
|
text_muted: Some(rgba(0x706c8cff).into()),
|
||||||
text_placeholder: Some(rgba(0xb1abb5ff).into()),
|
text_placeholder: Some(rgba(0x938fa3ff).into()),
|
||||||
text_disabled: Some(rgba(0x575279ff).into()),
|
text_disabled: Some(rgba(0x938fa3ff).into()),
|
||||||
text_accent: Some(rgba(0x57949fff).into()),
|
text_accent: Some(rgba(0x57949fff).into()),
|
||||||
|
icon: Some(rgba(0x575279ff).into()),
|
||||||
|
icon_muted: Some(rgba(0x706c8cff).into()),
|
||||||
|
icon_disabled: Some(rgba(0x938fa3ff).into()),
|
||||||
|
icon_placeholder: Some(rgba(0x706c8cff).into()),
|
||||||
|
icon_accent: Some(rgba(0x57949fff).into()),
|
||||||
status_bar_background: Some(rgba(0xdcd8d8ff).into()),
|
status_bar_background: Some(rgba(0xdcd8d8ff).into()),
|
||||||
title_bar_background: Some(rgba(0xdcd8d8ff).into()),
|
title_bar_background: Some(rgba(0xdcd8d8ff).into()),
|
||||||
toolbar_background: Some(rgba(0xfaf4edff).into()),
|
toolbar_background: Some(rgba(0xfaf4edff).into()),
|
||||||
tab_bar_background: Some(rgba(0xfef9f2ff).into()),
|
tab_bar_background: Some(rgba(0xfef9f2ff).into()),
|
||||||
tab_inactive_background: Some(rgba(0xfef9f2ff).into()),
|
tab_inactive_background: Some(rgba(0xfef9f2ff).into()),
|
||||||
tab_active_background: Some(rgba(0xfaf4edff).into()),
|
tab_active_background: Some(rgba(0xfaf4edff).into()),
|
||||||
scrollbar_thumb_background: Some(rgba(0x5752794d).into()),
|
scrollbar_thumb_background: Some(rgba(0x5752794c).into()),
|
||||||
scrollbar_thumb_hover_background: Some(rgba(0x5752794d).into()),
|
scrollbar_thumb_hover_background: Some(rgba(0xe5e0dfff).into()),
|
||||||
scrollbar_thumb_border: Some(rgba(0xfdf8f1ff).into()),
|
scrollbar_thumb_border: Some(rgba(0xe5e0dfff).into()),
|
||||||
|
scrollbar_track_background: Some(rgba(0xfaf4edff).into()),
|
||||||
scrollbar_track_border: Some(rgba(0xfdf8f1ff).into()),
|
scrollbar_track_border: Some(rgba(0xfdf8f1ff).into()),
|
||||||
editor_foreground: Some(rgba(0x575279ff).into()),
|
editor_foreground: Some(rgba(0x575279ff).into()),
|
||||||
editor_background: Some(rgba(0xfaf4edff).into()),
|
editor_background: Some(rgba(0xfaf4edff).into()),
|
||||||
editor_gutter_background: Some(rgba(0xfaf4edff).into()),
|
editor_gutter_background: Some(rgba(0xfaf4edff).into()),
|
||||||
|
editor_subheader_background: Some(rgba(0xfef9f2ff).into()),
|
||||||
|
editor_active_line_background: Some(rgba(0xfef9f2bf).into()),
|
||||||
|
editor_highlighted_line_background: Some(rgba(0xfef9f2ff).into()),
|
||||||
editor_line_number: Some(rgba(0x57527959).into()),
|
editor_line_number: Some(rgba(0x57527959).into()),
|
||||||
editor_active_line_number: Some(rgba(0x575279ff).into()),
|
editor_active_line_number: Some(rgba(0x575279ff).into()),
|
||||||
|
editor_invisible: Some(rgba(0x706c8cff).into()),
|
||||||
editor_wrap_guide: Some(rgba(0x5752790d).into()),
|
editor_wrap_guide: Some(rgba(0x5752790d).into()),
|
||||||
editor_active_wrap_guide: Some(rgba(0x5752791a).into()),
|
editor_active_wrap_guide: Some(rgba(0x5752791a).into()),
|
||||||
|
editor_document_highlight_read_background: Some(rgba(0x57949f1a).into()),
|
||||||
|
editor_document_highlight_write_background: Some(rgba(0x9691a466).into()),
|
||||||
terminal_background: Some(rgba(0xfaf4edff).into()),
|
terminal_background: Some(rgba(0xfaf4edff).into()),
|
||||||
terminal_ansi_bright_black: Some(rgba(0xb8b2baff).into()),
|
terminal_ansi_bright_black: Some(rgba(0xb8b2baff).into()),
|
||||||
terminal_ansi_bright_red: Some(rgba(0xdcb0bbff).into()),
|
terminal_ansi_bright_red: Some(rgba(0xdcb0bbff).into()),
|
||||||
|
@ -67,16 +92,52 @@ pub fn rose_pine() -> UserThemeFamily {
|
||||||
terminal_ansi_magenta: Some(rgba(0x7c697fff).into()),
|
terminal_ansi_magenta: Some(rgba(0x7c697fff).into()),
|
||||||
terminal_ansi_cyan: Some(rgba(0x2a6983ff).into()),
|
terminal_ansi_cyan: Some(rgba(0x2a6983ff).into()),
|
||||||
terminal_ansi_white: Some(rgba(0x575279ff).into()),
|
terminal_ansi_white: Some(rgba(0x575279ff).into()),
|
||||||
|
link_text_hover: Some(rgba(0x57949fff).into()),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
status: StatusColorsRefinement {
|
status: StatusColorsRefinement {
|
||||||
created: Some(rgba(0x6bbca3ff).into()),
|
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: Some(rgba(0xb4647aff).into()),
|
||||||
|
deleted_background: Some(rgba(0xf1dfe3ff).into()),
|
||||||
|
deleted_border: Some(rgba(0xe6c6cdff).into()),
|
||||||
error: Some(rgba(0xb4647aff).into()),
|
error: Some(rgba(0xb4647aff).into()),
|
||||||
|
error_background: Some(rgba(0xf1dfe3ff).into()),
|
||||||
|
error_border: Some(rgba(0xe6c6cdff).into()),
|
||||||
|
hidden: Some(rgba(0x938fa3ff).into()),
|
||||||
|
hidden_background: Some(rgba(0xdcd8d8ff).into()),
|
||||||
|
hidden_border: Some(rgba(0xd0cccfff).into()),
|
||||||
hint: Some(rgba(0x7a92aaff).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: Some(rgba(0xe99d35ff).into()),
|
||||||
success: Some(rgba(0x575279ff).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: Some(rgba(0xe99d35ff).into()),
|
||||||
|
warning_background: Some(rgba(0xffebd6ff).into()),
|
||||||
|
warning_border: Some(rgba(0xffdab7ff).into()),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
player: Some(PlayerColors(vec![
|
player: Some(PlayerColors(vec![
|
||||||
|
@ -417,36 +478,61 @@ pub fn rose_pine() -> UserThemeFamily {
|
||||||
appearance: Appearance::Dark,
|
appearance: Appearance::Dark,
|
||||||
styles: UserThemeStylesRefinement {
|
styles: UserThemeStylesRefinement {
|
||||||
colors: ThemeColorsRefinement {
|
colors: ThemeColorsRefinement {
|
||||||
border: Some(rgba(0x322f48ff).into()),
|
border: Some(rgba(0x504c68ff).into()),
|
||||||
border_variant: Some(rgba(0x27243bff).into()),
|
border_variant: Some(rgba(0x504c68ff).into()),
|
||||||
|
border_focused: Some(rgba(0x435255ff).into()),
|
||||||
|
border_selected: Some(rgba(0x435255ff).into()),
|
||||||
|
border_transparent: Some(rgba(0x00000000).into()),
|
||||||
|
border_disabled: Some(rgba(0x44415bff).into()),
|
||||||
elevated_surface_background: Some(rgba(0x28253cff).into()),
|
elevated_surface_background: Some(rgba(0x28253cff).into()),
|
||||||
|
surface_background: Some(rgba(0x28253cff).into()),
|
||||||
background: Some(rgba(0x38354eff).into()),
|
background: Some(rgba(0x38354eff).into()),
|
||||||
panel_background: Some(rgba(0x28253cff).into()),
|
panel_background: Some(rgba(0x28253cff).into()),
|
||||||
element_hover: Some(rgba(0x504c6880).into()),
|
element_background: Some(rgba(0x28253cff).into()),
|
||||||
element_selected: Some(rgba(0x45415d80).into()),
|
element_hover: Some(rgba(0x322f48ff).into()),
|
||||||
|
element_active: Some(rgba(0x4f4b66ff).into()),
|
||||||
|
element_selected: Some(rgba(0x4f4b66ff).into()),
|
||||||
|
element_disabled: Some(rgba(0x28253cff).into()),
|
||||||
drop_target_background: Some(rgba(0x85819e80).into()),
|
drop_target_background: Some(rgba(0x85819e80).into()),
|
||||||
|
ghost_element_background: Some(rgba(0x00000000).into()),
|
||||||
|
ghost_element_hover: Some(rgba(0x322f48ff).into()),
|
||||||
|
ghost_element_active: Some(rgba(0x4f4b66ff).into()),
|
||||||
|
ghost_element_selected: Some(rgba(0x4f4b66ff).into()),
|
||||||
|
ghost_element_disabled: Some(rgba(0x28253cff).into()),
|
||||||
text: Some(rgba(0xe0def4ff).into()),
|
text: Some(rgba(0xe0def4ff).into()),
|
||||||
text_muted: Some(rgba(0x85819eff).into()),
|
text_muted: Some(rgba(0x85819eff).into()),
|
||||||
text_placeholder: Some(rgba(0x3a3653ff).into()),
|
text_placeholder: Some(rgba(0x615d7aff).into()),
|
||||||
text_disabled: Some(rgba(0xe0def4ff).into()),
|
text_disabled: Some(rgba(0x615d7aff).into()),
|
||||||
text_accent: Some(rgba(0x9cced7ff).into()),
|
text_accent: Some(rgba(0x9cced7ff).into()),
|
||||||
|
icon: Some(rgba(0xe0def4ff).into()),
|
||||||
|
icon_muted: Some(rgba(0x85819eff).into()),
|
||||||
|
icon_disabled: Some(rgba(0x615d7aff).into()),
|
||||||
|
icon_placeholder: Some(rgba(0x85819eff).into()),
|
||||||
|
icon_accent: Some(rgba(0x9cced7ff).into()),
|
||||||
status_bar_background: Some(rgba(0x38354eff).into()),
|
status_bar_background: Some(rgba(0x38354eff).into()),
|
||||||
title_bar_background: Some(rgba(0x38354eff).into()),
|
title_bar_background: Some(rgba(0x38354eff).into()),
|
||||||
toolbar_background: Some(rgba(0x232136ff).into()),
|
toolbar_background: Some(rgba(0x232136ff).into()),
|
||||||
tab_bar_background: Some(rgba(0x28253cff).into()),
|
tab_bar_background: Some(rgba(0x28253cff).into()),
|
||||||
tab_inactive_background: Some(rgba(0x28253cff).into()),
|
tab_inactive_background: Some(rgba(0x28253cff).into()),
|
||||||
tab_active_background: Some(rgba(0x232136ff).into()),
|
tab_active_background: Some(rgba(0x232136ff).into()),
|
||||||
scrollbar_thumb_background: Some(rgba(0xe0def44d).into()),
|
scrollbar_thumb_background: Some(rgba(0xe0def44c).into()),
|
||||||
scrollbar_thumb_hover_background: Some(rgba(0xe0def44d).into()),
|
scrollbar_thumb_hover_background: Some(rgba(0x322f48ff).into()),
|
||||||
scrollbar_thumb_border: Some(rgba(0x27243bff).into()),
|
scrollbar_thumb_border: Some(rgba(0x322f48ff).into()),
|
||||||
|
scrollbar_track_background: Some(rgba(0x232136ff).into()),
|
||||||
scrollbar_track_border: Some(rgba(0x27243bff).into()),
|
scrollbar_track_border: Some(rgba(0x27243bff).into()),
|
||||||
editor_foreground: Some(rgba(0xe0def4ff).into()),
|
editor_foreground: Some(rgba(0xe0def4ff).into()),
|
||||||
editor_background: Some(rgba(0x232136ff).into()),
|
editor_background: Some(rgba(0x232136ff).into()),
|
||||||
editor_gutter_background: Some(rgba(0x232136ff).into()),
|
editor_gutter_background: Some(rgba(0x232136ff).into()),
|
||||||
|
editor_subheader_background: Some(rgba(0x28253cff).into()),
|
||||||
|
editor_active_line_background: Some(rgba(0x28253cbf).into()),
|
||||||
|
editor_highlighted_line_background: Some(rgba(0x28253cff).into()),
|
||||||
editor_line_number: Some(rgba(0xe0def459).into()),
|
editor_line_number: Some(rgba(0xe0def459).into()),
|
||||||
editor_active_line_number: Some(rgba(0xe0def4ff).into()),
|
editor_active_line_number: Some(rgba(0xe0def4ff).into()),
|
||||||
|
editor_invisible: Some(rgba(0x85819eff).into()),
|
||||||
editor_wrap_guide: Some(rgba(0xe0def40d).into()),
|
editor_wrap_guide: Some(rgba(0xe0def40d).into()),
|
||||||
editor_active_wrap_guide: Some(rgba(0xe0def41a).into()),
|
editor_active_wrap_guide: Some(rgba(0xe0def41a).into()),
|
||||||
|
editor_document_highlight_read_background: Some(rgba(0x9cced71a).into()),
|
||||||
|
editor_document_highlight_write_background: Some(rgba(0x59557166).into()),
|
||||||
terminal_background: Some(rgba(0x232136ff).into()),
|
terminal_background: Some(rgba(0x232136ff).into()),
|
||||||
terminal_ansi_bright_black: Some(rgba(0x3f3b58ff).into()),
|
terminal_ansi_bright_black: Some(rgba(0x3f3b58ff).into()),
|
||||||
terminal_ansi_bright_red: Some(rgba(0x7e3647ff).into()),
|
terminal_ansi_bright_red: Some(rgba(0x7e3647ff).into()),
|
||||||
|
@ -464,16 +550,52 @@ pub fn rose_pine() -> UserThemeFamily {
|
||||||
terminal_ansi_magenta: Some(rgba(0xa784a1ff).into()),
|
terminal_ansi_magenta: Some(rgba(0xa784a1ff).into()),
|
||||||
terminal_ansi_cyan: Some(rgba(0x3f8fb0ff).into()),
|
terminal_ansi_cyan: Some(rgba(0x3f8fb0ff).into()),
|
||||||
terminal_ansi_white: Some(rgba(0xe0def4ff).into()),
|
terminal_ansi_white: Some(rgba(0xe0def4ff).into()),
|
||||||
|
link_text_hover: Some(rgba(0x9cced7ff).into()),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
status: StatusColorsRefinement {
|
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: Some(rgba(0x5dc2a3ff).into()),
|
||||||
deleted: Some(rgba(0xbe5773ff).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: Some(rgba(0xea6f92ff).into()),
|
||||||
|
error_background: Some(rgba(0x431820ff).into()),
|
||||||
|
error_border: Some(rgba(0x612834ff).into()),
|
||||||
|
hidden: Some(rgba(0x615d7aff).into()),
|
||||||
|
hidden_background: Some(rgba(0x38354eff).into()),
|
||||||
|
hidden_border: Some(rgba(0x44415bff).into()),
|
||||||
hint: Some(rgba(0x728aa2ff).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: Some(rgba(0xf5c177ff).into()),
|
||||||
success: Some(rgba(0xe0def4ff).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: Some(rgba(0xf5c177ff).into()),
|
||||||
|
warning_background: Some(rgba(0x50341aff).into()),
|
||||||
|
warning_border: Some(rgba(0x6d4d2bff).into()),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
player: Some(PlayerColors(vec![
|
player: Some(PlayerColors(vec![
|
||||||
|
@ -814,36 +936,61 @@ pub fn rose_pine() -> UserThemeFamily {
|
||||||
appearance: Appearance::Dark,
|
appearance: Appearance::Dark,
|
||||||
styles: UserThemeStylesRefinement {
|
styles: UserThemeStylesRefinement {
|
||||||
colors: ThemeColorsRefinement {
|
colors: ThemeColorsRefinement {
|
||||||
border: Some(rgba(0x232132ff).into()),
|
border: Some(rgba(0x423f55ff).into()),
|
||||||
border_variant: Some(rgba(0x1c1a29ff).into()),
|
border_variant: Some(rgba(0x423f55ff).into()),
|
||||||
|
border_focused: Some(rgba(0x435255ff).into()),
|
||||||
|
border_selected: Some(rgba(0x435255ff).into()),
|
||||||
|
border_transparent: Some(rgba(0x00000000).into()),
|
||||||
|
border_disabled: Some(rgba(0x353347ff).into()),
|
||||||
elevated_surface_background: Some(rgba(0x1d1b2aff).into()),
|
elevated_surface_background: Some(rgba(0x1d1b2aff).into()),
|
||||||
|
surface_background: Some(rgba(0x1d1b2aff).into()),
|
||||||
background: Some(rgba(0x292739ff).into()),
|
background: Some(rgba(0x292739ff).into()),
|
||||||
panel_background: Some(rgba(0x1d1b2aff).into()),
|
panel_background: Some(rgba(0x1d1b2aff).into()),
|
||||||
element_hover: Some(rgba(0x423f5580).into()),
|
element_background: Some(rgba(0x1d1b2aff).into()),
|
||||||
element_selected: Some(rgba(0x47445b80).into()),
|
element_hover: Some(rgba(0x232132ff).into()),
|
||||||
|
element_active: Some(rgba(0x403e53ff).into()),
|
||||||
|
element_selected: Some(rgba(0x403e53ff).into()),
|
||||||
|
element_disabled: Some(rgba(0x1d1b2aff).into()),
|
||||||
drop_target_background: Some(rgba(0x75718e80).into()),
|
drop_target_background: Some(rgba(0x75718e80).into()),
|
||||||
|
ghost_element_background: Some(rgba(0x00000000).into()),
|
||||||
|
ghost_element_hover: Some(rgba(0x232132ff).into()),
|
||||||
|
ghost_element_active: Some(rgba(0x403e53ff).into()),
|
||||||
|
ghost_element_selected: Some(rgba(0x403e53ff).into()),
|
||||||
|
ghost_element_disabled: Some(rgba(0x1d1b2aff).into()),
|
||||||
text: Some(rgba(0xe0def4ff).into()),
|
text: Some(rgba(0xe0def4ff).into()),
|
||||||
text_muted: Some(rgba(0x75718eff).into()),
|
text_muted: Some(rgba(0x75718eff).into()),
|
||||||
text_placeholder: Some(rgba(0x3b384fff).into()),
|
text_placeholder: Some(rgba(0x2f2b43ff).into()),
|
||||||
text_disabled: Some(rgba(0xe0def4ff).into()),
|
text_disabled: Some(rgba(0x2f2b43ff).into()),
|
||||||
text_accent: Some(rgba(0x9cced7ff).into()),
|
text_accent: Some(rgba(0x9cced7ff).into()),
|
||||||
|
icon: Some(rgba(0xe0def4ff).into()),
|
||||||
|
icon_muted: Some(rgba(0x75718eff).into()),
|
||||||
|
icon_disabled: Some(rgba(0x2f2b43ff).into()),
|
||||||
|
icon_placeholder: Some(rgba(0x75718eff).into()),
|
||||||
|
icon_accent: Some(rgba(0x9cced7ff).into()),
|
||||||
status_bar_background: Some(rgba(0x292739ff).into()),
|
status_bar_background: Some(rgba(0x292739ff).into()),
|
||||||
title_bar_background: Some(rgba(0x292739ff).into()),
|
title_bar_background: Some(rgba(0x292739ff).into()),
|
||||||
toolbar_background: Some(rgba(0x191724ff).into()),
|
toolbar_background: Some(rgba(0x191724ff).into()),
|
||||||
tab_bar_background: Some(rgba(0x1d1b2aff).into()),
|
tab_bar_background: Some(rgba(0x1d1b2aff).into()),
|
||||||
tab_inactive_background: Some(rgba(0x1d1b2aff).into()),
|
tab_inactive_background: Some(rgba(0x1d1b2aff).into()),
|
||||||
tab_active_background: Some(rgba(0x191724ff).into()),
|
tab_active_background: Some(rgba(0x191724ff).into()),
|
||||||
scrollbar_thumb_background: Some(rgba(0xe0def44d).into()),
|
scrollbar_thumb_background: Some(rgba(0xe0def44c).into()),
|
||||||
scrollbar_thumb_hover_background: Some(rgba(0xe0def44d).into()),
|
scrollbar_thumb_hover_background: Some(rgba(0x232132ff).into()),
|
||||||
scrollbar_thumb_border: Some(rgba(0x1c1a29ff).into()),
|
scrollbar_thumb_border: Some(rgba(0x232132ff).into()),
|
||||||
|
scrollbar_track_background: Some(rgba(0x191724ff).into()),
|
||||||
scrollbar_track_border: Some(rgba(0x1c1a29ff).into()),
|
scrollbar_track_border: Some(rgba(0x1c1a29ff).into()),
|
||||||
editor_foreground: Some(rgba(0xe0def4ff).into()),
|
editor_foreground: Some(rgba(0xe0def4ff).into()),
|
||||||
editor_background: Some(rgba(0x191724ff).into()),
|
editor_background: Some(rgba(0x191724ff).into()),
|
||||||
editor_gutter_background: Some(rgba(0x191724ff).into()),
|
editor_gutter_background: Some(rgba(0x191724ff).into()),
|
||||||
|
editor_subheader_background: Some(rgba(0x1d1b2aff).into()),
|
||||||
|
editor_active_line_background: Some(rgba(0x1d1b2abf).into()),
|
||||||
|
editor_highlighted_line_background: Some(rgba(0x1d1b2aff).into()),
|
||||||
editor_line_number: Some(rgba(0xe0def459).into()),
|
editor_line_number: Some(rgba(0xe0def459).into()),
|
||||||
editor_active_line_number: Some(rgba(0xe0def4ff).into()),
|
editor_active_line_number: Some(rgba(0xe0def4ff).into()),
|
||||||
|
editor_invisible: Some(rgba(0x75718eff).into()),
|
||||||
editor_wrap_guide: Some(rgba(0xe0def40d).into()),
|
editor_wrap_guide: Some(rgba(0xe0def40d).into()),
|
||||||
editor_active_wrap_guide: Some(rgba(0xe0def41a).into()),
|
editor_active_wrap_guide: Some(rgba(0xe0def41a).into()),
|
||||||
|
editor_document_highlight_read_background: Some(rgba(0x9cced71a).into()),
|
||||||
|
editor_document_highlight_write_background: Some(rgba(0x28253c66).into()),
|
||||||
terminal_background: Some(rgba(0x191724ff).into()),
|
terminal_background: Some(rgba(0x191724ff).into()),
|
||||||
terminal_ansi_bright_black: Some(rgba(0x403d55ff).into()),
|
terminal_ansi_bright_black: Some(rgba(0x403d55ff).into()),
|
||||||
terminal_ansi_bright_red: Some(rgba(0x7e3647ff).into()),
|
terminal_ansi_bright_red: Some(rgba(0x7e3647ff).into()),
|
||||||
|
@ -861,16 +1008,52 @@ pub fn rose_pine() -> UserThemeFamily {
|
||||||
terminal_ansi_magenta: Some(rgba(0x9d7691ff).into()),
|
terminal_ansi_magenta: Some(rgba(0x9d7691ff).into()),
|
||||||
terminal_ansi_cyan: Some(rgba(0x32748fff).into()),
|
terminal_ansi_cyan: Some(rgba(0x32748fff).into()),
|
||||||
terminal_ansi_white: Some(rgba(0xe0def4ff).into()),
|
terminal_ansi_white: Some(rgba(0xe0def4ff).into()),
|
||||||
|
link_text_hover: Some(rgba(0x9cced7ff).into()),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
status: StatusColorsRefinement {
|
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: Some(rgba(0x5dc2a3ff).into()),
|
||||||
deleted: Some(rgba(0xbe5773ff).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: Some(rgba(0xea6f92ff).into()),
|
||||||
|
error_background: Some(rgba(0x431820ff).into()),
|
||||||
|
error_border: Some(rgba(0x612834ff).into()),
|
||||||
|
hidden: Some(rgba(0x2f2b43ff).into()),
|
||||||
|
hidden_background: Some(rgba(0x292739ff).into()),
|
||||||
|
hidden_border: Some(rgba(0x353347ff).into()),
|
||||||
hint: Some(rgba(0x5e768cff).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: Some(rgba(0xf5c177ff).into()),
|
||||||
success: Some(rgba(0xe0def4ff).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: Some(rgba(0xf5c177ff).into()),
|
||||||
|
warning_background: Some(rgba(0x50341aff).into()),
|
||||||
|
warning_border: Some(rgba(0x6d4d2bff).into()),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
player: Some(PlayerColors(vec![
|
player: Some(PlayerColors(vec![
|
||||||
|
|
|
@ -19,36 +19,61 @@ pub fn sandcastle() -> UserThemeFamily {
|
||||||
appearance: Appearance::Dark,
|
appearance: Appearance::Dark,
|
||||||
styles: UserThemeStylesRefinement {
|
styles: UserThemeStylesRefinement {
|
||||||
colors: ThemeColorsRefinement {
|
colors: ThemeColorsRefinement {
|
||||||
border: Some(rgba(0x313741ff).into()),
|
border: Some(rgba(0x3d4350ff).into()),
|
||||||
border_variant: Some(rgba(0x2a2f38ff).into()),
|
border_variant: Some(rgba(0x3d4350ff).into()),
|
||||||
|
border_focused: Some(rgba(0x223232ff).into()),
|
||||||
|
border_selected: Some(rgba(0x223232ff).into()),
|
||||||
|
border_transparent: Some(rgba(0x00000000).into()),
|
||||||
|
border_disabled: Some(rgba(0x393f4aff).into()),
|
||||||
elevated_surface_background: Some(rgba(0x2b3039ff).into()),
|
elevated_surface_background: Some(rgba(0x2b3039ff).into()),
|
||||||
|
surface_background: Some(rgba(0x2b3039ff).into()),
|
||||||
background: Some(rgba(0x333944ff).into()),
|
background: Some(rgba(0x333944ff).into()),
|
||||||
panel_background: Some(rgba(0x2b3039ff).into()),
|
panel_background: Some(rgba(0x2b3039ff).into()),
|
||||||
element_hover: Some(rgba(0x3d435080).into()),
|
element_background: Some(rgba(0x2b3039ff).into()),
|
||||||
element_selected: Some(rgba(0x57535380).into()),
|
element_hover: Some(rgba(0x313741ff).into()),
|
||||||
|
element_active: Some(rgba(0x3d4350ff).into()),
|
||||||
|
element_selected: Some(rgba(0x3d4350ff).into()),
|
||||||
|
element_disabled: Some(rgba(0x2b3039ff).into()),
|
||||||
drop_target_background: Some(rgba(0xa6978280).into()),
|
drop_target_background: Some(rgba(0xa6978280).into()),
|
||||||
|
ghost_element_background: Some(rgba(0x00000000).into()),
|
||||||
|
ghost_element_hover: Some(rgba(0x313741ff).into()),
|
||||||
|
ghost_element_active: Some(rgba(0x3d4350ff).into()),
|
||||||
|
ghost_element_selected: Some(rgba(0x3d4350ff).into()),
|
||||||
|
ghost_element_disabled: Some(rgba(0x2b3039ff).into()),
|
||||||
text: Some(rgba(0xfdf4c1ff).into()),
|
text: Some(rgba(0xfdf4c1ff).into()),
|
||||||
text_muted: Some(rgba(0xa69782ff).into()),
|
text_muted: Some(rgba(0xa69782ff).into()),
|
||||||
text_placeholder: Some(rgba(0x645b54ff).into()),
|
text_placeholder: Some(rgba(0x827568ff).into()),
|
||||||
text_disabled: Some(rgba(0xfdf4c1ff).into()),
|
text_disabled: Some(rgba(0x827568ff).into()),
|
||||||
text_accent: Some(rgba(0x528b8bff).into()),
|
text_accent: Some(rgba(0x528b8bff).into()),
|
||||||
|
icon: Some(rgba(0xfdf4c1ff).into()),
|
||||||
|
icon_muted: Some(rgba(0xa69782ff).into()),
|
||||||
|
icon_disabled: Some(rgba(0x827568ff).into()),
|
||||||
|
icon_placeholder: Some(rgba(0xa69782ff).into()),
|
||||||
|
icon_accent: Some(rgba(0x528b8bff).into()),
|
||||||
status_bar_background: Some(rgba(0x333944ff).into()),
|
status_bar_background: Some(rgba(0x333944ff).into()),
|
||||||
title_bar_background: Some(rgba(0x333944ff).into()),
|
title_bar_background: Some(rgba(0x333944ff).into()),
|
||||||
toolbar_background: Some(rgba(0x282c34ff).into()),
|
toolbar_background: Some(rgba(0x282c34ff).into()),
|
||||||
tab_bar_background: Some(rgba(0x2b3039ff).into()),
|
tab_bar_background: Some(rgba(0x2b3039ff).into()),
|
||||||
tab_inactive_background: Some(rgba(0x2b3039ff).into()),
|
tab_inactive_background: Some(rgba(0x2b3039ff).into()),
|
||||||
tab_active_background: Some(rgba(0x282c34ff).into()),
|
tab_active_background: Some(rgba(0x282c34ff).into()),
|
||||||
scrollbar_thumb_background: Some(rgba(0xfdf4c14d).into()),
|
scrollbar_thumb_background: Some(rgba(0xfdf4c14c).into()),
|
||||||
scrollbar_thumb_hover_background: Some(rgba(0xfdf4c14d).into()),
|
scrollbar_thumb_hover_background: Some(rgba(0x313741ff).into()),
|
||||||
scrollbar_thumb_border: Some(rgba(0x2a2f38ff).into()),
|
scrollbar_thumb_border: Some(rgba(0x313741ff).into()),
|
||||||
|
scrollbar_track_background: Some(rgba(0x282c34ff).into()),
|
||||||
scrollbar_track_border: Some(rgba(0x2a2f38ff).into()),
|
scrollbar_track_border: Some(rgba(0x2a2f38ff).into()),
|
||||||
editor_foreground: Some(rgba(0xfdf4c1ff).into()),
|
editor_foreground: Some(rgba(0xfdf4c1ff).into()),
|
||||||
editor_background: Some(rgba(0x282c34ff).into()),
|
editor_background: Some(rgba(0x282c34ff).into()),
|
||||||
editor_gutter_background: Some(rgba(0x282c34ff).into()),
|
editor_gutter_background: Some(rgba(0x282c34ff).into()),
|
||||||
|
editor_subheader_background: Some(rgba(0x2b3039ff).into()),
|
||||||
|
editor_active_line_background: Some(rgba(0x2b3039bf).into()),
|
||||||
|
editor_highlighted_line_background: Some(rgba(0x2b3039ff).into()),
|
||||||
editor_line_number: Some(rgba(0xfdf4c159).into()),
|
editor_line_number: Some(rgba(0xfdf4c159).into()),
|
||||||
editor_active_line_number: Some(rgba(0xfdf4c1ff).into()),
|
editor_active_line_number: Some(rgba(0xfdf4c1ff).into()),
|
||||||
|
editor_invisible: Some(rgba(0xa69782ff).into()),
|
||||||
editor_wrap_guide: Some(rgba(0xfdf4c10d).into()),
|
editor_wrap_guide: Some(rgba(0xfdf4c10d).into()),
|
||||||
editor_active_wrap_guide: Some(rgba(0xfdf4c11a).into()),
|
editor_active_wrap_guide: Some(rgba(0xfdf4c11a).into()),
|
||||||
|
editor_document_highlight_read_background: Some(rgba(0x528b8b1a).into()),
|
||||||
|
editor_document_highlight_write_background: Some(rgba(0x7c6f6466).into()),
|
||||||
terminal_background: Some(rgba(0x282c34ff).into()),
|
terminal_background: Some(rgba(0x282c34ff).into()),
|
||||||
terminal_ansi_bright_black: Some(rgba(0x5e5753ff).into()),
|
terminal_ansi_bright_black: Some(rgba(0x5e5753ff).into()),
|
||||||
terminal_ansi_bright_red: Some(rgba(0x57333dff).into()),
|
terminal_ansi_bright_red: Some(rgba(0x57333dff).into()),
|
||||||
|
@ -66,16 +91,52 @@ pub fn sandcastle() -> UserThemeFamily {
|
||||||
terminal_ansi_magenta: Some(rgba(0xa87323ff).into()),
|
terminal_ansi_magenta: Some(rgba(0xa87323ff).into()),
|
||||||
terminal_ansi_cyan: Some(rgba(0x83a598ff).into()),
|
terminal_ansi_cyan: Some(rgba(0x83a598ff).into()),
|
||||||
terminal_ansi_white: Some(rgba(0xfdf4c1ff).into()),
|
terminal_ansi_white: Some(rgba(0xfdf4c1ff).into()),
|
||||||
|
link_text_hover: Some(rgba(0x528b8bff).into()),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
status: StatusColorsRefinement {
|
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: Some(rgba(0x83a598ff).into()),
|
||||||
deleted: Some(rgba(0x8d4f61ff).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: Some(rgba(0xb4637aff).into()),
|
||||||
|
error_background: Some(rgba(0x26191cff).into()),
|
||||||
|
error_border: Some(rgba(0x3f272dff).into()),
|
||||||
|
hidden: Some(rgba(0x827568ff).into()),
|
||||||
|
hidden_background: Some(rgba(0x333944ff).into()),
|
||||||
|
hidden_border: Some(rgba(0x393f4aff).into()),
|
||||||
hint: Some(rgba(0x727d68ff).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: Some(rgba(0xa07e3bff).into()),
|
||||||
success: Some(rgba(0xfdf4c1ff).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: Some(rgba(0xa07e3bff).into()),
|
||||||
|
warning_background: Some(rgba(0x231d12ff).into()),
|
||||||
|
warning_border: Some(rgba(0x392e1aff).into()),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
player: Some(PlayerColors(vec![
|
player: Some(PlayerColors(vec![
|
||||||
|
|
|
@ -20,36 +20,61 @@ pub fn solarized() -> UserThemeFamily {
|
||||||
appearance: Appearance::Light,
|
appearance: Appearance::Light,
|
||||||
styles: UserThemeStylesRefinement {
|
styles: UserThemeStylesRefinement {
|
||||||
colors: ThemeColorsRefinement {
|
colors: ThemeColorsRefinement {
|
||||||
border: Some(rgba(0xdcdacbff).into()),
|
border: Some(rgba(0x9faaa8ff).into()),
|
||||||
border_variant: Some(rgba(0xf5eedbff).into()),
|
border_variant: Some(rgba(0x9faaa8ff).into()),
|
||||||
|
border_focused: Some(rgba(0xbfd3efff).into()),
|
||||||
|
border_selected: Some(rgba(0xbfd3efff).into()),
|
||||||
|
border_transparent: Some(rgba(0x00000000).into()),
|
||||||
|
border_disabled: Some(rgba(0xb7bdb6ff).into()),
|
||||||
elevated_surface_background: Some(rgba(0xf3eddaff).into()),
|
elevated_surface_background: Some(rgba(0xf3eddaff).into()),
|
||||||
|
surface_background: Some(rgba(0xf3eddaff).into()),
|
||||||
background: Some(rgba(0xcfd0c4ff).into()),
|
background: Some(rgba(0xcfd0c4ff).into()),
|
||||||
panel_background: Some(rgba(0xf3eddaff).into()),
|
panel_background: Some(rgba(0xf3eddaff).into()),
|
||||||
element_hover: Some(rgba(0x9faaa880).into()),
|
element_background: Some(rgba(0xf3eddaff).into()),
|
||||||
element_selected: Some(rgba(0x7f919480).into()),
|
element_hover: Some(rgba(0xdcdacbff).into()),
|
||||||
|
element_active: Some(rgba(0xa2aca9ff).into()),
|
||||||
|
element_selected: Some(rgba(0xa2aca9ff).into()),
|
||||||
|
element_disabled: Some(rgba(0xf3eddaff).into()),
|
||||||
drop_target_background: Some(rgba(0x34555e80).into()),
|
drop_target_background: Some(rgba(0x34555e80).into()),
|
||||||
|
ghost_element_background: Some(rgba(0x00000000).into()),
|
||||||
|
ghost_element_hover: Some(rgba(0xdcdacbff).into()),
|
||||||
|
ghost_element_active: Some(rgba(0xa2aca9ff).into()),
|
||||||
|
ghost_element_selected: Some(rgba(0xa2aca9ff).into()),
|
||||||
|
ghost_element_disabled: Some(rgba(0xf3eddaff).into()),
|
||||||
text: Some(rgba(0x002b36ff).into()),
|
text: Some(rgba(0x002b36ff).into()),
|
||||||
text_muted: Some(rgba(0x34555eff).into()),
|
text_muted: Some(rgba(0x34555eff).into()),
|
||||||
text_placeholder: Some(rgba(0x788b8fff).into()),
|
text_placeholder: Some(rgba(0x6a7f86ff).into()),
|
||||||
text_disabled: Some(rgba(0x002b36ff).into()),
|
text_disabled: Some(rgba(0x6a7f86ff).into()),
|
||||||
text_accent: Some(rgba(0x298bd1ff).into()),
|
text_accent: Some(rgba(0x298bd1ff).into()),
|
||||||
|
icon: Some(rgba(0x002b36ff).into()),
|
||||||
|
icon_muted: Some(rgba(0x34555eff).into()),
|
||||||
|
icon_disabled: Some(rgba(0x6a7f86ff).into()),
|
||||||
|
icon_placeholder: Some(rgba(0x34555eff).into()),
|
||||||
|
icon_accent: Some(rgba(0x298bd1ff).into()),
|
||||||
status_bar_background: Some(rgba(0xcfd0c4ff).into()),
|
status_bar_background: Some(rgba(0xcfd0c4ff).into()),
|
||||||
title_bar_background: Some(rgba(0xcfd0c4ff).into()),
|
title_bar_background: Some(rgba(0xcfd0c4ff).into()),
|
||||||
toolbar_background: Some(rgba(0xfdf6e3ff).into()),
|
toolbar_background: Some(rgba(0xfdf6e3ff).into()),
|
||||||
tab_bar_background: Some(rgba(0xf3eddaff).into()),
|
tab_bar_background: Some(rgba(0xf3eddaff).into()),
|
||||||
tab_inactive_background: Some(rgba(0xf3eddaff).into()),
|
tab_inactive_background: Some(rgba(0xf3eddaff).into()),
|
||||||
tab_active_background: Some(rgba(0xfdf6e3ff).into()),
|
tab_active_background: Some(rgba(0xfdf6e3ff).into()),
|
||||||
scrollbar_thumb_background: Some(rgba(0x002b364d).into()),
|
scrollbar_thumb_background: Some(rgba(0x002b364c).into()),
|
||||||
scrollbar_thumb_hover_background: Some(rgba(0x002b364d).into()),
|
scrollbar_thumb_hover_background: Some(rgba(0xdcdacbff).into()),
|
||||||
scrollbar_thumb_border: Some(rgba(0xf5eedbff).into()),
|
scrollbar_thumb_border: Some(rgba(0xdcdacbff).into()),
|
||||||
|
scrollbar_track_background: Some(rgba(0xfdf6e3ff).into()),
|
||||||
scrollbar_track_border: Some(rgba(0xf5eedbff).into()),
|
scrollbar_track_border: Some(rgba(0xf5eedbff).into()),
|
||||||
editor_foreground: Some(rgba(0x002b36ff).into()),
|
editor_foreground: Some(rgba(0x002b36ff).into()),
|
||||||
editor_background: Some(rgba(0xfdf6e3ff).into()),
|
editor_background: Some(rgba(0xfdf6e3ff).into()),
|
||||||
editor_gutter_background: Some(rgba(0xfdf6e3ff).into()),
|
editor_gutter_background: Some(rgba(0xfdf6e3ff).into()),
|
||||||
|
editor_subheader_background: Some(rgba(0xf3eddaff).into()),
|
||||||
|
editor_active_line_background: Some(rgba(0xf3eddabf).into()),
|
||||||
|
editor_highlighted_line_background: Some(rgba(0xf3eddaff).into()),
|
||||||
editor_line_number: Some(rgba(0x002b3659).into()),
|
editor_line_number: Some(rgba(0x002b3659).into()),
|
||||||
editor_active_line_number: Some(rgba(0x002b36ff).into()),
|
editor_active_line_number: Some(rgba(0x002b36ff).into()),
|
||||||
|
editor_invisible: Some(rgba(0x34555eff).into()),
|
||||||
editor_wrap_guide: Some(rgba(0x002b360d).into()),
|
editor_wrap_guide: Some(rgba(0x002b360d).into()),
|
||||||
editor_active_wrap_guide: Some(rgba(0x002b361a).into()),
|
editor_active_wrap_guide: Some(rgba(0x002b361a).into()),
|
||||||
|
editor_document_highlight_read_background: Some(rgba(0x298bd11a).into()),
|
||||||
|
editor_document_highlight_write_background: Some(rgba(0x6d828866).into()),
|
||||||
terminal_background: Some(rgba(0xfdf6e3ff).into()),
|
terminal_background: Some(rgba(0xfdf6e3ff).into()),
|
||||||
terminal_ansi_bright_black: Some(rgba(0x7b8e91ff).into()),
|
terminal_ansi_bright_black: Some(rgba(0x7b8e91ff).into()),
|
||||||
terminal_ansi_bright_red: Some(rgba(0xfaa091ff).into()),
|
terminal_ansi_bright_red: Some(rgba(0xfaa091ff).into()),
|
||||||
|
@ -67,16 +92,52 @@ pub fn solarized() -> UserThemeFamily {
|
||||||
terminal_ansi_magenta: Some(rgba(0xd33882ff).into()),
|
terminal_ansi_magenta: Some(rgba(0xd33882ff).into()),
|
||||||
terminal_ansi_cyan: Some(rgba(0x2ca198ff).into()),
|
terminal_ansi_cyan: Some(rgba(0x2ca198ff).into()),
|
||||||
terminal_ansi_white: Some(rgba(0x002b36ff).into()),
|
terminal_ansi_white: Some(rgba(0x002b36ff).into()),
|
||||||
|
link_text_hover: Some(rgba(0x298bd1ff).into()),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
status: StatusColorsRefinement {
|
status: StatusColorsRefinement {
|
||||||
created: Some(rgba(0xa0ad46ff).into()),
|
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: Some(rgba(0xdc3330ff).into()),
|
||||||
|
deleted_background: Some(rgba(0xffd9d2ff).into()),
|
||||||
|
deleted_border: Some(rgba(0xffbbafff).into()),
|
||||||
error: Some(rgba(0xdc3330ff).into()),
|
error: Some(rgba(0xdc3330ff).into()),
|
||||||
|
error_background: Some(rgba(0xffd9d2ff).into()),
|
||||||
|
error_border: Some(rgba(0xffbbafff).into()),
|
||||||
|
hidden: Some(rgba(0x6a7f86ff).into()),
|
||||||
|
hidden_background: Some(rgba(0xcfd0c4ff).into()),
|
||||||
|
hidden_border: Some(rgba(0xb7bdb6ff).into()),
|
||||||
hint: Some(rgba(0x5889a3ff).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: Some(rgba(0xb58904ff).into()),
|
||||||
success: Some(rgba(0x002b36ff).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: Some(rgba(0xb58904ff).into()),
|
||||||
|
warning_background: Some(rgba(0xf5e6d0ff).into()),
|
||||||
|
warning_border: Some(rgba(0xebd3aaff).into()),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
player: Some(PlayerColors(vec![
|
player: Some(PlayerColors(vec![
|
||||||
|
@ -403,36 +464,61 @@ pub fn solarized() -> UserThemeFamily {
|
||||||
appearance: Appearance::Dark,
|
appearance: Appearance::Dark,
|
||||||
styles: UserThemeStylesRefinement {
|
styles: UserThemeStylesRefinement {
|
||||||
colors: ThemeColorsRefinement {
|
colors: ThemeColorsRefinement {
|
||||||
border: Some(rgba(0x063541ff).into()),
|
border: Some(rgba(0x2b4f58ff).into()),
|
||||||
border_variant: Some(rgba(0x032f3bff).into()),
|
border_variant: Some(rgba(0x2b4f58ff).into()),
|
||||||
|
border_focused: Some(rgba(0x1c3249ff).into()),
|
||||||
|
border_selected: Some(rgba(0x1c3249ff).into()),
|
||||||
|
border_transparent: Some(rgba(0x00000000).into()),
|
||||||
|
border_disabled: Some(rgba(0x19424dff).into()),
|
||||||
elevated_surface_background: Some(rgba(0x04313cff).into()),
|
elevated_surface_background: Some(rgba(0x04313cff).into()),
|
||||||
|
surface_background: Some(rgba(0x04313cff).into()),
|
||||||
background: Some(rgba(0x083743ff).into()),
|
background: Some(rgba(0x083743ff).into()),
|
||||||
panel_background: Some(rgba(0x04313cff).into()),
|
panel_background: Some(rgba(0x04313cff).into()),
|
||||||
element_hover: Some(rgba(0x2b4f5880).into()),
|
element_background: Some(rgba(0x04313cff).into()),
|
||||||
element_selected: Some(rgba(0x566d7480).into()),
|
element_hover: Some(rgba(0x063541ff).into()),
|
||||||
|
element_active: Some(rgba(0x294e58ff).into()),
|
||||||
|
element_selected: Some(rgba(0x294e58ff).into()),
|
||||||
|
element_disabled: Some(rgba(0x04313cff).into()),
|
||||||
drop_target_background: Some(rgba(0x93a1a180).into()),
|
drop_target_background: Some(rgba(0x93a1a180).into()),
|
||||||
|
ghost_element_background: Some(rgba(0x00000000).into()),
|
||||||
|
ghost_element_hover: Some(rgba(0x063541ff).into()),
|
||||||
|
ghost_element_active: Some(rgba(0x294e58ff).into()),
|
||||||
|
ghost_element_selected: Some(rgba(0x294e58ff).into()),
|
||||||
|
ghost_element_disabled: Some(rgba(0x04313cff).into()),
|
||||||
text: Some(rgba(0xfdf6e3ff).into()),
|
text: Some(rgba(0xfdf6e3ff).into()),
|
||||||
text_muted: Some(rgba(0x93a1a1ff).into()),
|
text_muted: Some(rgba(0x93a1a1ff).into()),
|
||||||
text_placeholder: Some(rgba(0x5f757dff).into()),
|
text_placeholder: Some(rgba(0x6f8389ff).into()),
|
||||||
text_disabled: Some(rgba(0xfdf6e3ff).into()),
|
text_disabled: Some(rgba(0x6f8389ff).into()),
|
||||||
text_accent: Some(rgba(0x288bd1ff).into()),
|
text_accent: Some(rgba(0x288bd1ff).into()),
|
||||||
|
icon: Some(rgba(0xfdf6e3ff).into()),
|
||||||
|
icon_muted: Some(rgba(0x93a1a1ff).into()),
|
||||||
|
icon_disabled: Some(rgba(0x6f8389ff).into()),
|
||||||
|
icon_placeholder: Some(rgba(0x93a1a1ff).into()),
|
||||||
|
icon_accent: Some(rgba(0x288bd1ff).into()),
|
||||||
status_bar_background: Some(rgba(0x083743ff).into()),
|
status_bar_background: Some(rgba(0x083743ff).into()),
|
||||||
title_bar_background: Some(rgba(0x083743ff).into()),
|
title_bar_background: Some(rgba(0x083743ff).into()),
|
||||||
toolbar_background: Some(rgba(0x002b36ff).into()),
|
toolbar_background: Some(rgba(0x002b36ff).into()),
|
||||||
tab_bar_background: Some(rgba(0x04313cff).into()),
|
tab_bar_background: Some(rgba(0x04313cff).into()),
|
||||||
tab_inactive_background: Some(rgba(0x04313cff).into()),
|
tab_inactive_background: Some(rgba(0x04313cff).into()),
|
||||||
tab_active_background: Some(rgba(0x002b36ff).into()),
|
tab_active_background: Some(rgba(0x002b36ff).into()),
|
||||||
scrollbar_thumb_background: Some(rgba(0xfdf6e34d).into()),
|
scrollbar_thumb_background: Some(rgba(0xfdf6e34c).into()),
|
||||||
scrollbar_thumb_hover_background: Some(rgba(0xfdf6e34d).into()),
|
scrollbar_thumb_hover_background: Some(rgba(0x063541ff).into()),
|
||||||
scrollbar_thumb_border: Some(rgba(0x032f3bff).into()),
|
scrollbar_thumb_border: Some(rgba(0x063541ff).into()),
|
||||||
|
scrollbar_track_background: Some(rgba(0x002b36ff).into()),
|
||||||
scrollbar_track_border: Some(rgba(0x032f3bff).into()),
|
scrollbar_track_border: Some(rgba(0x032f3bff).into()),
|
||||||
editor_foreground: Some(rgba(0xfdf6e3ff).into()),
|
editor_foreground: Some(rgba(0xfdf6e3ff).into()),
|
||||||
editor_background: Some(rgba(0x002b36ff).into()),
|
editor_background: Some(rgba(0x002b36ff).into()),
|
||||||
editor_gutter_background: Some(rgba(0x002b36ff).into()),
|
editor_gutter_background: Some(rgba(0x002b36ff).into()),
|
||||||
|
editor_subheader_background: Some(rgba(0x04313cff).into()),
|
||||||
|
editor_active_line_background: Some(rgba(0x04313cbf).into()),
|
||||||
|
editor_highlighted_line_background: Some(rgba(0x04313cff).into()),
|
||||||
editor_line_number: Some(rgba(0xfdf6e359).into()),
|
editor_line_number: Some(rgba(0xfdf6e359).into()),
|
||||||
editor_active_line_number: Some(rgba(0xfdf6e3ff).into()),
|
editor_active_line_number: Some(rgba(0xfdf6e3ff).into()),
|
||||||
|
editor_invisible: Some(rgba(0x93a1a1ff).into()),
|
||||||
editor_wrap_guide: Some(rgba(0xfdf6e30d).into()),
|
editor_wrap_guide: Some(rgba(0xfdf6e30d).into()),
|
||||||
editor_active_wrap_guide: Some(rgba(0xfdf6e31a).into()),
|
editor_active_wrap_guide: Some(rgba(0xfdf6e31a).into()),
|
||||||
|
editor_document_highlight_read_background: Some(rgba(0x288bd11a).into()),
|
||||||
|
editor_document_highlight_write_background: Some(rgba(0x6d828866).into()),
|
||||||
terminal_background: Some(rgba(0x002b36ff).into()),
|
terminal_background: Some(rgba(0x002b36ff).into()),
|
||||||
terminal_ansi_bright_black: Some(rgba(0x5c7279ff).into()),
|
terminal_ansi_bright_black: Some(rgba(0x5c7279ff).into()),
|
||||||
terminal_ansi_bright_red: Some(rgba(0x7d181cff).into()),
|
terminal_ansi_bright_red: Some(rgba(0x7d181cff).into()),
|
||||||
|
@ -450,16 +536,52 @@ pub fn solarized() -> UserThemeFamily {
|
||||||
terminal_ansi_magenta: Some(rgba(0xd33782ff).into()),
|
terminal_ansi_magenta: Some(rgba(0xd33782ff).into()),
|
||||||
terminal_ansi_cyan: Some(rgba(0x2ca198ff).into()),
|
terminal_ansi_cyan: Some(rgba(0x2ca198ff).into()),
|
||||||
terminal_ansi_white: Some(rgba(0xfdf6e3ff).into()),
|
terminal_ansi_white: Some(rgba(0xfdf6e3ff).into()),
|
||||||
|
link_text_hover: Some(rgba(0x288bd1ff).into()),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
status: StatusColorsRefinement {
|
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: Some(rgba(0x859904ff).into()),
|
||||||
deleted: Some(rgba(0xb52727ff).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: Some(rgba(0xdc3330ff).into()),
|
||||||
|
error_background: Some(rgba(0x4a090fff).into()),
|
||||||
|
error_border: Some(rgba(0x641116ff).into()),
|
||||||
|
hidden: Some(rgba(0x6f8389ff).into()),
|
||||||
|
hidden_background: Some(rgba(0x083743ff).into()),
|
||||||
|
hidden_border: Some(rgba(0x19424dff).into()),
|
||||||
hint: Some(rgba(0x4f8297ff).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: Some(rgba(0xb58903ff).into()),
|
||||||
success: Some(rgba(0xfdf6e3ff).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: Some(rgba(0xb58903ff).into()),
|
||||||
|
warning_background: Some(rgba(0x2f1e0cff).into()),
|
||||||
|
warning_border: Some(rgba(0x473110ff).into()),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
player: Some(PlayerColors(vec![
|
player: Some(PlayerColors(vec![
|
||||||
|
|
|
@ -19,36 +19,61 @@ pub fn summercamp() -> UserThemeFamily {
|
||||||
appearance: Appearance::Dark,
|
appearance: Appearance::Dark,
|
||||||
styles: UserThemeStylesRefinement {
|
styles: UserThemeStylesRefinement {
|
||||||
colors: ThemeColorsRefinement {
|
colors: ThemeColorsRefinement {
|
||||||
border: Some(rgba(0x29251bff).into()),
|
border: Some(rgba(0x312d21ff).into()),
|
||||||
border_variant: Some(rgba(0x221e15ff).into()),
|
border_variant: Some(rgba(0x312d21ff).into()),
|
||||||
|
border_focused: Some(rgba(0x193761ff).into()),
|
||||||
|
border_selected: Some(rgba(0x193761ff).into()),
|
||||||
|
border_transparent: Some(rgba(0x00000000).into()),
|
||||||
|
border_disabled: Some(rgba(0x2e2a1fff).into()),
|
||||||
elevated_surface_background: Some(rgba(0x231f16ff).into()),
|
elevated_surface_background: Some(rgba(0x231f16ff).into()),
|
||||||
|
surface_background: Some(rgba(0x231f16ff).into()),
|
||||||
background: Some(rgba(0x2a261cff).into()),
|
background: Some(rgba(0x2a261cff).into()),
|
||||||
panel_background: Some(rgba(0x231f16ff).into()),
|
panel_background: Some(rgba(0x231f16ff).into()),
|
||||||
element_hover: Some(rgba(0x312d2180).into()),
|
element_background: Some(rgba(0x231f16ff).into()),
|
||||||
element_selected: Some(rgba(0x39342780).into()),
|
element_hover: Some(rgba(0x29251bff).into()),
|
||||||
|
element_active: Some(rgba(0x302c20ff).into()),
|
||||||
|
element_selected: Some(rgba(0x302c20ff).into()),
|
||||||
|
element_disabled: Some(rgba(0x231f16ff).into()),
|
||||||
drop_target_background: Some(rgba(0x736e5580).into()),
|
drop_target_background: Some(rgba(0x736e5580).into()),
|
||||||
|
ghost_element_background: Some(rgba(0x00000000).into()),
|
||||||
|
ghost_element_hover: Some(rgba(0x29251bff).into()),
|
||||||
|
ghost_element_active: Some(rgba(0x302c20ff).into()),
|
||||||
|
ghost_element_selected: Some(rgba(0x302c20ff).into()),
|
||||||
|
ghost_element_disabled: Some(rgba(0x231f16ff).into()),
|
||||||
text: Some(rgba(0xf8f5deff).into()),
|
text: Some(rgba(0xf8f5deff).into()),
|
||||||
text_muted: Some(rgba(0x736e55ff).into()),
|
text_muted: Some(rgba(0x736e55ff).into()),
|
||||||
text_placeholder: Some(rgba(0x3d382aff).into()),
|
text_placeholder: Some(rgba(0x4c4735ff).into()),
|
||||||
text_disabled: Some(rgba(0xf8f5deff).into()),
|
text_disabled: Some(rgba(0x4c4735ff).into()),
|
||||||
text_accent: Some(rgba(0x499befff).into()),
|
text_accent: Some(rgba(0x499befff).into()),
|
||||||
|
icon: Some(rgba(0xf8f5deff).into()),
|
||||||
|
icon_muted: Some(rgba(0x736e55ff).into()),
|
||||||
|
icon_disabled: Some(rgba(0x4c4735ff).into()),
|
||||||
|
icon_placeholder: Some(rgba(0x736e55ff).into()),
|
||||||
|
icon_accent: Some(rgba(0x499befff).into()),
|
||||||
status_bar_background: Some(rgba(0x2a261cff).into()),
|
status_bar_background: Some(rgba(0x2a261cff).into()),
|
||||||
title_bar_background: Some(rgba(0x2a261cff).into()),
|
title_bar_background: Some(rgba(0x2a261cff).into()),
|
||||||
toolbar_background: Some(rgba(0x1c1810ff).into()),
|
toolbar_background: Some(rgba(0x1c1810ff).into()),
|
||||||
tab_bar_background: Some(rgba(0x231f16ff).into()),
|
tab_bar_background: Some(rgba(0x231f16ff).into()),
|
||||||
tab_inactive_background: Some(rgba(0x231f16ff).into()),
|
tab_inactive_background: Some(rgba(0x231f16ff).into()),
|
||||||
tab_active_background: Some(rgba(0x1c1810ff).into()),
|
tab_active_background: Some(rgba(0x1c1810ff).into()),
|
||||||
scrollbar_thumb_background: Some(rgba(0xf8f5de4d).into()),
|
scrollbar_thumb_background: Some(rgba(0xf8f5de4c).into()),
|
||||||
scrollbar_thumb_hover_background: Some(rgba(0xf8f5de4d).into()),
|
scrollbar_thumb_hover_background: Some(rgba(0x29251bff).into()),
|
||||||
scrollbar_thumb_border: Some(rgba(0x221e15ff).into()),
|
scrollbar_thumb_border: Some(rgba(0x29251bff).into()),
|
||||||
|
scrollbar_track_background: Some(rgba(0x1c1810ff).into()),
|
||||||
scrollbar_track_border: Some(rgba(0x221e15ff).into()),
|
scrollbar_track_border: Some(rgba(0x221e15ff).into()),
|
||||||
editor_foreground: Some(rgba(0xf8f5deff).into()),
|
editor_foreground: Some(rgba(0xf8f5deff).into()),
|
||||||
editor_background: Some(rgba(0x1c1810ff).into()),
|
editor_background: Some(rgba(0x1c1810ff).into()),
|
||||||
editor_gutter_background: Some(rgba(0x1c1810ff).into()),
|
editor_gutter_background: Some(rgba(0x1c1810ff).into()),
|
||||||
|
editor_subheader_background: Some(rgba(0x231f16ff).into()),
|
||||||
|
editor_active_line_background: Some(rgba(0x231f16bf).into()),
|
||||||
|
editor_highlighted_line_background: Some(rgba(0x231f16ff).into()),
|
||||||
editor_line_number: Some(rgba(0xf8f5de59).into()),
|
editor_line_number: Some(rgba(0xf8f5de59).into()),
|
||||||
editor_active_line_number: Some(rgba(0xf8f5deff).into()),
|
editor_active_line_number: Some(rgba(0xf8f5deff).into()),
|
||||||
|
editor_invisible: Some(rgba(0x736e55ff).into()),
|
||||||
editor_wrap_guide: Some(rgba(0xf8f5de0d).into()),
|
editor_wrap_guide: Some(rgba(0xf8f5de0d).into()),
|
||||||
editor_active_wrap_guide: Some(rgba(0xf8f5de1a).into()),
|
editor_active_wrap_guide: Some(rgba(0xf8f5de1a).into()),
|
||||||
|
editor_document_highlight_read_background: Some(rgba(0x499bef1a).into()),
|
||||||
|
editor_document_highlight_write_background: Some(rgba(0x49443366).into()),
|
||||||
terminal_background: Some(rgba(0x1c1810ff).into()),
|
terminal_background: Some(rgba(0x1c1810ff).into()),
|
||||||
terminal_ansi_bright_black: Some(rgba(0x3b3627ff).into()),
|
terminal_ansi_bright_black: Some(rgba(0x3b3627ff).into()),
|
||||||
terminal_ansi_bright_red: Some(rgba(0x7f2724ff).into()),
|
terminal_ansi_bright_red: Some(rgba(0x7f2724ff).into()),
|
||||||
|
@ -66,16 +91,52 @@ pub fn summercamp() -> UserThemeFamily {
|
||||||
terminal_ansi_magenta: Some(rgba(0xf59be6ff).into()),
|
terminal_ansi_magenta: Some(rgba(0xf59be6ff).into()),
|
||||||
terminal_ansi_cyan: Some(rgba(0x5beabcff).into()),
|
terminal_ansi_cyan: Some(rgba(0x5beabcff).into()),
|
||||||
terminal_ansi_white: Some(rgba(0xf8f5deff).into()),
|
terminal_ansi_white: Some(rgba(0xf8f5deff).into()),
|
||||||
|
link_text_hover: Some(rgba(0x499befff).into()),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
status: StatusColorsRefinement {
|
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: Some(rgba(0x5dea5aff).into()),
|
||||||
deleted: Some(rgba(0xb93f36ff).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: Some(rgba(0xe35142ff).into()),
|
||||||
|
error_background: Some(rgba(0x491013ff).into()),
|
||||||
|
error_border: Some(rgba(0x651c1cff).into()),
|
||||||
|
hidden: Some(rgba(0x4c4735ff).into()),
|
||||||
|
hidden_background: Some(rgba(0x2a261cff).into()),
|
||||||
|
hidden_border: Some(rgba(0x2e2a1fff).into()),
|
||||||
hint: Some(rgba(0x246e61ff).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: Some(rgba(0xf1fe29ff).into()),
|
||||||
success: Some(rgba(0xf8f5deff).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: Some(rgba(0xf1fe29ff).into()),
|
||||||
|
warning_background: Some(rgba(0x556305ff).into()),
|
||||||
|
warning_border: Some(rgba(0x727f0aff).into()),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
player: Some(PlayerColors(vec![
|
player: Some(PlayerColors(vec![
|
||||||
|
|
|
@ -281,16 +281,7 @@ impl<'a> Debug for ThemeColorsRefinementPrinter<'a> {
|
||||||
("terminal_ansi_magenta", self.0.terminal_ansi_magenta),
|
("terminal_ansi_magenta", self.0.terminal_ansi_magenta),
|
||||||
("terminal_ansi_cyan", self.0.terminal_ansi_cyan),
|
("terminal_ansi_cyan", self.0.terminal_ansi_cyan),
|
||||||
("terminal_ansi_white", self.0.terminal_ansi_white),
|
("terminal_ansi_white", self.0.terminal_ansi_white),
|
||||||
("headline", self.0.headline),
|
|
||||||
("paragraph", self.0.paragraph),
|
|
||||||
("link_text", self.0.link_text),
|
|
||||||
("link_text_hover", self.0.link_text_hover),
|
("link_text_hover", self.0.link_text_hover),
|
||||||
("link_uri", self.0.link_uri),
|
|
||||||
("inline_code_background", self.0.inline_code_background),
|
|
||||||
("inline_code_border", self.0.inline_code_border),
|
|
||||||
("code_block_background", self.0.code_block_background),
|
|
||||||
("code_block_border", self.0.code_block_border),
|
|
||||||
("emphasis", self.0.emphasis),
|
|
||||||
];
|
];
|
||||||
|
|
||||||
f.write_str("ThemeColorsRefinement {")?;
|
f.write_str("ThemeColorsRefinement {")?;
|
||||||
|
@ -319,19 +310,47 @@ impl<'a> Debug for StatusColorsRefinementPrinter<'a> {
|
||||||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||||
let status_colors = vec![
|
let status_colors = vec![
|
||||||
("conflict", self.0.conflict),
|
("conflict", self.0.conflict),
|
||||||
|
("conflict_background", self.0.conflict_background),
|
||||||
|
("conflict_border", self.0.conflict_border),
|
||||||
("created", self.0.created),
|
("created", self.0.created),
|
||||||
|
("created_background", self.0.created_background),
|
||||||
|
("created_border", self.0.created_border),
|
||||||
("deleted", self.0.deleted),
|
("deleted", self.0.deleted),
|
||||||
|
("deleted_background", self.0.deleted_background),
|
||||||
|
("deleted_border", self.0.deleted_border),
|
||||||
("error", self.0.error),
|
("error", self.0.error),
|
||||||
|
("error_background", self.0.error_background),
|
||||||
|
("error_border", self.0.error_border),
|
||||||
("hidden", self.0.hidden),
|
("hidden", self.0.hidden),
|
||||||
|
("hidden_background", self.0.hidden_background),
|
||||||
|
("hidden_border", self.0.hidden_border),
|
||||||
("hint", self.0.hint),
|
("hint", self.0.hint),
|
||||||
|
("hint_background", self.0.hint_background),
|
||||||
|
("hint_border", self.0.hint_border),
|
||||||
("ignored", self.0.ignored),
|
("ignored", self.0.ignored),
|
||||||
|
("ignored_background", self.0.ignored_background),
|
||||||
|
("ignored_border", self.0.ignored_border),
|
||||||
("info", self.0.info),
|
("info", self.0.info),
|
||||||
|
("info_background", self.0.info_background),
|
||||||
|
("info_border", self.0.info_border),
|
||||||
("modified", self.0.modified),
|
("modified", self.0.modified),
|
||||||
|
("modified_background", self.0.modified_background),
|
||||||
|
("modified_border", self.0.modified_border),
|
||||||
("predictive", self.0.predictive),
|
("predictive", self.0.predictive),
|
||||||
|
("predictive_background", self.0.predictive_background),
|
||||||
|
("predictive_border", self.0.predictive_border),
|
||||||
("renamed", self.0.renamed),
|
("renamed", self.0.renamed),
|
||||||
|
("renamed_background", self.0.renamed_background),
|
||||||
|
("renamed_border", self.0.renamed_border),
|
||||||
("success", self.0.success),
|
("success", self.0.success),
|
||||||
|
("success_background", self.0.success_background),
|
||||||
|
("success_border", self.0.success_border),
|
||||||
("unreachable", self.0.unreachable),
|
("unreachable", self.0.unreachable),
|
||||||
|
("unreachable_background", self.0.unreachable_background),
|
||||||
|
("unreachable_border", self.0.unreachable_border),
|
||||||
("warning", self.0.warning),
|
("warning", self.0.warning),
|
||||||
|
("warning_background", self.0.warning_background),
|
||||||
|
("warning_border", self.0.warning_border),
|
||||||
];
|
];
|
||||||
|
|
||||||
f.write_str("StatusColorsRefinement {")?;
|
f.write_str("StatusColorsRefinement {")?;
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
use anyhow::Result;
|
use anyhow::{Context, Result};
|
||||||
use gpui::{Hsla, Rgba};
|
use gpui::{serde_json, Hsla, Rgba};
|
||||||
use gpui1::color::Color as Zed1Color;
|
use gpui1::color::Color as Zed1Color;
|
||||||
use gpui1::fonts::HighlightStyle as Zed1HighlightStyle;
|
use gpui1::fonts::HighlightStyle as Zed1HighlightStyle;
|
||||||
use theme::{
|
use theme::{
|
||||||
Appearance, PlayerColor, PlayerColors, StatusColorsRefinement, ThemeColorsRefinement,
|
color_alpha, Appearance, PlayerColor, PlayerColors, StatusColorsRefinement,
|
||||||
UserFontStyle, UserFontWeight, UserHighlightStyle, UserSyntaxTheme, UserTheme,
|
ThemeColorsRefinement, UserFontStyle, UserFontWeight, UserHighlightStyle, UserSyntaxTheme,
|
||||||
UserThemeStylesRefinement,
|
UserTheme, UserThemeStylesRefinement,
|
||||||
};
|
};
|
||||||
use theme1::Theme as Zed1Theme;
|
use theme1::{ColorScheme, Theme as Zed1Theme};
|
||||||
|
|
||||||
fn zed1_color_to_hsla(color: Zed1Color) -> Hsla {
|
fn zed1_color_to_hsla(color: Zed1Color) -> Hsla {
|
||||||
let r = color.r as f32 / 255.;
|
let r = color.r as f32 / 255.;
|
||||||
|
@ -71,19 +71,61 @@ impl Zed1ThemeConverter {
|
||||||
Some(zed1_color_to_hsla(color))
|
Some(zed1_color_to_hsla(color))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let base_theme: ColorScheme = serde_json::from_value(self.theme.base_theme.clone())
|
||||||
|
.with_context(|| "failed to parse `theme.base_theme`")?;
|
||||||
|
|
||||||
|
let lowest = &base_theme.lowest;
|
||||||
|
|
||||||
let editor = &self.theme.editor;
|
let editor = &self.theme.editor;
|
||||||
let diff_style = &self.theme.editor.diff;
|
|
||||||
let diagnostic_summary = &self.theme.workspace.status_bar.diagnostic_summary;
|
|
||||||
|
|
||||||
Ok(StatusColorsRefinement {
|
Ok(StatusColorsRefinement {
|
||||||
created: convert(diff_style.inserted),
|
created: convert(lowest.positive.default.foreground),
|
||||||
modified: convert(diff_style.modified),
|
created_background: convert(lowest.positive.default.background),
|
||||||
deleted: convert(diff_style.deleted),
|
created_border: convert(lowest.positive.default.border),
|
||||||
success: convert(diagnostic_summary.icon_color_ok),
|
modified: convert(lowest.warning.default.foreground),
|
||||||
warning: convert(diagnostic_summary.icon_color_warning),
|
modified_background: convert(lowest.warning.default.background),
|
||||||
error: convert(diagnostic_summary.icon_color_error),
|
modified_border: convert(lowest.warning.default.border),
|
||||||
hint: editor.hint.color.map(zed1_color_to_hsla),
|
deleted: convert(lowest.negative.default.foreground),
|
||||||
..Default::default()
|
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),
|
||||||
|
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),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -117,85 +159,80 @@ impl Zed1ThemeConverter {
|
||||||
Some(zed1_color_to_hsla(color))
|
Some(zed1_color_to_hsla(color))
|
||||||
}
|
}
|
||||||
|
|
||||||
let picker = &self.theme.picker;
|
let base_theme: ColorScheme = serde_json::from_value(self.theme.base_theme.clone())
|
||||||
let title_bar = &self.theme.titlebar;
|
.with_context(|| "failed to parse `theme.base_theme`")?;
|
||||||
let status_bar = &self.theme.workspace.status_bar;
|
|
||||||
let project_panel = &self.theme.project_panel;
|
let lowest = &base_theme.lowest;
|
||||||
let tab_bar = &self.theme.workspace.tab_bar;
|
let middle = &base_theme.middle;
|
||||||
let active_tab = &self.theme.workspace.tab_bar.tab_style(true, true);
|
let highest = &base_theme.highest;
|
||||||
let inactive_tab = &self.theme.workspace.tab_bar.tab_style(true, false);
|
|
||||||
let toolbar = &self.theme.workspace.toolbar;
|
|
||||||
let editor = &self.theme.editor;
|
let editor = &self.theme.editor;
|
||||||
let scrollbar = &self.theme.editor.scrollbar;
|
|
||||||
let terminal = &self.theme.terminal;
|
let terminal = &self.theme.terminal;
|
||||||
|
|
||||||
Ok(ThemeColorsRefinement {
|
Ok(ThemeColorsRefinement {
|
||||||
border: convert(active_tab.container.border.color),
|
border: convert(lowest.base.default.border),
|
||||||
border_variant: convert(toolbar.container.border.color),
|
border_variant: convert(lowest.variant.default.border),
|
||||||
background: convert(self.theme.workspace.background),
|
border_focused: convert(lowest.accent.hovered.border),
|
||||||
elevated_surface_background: editor
|
border_selected: convert(lowest.accent.default.border),
|
||||||
.hover_popover
|
border_transparent: Some(gpui::transparent_black()),
|
||||||
.container
|
border_disabled: convert(lowest.base.disabled.border),
|
||||||
.background_color
|
elevated_surface_background: convert(middle.base.default.background),
|
||||||
.map(zed1_color_to_hsla),
|
surface_background: convert(middle.base.default.background),
|
||||||
title_bar_background: title_bar.container.background_color.map(zed1_color_to_hsla),
|
background: convert(lowest.base.default.background),
|
||||||
status_bar_background: status_bar
|
element_background: convert(lowest.on.default.background),
|
||||||
.container
|
element_hover: convert(lowest.on.hovered.background),
|
||||||
.background_color
|
element_active: convert(lowest.on.active.background),
|
||||||
.map(zed1_color_to_hsla)
|
element_selected: convert(lowest.on.active.background), // TODO: Check what this should be
|
||||||
.or_else(|| title_bar.container.background_color.map(zed1_color_to_hsla)),
|
element_disabled: convert(lowest.on.disabled.background),
|
||||||
panel_background: project_panel
|
|
||||||
.container
|
|
||||||
.background_color
|
|
||||||
.map(zed1_color_to_hsla),
|
|
||||||
text: convert(self.theme.collab_panel.channel_name.text.color),
|
|
||||||
text_muted: convert(tab_bar.pane_button.default_style().color),
|
|
||||||
text_accent: convert(status_bar.panel_buttons.button.active_state().icon_color),
|
|
||||||
text_disabled: convert(status_bar.panel_buttons.button.disabled_style().icon_color),
|
|
||||||
text_placeholder: picker
|
|
||||||
.empty_input_editor
|
|
||||||
.placeholder_text
|
|
||||||
.as_ref()
|
|
||||||
.map(|placeholder_text| placeholder_text.color)
|
|
||||||
.map(zed1_color_to_hsla),
|
|
||||||
element_hover: picker
|
|
||||||
.item
|
|
||||||
.hovered
|
|
||||||
.as_ref()
|
|
||||||
.and_then(|hovered| hovered.container.background_color)
|
|
||||||
.map(zed1_color_to_hsla),
|
|
||||||
element_selected: picker
|
|
||||||
.item
|
|
||||||
.active_state()
|
|
||||||
.container
|
|
||||||
.background_color
|
|
||||||
.map(zed1_color_to_hsla),
|
|
||||||
tab_bar_background: tab_bar.container.background_color.map(zed1_color_to_hsla),
|
|
||||||
tab_active_background: active_tab
|
|
||||||
.container
|
|
||||||
.background_color
|
|
||||||
.map(zed1_color_to_hsla),
|
|
||||||
tab_inactive_background: inactive_tab
|
|
||||||
.container
|
|
||||||
.background_color
|
|
||||||
.map(zed1_color_to_hsla),
|
|
||||||
drop_target_background: convert(self.theme.workspace.drop_target_overlay_color),
|
drop_target_background: convert(self.theme.workspace.drop_target_overlay_color),
|
||||||
toolbar_background: toolbar.container.background_color.map(zed1_color_to_hsla),
|
ghost_element_background: Some(gpui::transparent_black()),
|
||||||
|
ghost_element_hover: convert(lowest.on.hovered.background),
|
||||||
|
ghost_element_active: convert(lowest.on.active.background),
|
||||||
|
ghost_element_selected: convert(lowest.on.active.background), // TODO: Check what this should be
|
||||||
|
ghost_element_disabled: convert(lowest.on.disabled.background),
|
||||||
|
text: convert(lowest.base.default.foreground),
|
||||||
|
text_muted: convert(lowest.variant.default.foreground),
|
||||||
|
text_placeholder: convert(lowest.base.disabled.foreground), // TODO: What should placeholder be?
|
||||||
|
text_disabled: convert(lowest.base.disabled.foreground),
|
||||||
|
text_accent: convert(lowest.accent.default.foreground),
|
||||||
|
icon: convert(lowest.base.default.foreground),
|
||||||
|
icon_muted: convert(lowest.variant.default.foreground),
|
||||||
|
icon_disabled: convert(lowest.base.disabled.foreground),
|
||||||
|
icon_placeholder: convert(lowest.variant.default.foreground),
|
||||||
|
icon_accent: convert(lowest.accent.default.foreground),
|
||||||
|
status_bar_background: convert(lowest.base.default.background),
|
||||||
|
title_bar_background: convert(lowest.base.default.background),
|
||||||
|
toolbar_background: convert(highest.base.default.background),
|
||||||
|
tab_bar_background: convert(middle.base.default.background),
|
||||||
|
tab_inactive_background: convert(middle.base.default.background),
|
||||||
|
tab_active_background: convert(highest.base.default.background),
|
||||||
|
search_match_background: convert(highest.accent.default.background),
|
||||||
|
panel_background: convert(middle.base.default.background),
|
||||||
|
panel_focused_border: convert(lowest.accent.hovered.border),
|
||||||
|
pane_focused_border: convert(lowest.accent.hovered.border),
|
||||||
|
scrollbar_thumb_background: convert(middle.base.inverted.background)
|
||||||
|
.map(|color| color_alpha(color, 0.3)),
|
||||||
|
scrollbar_thumb_hover_background: convert(middle.base.hovered.background),
|
||||||
|
scrollbar_thumb_border: convert(middle.base.default.border),
|
||||||
|
scrollbar_track_background: convert(highest.base.default.background),
|
||||||
|
scrollbar_track_border: convert(highest.variant.default.border),
|
||||||
editor_foreground: convert(editor.text_color),
|
editor_foreground: convert(editor.text_color),
|
||||||
editor_background: convert(editor.background),
|
editor_background: convert(editor.background),
|
||||||
editor_gutter_background: convert(editor.gutter_background),
|
editor_gutter_background: convert(editor.gutter_background),
|
||||||
|
editor_subheader_background: convert(middle.base.default.background),
|
||||||
|
editor_active_line_background: convert(editor.active_line_background),
|
||||||
|
editor_highlighted_line_background: convert(editor.highlighted_line_background),
|
||||||
editor_line_number: convert(editor.line_number),
|
editor_line_number: convert(editor.line_number),
|
||||||
editor_active_line_number: convert(editor.line_number_active),
|
editor_active_line_number: convert(editor.line_number_active),
|
||||||
|
editor_invisible: convert(highest.variant.default.foreground), // TODO: Is this light enough?
|
||||||
editor_wrap_guide: convert(editor.wrap_guide),
|
editor_wrap_guide: convert(editor.wrap_guide),
|
||||||
editor_active_wrap_guide: convert(editor.active_wrap_guide),
|
editor_active_wrap_guide: convert(editor.active_wrap_guide),
|
||||||
scrollbar_track_background: scrollbar.track.background_color.map(zed1_color_to_hsla),
|
editor_document_highlight_read_background: convert(
|
||||||
scrollbar_track_border: convert(scrollbar.track.border.color),
|
editor.document_highlight_read_background,
|
||||||
scrollbar_thumb_background: scrollbar.thumb.background_color.map(zed1_color_to_hsla),
|
),
|
||||||
scrollbar_thumb_border: convert(scrollbar.thumb.border.color),
|
editor_document_highlight_write_background: convert(
|
||||||
scrollbar_thumb_hover_background: scrollbar
|
editor.document_highlight_write_background,
|
||||||
.thumb
|
),
|
||||||
.background_color
|
|
||||||
.map(zed1_color_to_hsla),
|
|
||||||
terminal_background: convert(terminal.background),
|
terminal_background: convert(terminal.background),
|
||||||
terminal_ansi_bright_black: convert(terminal.bright_black),
|
terminal_ansi_bright_black: convert(terminal.bright_black),
|
||||||
terminal_ansi_bright_red: convert(terminal.bright_red),
|
terminal_ansi_bright_red: convert(terminal.bright_red),
|
||||||
|
@ -213,7 +250,7 @@ impl Zed1ThemeConverter {
|
||||||
terminal_ansi_magenta: convert(terminal.magenta),
|
terminal_ansi_magenta: convert(terminal.magenta),
|
||||||
terminal_ansi_cyan: convert(terminal.cyan),
|
terminal_ansi_cyan: convert(terminal.cyan),
|
||||||
terminal_ansi_white: convert(terminal.white),
|
terminal_ansi_white: convert(terminal.white),
|
||||||
..Default::default()
|
link_text_hover: convert(highest.accent.default.foreground),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -9,6 +9,7 @@ path = "src/theme_selector.rs"
|
||||||
doctest = false
|
doctest = false
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
|
client = { path = "../client" }
|
||||||
editor = { path = "../editor" }
|
editor = { path = "../editor" }
|
||||||
fuzzy = { path = "../fuzzy" }
|
fuzzy = { path = "../fuzzy" }
|
||||||
fs = { path = "../fs" }
|
fs = { path = "../fs" }
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
use client::{telemetry::Telemetry, TelemetrySettings};
|
||||||
use feature_flags::FeatureFlagAppExt;
|
use feature_flags::FeatureFlagAppExt;
|
||||||
use fs::Fs;
|
use fs::Fs;
|
||||||
use fuzzy::{match_strings, StringMatch, StringMatchCandidate};
|
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>) {
|
pub fn toggle(workspace: &mut Workspace, _: &Toggle, cx: &mut ViewContext<Workspace>) {
|
||||||
workspace.toggle_modal(cx, |workspace, cx| {
|
workspace.toggle_modal(cx, |workspace, cx| {
|
||||||
let fs = workspace.app_state().fs.clone();
|
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<Theme>,
|
original_theme: Arc<Theme>,
|
||||||
selection_completed: bool,
|
selection_completed: bool,
|
||||||
selected_index: usize,
|
selected_index: usize,
|
||||||
|
telemetry: Arc<Telemetry>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl ThemeSelectorDelegate {
|
impl ThemeSelectorDelegate {
|
||||||
fn new(fs: Arc<dyn Fs>, cx: &mut ViewContext<ThemeSelector>) -> Self {
|
fn new(
|
||||||
|
fs: Arc<dyn Fs>,
|
||||||
|
telemetry: Arc<Telemetry>,
|
||||||
|
cx: &mut ViewContext<ThemeSelector>,
|
||||||
|
) -> Self {
|
||||||
let original_theme = theme::current(cx).clone();
|
let original_theme = theme::current(cx).clone();
|
||||||
|
|
||||||
let staff_mode = cx.is_staff();
|
let staff_mode = cx.is_staff();
|
||||||
|
@ -74,6 +81,7 @@ impl ThemeSelectorDelegate {
|
||||||
original_theme: original_theme.clone(),
|
original_theme: original_theme.clone(),
|
||||||
selected_index: 0,
|
selected_index: 0,
|
||||||
selection_completed: false,
|
selection_completed: false,
|
||||||
|
telemetry,
|
||||||
};
|
};
|
||||||
this.select_if_matching(&original_theme.meta.name);
|
this.select_if_matching(&original_theme.meta.name);
|
||||||
this
|
this
|
||||||
|
@ -124,6 +132,11 @@ impl PickerDelegate for ThemeSelectorDelegate {
|
||||||
self.selection_completed = true;
|
self.selection_completed = true;
|
||||||
|
|
||||||
let theme_name = theme::current(cx).meta.name.clone();
|
let theme_name = theme::current(cx).meta.name.clone();
|
||||||
|
|
||||||
|
let telemetry_settings = *settings::get::<TelemetrySettings>(cx);
|
||||||
|
self.telemetry
|
||||||
|
.report_setting_event(telemetry_settings, "theme", theme_name.to_string());
|
||||||
|
|
||||||
update_settings_file::<ThemeSettings>(self.fs.clone(), cx, |settings| {
|
update_settings_file::<ThemeSettings>(self.fs.clone(), cx, |settings| {
|
||||||
settings.theme = Some(theme_name);
|
settings.theme = Some(theme_name);
|
||||||
});
|
});
|
||||||
|
|
|
@ -9,17 +9,18 @@ path = "src/theme_selector.rs"
|
||||||
doctest = false
|
doctest = false
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
|
client = { package = "client2", path = "../client2" }
|
||||||
editor = { package = "editor2", path = "../editor2" }
|
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" }
|
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" }
|
util = { path = "../util" }
|
||||||
|
workspace = { package = "workspace2", path = "../workspace2" }
|
||||||
log.workspace = true
|
log.workspace = true
|
||||||
parking_lot.workspace = true
|
parking_lot.workspace = true
|
||||||
postage.workspace = true
|
postage.workspace = true
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
use client::{telemetry::Telemetry, TelemetrySettings};
|
||||||
use feature_flags::FeatureFlagAppExt;
|
use feature_flags::FeatureFlagAppExt;
|
||||||
use fs::Fs;
|
use fs::Fs;
|
||||||
use fuzzy::{match_strings, StringMatch, StringMatchCandidate};
|
use fuzzy::{match_strings, StringMatch, StringMatchCandidate};
|
||||||
|
@ -6,7 +7,7 @@ use gpui::{
|
||||||
VisualContext, WeakView,
|
VisualContext, WeakView,
|
||||||
};
|
};
|
||||||
use picker::{Picker, PickerDelegate};
|
use picker::{Picker, PickerDelegate};
|
||||||
use settings::{update_settings_file, SettingsStore};
|
use settings::{update_settings_file, Settings, SettingsStore};
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
use theme::{Theme, ThemeMeta, ThemeRegistry, ThemeSettings};
|
use theme::{Theme, ThemeMeta, ThemeRegistry, ThemeSettings};
|
||||||
use ui::{prelude::*, v_stack, ListItem, ListItemSpacing};
|
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<Workspace>) {
|
pub fn toggle(workspace: &mut Workspace, _: &Toggle, cx: &mut ViewContext<Workspace>) {
|
||||||
let fs = workspace.app_state().fs.clone();
|
let fs = workspace.app_state().fs.clone();
|
||||||
|
let telemetry = workspace.client().telemetry().clone();
|
||||||
workspace.toggle_modal(cx, |cx| {
|
workspace.toggle_modal(cx, |cx| {
|
||||||
ThemeSelector::new(
|
ThemeSelector::new(
|
||||||
ThemeSelectorDelegate::new(cx.view().downgrade(), fs, cx),
|
ThemeSelectorDelegate::new(cx.view().downgrade(), fs, telemetry, cx),
|
||||||
cx,
|
cx,
|
||||||
)
|
)
|
||||||
});
|
});
|
||||||
|
@ -86,6 +88,7 @@ pub struct ThemeSelectorDelegate {
|
||||||
original_theme: Arc<Theme>,
|
original_theme: Arc<Theme>,
|
||||||
selection_completed: bool,
|
selection_completed: bool,
|
||||||
selected_index: usize,
|
selected_index: usize,
|
||||||
|
telemetry: Arc<Telemetry>,
|
||||||
view: WeakView<ThemeSelector>,
|
view: WeakView<ThemeSelector>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -93,6 +96,7 @@ impl ThemeSelectorDelegate {
|
||||||
fn new(
|
fn new(
|
||||||
weak_view: WeakView<ThemeSelector>,
|
weak_view: WeakView<ThemeSelector>,
|
||||||
fs: Arc<dyn Fs>,
|
fs: Arc<dyn Fs>,
|
||||||
|
telemetry: Arc<Telemetry>,
|
||||||
cx: &mut ViewContext<ThemeSelector>,
|
cx: &mut ViewContext<ThemeSelector>,
|
||||||
) -> Self {
|
) -> Self {
|
||||||
let original_theme = cx.theme().clone();
|
let original_theme = cx.theme().clone();
|
||||||
|
@ -122,6 +126,7 @@ impl ThemeSelectorDelegate {
|
||||||
original_theme: original_theme.clone(),
|
original_theme: original_theme.clone(),
|
||||||
selected_index: 0,
|
selected_index: 0,
|
||||||
selection_completed: false,
|
selection_completed: false,
|
||||||
|
telemetry,
|
||||||
view: weak_view,
|
view: weak_view,
|
||||||
};
|
};
|
||||||
this.select_if_matching(&original_theme.name);
|
this.select_if_matching(&original_theme.name);
|
||||||
|
@ -175,6 +180,11 @@ impl PickerDelegate for ThemeSelectorDelegate {
|
||||||
self.selection_completed = true;
|
self.selection_completed = true;
|
||||||
|
|
||||||
let theme_name = cx.theme().name.clone();
|
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::<ThemeSettings>(self.fs.clone(), cx, move |settings| {
|
update_settings_file::<ThemeSettings>(self.fs.clone(), cx, move |settings| {
|
||||||
settings.theme = Some(theme_name.to_string());
|
settings.theme = Some(theme_name.to_string());
|
||||||
});
|
});
|
||||||
|
|
|
@ -253,7 +253,7 @@ impl Render for ContextMenu {
|
||||||
} = item
|
} = item
|
||||||
{
|
{
|
||||||
el = el.on_boxed_action(
|
el = el.on_boxed_action(
|
||||||
action,
|
&**action,
|
||||||
cx.listener(ContextMenu::on_action_dispatch),
|
cx.listener(ContextMenu::on_action_dispatch),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -67,8 +67,8 @@ impl<T: AsRef<Path>> PathExt for T {
|
||||||
fn icon_suffix(&self) -> Option<&str> {
|
fn icon_suffix(&self) -> Option<&str> {
|
||||||
let file_name = self.as_ref().file_name()?.to_str()?;
|
let file_name = self.as_ref().file_name()?.to_str()?;
|
||||||
|
|
||||||
if file_name.starts_with(".") {
|
if file_name.starts_with('.') {
|
||||||
return file_name.strip_prefix(".");
|
return file_name.strip_prefix('.');
|
||||||
}
|
}
|
||||||
|
|
||||||
self.as_ref()
|
self.as_ref()
|
||||||
|
@ -213,7 +213,7 @@ impl Eq for PathMatcher {}
|
||||||
impl PathMatcher {
|
impl PathMatcher {
|
||||||
pub fn new(maybe_glob: &str) -> Result<Self, globset::Error> {
|
pub fn new(maybe_glob: &str) -> Result<Self, globset::Error> {
|
||||||
Ok(PathMatcher {
|
Ok(PathMatcher {
|
||||||
glob: Glob::new(&maybe_glob)?.compile_matcher(),
|
glob: Glob::new(maybe_glob)?.compile_matcher(),
|
||||||
maybe_path: PathBuf::from(maybe_glob),
|
maybe_path: PathBuf::from(maybe_glob),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,8 +29,8 @@ pub trait Panel: FocusableView + EventEmitter<PanelEvent> {
|
||||||
fn set_position(&mut self, position: DockPosition, cx: &mut ViewContext<Self>);
|
fn set_position(&mut self, position: DockPosition, cx: &mut ViewContext<Self>);
|
||||||
fn size(&self, cx: &WindowContext) -> Pixels;
|
fn size(&self, cx: &WindowContext) -> Pixels;
|
||||||
fn set_size(&mut self, size: Option<Pixels>, cx: &mut ViewContext<Self>);
|
fn set_size(&mut self, size: Option<Pixels>, cx: &mut ViewContext<Self>);
|
||||||
// todo!("We should have a icon tooltip method, rather than using persistant_name")
|
|
||||||
fn icon(&self, cx: &WindowContext) -> Option<ui::Icon>;
|
fn icon(&self, cx: &WindowContext) -> Option<ui::Icon>;
|
||||||
|
fn icon_tooltip(&self, cx: &WindowContext) -> Option<&'static str>;
|
||||||
fn toggle_action(&self) -> Box<dyn Action>;
|
fn toggle_action(&self) -> Box<dyn Action>;
|
||||||
fn icon_label(&self, _: &WindowContext) -> Option<String> {
|
fn icon_label(&self, _: &WindowContext) -> Option<String> {
|
||||||
None
|
None
|
||||||
|
@ -54,6 +54,7 @@ pub trait PanelHandle: Send + Sync {
|
||||||
fn size(&self, cx: &WindowContext) -> Pixels;
|
fn size(&self, cx: &WindowContext) -> Pixels;
|
||||||
fn set_size(&self, size: Option<Pixels>, cx: &mut WindowContext);
|
fn set_size(&self, size: Option<Pixels>, cx: &mut WindowContext);
|
||||||
fn icon(&self, cx: &WindowContext) -> Option<ui::Icon>;
|
fn icon(&self, cx: &WindowContext) -> Option<ui::Icon>;
|
||||||
|
fn icon_tooltip(&self, cx: &WindowContext) -> Option<&'static str>;
|
||||||
fn toggle_action(&self, cx: &WindowContext) -> Box<dyn Action>;
|
fn toggle_action(&self, cx: &WindowContext) -> Box<dyn Action>;
|
||||||
fn icon_label(&self, cx: &WindowContext) -> Option<String>;
|
fn icon_label(&self, cx: &WindowContext) -> Option<String>;
|
||||||
fn focus_handle(&self, cx: &AppContext) -> FocusHandle;
|
fn focus_handle(&self, cx: &AppContext) -> FocusHandle;
|
||||||
|
@ -108,6 +109,10 @@ where
|
||||||
self.read(cx).icon(cx)
|
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<dyn Action> {
|
fn toggle_action(&self, cx: &WindowContext) -> Box<dyn Action> {
|
||||||
self.read(cx).toggle_action()
|
self.read(cx).toggle_action()
|
||||||
}
|
}
|
||||||
|
@ -612,6 +617,7 @@ impl Render for PanelButtons {
|
||||||
.enumerate()
|
.enumerate()
|
||||||
.filter_map(|(i, entry)| {
|
.filter_map(|(i, entry)| {
|
||||||
let icon = entry.panel.icon(cx)?;
|
let icon = entry.panel.icon(cx)?;
|
||||||
|
let icon_tooltip = entry.panel.icon_tooltip(cx)?;
|
||||||
let name = entry.panel.persistent_name();
|
let name = entry.panel.persistent_name();
|
||||||
let panel = entry.panel.clone();
|
let panel = entry.panel.clone();
|
||||||
|
|
||||||
|
@ -627,7 +633,7 @@ impl Render for PanelButtons {
|
||||||
} else {
|
} else {
|
||||||
let action = entry.panel.toggle_action(cx);
|
let action = entry.panel.toggle_action(cx);
|
||||||
|
|
||||||
(action, name.into())
|
(action, icon_tooltip.into())
|
||||||
};
|
};
|
||||||
|
|
||||||
Some(
|
Some(
|
||||||
|
@ -748,6 +754,10 @@ pub mod test {
|
||||||
None
|
None
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn icon_tooltip(&self, _cx: &WindowContext) -> Option<&'static str> {
|
||||||
|
None
|
||||||
|
}
|
||||||
|
|
||||||
fn toggle_action(&self) -> Box<dyn Action> {
|
fn toggle_action(&self) -> Box<dyn Action> {
|
||||||
ToggleTestPanel.boxed_clone()
|
ToggleTestPanel.boxed_clone()
|
||||||
}
|
}
|
||||||
|
|
|
@ -168,6 +168,11 @@ fn main() {
|
||||||
|
|
||||||
client.telemetry().start(installation_id, session_id, cx);
|
client.telemetry().start(installation_id, session_id, cx);
|
||||||
let telemetry_settings = *settings::get::<TelemetrySettings>(cx);
|
let telemetry_settings = *settings::get::<TelemetrySettings>(cx);
|
||||||
|
client.telemetry().report_setting_event(
|
||||||
|
telemetry_settings,
|
||||||
|
"theme",
|
||||||
|
theme::current(cx).meta.name.to_string(),
|
||||||
|
);
|
||||||
let event_operation = match existing_installation_id_found {
|
let event_operation = match existing_installation_id_found {
|
||||||
Some(false) => "first open",
|
Some(false) => "first open",
|
||||||
_ => "open",
|
_ => "open",
|
||||||
|
|
|
@ -173,6 +173,11 @@ fn main() {
|
||||||
|
|
||||||
client.telemetry().start(installation_id, session_id, cx);
|
client.telemetry().start(installation_id, session_id, cx);
|
||||||
let telemetry_settings = *client::TelemetrySettings::get_global(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 {
|
let event_operation = match existing_installation_id_found {
|
||||||
Some(false) => "first open",
|
Some(false) => "first open",
|
||||||
_ => "open",
|
_ => "open",
|
||||||
|
|
|
@ -10,11 +10,6 @@ fi
|
||||||
environment=$1
|
environment=$1
|
||||||
version=$2
|
version=$2
|
||||||
|
|
||||||
if [[ ${environment} == "nightly" ]]; then
|
|
||||||
echo "nightly is not yet supported"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
export_vars_for_environment ${environment}
|
export_vars_for_environment ${environment}
|
||||||
image_id=$(image_id_for_version ${version})
|
image_id=$(image_id_for_version ${version})
|
||||||
|
|
||||||
|
@ -23,6 +18,6 @@ export ZED_KUBE_NAMESPACE=${environment}
|
||||||
export ZED_IMAGE_ID=${image_id}
|
export ZED_IMAGE_ID=${image_id}
|
||||||
|
|
||||||
target_zed_kube_cluster
|
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}"
|
echo "deployed collab v${version} to ${environment}"
|
25
script/deploy-postgrest
Executable file
25
script/deploy-postgrest
Executable file
|
@ -0,0 +1,25 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -eu
|
||||||
|
source script/lib/deploy-helpers.sh
|
||||||
|
|
||||||
|
if [[ $# < 1 ]]; then
|
||||||
|
echo "Usage: $0 <production|staging> (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"
|
|
@ -60,5 +60,6 @@ export default function app(): any {
|
||||||
chat_panel: chat_panel(),
|
chat_panel: chat_panel(),
|
||||||
notification_panel: notification_panel(),
|
notification_panel: notification_panel(),
|
||||||
component_test: component_test(),
|
component_test: component_test(),
|
||||||
|
base_theme: theme,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue