diff --git a/rust.mm b/rust.mm index 0f0f6aa..a89caae 100644 --- a/rust.mm +++ b/rust.mm @@ -763,11 +763,31 @@ OSErr calculateRuns(BBLMParamBlock ¶ms, const BBLMCallbackBlock *callbacks) if (!addRun(kBBLMFileIncludeRunKind, runStart, runLen, *callbacks)) return noErr; break; } - else + else if (ch) { spacey = isspace(ch) || ch == ':' || ch == '{'; runLen++; } + else + { + break; + } + + if (iter.strcmp(" as ", 4) == 0) + { + if (!addRun(kBBLMFileIncludeRunKind, runStart, runLen, *callbacks)) return noErr; + runStart = iter.Offset(); + iter += 4; + if (!addRun(kBBLMCodeRunKind, runStart, 4, *callbacks)) return noErr; + + runStart = iter.Offset(); + runLen = skipWord(iter); + if (!addRun(moduleColour, runStart, runLen, *callbacks)) return noErr; + + iter++; + runLen = 0; + break; + } } if (!addRun(kBBLMFileIncludeRunKind, runStart, runLen, *callbacks)) return noErr; diff --git a/smoke.rs b/smoke.rs index cda4df5..4667b2d 100644 --- a/smoke.rs +++ b/smoke.rs @@ -118,3 +118,14 @@ macro_rules! parse { ($thing: expr) => { $thing }; } + +// `use` statements +// ---------------- + +use flux; +use flux::capacitor; +use flux::capacitor::Component::*; +use flux::capacitor::Component::{ImpurePalladium, ThinkingAluminium, TimeyWimeyDevice}; +use flux::capacitor as cap; +use super; +use self;