Skip to content
This repository has been archived by the owner on Dec 14, 2021. It is now read-only.

Make it possible to add custom language support using plugins #499

Closed
joukevandermaas opened this issue Oct 27, 2017 · 4 comments
Closed
Labels

Comments

@joukevandermaas
Copy link

There are many feature requests for new language support. It's unlikely that your team will be able to add support for all of them. But, by allowing anyone to create a "language support plugin", the language communities can add this support themselves.

The plugins must be able to provide all symbols, their location in the source files and their relationships. Sourcetrail will then use this information to navigate and explore the code as it does now.

@mlangkabel
Copy link
Contributor

mlangkabel commented Oct 27, 2017

This sounds like a really good idea! For this to be feasible we need

  • to generalize our data format for storing the indexed symbols a little bit more so that it doesn't just work for C, C++ and Java
  • to reshape the internals of the project setup, so that plugins could define what kind of things the user needs to enter there
  • to pass that plugin-project specific data to the plugin's indexer
  • to allow the plugins to expand Sourcetrail's application settings and query data from those settings
  • to allow for plugins to append 3rd party license info to the Sourcetrail 3rd patry license window

This sounds like it will be some amount of work for our team but it also sounds quite doable!

@manokara
Copy link

manokara commented Feb 4, 2018

This would indeed be great! Please keep us posted whenever there's some development on this matter.

@egraether
Copy link
Contributor

+1 via email

@egraether
Copy link
Contributor

We decided to realize this request in a simpler way with our recently released SourcetrailDB library. It allows for creating and exporting Sourcetrail compatible project files (.srctrlprj and .srctrldb). This means that anyone can write custom language support using this library. The great thing about it is that new indexers can be written in any language using language bindings.

We are already working on Python support using this new approach. Read about it in our blogpost for Release 2019.1

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

4 participants