Compare commits
2 Commits
136e9f9d1f
...
28157ae4b8
Author | SHA1 | Date | |
---|---|---|---|
28157ae4b8 | |||
8d27a6e7bd |
6
Cargo.lock
generated
6
Cargo.lock
generated
@ -654,7 +654,7 @@ checksum = "53a49587ad06b26609c52e423de037e7f57f20d53535d66e08c695f347df952a"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "reid"
|
name = "reid"
|
||||||
version = "1.0.0-beta.3"
|
version = "1.0.0-beta.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"colored",
|
"colored",
|
||||||
"reid-lib",
|
"reid-lib",
|
||||||
@ -663,7 +663,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "reid-language-server"
|
name = "reid-language-server"
|
||||||
version = "0.1.0"
|
version = "1.0.0-beta.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"dashmap 6.1.0",
|
"dashmap 6.1.0",
|
||||||
"reid",
|
"reid",
|
||||||
@ -674,7 +674,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "reid-lib"
|
name = "reid-lib"
|
||||||
version = "1.0.0-beta.3"
|
version = "1.0.0-beta.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"llvm-sys",
|
"llvm-sys",
|
||||||
"thiserror",
|
"thiserror",
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "reid-lib"
|
name = "reid-lib"
|
||||||
version = "1.0.0-beta.3"
|
version = "1.0.0-beta.4"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
|
|
||||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "reid-language-server"
|
name = "reid-language-server"
|
||||||
version = "0.1.0"
|
version = "1.0.0-beta.1"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
socket = "0.0.7"
|
socket = "0.0.7"
|
||||||
tokio = { version = "1.47.0", features = ["full"] }
|
tokio = { version = "1.47.0", features = ["full"] }
|
||||||
tower-lsp = "0.20.0"
|
tower-lsp = "0.20.0"
|
||||||
reid = { path = "../reid", version = "1.0.0-beta.3", registry="gitea-teascade", features=[] }
|
reid = { path = "../reid", version = "1.0.0-beta.4", registry="gitea-teascade", features=[] }
|
||||||
dashmap = "6.1.0"
|
dashmap = "6.1.0"
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
"name": "reid-language-server",
|
"name": "reid-language-server",
|
||||||
"displayName": "Reid Language Server",
|
"displayName": "Reid Language Server",
|
||||||
"description": "Language Server Extension for Reid",
|
"description": "Language Server Extension for Reid",
|
||||||
"version": "0.1.0",
|
"version": "1.0.0-beta.1",
|
||||||
"repository": {
|
"repository": {
|
||||||
"url": "https://git.teascade.net/teascade"
|
"url": "https://git.teascade.net/teascade"
|
||||||
},
|
},
|
||||||
|
@ -602,14 +602,16 @@ pub fn analyze_context(
|
|||||||
|
|
||||||
for (ty, function) in &module.associated_functions {
|
for (ty, function) in &module.associated_functions {
|
||||||
if let Some(source_id) = function.source {
|
if let Some(source_id) = function.source {
|
||||||
if let Some(state) = map.get(&source_id) {
|
if source_id != module.module_id {
|
||||||
if let Some(symbol) = state.associated_functions.get(&(ty.clone(), function.name.clone())) {
|
if let Some(state) = map.get(&source_id) {
|
||||||
scope
|
if let Some(symbol) = state.associated_functions.get(&(ty.clone(), function.name.clone())) {
|
||||||
.associated_functions
|
scope
|
||||||
.insert((ty.clone(), function.name.clone()), (source_id, *symbol));
|
.associated_functions
|
||||||
|
.insert((ty.clone(), function.name.clone()), (source_id, *symbol));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
continue;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
let idx = scope
|
let idx = scope
|
||||||
@ -621,6 +623,9 @@ pub fn analyze_context(
|
|||||||
.state
|
.state
|
||||||
.associated_functions
|
.associated_functions
|
||||||
.insert((ty.clone(), function.name.clone()), symbol);
|
.insert((ty.clone(), function.name.clone()), symbol);
|
||||||
|
scope
|
||||||
|
.associated_functions
|
||||||
|
.insert((ty.clone(), function.name.clone()), (module.module_id, symbol));
|
||||||
|
|
||||||
for param in &function.parameters {
|
for param in &function.parameters {
|
||||||
scope.state.init_types(¶m.meta, Some(param.ty.clone()));
|
scope.state.init_types(¶m.meta, Some(param.ty.clone()));
|
||||||
@ -647,7 +652,6 @@ pub fn analyze_context(
|
|||||||
for function in &module.functions {
|
for function in &module.functions {
|
||||||
if let Some(source_id) = function.source {
|
if let Some(source_id) = function.source {
|
||||||
if source_id != module.module_id {
|
if source_id != module.module_id {
|
||||||
dbg!(source_id, &function.name);
|
|
||||||
if let Some(state) = map.get(&source_id) {
|
if let Some(state) = map.get(&source_id) {
|
||||||
if let Some(symbol) = state.functions.get(&function.name) {
|
if let Some(symbol) = state.functions.get(&function.name) {
|
||||||
scope.functions.insert(function.name.clone(), (source_id, *symbol));
|
scope.functions.insert(function.name.clone(), (source_id, *symbol));
|
||||||
@ -667,6 +671,9 @@ pub fn analyze_context(
|
|||||||
let function_symbol = scope.state.new_symbol(idx, SemanticKind::Function, module.module_id);
|
let function_symbol = scope.state.new_symbol(idx, SemanticKind::Function, module.module_id);
|
||||||
scope.state.set_symbol(idx, function_symbol);
|
scope.state.set_symbol(idx, function_symbol);
|
||||||
scope.state.functions.insert(function.name.clone(), function_symbol);
|
scope.state.functions.insert(function.name.clone(), function_symbol);
|
||||||
|
scope
|
||||||
|
.functions
|
||||||
|
.insert(function.name.clone(), (module.module_id, function_symbol));
|
||||||
}
|
}
|
||||||
|
|
||||||
for function in &module.functions {
|
for function in &module.functions {
|
||||||
|
@ -307,7 +307,6 @@ impl LanguageServer for Backend {
|
|||||||
});
|
});
|
||||||
if let Some(token) = token {
|
if let Some(token) = token {
|
||||||
let reference_tokens = analysis.find_references(token.0, &self.state_map());
|
let reference_tokens = analysis.find_references(token.0, &self.state_map());
|
||||||
dbg!(&reference_tokens);
|
|
||||||
let mut locations = Vec::new();
|
let mut locations = Vec::new();
|
||||||
if let Some(reference_tokens) = reference_tokens {
|
if let Some(reference_tokens) = reference_tokens {
|
||||||
for (module_id, symbol_idx) in reference_tokens {
|
for (module_id, symbol_idx) in reference_tokens {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "reid"
|
name = "reid"
|
||||||
version = "1.0.0-beta.3"
|
version = "1.0.0-beta.4"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|
||||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
@ -16,6 +16,6 @@ context_debug = []
|
|||||||
[dependencies]
|
[dependencies]
|
||||||
## Make it easier to generate errors
|
## Make it easier to generate errors
|
||||||
thiserror = "1.0.44"
|
thiserror = "1.0.44"
|
||||||
reid-lib = { path = "../reid-llvm-lib", version = "1.0.0-beta.3", registry="gitea-teascade" }
|
reid-lib = { path = "../reid-llvm-lib", version = "1.0.0-beta.4", registry="gitea-teascade" }
|
||||||
|
|
||||||
colored = {version = "3.0.0", optional = true}
|
colored = {version = "3.0.0", optional = true}
|
Loading…
Reference in New Issue
Block a user