ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
From: "Philipp A." <flying-sheep@web.de>
To: mailing list for ConTeXt users <ntg-context@ntg.nl>
Subject: Re: How to approach a ConTeXt language server?
Date: Wed, 5 Feb 2020 10:42:59 +0100	[thread overview]
Message-ID: <CAN8d9gnxs7SUigXm4_UkhYceMit==E6GOq-fhGbdggvthMF5fg@mail.gmail.com> (raw)
In-Reply-To: <BC243215-1A4D-4BB8-8FE6-F5C9FD51AE0B@fiee.net>


[-- Attachment #1.1: Type: text/plain, Size: 3549 bytes --]

Thank you, that’s great information!

What’s the “export XML”?

Am Di., 4. Feb. 2020 um 19:09 Uhr schrieb Henning Hraban Ramm <
texml@fiee.net>:

>
> > Am 2020-02-04 um 16:45 schrieb Philipp A. <flying-sheep@web.de>:
> >
> > Language servers are the new big deal in editor and IDE development:
> https://langserver.org/
> >
> > It would be cool to have a ConTeXt one for autocompletion (for ConTeXt:
> command names, \cite IDs, labels, named parameters, …), go-to-definition,
> hover information (docs about a command) and so on.
> > The way it works is that you have a server process that is the source of
> truth for all this information, and the editor passes requests to it.
> > The editor tells the server when it opens/closes files and when the user
> requests something of the above.
> >
> > The way I’d implement it in ConTeXt is to keep a list of open ConTeXt
> projects in the server (obtained by following \include, \component,
> \product, \environment, \project).
> > Now my questions begin:
> >       • Then I’d make context load the project without compiling it to a
> PDF but make it execute some Lua (how do I do this?)
> >       • I’d need a way to get all available commands with their
> signatures into Lua. I assume this is done here, but how?
> http://www.pragma-ade.nl/general/qrcs/setup-en.pdf
>
> Look for the interface files i-*.xml
>
> >       • Optimally, for hover information and completion, I’d want some
> help/doc text for each command that has some. Is there a way to get it?
>
> No, there isn’t. It could be in the interface files if someone would put
> in the work.
>
> >       • Optimally, for label autocompletion, I’d also like a list of
> defined labels. Since I played around with bibliographies I already know
> how to query the bibliography DB from Lua.
> >       • Optimally I’d also want some parse tree of each document, but I
> assume the way macros work, this doesn’t exist? This would make things
> easier that I’d otherwise have to (imperfectly) parse out of the document
> (due to things like catcode changes, but I guess I can pretend they don’t
> exist and \unprotect is always on)
>
> You could run ConTeXt and use the export XML.
>
> >       • Optimally, for go-to-definition, I’d also want a list of files
> ConTeXt loaded so I can find definitions in it.
> > Can anyone help me, especially with 1-2? To get me started, it would be
> great to have an example script and a command line to invoke it, which
> makes ConTeXt load a main tex file, execute some Lua, and exit without
> creating a document or writing anything else to the channel Lua writes to
> (stdout?).
>
> Look at the .tuc file that’s created in a ConTeXt run, it’s a Lua table
> and contains “all“ the information about the project.
>
>
> Greetlings, Hraban
> ---
> https://www.fiee.net
> http://wiki.contextgarden.net
> https://www.dreiviertelhaus.de
> GPG Key ID 1C9B22FD
>
>
> ___________________________________________________________________________________
> If your question is of interest to others as well, please add an entry to
> the Wiki!
>
> maillist : ntg-context@ntg.nl /
> http://www.ntg.nl/mailman/listinfo/ntg-context
> webpage  : http://www.pragma-ade.nl / http://context.aanhet.net
> archive  : https://bitbucket.org/phg/context-mirror/commits/
> wiki     : http://contextgarden.net
>
> ___________________________________________________________________________________
>

[-- Attachment #1.2: Type: text/html, Size: 4859 bytes --]

[-- Attachment #2: Type: text/plain, Size: 493 bytes --]

___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : http://contextgarden.net
___________________________________________________________________________________

  reply	other threads:[~2020-02-05  9:42 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-04 15:45 Philipp A.
2020-02-04 18:03 ` Henning Hraban Ramm
2020-02-05  9:42   ` Philipp A. [this message]
2020-02-05  9:49     ` Henning Hraban Ramm
2020-02-05 10:20 ` Hans Hagen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAN8d9gnxs7SUigXm4_UkhYceMit==E6GOq-fhGbdggvthMF5fg@mail.gmail.com' \
    --to=flying-sheep@web.de \
    --cc=ntg-context@ntg.nl \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).