Skip to content

Commit 18d30fd

Browse files
committed
feat: init language service
1 parent 8bee7cb commit 18d30fd

File tree

19 files changed

+360
-244
lines changed

19 files changed

+360
-244
lines changed

Cargo.lock

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/compiler/benches/bench.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ fn compile(input_dir: std::path::PathBuf) {
9999
assert!(output.diags.is_empty());
100100
}
101101

102-
#[divan::bench(args = CASES.clone().into_iter(), sample_size = 1, sample_count = 20)]
102+
#[divan::bench(args = CASES.clone().into_iter(), sample_size = 1, sample_count = 10)]
103103
fn bench_compile(bencher: divan::Bencher, case: &Case) {
104104
bencher.bench(|| {
105105
divan::black_box(compile(case.dir.clone()));

crates/compiler/tests/api_test.rs

Lines changed: 0 additions & 222 deletions
This file was deleted.

crates/language_server/Cargo.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,5 @@ bolt_ts_span = { path = "../../helper/span" }
1717
bolt_ts_optimize = { path = "../optimize" }
1818
tower-lsp = { version = "0.20.0" }
1919
tokio = { version = "1.48.0", features = ["full"] }
20+
serde_json = { workspace = true }
21+
indexmap = { workspace = true }
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
struct ProjectService {}

crates/language_server/src/lib.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
mod editor_services;
2+
mod services;
3+
14
use tower_lsp::jsonrpc::Result;
25
use tower_lsp::lsp_types;
36
use tower_lsp::{Client, LanguageServer};
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
pub struct LanguageService {}

crates/compiler/tests/api/white_space_trimming.rs renamed to crates/language_server/tests/test_white_space_trimming.rs

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
use crate::compile_single_input;
1+
mod utils;
2+
3+
use self::utils::compile_single_input;
24

35
#[test]
46
fn white_space_trimming() {
@@ -10,10 +12,10 @@ if (true) {
1012
"#
1113
.trim_ascii();
1214

13-
let mut db = compile_single_input(CODE);
14-
db.goto_marker("err");
15-
db.edit_insert("\n");
16-
db.verify_current_file_content_is(
15+
let mut t = compile_single_input(CODE);
16+
t.goto_marker("err");
17+
t.edit_insert("\n");
18+
t.verify_current_file_content_is(
1719
r#"
1820
if (true) {
1921
//
@@ -35,17 +37,17 @@ let templateTail = `/* ${1 + 2} /*4*/`;
3537
"#
3638
.trim_ascii();
3739

38-
let mut db = compile_single_input(CODE);
39-
db.goto_marker("1");
40-
db.edit_insert("\n");
41-
db.goto_marker("2");
42-
db.edit_insert("\n");
43-
db.goto_marker("3");
44-
db.edit_insert("\n");
45-
db.goto_marker("4");
46-
db.edit_insert("\n");
40+
let mut t = compile_single_input(CODE);
41+
t.goto_marker("1");
42+
t.edit_insert("\n");
43+
t.goto_marker("2");
44+
t.edit_insert("\n");
45+
t.goto_marker("3");
46+
t.edit_insert("\n");
47+
t.goto_marker("4");
48+
t.edit_insert("\n");
4749

48-
db.verify_current_file_content_is(
50+
t.verify_current_file_content_is(
4951
r#"
5052
let noSubTemplate = `/*
5153
`;
@@ -70,10 +72,10 @@ bar \
7072
"#
7173
.trim_ascii();
7274

73-
let mut db = compile_single_input(CODE);
74-
db.goto_marker("1");
75-
db.edit_insert(";");
76-
db.verify_current_file_content_is(
75+
let mut t = compile_single_input(CODE);
76+
t.goto_marker("1");
77+
t.edit_insert(";");
78+
t.verify_current_file_content_is(
7779
r#"
7880
let t = "foo \
7981
bar \

0 commit comments

Comments
 (0)