From 479cc65f9f4ab5af43456588dfc398e85c6ef6ec Mon Sep 17 00:00:00 2001 From: Timothy Gu <timothygu99@gmail.com> Date: Sat, 16 Apr 2016 16:14:30 -0700 Subject: [PATCH] [webidl mode] Fix stream handling --- mode/webidl/webidl.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/mode/webidl/webidl.js b/mode/webidl/webidl.js index 6f024c63f..814333620 100644 --- a/mode/webidl/webidl.js +++ b/mode/webidl/webidl.js @@ -85,6 +85,7 @@ var singleOperators = /^[:<=>?]/; var integers = /^-?([1-9][0-9]*|0[Xx][0-9A-Fa-f]+|0[0-7]*)/; var floats = /^-?(([0-9]+\.[0-9]*|[0-9]*\.[0-9]+)([Ee][+-]?[0-9]+)?|[0-9]+[Ee][+-]?[0-9]+)/; var identifiers = /^_?[A-Za-z][0-9A-Z_a-z-]*/; +var identifiersEnd = /^_?[A-Za-z][0-9A-Z_a-z-]*(?=\s*;)/; var strings = /^"[^"]*"/; var multilineComments = /^\/\*.*?\*\//; var multilineCommentsStart = /^\/\*.*/; @@ -122,12 +123,11 @@ function readToken(stream, state) { if (stream.match(strings)) return "string"; // identifier - if (stream.match(identifiers)) { - if (state.startDef) return "def"; - if (state.endDef && stream.match(/^\s*;/, false)) { - state.endDef = false; - return "def"; - } + if (state.startDef && stream.match(identifiers)) return "def"; + + if (state.endDef && stream.match(identifiersEnd)) { + state.endDef = false; + return "def"; } if (stream.match(keywords)) return "keyword"; -- GitLab