• Jackson Ray Hamilton's avatar
    Add basic JSX font-locking · 52a3113b
    Jackson Ray Hamilton authored
    Font-lock JSX from the beginning of the buffer to the end.  Tends to
    break temporarily when editing lines, because the parser doesn’t yet
    look backwards to determine if the end of a tag in the current range
    starts before the range.
    
    This also re-breaks some tests fixed by previous commits, as we begin
    to take a different direction in our parsing code, looking for JSX,
    rather than for non-JSX.  The parsing code will eventually provide
    information for indentation again.
    
    * lisp/progmodes/js.el (js--dotted-captured-name-re)
    (js-jsx--disambiguate-beginning-of-tag)
    (js-jsx--disambiguate-end-of-tag, js-jsx--disambiguate-syntax):
    Remove.
    (js-jsx--font-lock-keywords): New variable.
    (js--font-lock-keywords-3): Add JSX matchers.
    (js-jsx--match-tag-name, js-jsx--match-attribute-name): New functions.
    (js-jsx--syntax-propertize-tag): New function to aid in JSX
    font-locking and eventually indentation.
    (js-jsx--text-properties): New variable.
    (js-syntax-propertize): Propertize JSX properly using
    syntax-propertize-rules.
    52a3113b
js.el 145 KB