The format described here and here seems to be a big step forward from BeginPackage/EndPackage structure and is apparently widely used in Mathematica itself.

From my experience Workbench does not currently support it (symbol navigation does not work as well as debugging etc).

If the answer is "no" — does anyone has the experience with some IDE and "new package format"?

I've checked Idea plugin (which I actually have paid version), but it seem to have the same problem: symbol navigation does not work across files.

VSCode has very limited support for Wolfram Language (and getting language server to run stably seems next to impossible).

Thanks in advance.

  • 2
    $\begingroup$ With IntelliJ, you can get symbol navigation working across files with the new package format. I use it regularly. Make sure all symbols you want to include have a usage message, then it will work. $\endgroup$
    – Szabolcs
    Oct 6, 2021 at 12:12
  • 1
    $\begingroup$ To be clear, what is needed is for symbols to have a usage message and not for them to be public. In other words, you might want to add a usage message to all PackageScope symbols, not just PackageExport ones. While at first this may feel like a chore, it is quite useful to do it because you can also get a small documentation popup in case you forgot what the function does ... $\endgroup$
    – Szabolcs
    Oct 6, 2021 at 14:55
  • $\begingroup$ @Szabolcs hahaha !!!! Thanks for the advice! But this behaviour seems a bit strange for me. Especially because almost all my usage messages are set via GeneralUtilities`SetUsage. I wonder if this by design of the plugin. $\endgroup$ Oct 6, 2021 at 15:12
  • $\begingroup$ @Szabolcs BTW it seems anything will do, not just usage: ``` tst::anything="asda ``` $\endgroup$ Oct 6, 2021 at 15:20
  • 1
    $\begingroup$ I'd suggest opening an issue on GitHub and explaining your use case. It is not possible to notify people who are not involved in this thread. $\endgroup$
    – Szabolcs
    Oct 6, 2021 at 15:52


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.