Or do you mean that i shouldn't call `ret` until i am ready to return
because of the state of the outer `type` and `content`?

So,
````
var isld = jsonldmode && peek && ...
...
Return isld ? ret("jsonld-keyword", "meta") : ret("string", "string");
````

Thanks for the quick reply: in the jsond-ld, the 8 or so `"@context"`-like
keywords are substantially different from all other strings... I assumed
they would no longer be considered strings, as such. Also, this appears to
work on the playground. I don't think this will have any effect on non
json-ld parsing other than the cost to check the mode.

Should i be checking this after these tokens have been identified as
strings... Maybe in tokenbase? I couldn't see how to do this at a higher
level.

Thanks!
On Feb 7, 2014 3:38 AM, "Marijn Haverbeke" <notifications@github.com> wrote:

> In mode/javascript/javascript.js:
>
> >        while ((next = stream.next()) != null) {
> >          if (next == quote && !escaped) break;
> >          escaped = !escaped && next == "\\";
> >        }
> >        if (!escaped) state.tokenize = tokenBase;
> > -      return ret("string", "string");
> > +      return type;
>
> What was the rationale behind this change? It seems like it'd prevent the
> parser from recognizing strings as atomic expressions.
>
> --
> Reply to this email directly or view it on GitHub<https://github.com/marijnh/CodeMirror/pull/2229/files#r9532413>
> .
>