3 ms·
> Because of the language-specific nature of this heuristic, we generally do not support multi-line completions for all languages. However, we’re always happy t
by nicklecompte 3y ago
> Because of the language-specific nature of this heuristic, we generally do not support multi-line completions for all languages. However, we’re always happy to extend our list of supported languages and, since Cody is open-source, you can also contribute and improve the list. (link to https://github.com/sourcegraph/cody/blob/main/vscode/src/completions/language.ts https://github.com/sourcegraph/cody/blob/main/vscode/src/com...)
That link to the list of supported languages is broken. I couldn't find a similar file elsewhere in the repo: maybe the list got folded up into a function in another file? Also a bit annoying that I couldn't find the info on the company's website (though I gave up pretty quickly).
- friendlynokill 3y agoThis should be the correct link: https://github.com/sourcegraph/cody/blob/main/vscode/src/graph/lsp/languages.ts https://github.com/sourcegraph/cody/blob/main/vscode/src/gra...
- nicklecompte 3y agoI don't think it is. There is a test file which includes C#, Kotlin, etc among supported languages, and those aren't included in the file you linked: https://github.com/sourcegraph/cody/blob/main/vscode/src/completions/get-inline-completions-tests/languages.test.ts https://github.com/sourcegraph/cody/blob/main/vscode/src/com... But this test didn't seem to include TypeScript so it's obviously not comprehensive. I'm not convinced this information is actually in one place.
- sqs 3y agoThe list of supported languages is at https://sourcegraph.com/docs/cody/faq#what-programming-languages-does-cody-support https://sourcegraph.com/docs/cody/faq#what-programming-langu.... It works for all programming languages, but it works better on some than others, depending on the LLM and the language-specific work we've done on context-fetching, syntax-related heuristics, etc. On the LLM point, Cody supports multiple LLMs for both chat and autocomplete (Claude 3, GPT-4 Turbo, Mixtral, StarCoder, etc.), which is great for users but makes it tough to give any formal definition of "supported language".
- nicklecompte 3y agoEven that link doesn't claim to be comprehensive, including an extremely vague "shell scripting languages (like Bash, PowerShell)," as if I am supposed to cross my fingers and hope this means a nonstandard shell like fish works, when it seems like that could introduce weird or inscrutable bugs coming from incompatible bash syntax. (One under-discussed downside of LLM code generation is that it further penalizes innovation in programming languages.) What I find frustrating is that Cody is doing deterministic language-specific tricks that don't depend on the underlying LLM, so why not just give a list of all the languages you did deterministic tricks for and call that the supported languages? Why be vague? Why deflect to the underlying LLM to encourage people to try your product with languages you won't do any work to support? Claiming it works on "all programming languages" is lazy and dishonest, and clearly false. There's nothing magical about LLMs that relieves software developers of the duty to specify the limitations of their software.
- sqs 3y agoThe code is Apache 2 and we linked it from the blog post. You can see all of the tricks! Nothing here is dishonest. We’re open about the limitations of the LLM being the main determining factor, and the numerous languages we’ve prioritized making it work well on. I see your point about not mentioning “etc.” in the shell scripting parenthetical. Will update.