Compare commits

..

2 Commits

Author SHA1 Message Date
28157ae4b8 Bump version numbers 2025-08-04 00:43:13 +03:00
8d27a6e7bd Fix reference-linking for local functions 2025-08-04 00:41:44 +03:00
7 changed files with 23 additions and 17 deletions

6
Cargo.lock generated
View File

@ -654,7 +654,7 @@ checksum = "53a49587ad06b26609c52e423de037e7f57f20d53535d66e08c695f347df952a"
[[package]]
name = "reid"
version = "1.0.0-beta.3"
version = "1.0.0-beta.4"
dependencies = [
"colored",
"reid-lib",
@ -663,7 +663,7 @@ dependencies = [
[[package]]
name = "reid-language-server"
version = "0.1.0"
version = "1.0.0-beta.1"
dependencies = [
"dashmap 6.1.0",
"reid",
@ -674,7 +674,7 @@ dependencies = [
[[package]]
name = "reid-lib"
version = "1.0.0-beta.3"
version = "1.0.0-beta.4"
dependencies = [
"llvm-sys",
"thiserror",

View File

@ -1,6 +1,6 @@
[package]
name = "reid-lib"
version = "1.0.0-beta.3"
version = "1.0.0-beta.4"
edition = "2024"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

View File

@ -1,11 +1,11 @@
[package]
name = "reid-language-server"
version = "0.1.0"
version = "1.0.0-beta.1"
edition = "2024"
[dependencies]
socket = "0.0.7"
tokio = { version = "1.47.0", features = ["full"] }
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"

View File

@ -2,7 +2,7 @@
"name": "reid-language-server",
"displayName": "Reid Language Server",
"description": "Language Server Extension for Reid",
"version": "0.1.0",
"version": "1.0.0-beta.1",
"repository": {
"url": "https://git.teascade.net/teascade"
},

View File

@ -602,14 +602,16 @@ pub fn analyze_context(
for (ty, function) in &module.associated_functions {
if let Some(source_id) = function.source {
if let Some(state) = map.get(&source_id) {
if let Some(symbol) = state.associated_functions.get(&(ty.clone(), function.name.clone())) {
scope
.associated_functions
.insert((ty.clone(), function.name.clone()), (source_id, *symbol));
if source_id != module.module_id {
if let Some(state) = map.get(&source_id) {
if let Some(symbol) = state.associated_functions.get(&(ty.clone(), function.name.clone())) {
scope
.associated_functions
.insert((ty.clone(), function.name.clone()), (source_id, *symbol));
}
}
continue;
}
continue;
}
let idx = scope
@ -621,6 +623,9 @@ pub fn analyze_context(
.state
.associated_functions
.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 {
scope.state.init_types(&param.meta, Some(param.ty.clone()));
@ -647,7 +652,6 @@ pub fn analyze_context(
for function in &module.functions {
if let Some(source_id) = function.source {
if source_id != module.module_id {
dbg!(source_id, &function.name);
if let Some(state) = map.get(&source_id) {
if let Some(symbol) = state.functions.get(&function.name) {
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);
scope.state.set_symbol(idx, 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 {

View File

@ -307,7 +307,6 @@ impl LanguageServer for Backend {
});
if let Some(token) = token {
let reference_tokens = analysis.find_references(token.0, &self.state_map());
dbg!(&reference_tokens);
let mut locations = Vec::new();
if let Some(reference_tokens) = reference_tokens {
for (module_id, symbol_idx) in reference_tokens {

View File

@ -1,6 +1,6 @@
[package]
name = "reid"
version = "1.0.0-beta.3"
version = "1.0.0-beta.4"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
@ -16,6 +16,6 @@ context_debug = []
[dependencies]
## Make it easier to generate errors
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}