Community
Participate
Working Groups
Consider a simple grammar that allows to write var aa = 1; var bb = 2; var cc = aa + bb; where '+' is a keyword. When ContentAssist is invoked on var cc = a|a + bb; '+' is suggested which is syntactically correct but actually not what one would expect. We should investigate how to detect a broken "current" cross reference and only propose values that would complete this cross reference. There are several cases to consider, e.g. a plain 'a' might be an identifier which is part of another decision tree that does not involve a cross reference at that position, or 'a' might be a prefix of a keyword.
There are (many) other weird scenarios possible, too, e.g. var a = 1; var aaa = 2; var b = a|a + 3; The cross reference at the cursor position is unresolved, but the prefix itself can be resolved thus the keywords '+' and ';' as well as the cross-references 'a' and 'aaa' are valid.