@@ -2,17 +2,17 @@ use std::fs;
2
2
use zed:: settings:: LspSettings ;
3
3
use zed_extension_api:: { self as zed, serde_json, LanguageServerId , Result } ;
4
4
5
- struct PostresqlLspExtension {
5
+ struct PostgresLspExtension {
6
6
cached_binary_path : Option < String > ,
7
7
}
8
8
9
- impl PostresqlLspExtension {
9
+ impl PostgresLspExtension {
10
10
fn language_server_binary_path (
11
11
& mut self ,
12
12
language_server_id : & LanguageServerId ,
13
13
worktree : & zed:: Worktree ,
14
14
) -> Result < String > {
15
- if let Some ( path) = worktree. which ( "glsl_analyzer " ) {
15
+ if let Some ( path) = worktree. which ( "postgrestools " ) {
16
16
return Ok ( path) ;
17
17
}
18
18
@@ -27,7 +27,7 @@ impl PostresqlLspExtension {
27
27
& zed:: LanguageServerInstallationStatus :: CheckingForUpdate ,
28
28
) ;
29
29
let release = zed:: latest_github_release (
30
- "nolanderc/glsl_analyzer " ,
30
+ "supabase-community/postgres-language-server " ,
31
31
zed:: GithubReleaseOptions {
32
32
require_assets : true ,
33
33
pre_release : false ,
@@ -36,16 +36,16 @@ impl PostresqlLspExtension {
36
36
37
37
let ( platform, arch) = zed:: current_platform ( ) ;
38
38
let asset_name = format ! (
39
- "{arch}-{os}.zip " ,
39
+ "postgrestools_ {arch}-{os}" ,
40
40
arch = match arch {
41
41
zed:: Architecture :: Aarch64 => "aarch64" ,
42
42
zed:: Architecture :: X86 => "x86" ,
43
43
zed:: Architecture :: X8664 => "x86_64" ,
44
44
} ,
45
45
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 " ,
49
49
}
50
50
) ;
51
51
@@ -55,23 +55,27 @@ impl PostresqlLspExtension {
55
55
. find ( |asset| asset. name == asset_name)
56
56
. ok_or_else ( || format ! ( "no asset found matching {:?}" , asset_name) ) ?;
57
57
58
- let version_dir = format ! ( "glsl_analyzer -{}" , release. version) ;
58
+ let version_dir = format ! ( "postgrestools -{}" , release. version) ;
59
59
fs:: create_dir_all ( & version_dir)
60
60
. 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) ;
62
64
63
65
if !fs:: metadata ( & binary_path) . map_or ( false , |stat| stat. is_file ( ) ) {
64
66
zed:: set_language_server_installation_status (
65
67
language_server_id,
66
68
& zed:: LanguageServerInstallationStatus :: Downloading ,
67
69
) ;
68
70
71
+ eprintln ! ( "{}" , & asset. download_url) ;
72
+
69
73
zed:: download_file (
70
74
& asset. download_url ,
71
75
& version_dir,
72
76
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 ,
75
79
} ,
76
80
)
77
81
. map_err ( |e| format ! ( "failed to download file: {e}" ) ) ?;
@@ -93,7 +97,7 @@ impl PostresqlLspExtension {
93
97
}
94
98
}
95
99
96
- impl zed:: Extension for PostresqlLspExtension {
100
+ impl zed:: Extension for PostgresLspExtension {
97
101
fn new ( ) -> Self {
98
102
Self {
99
103
cached_binary_path : None ,
@@ -107,7 +111,7 @@ impl zed::Extension for PostresqlLspExtension {
107
111
) -> Result < zed:: Command > {
108
112
Ok ( zed:: Command {
109
113
command : self . language_server_binary_path ( language_server_id, worktree) ?,
110
- args : vec ! [ ] ,
114
+ args : vec ! [ "lsp-proxy" . to_string ( ) ] ,
111
115
env : Default :: default ( ) ,
112
116
} )
113
117
}
@@ -117,15 +121,15 @@ impl zed::Extension for PostresqlLspExtension {
117
121
_language_server_id : & zed:: LanguageServerId ,
118
122
worktree : & zed:: Worktree ,
119
123
) -> Result < Option < serde_json:: Value > > {
120
- let settings = LspSettings :: for_worktree ( "postgresql_lsp " , worktree)
124
+ let settings = LspSettings :: for_worktree ( "postgres_lsp " , worktree)
121
125
. ok ( )
122
126
. and_then ( |lsp_settings| lsp_settings. settings . clone ( ) )
123
127
. unwrap_or_default ( ) ;
124
128
125
129
Ok ( Some ( serde_json:: json!( {
126
- "postgresql_lsp " : settings
130
+ "postgres_lsp " : settings
127
131
} ) ) )
128
132
}
129
133
}
130
134
131
- zed:: register_extension!( PostresqlLspExtension ) ;
135
+ zed:: register_extension!( PostgresLspExtension ) ;
0 commit comments