Skip to content

Commit d3365c3

Browse files
committed
big heckin reworkerino to use the standard #line directive as per spec
1 parent cb7c9b8 commit d3365c3

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+574
-398
lines changed

server/Cargo.lock

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

server/Cargo.toml

Lines changed: 6 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,6 @@
1-
[package]
2-
name = "mcshader-lsp"
3-
version = "0.9.5"
4-
authors = ["Noah Santschi-Cooney <noah@santschi-cooney.ch>"]
5-
edition = "2021"
6-
7-
[dependencies]
8-
rust_lsp = { git = "https://github.com/Strum355/RustLSP", branch = "master" }
9-
serde_json = "1.0"
10-
serde = "1.0"
11-
walkdir = "2.3"
12-
petgraph = "0.6"
13-
lazy_static = "1.4"
14-
regex = "1.4"
15-
chan = "0.1"
16-
url = "2.2"
17-
percent-encoding = "2.1"
18-
anyhow = "1.0"
19-
bit-set = "0.5"
20-
thiserror = "1.0"
21-
glutin = "0.28"
22-
gl = "0.14"
23-
ctor = "0.1"
24-
mockall = "0.11"
25-
path-slash = "0.1"
26-
slog = { version = "2.7", features = [ "max_level_trace", "release_max_level_trace" ] }
27-
slog-term = "2.9"
28-
slog-scope = "4.4"
29-
slog-atomic = "3.1"
30-
once_cell = "1.7"
31-
rand = "0.8"
32-
arc-swap = "1.5.0"
33-
tree-sitter = "0.20.6"
34-
tree-sitter-glsl = "0.1.2"
35-
36-
[dev-dependencies]
37-
tempdir = "0.3"
38-
fs_extra = "1.2"
39-
hamcrest2 = "*"
40-
pretty_assertions = "1.1"
1+
[workspace]
2+
members = [
3+
"main",
4+
"logging",
5+
"logging_macro"
6+
]

server/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ watchtest:
44
RUST_BACKTRACE=0 cargo watch -x test -i Makefile
55

66
test:
7-
RUST_LIB_BACKTRACE=0 RUST_BACKTRACE=0 cargo test
7+
RUST_LIB_BACKTRACE=0 RUST_BACKTRACE=0 cargo test -- --nocapture --color always
88

99
build:
1010
cargo build

server/logging/Cargo.toml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
[package]
2+
name = "logging"
3+
version = "0.9.5"
4+
authors = ["Noah Santschi-Cooney <noah@santschi-cooney.ch>"]
5+
edition = "2021"
6+
7+
[dependencies]
8+
slog = { version = "2.7", features = [ "max_level_trace", "release_max_level_trace" ] }
9+
slog-term = "2.9"
10+
slog-scope = "4.4"
11+
slog-atomic = "3.1"
12+
rand = "0.8"
13+
lazy_static = "1.4"
Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,10 @@ use rand::{rngs, Rng};
22
use slog::slog_o;
33
use slog_scope::GlobalLoggerGuard;
44
use slog_term::{FullFormat, PlainSyncDecorator};
5-
use std::{cell::RefCell, io::Stderr, sync::Arc};
5+
use std::{cell::RefCell, sync::Arc};
6+
7+
use std::io::Stderr;
8+
69
use lazy_static::lazy_static;
710
use slog::*;
811
use slog_atomic::*;
@@ -13,9 +16,7 @@ fn new_trace_id() -> String {
1316
}
1417

1518
pub fn slog_with_trace_id<F: FnOnce()>(f: F) {
16-
slog_scope::scope(&slog_scope::logger().new(slog_o!("trace" => new_trace_id())), || {
17-
f()
18-
})
19+
slog_scope::scope(&slog_scope::logger().new(slog_o!("trace" => new_trace_id())), f)
1920
}
2021

2122
pub fn set_logger_with_level(level: Level) -> GlobalLoggerGuard {
@@ -39,4 +40,4 @@ lazy_static! {
3940
let logger = logger_base(Level::Info).fuse();
4041
AtomicSwitch::new(logger)
4142
};
42-
}
43+
}

server/logging_macro/Cargo.toml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
[package]
2+
name = "logging_macro"
3+
version = "0.9.5"
4+
authors = ["Noah Santschi-Cooney <noah@santschi-cooney.ch>"]
5+
edition = "2021"
6+
7+
[lib]
8+
proc-macro = true
9+
10+
[dependencies]
11+
quote = "1.0"
12+
syn = { version = "1.0", features = [ "full" ] }

server/logging_macro/src/lib.rs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
use proc_macro::TokenStream;
2+
use quote::quote;
3+
use syn::{parse_macro_input, parse_quote, ItemFn};
4+
5+
#[proc_macro_attribute]
6+
pub fn log_scope(_args: TokenStream, function: TokenStream) -> TokenStream {
7+
let mut function = parse_macro_input!(function as ItemFn);
8+
9+
let function_name = function.sig.ident.to_string();
10+
11+
let stmts = function.block.stmts;
12+
13+
function.block = Box::new(parse_quote!({
14+
use slog::{slog_o, FnValue, Level};
15+
use std::thread::current;
16+
17+
let _guard = logging::set_logger_with_level(Level::Trace);
18+
slog_scope::scope(&slog_scope::logger().new(slog_o!("test_name" => #function_name, "thread_num" => FnValue(|_| format!("{:?}", current().id())))), || {
19+
#(#stmts)*
20+
});
21+
}));
22+
23+
TokenStream::from(quote!(#function))
24+
}

server/main/Cargo.toml

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
[package]
2+
name = "mcshader-lsp"
3+
version = "0.9.5"
4+
authors = ["Noah Santschi-Cooney <noah@santschi-cooney.ch>"]
5+
edition = "2021"
6+
7+
[dependencies]
8+
rust_lsp = { git = "https://github.com/Strum355/RustLSP", branch = "master" }
9+
serde_json = "1.0"
10+
serde = "1.0"
11+
walkdir = "2.3"
12+
petgraph = "0.6"
13+
lazy_static = "1.4"
14+
regex = "1.4"
15+
url = "2.2"
16+
percent-encoding = "2.1"
17+
anyhow = "1.0"
18+
thiserror = "1.0"
19+
glutin = "0.28"
20+
gl = "0.14"
21+
mockall = "0.11"
22+
path-slash = "0.1"
23+
slog = { version = "2.7", features = [ "max_level_trace", "release_max_level_trace" ] }
24+
slog-scope = "4.4"
25+
once_cell = "1.7"
26+
tree-sitter = "0.20.6"
27+
tree-sitter-glsl = "0.1.2"
28+
logging = { path = "../logging" }
29+
logging_macro = { path = "../logging_macro" }
30+
31+
[dev-dependencies]
32+
tempdir = "0.3"
33+
fs_extra = "1.2"
34+
hamcrest2 = "*"
35+
pretty_assertions = "1.1"

server/src/commands/merged_includes.rs renamed to server/main/src/commands/merged_includes.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ use std::fs;
1515

1616
use crate::dfs;
1717
use crate::merge_views::FilialTuple;
18+
use crate::source_mapper::SourceMapper;
1819
use crate::{graph::CachedStableGraph, merge_views, url_norm::FromJson};
1920

2021
use super::Invokeable;
@@ -100,8 +101,9 @@ impl Invokeable for VirtualMergedDocument {
100101
};
101102
all_sources.extend(sources);
102103

104+
let mut source_mapper = SourceMapper::new(all_sources.len());
103105
let graph = self.graph.borrow();
104-
let view = merge_views::generate_merge_list(&tree, &all_sources, &graph);
106+
let view = merge_views::generate_merge_list(&tree, &all_sources, &graph, &mut source_mapper);
105107
return Ok(serde_json::value::Value::String(view));
106108
}
107109
return Err(format_err!(

0 commit comments

Comments
 (0)