I've pulled this down and tried it out a little.

Its certainly not perfect, and there is a lot of room for improvement, but
I think it is a worthwhile addition. Even if one doesn't use it, it doesn't
really get in the way.

There are a few initial improvements I can think of adding, mainly around
when to show the hints (e.g. while backspacing an existing tag). I would be
interested in making some of these improvements (I'm currently tinkering
with a couple of them). The underlying JS appears to be pretty
straightforward, so it should be readily modifiable.

I do think manually adding the the CSSParameter name attribute values would
be a good idea.

Torben




On Sun, Sep 23, 2018 at 7:00 AM Andrea Aime <[email protected]>
wrote:

> Hi,
> I was looking at this demo of XML autocomplete in the CodeMirror web site:
>
> https://codemirror.net/demo/xmlcomplete.html
>
> ... and well, of course, wanted to see what it could do for SLD, since
> there is still a lot of people
> hand editing it. The system requires a JSON structure representing the
> schema, and there is a
> windows only tool that can take a XSD in and generate such structure in
> output:
> http://q42jaap.github.io/xsd2codemirror/
>
> So I gave it a kick and came out with the following branch:
>
> https://github.com/aaime/geoserver/tree/sld10-hint
>
> Things I've discovered while playing with it:
>
>    - The tooling is completely namespace unaware, so the completion I
>    managed to put toghether works under the assumpion that sld elements are
>    not prefixed, the filter ones are prefixed by "ogc", and the gml ones by
>    "gml"
>    - The XSD to JSON tool is limited, has a not so useful notion of
>    namespaces and no idea about substitution groups, so the JSON must be
>    hand-tweaked after generation (5-10 minutes of search and replace like a
>    madman put the JSON structure in some usable state)
>    - The CSSParameter name attribute values are not really listed in the
>    schema, so no completion for those (but we could add them manually, lumping
>    toghether all possible values for all symbolizers)
>    - GeoServer style handling has no distinction between SLD 1.0 and SLD
>    1.1/SE 1.1, so an eventual completion should try to support both at the
>    same time (maybe, in a simple way, e.g. inspect the first element and see
>    what namespaces are in use, and then decide which set of tags to use
>
> Here is a screenshot showing the completion in action:
>
> [image: completion.png]
> And a video too (a clumsy video for a clumsy implementation):
>
> https://drive.google.com/open?id=18qgvEhhh8ijcdTjPkDOoVNICeu14S_F1
>
> So a few questions for you:
>
>    - Given the current limitations of the current approach, would you
>    suggest to merge it anyways, would you find it useful?
>    - Is there any javascript wiz interested in improving what I've got so
>    far, to make it more useful?
>
> Cheers
> Andrea
>
> GeoServer Professional Services from the experts! Visit
> http://goo.gl/it488V for more information. == Ing. Andrea Aime @geowolf
> Technical Lead GeoSolutions S.A.S. Via di Montramito 3/A 55054 Massarosa
> (LU) phone: +39 0584 962313 fax: +39 0584 1660272 mob: +39 339 8844549
> http://www.geo-solutions.it http://twitter.com/geosolutions_it
> ------------------------------------------------------- *Con riferimento
> alla normativa sul trattamento dei dati personali (Reg. UE 2016/679 -
> Regolamento generale sulla protezione dei dati “GDPR”), si precisa che ogni
> circostanza inerente alla presente email (il suo contenuto, gli eventuali
> allegati, etc.) è un dato la cui conoscenza è riservata al/i solo/i
> destinatario/i indicati dallo scrivente. Se il messaggio Le è giunto per
> errore, è tenuta/o a cancellarlo, ogni altra operazione è illecita. Le
> sarei comunque grato se potesse darmene notizia. This email is intended
> only for the person or entity to which it is addressed and may contain
> information that is privileged, confidential or otherwise protected from
> disclosure. We remind that - as provided by European Regulation 2016/679
> “GDPR” - copying, dissemination or use of this e-mail or the information
> herein by anyone other than the intended recipient is prohibited. If you
> have received this email by mistake, please notify us immediately by
> telephone or e-mail.*
> _______________________________________________
> Geoserver-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/geoserver-devel
>
_______________________________________________
Geoserver-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

Reply via email to