diff --git a/crates/lsp/src/reporting/diagnostics.rs b/crates/lsp/src/reporting/diagnostics.rs index 218261b1..9a560239 100644 --- a/crates/lsp/src/reporting/diagnostics.rs +++ b/crates/lsp/src/reporting/diagnostics.rs @@ -1,7 +1,7 @@ use tower_lsp::lsp_types as lsp; use abs_path::AbsPath; use witcherscript_analysis::diagnostics::{Diagnostic, DiagnosticBody}; -use witcherscript_project::{manifest::ManifestParseError, redkit, FileError}; +use witcherscript_project::{manifest, redkit, FileError}; use crate::Backend; use super::Reporter; @@ -38,14 +38,14 @@ impl IntoLspDiagnostic for FileError { } } -impl IntoLspDiagnostic for FileError { +impl IntoLspDiagnostic for FileError { fn into_lsp_diagnostic(self) -> lsp::Diagnostic { let error = self.error.as_ref(); let range = match error { - ManifestParseError::Io(_) => lsp::Range::new(lsp::Position::new(0, 0), lsp::Position::new(0, 1)), - ManifestParseError::Toml { range, msg: _ } => range.clone(), - ManifestParseError::InvalidNameField { range } => range.clone(), + manifest::Error::Io(_) => lsp::Range::new(lsp::Position::new(0, 0), lsp::Position::new(0, 1)), + manifest::Error::Toml { range, msg: _ } => range.clone(), + manifest::Error::InvalidNameField { range } => range.clone(), }; let message = error.to_string(); diff --git a/crates/lsp/src/tasks/content_indexing_tasks.rs b/crates/lsp/src/tasks/content_indexing_tasks.rs index e610b1e3..cb2a3a8a 100644 --- a/crates/lsp/src/tasks/content_indexing_tasks.rs +++ b/crates/lsp/src/tasks/content_indexing_tasks.rs @@ -209,7 +209,7 @@ impl Backend { ContentGraphError::Io(err) => { self.reporter.log_warning(format!("Content scanning issue at {}: {}", err.path.display(), err.error)).await; }, - ContentGraphError::ManifestParse(err) => { + ContentGraphError::ManifestRead(err) => { self.reporter.push_diagnostic(&err.path, err.clone().into_lsp_diagnostic()); }, ContentGraphError::RedkitManifestRead(err) => { diff --git a/crates/project/src/content.rs b/crates/project/src/content.rs index 1dc8b94b..d18ec948 100644 --- a/crates/project/src/content.rs +++ b/crates/project/src/content.rs @@ -3,7 +3,7 @@ use std::path::PathBuf; use abs_path::AbsPath; use thiserror::Error; -use crate::manifest::{Manifest, ManifestParseError}; +use crate::manifest::{self, Manifest}; use crate::source_tree::SourceTree; use crate::{redkit, FileError}; @@ -223,7 +223,7 @@ pub enum ContentScanError { #[error(transparent)] Io(#[from] FileError), #[error(transparent)] - ManifestParse(#[from] FileError), //todo rename to ManifestRead + ManifestParse(#[from] FileError), //todo rename to ManifestRead #[error(transparent)] RedkitManifestRead(#[from] FileError), #[error("this is not content directory")] diff --git a/crates/project/src/content_graph.rs b/crates/project/src/content_graph.rs index 5ec6d192..8e099d66 100644 --- a/crates/project/src/content_graph.rs +++ b/crates/project/src/content_graph.rs @@ -5,8 +5,7 @@ use thiserror::Error; use lsp_types as lsp; use abs_path::AbsPath; use crate::content::{try_make_content, ContentScanError, ProjectDirectory, RedkitProjectDirectory}; -use crate::{redkit, Content, ContentScanner, FileError}; -use crate::manifest::{DependencyValue, ManifestParseError}; +use crate::{manifest, redkit, Content, ContentScanner, FileError}; #[derive(Debug, Clone, Error)] @@ -14,7 +13,7 @@ pub enum ContentGraphError { #[error(transparent)] Io(#[from] FileError), #[error(transparent)] - ManifestParse(#[from] FileError), //TODO rename to ManifestRead + ManifestRead(#[from] FileError), #[error(transparent)] RedkitManifestRead(#[from] FileError), #[error("project dependency at path \"{}\" could not be found", .content_path.display())] @@ -225,7 +224,7 @@ impl ContentGraph { self.errors.push(ContentGraphError::Io(err)); }, ContentScanError::ManifestParse(err) => { - self.errors.push(ContentGraphError::ManifestParse(err)) + self.errors.push(ContentGraphError::ManifestRead(err)) }, ContentScanError::RedkitManifestRead(err) => { self.errors.push(ContentGraphError::RedkitManifestRead(err)) @@ -258,7 +257,7 @@ impl ContentGraph { self.errors.push(ContentGraphError::Io(err)); }, ContentScanError::ManifestParse(err) => { - self.errors.push(ContentGraphError::ManifestParse(err)) + self.errors.push(ContentGraphError::ManifestRead(err)) }, ContentScanError::RedkitManifestRead(err) => { self.errors.push(ContentGraphError::RedkitManifestRead(err)) @@ -299,12 +298,12 @@ impl ContentGraph { if let Some(proj) = content.as_any().downcast_ref::() { for entry in proj.manifest().dependencies.iter() { match &entry.value { - DependencyValue::FromRepo(active) => { + manifest::DependencyValue::FromRepo(active) => { if *active { self.link_dependencies_value_from_repo(node_idx, repo_nodes, proj.manifest_path(), &entry.name, &entry.name_range); } }, - DependencyValue::FromPath { path } => { + manifest::DependencyValue::FromPath { path } => { self.link_dependencies_value_from_path(node_idx, repo_nodes, proj.manifest_path(), &entry.name, &entry.name_range, path, &entry.value_range); }, } @@ -444,7 +443,7 @@ impl ContentGraph { self.errors.push(ContentGraphError::Io(err)); }, ContentScanError::ManifestParse(err) => { - self.errors.push(ContentGraphError::ManifestParse(err)); + self.errors.push(ContentGraphError::ManifestRead(err)); }, ContentScanError::RedkitManifestRead(err) => { self.errors.push(ContentGraphError::RedkitManifestRead(err)) diff --git a/crates/project/src/manifest.rs b/crates/project/src/manifest.rs index 0eb21d61..7d43b3fd 100644 --- a/crates/project/src/manifest.rs +++ b/crates/project/src/manifest.rs @@ -61,7 +61,7 @@ pub enum DependencyValue { impl Manifest { pub const FILE_NAME: &'static str = "witcherscript.toml"; - pub fn from_file(path: &AbsPath) -> Result { + pub fn from_file(path: &AbsPath) -> Result { let mut f = File::open(path).map_err(|err| Arc::new(err))?; let mut buff = String::new(); @@ -82,14 +82,14 @@ impl Manifest { } impl FromStr for Manifest { - type Err = ManifestParseError; + type Err = Error; fn from_str(s: &str) -> Result { let rope = Rope::from_str(s); let raw: Result = toml::from_str(s); if let Err(err) = raw { - return Err(ManifestParseError::Toml { + return Err(Error::Toml { range: lsp::Range::from_raw(err.span().unwrap_or_default(), &rope), msg: err.to_string() }); @@ -99,7 +99,7 @@ impl FromStr for Manifest { // validate content name if !Self::validate_content_name(&manifest.content.name) { - return Err(ManifestParseError::InvalidNameField { + return Err(Error::InvalidNameField { range: manifest.content.name_range.clone() }) } @@ -109,7 +109,7 @@ impl FromStr for Manifest { } #[derive(Debug, Clone, Error)] -pub enum ManifestParseError { //TODO rename to just Error +pub enum Error { #[error("file access error: {}", .0)] Io(#[from] Arc), #[error("TOML file parsing error: {msg}")]