It seems like the grammar of a number of popular languages are shipped out-of-the box with VS Code because they have an extension in https://github.com/microsoft/vscode/tree/master/extensions.
What are the criteria for being included there? Would Julia be a potential candidate to also ship like this? Would be great if you could share a bit about the pros and cons of that, I think I don't fully understand the implications at the moment of being included there.
We (the Julia extension team) could probably prepare a PR that would add this and would also be happy to maintain this.
Are there any guidelines about splitting a given language support up into one extension that ships with the core product and then a second extension that ships on the marketplace?
One note: this is holding up jupyter support in the datascience/python extension since it cannot be added through other means. See https://github.com/microsoft/vscode-python/issues/5078#issuecomment-668148582
Given the rising popularity of Julia we'd be interested to include a basic language extension in VSCode!
However, we need some expertise, so if you can help, that would be fantastic!
Basic language extensions just define declarative language contributions (no code):
The language definition, the language configuration as well as a grammar.
Some extensions also provide a set of snippets but we try to avoid this as it's a better user experience if snippets are coming from separate extensions.
The pros of having a basic language extension are of course the better out-of-the-box editing experience for end users. Also, it will help Julia extension authors to avoid duplication of the definitions mentioned above.
The cons are be the additional maintenance efforts (handling issues and PRs, having the language knowledge to be able to answer these correctly) on our side. But with your help we will be fine.
We don't want to own any TextMate grammars so it's important is that we can rely on a well maintained TextMate grammar.
I've seen that you use a patched version of https://github.com/JuliaEditorSupport/atom-language-julia. The repo looks good: MIT license and regular updates.
I was wondering, would it be possible to avoid the patching, e.g. by contributing the changes back to the original repo?
Awesome! Do you want me to open a PR where I just copy the relevant parts from the existing Julia extension over into this repo here? And then we can iterate on any changes you think we need to make before it can get merged?
On the grammar: I'll discuss that with the team next week. The whole team that worked on the Julia extension for Atom (and maintained that existing upstream grammar repo) joined the VS Code extension effort a couple of months ago, so the Julia-Atom effort is essentially in maintenance mode now. It probably makes most sense for us to just move the "truth" for the TextMate grammar somewhere else, and make the VS Code team the primary maintainer for it, so that we can just do a 1:1 copy of that grammar into the VS Code repo somewhat regularly.
Yes, great, sounds like a plan. Let's iterate on a PR.
For the repo, also good, I suggest to create a new GitHub repo just for the grammar and continue the development & maintenance it there. https://github.com/Microsoft/TypeScript-TmLanguage is an example of such a grammar repo.
With the VS Code team you mean the the Julia VS Code extension team?
Most helpful comment
Given the rising popularity of Julia we'd be interested to include a basic language extension in VSCode!
However, we need some expertise, so if you can help, that would be fantastic!
Basic language extensions just define declarative language contributions (no code):
The language definition, the language configuration as well as a grammar.
Some extensions also provide a set of snippets but we try to avoid this as it's a better user experience if snippets are coming from separate extensions.
The pros of having a basic language extension are of course the better out-of-the-box editing experience for end users. Also, it will help Julia extension authors to avoid duplication of the definitions mentioned above.
The cons are be the additional maintenance efforts (handling issues and PRs, having the language knowledge to be able to answer these correctly) on our side. But with your help we will be fine.
We don't want to own any TextMate grammars so it's important is that we can rely on a well maintained TextMate grammar.
I've seen that you use a patched version of https://github.com/JuliaEditorSupport/atom-language-julia. The repo looks good: MIT license and regular updates.
I was wondering, would it be possible to avoid the patching, e.g. by contributing the changes back to the original repo?