Skip to content

Commit 69e32a5

Browse files
authored
Add autocorrect server command to start LSP server. (#199)
Made this for Zed extension: <img alt="image" src="https://github.com/huacnlee/zed-autocorrect/assets/5518/762c70e4-961b-4a9d-850c-5768389c459b">
1 parent d77e63e commit 69e32a5

File tree

9 files changed

+439
-22
lines changed

9 files changed

+439
-22
lines changed

Cargo.toml

+26-17
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,32 @@
11
[workspace]
2+
# https://github.com/seanmonstar/reqwest/issues/1300#issuecomment-1368265203
3+
resolver = "2"
24
default-members = [
3-
"autocorrect",
4-
"autocorrect-derive",
5-
"autocorrect-wasm",
6-
"autocorrect-cli",
7-
]
8-
exclude = [
9-
"autocorrect-tauri",
5+
"autocorrect",
6+
"autocorrect-derive",
7+
"autocorrect-wasm",
8+
"autocorrect-cli",
9+
"autocorrect-lsp",
1010
]
1111
members = [
12-
"autocorrect",
13-
"autocorrect-wasm",
14-
"autocorrect-derive",
15-
"autocorrect-cli",
16-
"autocorrect-py",
17-
"autocorrect-node",
18-
"autocorrect-rb/ext/autocorrect",
19-
"autocorrect-java",
12+
"autocorrect",
13+
"autocorrect-wasm",
14+
"autocorrect-derive",
15+
"autocorrect-cli",
16+
"autocorrect-py",
17+
"autocorrect-node",
18+
"autocorrect-rb/ext/autocorrect",
19+
"autocorrect-java",
20+
"autocorrect-lsp",
2021
]
2122

22-
# https://github.com/seanmonstar/reqwest/issues/1300#issuecomment-1368265203
23-
resolver = "2"
23+
[workspace.dependencies]
24+
autocorrect = { path = "autocorrect" }
25+
autocorrect-derive = { path = "autocorrect-derive" }
26+
autocorrect-wasm = { path = "autocorrect-wasm" }
27+
autocorrect-cli = { path = "autocorrect-cli" }
28+
autocorrect-lsp = { path = "autocorrect-lsp" }
29+
30+
serde = { version = "1", features = ["derive"] }
31+
serde_json = "1.0.64"
32+
anyhow = "1.0.86"

Makefile

+2
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ run:
1111
cargo run -- --lint --config $(WORKDIR)/.autocorrectrc.template --no-diff-bg-color
1212
run\:json:
1313
cargo run -- --lint --format json
14+
server:
15+
cargo run -- server
1416
build:
1517
cargo build --manifest-path autocorrect-cli/Cargo.toml --release --target aarch64-apple-darwin
1618
ls -lha target/aarch64-apple-darwin/release/autocorrect

autocorrect-cli/Cargo.toml

+3-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,9 @@ name = "autocorrect"
1414
path = "src/main.rs"
1515

1616
[dependencies]
17-
autocorrect = { path = "../autocorrect", version = ">1.0.0" }
17+
autocorrect.workspace = true
18+
autocorrect-lsp.workspace = true
19+
1820
clap = { version = "4", features = ['derive'] }
1921
ignore = "0.4"
2022
log = "0.4"

autocorrect-cli/src/cli.rs

+2
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,8 @@ pub(crate) enum Commands {
104104
about = "Update AutoCorrect to latest version."
105105
)]
106106
Update {},
107+
#[command(name = "server", about = "Start AutoCorrect LSP server.")]
108+
Server {},
107109
}
108110

109111
impl Cli {

autocorrect-cli/src/lib.rs

+5
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,11 @@ where
7474
}
7575
return;
7676
}
77+
Some(cli::Commands::Server {}) => {
78+
log::info!("Starting AutoCorrect LSP server...");
79+
autocorrect_lsp::start().await;
80+
return;
81+
}
7782
_ => {}
7883
}
7984

autocorrect-lsp/Cargo.toml

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
[package]
2+
name = "autocorrect-lsp"
3+
version = "2.9.4"
4+
edition = "2021"
5+
6+
[dependencies]
7+
autocorrect.workspace = true
8+
9+
tokio = { version = "1.37.0", features = [
10+
"io-util",
11+
"io-std",
12+
"macros",
13+
"rt-multi-thread",
14+
] }
15+
tower-lsp = "0.20.0"

0 commit comments

Comments
 (0)