Bonjour,

I have write a little parser for html.

for an input like:
<div att="abc">
  <span> text </span>
  text
  <br />
</div>

i get:
(("div" tag
  (:children
   (("span" tag
     (:end
      ("span" end_tag nil nil nil 31 38)
      :start
      ("span" start_tag nil nil nil 19 25))
     nil nil 19 38)
    ("br" tag nil nil nil 48 54))
   :end
   ("div" end_tag nil nil nil 55 61)
   :start
   ("div" start_tag
    (:attributes
     (("att" attribute
       (:value "\"abc\"")
       nil nil 6 15)))
    nil nil 1 16))
  nil #<overlay from 1 to 61 in test.html>))

You can notice that only the "div" tag as an overlay, "span"
and "br" (contained in :children of "div") have no overlay at 5th
position (semantic-tag-overlay tag) return nil.

I have override semantic-tag-components and
semantic-tag-components-with-overlays
with:
(define-mode-local-override semantic-tag-components-with-overlays html-mode (tag)
  "Return a list of components for TAG."
  (if (eq nil (semantic-tag-get-attribute tag :children))
      '()
    (semantic-tag-get-attribute tag :children)
    ))

semantic-tag-components is used in semantic--tag-link-to-buffer
In this function i saw it need the semantic-tag-overlay return a
vector.

So my question is how to make the children tag have an overlay?

Good Bye.