Skip to content

Commit 5d8af8e

Browse files
chore: WIP
1 parent 3112ff0 commit 5d8af8e

File tree

6 files changed

+52
-23
lines changed

6 files changed

+52
-23
lines changed

Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[package]
2-
name = "zed_postgresql_lsp"
2+
name = "zed_postgres_lsp"
33
version = "0.0.1"
44
edition = "2021"
55
publish = false

extension.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
id = "postgres-lsp"
2-
name = "Postgresql LSP"
2+
name = "Postgres LSP"
33
version = "0.0.1"
44
schema_version = 1
55
authors = ["jeffreyguenther"]
6-
description = "Postgresql LSP"
7-
repository = "https://github.com/LoamStudios/zed-postgresql-lsp"
6+
description = "Postgres LSP"
7+
repository = "https://github.com/LoamStudios/zed-postgres-lsp"
88

99
[language_servers.sql]
1010
name = "Postgresql LSP"

postgrestools.jsonc

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
{
2+
"$schema": "https://pgtools.dev/schemas/0.0.0/schema.json",
3+
"vcs": {
4+
"enabled": false,
5+
"clientKind": "git",
6+
"useIgnoreFile": false
7+
},
8+
"files": {
9+
"ignore": []
10+
},
11+
"linter": {
12+
"enabled": true,
13+
"rules": {
14+
"recommended": true
15+
}
16+
},
17+
"db": {
18+
"host": "localhost",
19+
"port": 5432,
20+
"username": null,
21+
"password": null,
22+
"database": "keep_dev",
23+
"connTimeoutSecs": 10
24+
}
25+
}

src/postgres_lsp.rs

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,17 @@ use std::fs;
22
use zed::settings::LspSettings;
33
use zed_extension_api::{self as zed, serde_json, LanguageServerId, Result};
44

5-
struct PostresqlLspExtension {
5+
struct PostgresLspExtension {
66
cached_binary_path: Option<String>,
77
}
88

9-
impl PostresqlLspExtension {
9+
impl PostgresLspExtension {
1010
fn language_server_binary_path(
1111
&mut self,
1212
language_server_id: &LanguageServerId,
1313
worktree: &zed::Worktree,
1414
) -> Result<String> {
15-
if let Some(path) = worktree.which("glsl_analyzer") {
15+
if let Some(path) = worktree.which("postgrestools") {
1616
return Ok(path);
1717
}
1818

@@ -27,7 +27,7 @@ impl PostresqlLspExtension {
2727
&zed::LanguageServerInstallationStatus::CheckingForUpdate,
2828
);
2929
let release = zed::latest_github_release(
30-
"nolanderc/glsl_analyzer",
30+
"supabase-community/postgres-language-server",
3131
zed::GithubReleaseOptions {
3232
require_assets: true,
3333
pre_release: false,
@@ -36,16 +36,16 @@ impl PostresqlLspExtension {
3636

3737
let (platform, arch) = zed::current_platform();
3838
let asset_name = format!(
39-
"{arch}-{os}.zip",
39+
"postgrestools_{arch}-{os}",
4040
arch = match arch {
4141
zed::Architecture::Aarch64 => "aarch64",
4242
zed::Architecture::X86 => "x86",
4343
zed::Architecture::X8664 => "x86_64",
4444
},
4545
os = match platform {
46-
zed::Os::Mac => "macos",
47-
zed::Os::Linux => "linux-musl",
48-
zed::Os::Windows => "windows",
46+
zed::Os::Mac => "apple-darwin",
47+
zed::Os::Linux => "unknown-linux-gnu",
48+
zed::Os::Windows => "ps-windows-msvc",
4949
}
5050
);
5151

@@ -55,23 +55,27 @@ impl PostresqlLspExtension {
5555
.find(|asset| asset.name == asset_name)
5656
.ok_or_else(|| format!("no asset found matching {:?}", asset_name))?;
5757

58-
let version_dir = format!("glsl_analyzer-{}", release.version);
58+
let version_dir = format!("postgrestools-{}", release.version);
5959
fs::create_dir_all(&version_dir)
6060
.map_err(|err| format!("failed to create directory '{version_dir}': {err}"))?;
61-
let binary_path = format!("{version_dir}/bin/glsl_analyzer");
61+
let binary_path = format!("{version_dir}/bin/postgrestools");
62+
63+
eprintln!("{}", &asset.download_url);
6264

6365
if !fs::metadata(&binary_path).map_or(false, |stat| stat.is_file()) {
6466
zed::set_language_server_installation_status(
6567
language_server_id,
6668
&zed::LanguageServerInstallationStatus::Downloading,
6769
);
6870

71+
eprintln!("{}", &asset.download_url);
72+
6973
zed::download_file(
7074
&asset.download_url,
7175
&version_dir,
7276
match platform {
73-
zed::Os::Mac | zed::Os::Linux => zed::DownloadedFileType::Zip,
74-
zed::Os::Windows => zed::DownloadedFileType::Zip,
77+
zed::Os::Mac | zed::Os::Linux => zed::DownloadedFileType::Uncompressed,
78+
zed::Os::Windows => zed::DownloadedFileType::Uncompressed,
7579
},
7680
)
7781
.map_err(|e| format!("failed to download file: {e}"))?;
@@ -93,7 +97,7 @@ impl PostresqlLspExtension {
9397
}
9498
}
9599

96-
impl zed::Extension for PostresqlLspExtension {
100+
impl zed::Extension for PostgresLspExtension {
97101
fn new() -> Self {
98102
Self {
99103
cached_binary_path: None,
@@ -107,7 +111,7 @@ impl zed::Extension for PostresqlLspExtension {
107111
) -> Result<zed::Command> {
108112
Ok(zed::Command {
109113
command: self.language_server_binary_path(language_server_id, worktree)?,
110-
args: vec![],
114+
args: vec!["lsp-proxy".to_string()],
111115
env: Default::default(),
112116
})
113117
}
@@ -117,15 +121,15 @@ impl zed::Extension for PostresqlLspExtension {
117121
_language_server_id: &zed::LanguageServerId,
118122
worktree: &zed::Worktree,
119123
) -> Result<Option<serde_json::Value>> {
120-
let settings = LspSettings::for_worktree("postgresql_lsp", worktree)
124+
let settings = LspSettings::for_worktree("postgres_lsp", worktree)
121125
.ok()
122126
.and_then(|lsp_settings| lsp_settings.settings.clone())
123127
.unwrap_or_default();
124128

125129
Ok(Some(serde_json::json!({
126-
"postgresql_lsp": settings
130+
"postgres_lsp": settings
127131
})))
128132
}
129133
}
130134

131-
zed::register_extension!(PostresqlLspExtension);
135+
zed::register_extension!(PostgresLspExtension);

test.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
SELECT * FROM table;
1+
select * from haven;

0 commit comments

Comments
 (0)