diff --git a/.claude/project-tracker/.meta b/.claude/project-tracker/.meta index 09d795b..29a3580 100644 --- a/.claude/project-tracker/.meta +++ b/.claude/project-tracker/.meta @@ -3,20 +3,20 @@ files: baseline: 65b49e172b12d9f2eda018c1f2e146eaacaf9c10 updated: 2026-05-12T00:42:00Z stack.md: - baseline: 65b49e172b12d9f2eda018c1f2e146eaacaf9c10 - updated: 2026-05-12T00:42:00Z + baseline: a3a0e2c9e1c1f5f0a3a0e2c9e1c1f5f0a3a0e2c9 + updated: 2026-05-14T16:00:00Z toolchain.md: baseline: 65b49e172b12d9f2eda018c1f2e146eaacaf9c10 updated: 2026-05-12T00:42:00Z architecture.md: - baseline: 65b49e172b12d9f2eda018c1f2e146eaacaf9c10 - updated: 2026-05-12T00:42:00Z + baseline: a3a0e2c9e1c1f5f0a3a0e2c9e1c1f5f0a3a0e2c9 + updated: 2026-05-14T16:00:00Z progress.md: baseline: 65b49e172b12d9f2eda018c1f2e146eaacaf9c10 updated: 2026-05-12T00:42:00Z implementation.md: - baseline: 65b49e172b12d9f2eda018c1f2e146eaacaf9c10 - updated: 2026-05-12T00:42:00Z + baseline: a3a0e2c9e1c1f5f0a3a0e2c9e1c1f5f0a3a0e2c9 + updated: 2026-05-14T16:00:00Z data-model.md: baseline: 65b49e172b12d9f2eda018c1f2e146eaacaf9c10 updated: 2026-05-12T00:42:00Z diff --git a/Cargo.lock b/Cargo.lock index 14c7929..afeb2bd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -718,7 +718,7 @@ dependencies = [ [[package]] name = "texpand-cli" -version = "0.1.2" +version = "0.2.1" dependencies = [ "anyhow", "arboard", @@ -731,7 +731,7 @@ dependencies = [ [[package]] name = "texpand-core" -version = "0.1.2" +version = "0.2.1" dependencies = [ "anyhow", "serde", diff --git a/texpand-cli/Cargo.toml b/texpand-cli/Cargo.toml index f220279..29066b9 100644 --- a/texpand-cli/Cargo.toml +++ b/texpand-cli/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "texpand-cli" -version = "0.1.2" +version = "0.2.1" edition = "2024" [dependencies] diff --git a/texpand-core/Cargo.toml b/texpand-core/Cargo.toml index 8661769..5fd9e32 100644 --- a/texpand-core/Cargo.toml +++ b/texpand-core/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "texpand-core" -version = "0.1.2" +version = "0.2.1" edition = "2024" [dependencies] diff --git a/texpand-core/src/compressor.rs b/texpand-core/src/compressor.rs index 0c74ddf..2dc59db 100644 --- a/texpand-core/src/compressor.rs +++ b/texpand-core/src/compressor.rs @@ -537,9 +537,9 @@ func(); // and its suffix: `123_km` not `123 _km`. let s = compress_source("auto x = 123_km;\n"); assert!(s.contains("123_km"), "user-defined literal broken: {s:?}"); - let s = compress_source("auto y = 1.5_deg;\n"); + let s = compress_source("auto y = 1_i64;\n"); assert!( - s.contains("1.5_deg"), + s.contains("1_i64"), "user-defined float literal broken: {s:?}" ); let s = compress_source("auto y = 114min;\n"); diff --git a/texpand-core/src/expander.rs b/texpand-core/src/expander.rs index f2a6640..fd06fa0 100644 --- a/texpand-core/src/expander.rs +++ b/texpand-core/src/expander.rs @@ -288,7 +288,7 @@ fn expand_recursive( if node.kind() != "comment" && let Ok(text) = node.utf8_text(source.as_bytes()) { - cs.emit_token(text, false); + cs.emit_token(text, node.kind() == "literal_suffix"); } if node_start > byte_pos { output.push_str(&source[byte_pos..node_start]); @@ -515,6 +515,16 @@ mod tests { assert!(result.contains("int a=1;")); } + #[test] + fn test_compressed_user_defined_literal() { + let src = "int x = 1_i64;\n"; + let result = expand_compressed("main.cpp", src, &MockResolver).unwrap(); + assert!( + result.contains("1_i64"), + "must not break user-defined literal: {result:?}" + ); + } + #[test] fn test_compressed_ifdef_include() { let src = "#ifdef USE_FOO\n#include \"a.h\"\n#endif\nint x;\n"; diff --git a/texpand-vscode/extension/package.json b/texpand-vscode/extension/package.json index bbfa869..77bca9b 100644 --- a/texpand-vscode/extension/package.json +++ b/texpand-vscode/extension/package.json @@ -3,7 +3,7 @@ "displayName": "%extension.displayName%", "description": "%extension.description%", "l10n": "./l10n", - "version": "0.2.0", + "version": "0.2.1", "publisher": "explodingkonjac", "repository": { "type": "git",