Compare commits
	
		
			2 Commits
		
	
	
		
			v0.22.4
			...
			achalmers/
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| d4b168a78f | |||
| ebd1d1a9a5 | 
							
								
								
									
										107
									
								
								src/wasm-lib/Cargo.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										107
									
								
								src/wasm-lib/Cargo.lock
									
									
									
										generated
									
									
									
								
							| @ -221,6 +221,15 @@ dependencies = [ | ||||
|  "rustc-demangle", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "backtrace-ext" | ||||
| version = "0.2.1" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "537beee3be4a18fb023b570f80e3ae28003db9167a751266b259926e25539d50" | ||||
| dependencies = [ | ||||
|  "backtrace", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "base64" | ||||
| version = "0.13.1" | ||||
| @ -1325,6 +1334,12 @@ dependencies = [ | ||||
|  "windows-sys 0.52.0", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "is_ci" | ||||
| version = "1.2.0" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "7655c9839580ee829dfacba1d1278c2b7883e50a277ff7541299489d6bdfdc45" | ||||
|  | ||||
| [[package]] | ||||
| name = "itertools" | ||||
| version = "0.10.5" | ||||
| @ -1396,6 +1411,7 @@ dependencies = [ | ||||
|  "js-sys", | ||||
|  "kittycad", | ||||
|  "lazy_static", | ||||
|  "miette", | ||||
|  "mime_guess", | ||||
|  "parse-display", | ||||
|  "pretty_assertions", | ||||
| @ -1556,6 +1572,37 @@ version = "2.7.1" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" | ||||
|  | ||||
| [[package]] | ||||
| name = "miette" | ||||
| version = "7.2.0" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "4edc8853320c2a0dab800fbda86253c8938f6ea88510dc92c5f1ed20e794afc1" | ||||
| dependencies = [ | ||||
|  "backtrace", | ||||
|  "backtrace-ext", | ||||
|  "cfg-if", | ||||
|  "miette-derive", | ||||
|  "owo-colors", | ||||
|  "supports-color", | ||||
|  "supports-hyperlinks", | ||||
|  "supports-unicode", | ||||
|  "terminal_size", | ||||
|  "textwrap", | ||||
|  "thiserror", | ||||
|  "unicode-width", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "miette-derive" | ||||
| version = "7.2.0" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "dcf09caffaac8068c346b6df2a7fc27a177fd20b39421a39ce0a211bde679a6c" | ||||
| dependencies = [ | ||||
|  "proc-macro2", | ||||
|  "quote", | ||||
|  "syn 2.0.66", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "mime" | ||||
| version = "0.3.17" | ||||
| @ -1715,6 +1762,12 @@ dependencies = [ | ||||
|  "thiserror", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "owo-colors" | ||||
| version = "4.0.0" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "caff54706df99d2a78a5a4e3455ff45448d81ef1bb63c22cd14052ca0e993a3f" | ||||
|  | ||||
| [[package]] | ||||
| name = "parking_lot" | ||||
| version = "0.11.2" | ||||
| @ -2625,6 +2678,12 @@ version = "1.13.2" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" | ||||
|  | ||||
| [[package]] | ||||
| name = "smawk" | ||||
| version = "0.3.2" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c" | ||||
|  | ||||
| [[package]] | ||||
| name = "socket2" | ||||
| version = "0.5.6" | ||||
| @ -2710,6 +2769,27 @@ version = "2.5.0" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" | ||||
|  | ||||
| [[package]] | ||||
| name = "supports-color" | ||||
| version = "3.0.0" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "9829b314621dfc575df4e409e79f9d6a66a3bd707ab73f23cb4aa3a854ac854f" | ||||
| dependencies = [ | ||||
|  "is_ci", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "supports-hyperlinks" | ||||
| version = "3.0.0" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "2c0a1e5168041f5f3ff68ff7d95dcb9c8749df29f6e7e89ada40dd4c9de404ee" | ||||
|  | ||||
| [[package]] | ||||
| name = "supports-unicode" | ||||
| version = "3.0.0" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "b7401a30af6cb5818bb64852270bb722533397edcfc7344954a38f420819ece2" | ||||
|  | ||||
| [[package]] | ||||
| name = "syn" | ||||
| version = "1.0.109" | ||||
| @ -2806,6 +2886,27 @@ dependencies = [ | ||||
|  "winapi-util", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "terminal_size" | ||||
| version = "0.3.0" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7" | ||||
| dependencies = [ | ||||
|  "rustix", | ||||
|  "windows-sys 0.48.0", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "textwrap" | ||||
| version = "0.16.1" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9" | ||||
| dependencies = [ | ||||
|  "smawk", | ||||
|  "unicode-linebreak", | ||||
|  "unicode-width", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "thiserror" | ||||
| version = "1.0.61" | ||||
| @ -3237,6 +3338,12 @@ version = "1.0.12" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" | ||||
|  | ||||
| [[package]] | ||||
| name = "unicode-linebreak" | ||||
| version = "0.1.5" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" | ||||
|  | ||||
| [[package]] | ||||
| name = "unicode-normalization" | ||||
| version = "0.1.23" | ||||
|  | ||||
| @ -26,6 +26,8 @@ git_rev = "0.1.0" | ||||
| gltf-json = "1.4.1" | ||||
| kittycad = { workspace = true, features = ["clap"] } | ||||
| lazy_static = "1.4.0" | ||||
| # TODO: Make this optional | ||||
| miette = { version = "7.2.0", optional = false, features = ["fancy"] } | ||||
| mime_guess = "2.0.4" | ||||
| parse-display = "0.9.1" | ||||
| reqwest = { version = "0.11.26", default-features = false, features = ["stream", "rustls-tls"] } | ||||
| @ -62,6 +64,7 @@ tower-lsp = { version = "0.20.0", features = ["proposed"] } | ||||
| [features] | ||||
| default = ["cli", "engine"] | ||||
| cli = ["dep:clap"] | ||||
| # miette = ["dep:miette"] | ||||
| engine = [] | ||||
|  | ||||
| [profile.release] | ||||
|  | ||||
| @ -32,6 +32,32 @@ pub enum KclError { | ||||
|     Internal(KclErrorDetails), | ||||
| } | ||||
|  | ||||
| /// A KCL error that can be displayed fancy. | ||||
| #[derive(Error, Debug, miette::Diagnostic)] | ||||
| #[error("KCL error: {error}")] | ||||
| pub struct KclErrorReport { | ||||
|     #[source] | ||||
|     error: KclError, | ||||
|     // The Source that we're gonna be printing snippets out of. | ||||
|     // This can be a String if you don't have or care about file names. | ||||
|     #[source_code] | ||||
|     src: miette::NamedSource<String>, | ||||
|     // Snippets and highlights can be included in the diagnostic! | ||||
|     #[label("Error here")] | ||||
|     source_range: Option<SourceRange>, | ||||
| } | ||||
|  | ||||
| impl KclErrorReport { | ||||
|     /// Create a new error report. | ||||
|     pub fn new(error: KclError, kcl_filename: String, kcl_code: String, source_range: Option<SourceRange>) -> Self { | ||||
|         Self { | ||||
|             error, | ||||
|             src: miette::NamedSource::new(kcl_filename, kcl_code), | ||||
|             source_range, | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| #[derive(Debug, Serialize, Deserialize, ts_rs::TS, Clone, PartialEq, Eq)] | ||||
| #[ts(export)] | ||||
| pub struct KclErrorDetails { | ||||
|  | ||||
| @ -619,6 +619,14 @@ pub struct Rotation(#[ts(type = "[number, number, number, number]")] pub [f64; 4 | ||||
| #[ts(export)] | ||||
| pub struct SourceRange(#[ts(type = "[number, number]")] pub [usize; 2]); | ||||
|  | ||||
| impl From<SourceRange> for miette::SourceSpan { | ||||
|     fn from(value: SourceRange) -> Self { | ||||
|         let [start, end] = value.0; | ||||
|         let length = end - start; | ||||
|         miette::SourceSpan::new(start.into(), length) | ||||
|     } | ||||
| } | ||||
|  | ||||
| impl SourceRange { | ||||
|     /// Create a new source range. | ||||
|     pub fn new(start: usize, end: usize) -> Self { | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	