Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ on:
pull_request:
branches: [main]

permissions:
contents: read

env:
CARGO_TERM_COLOR: always

Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ on:
tags:
- 'v*'

permissions:
contents: read

env:
CARGO_TERM_COLOR: always

Expand Down
68 changes: 41 additions & 27 deletions dependi-lsp/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

30 changes: 14 additions & 16 deletions dependi-lsp/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -16,21 +16,19 @@ path = "src/main.rs"

[dependencies]
tower-lsp = "0.20"
tokio = { version = "1", features = ["full"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
reqwest = { version = "0.12", features = ["json", "rustls-tls"], default-features = false }
dashmap = "6"
toml = "0.9"
semver = "1"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
anyhow = "1"
thiserror = "2"
rusqlite = { version = "0.37", features = ["bundled"] }
tokio = { version = "1.48", features = ["full"] }
serde = { version = "1.0.228", features = ["derive"] }
serde_json = "1.0.148"
reqwest = { version = "0.12.28", features = ["json", "rustls-tls"], default-features = false }
dashmap = "6.1"
toml = "0.9.8"
semver = "1.0.27"
tracing = "0.1.44"
tracing-subscriber = { version = "0.3.22", features = ["env-filter"] }
anyhow = "1.0.100"
thiserror = "2.0.17"
rusqlite = { version = "0.38", features = ["bundled"] }
dirs = "6"
serde_yaml = "0.9"
chrono = "0.4"
clap = { version = "4", features = ["derive"] }
# rustsec = "0.30" # TODO: Re-enable when API is stable
# parking_lot = "0.12" # For rustsec client
chrono = "0.4.42"
clap = { version = "4.5.53", features = ["derive"] }
10 changes: 5 additions & 5 deletions dependi-lsp/src/cache/sqlite.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,12 @@ use rusqlite::{Connection, params};
use crate::registries::VersionInfo;

/// Default TTL for cache entries (1 hour)
const DEFAULT_TTL_SECS: u64 = 3600;
const DEFAULT_TTL_SECS: i64 = 3600;

/// SQLite-based persistent cache
pub struct SqliteCache {
conn: Mutex<Connection>,
ttl_secs: u64,
ttl_secs: i64,
}

impl SqliteCache {
Expand Down Expand Up @@ -81,7 +81,7 @@ impl SqliteCache {
let conn = self.conn.lock().unwrap();
let now = current_timestamp();

let result: Result<(String, u64, u64), _> = conn.query_row(
let result: Result<(String, i64, i64), _> = conn.query_row(
"SELECT data, inserted_at, ttl_secs FROM packages WHERE key = ?",
[key],
|row| Ok((row.get(0)?, row.get(1)?, row.get(2)?)),
Expand Down Expand Up @@ -131,11 +131,11 @@ impl SqliteCache {
}

/// Get current Unix timestamp
fn current_timestamp() -> u64 {
fn current_timestamp() -> i64 {
SystemTime::now()
.duration_since(UNIX_EPOCH)
.unwrap_or_default()
.as_secs()
.as_secs() as i64
}

#[cfg(test)]
Expand Down
6 changes: 3 additions & 3 deletions dependi-zed/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion dependi-zed/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,4 @@ authors = ["Mathieu"]
crate-type = ["cdylib"]

[dependencies]
zed_extension_api = "0.5"
zed_extension_api = "0.7"
8 changes: 4 additions & 4 deletions dependi-zed/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@ impl DependiExtension {
language_server_id: &LanguageServerId,
) -> Result<String> {
// Return cached path if valid
if let Some(path) = &self.cached_binary_path {
if std::fs::metadata(path).map(|m| m.is_file()).unwrap_or(false) {
return Ok(path.clone());
}
if let Some(path) = &self.cached_binary_path
&& std::fs::metadata(path).map(|m| m.is_file()).unwrap_or(false)
{
return Ok(path.clone());
}

// Download from GitHub releases
Expand Down