4 ms·
So, I've written a language server for a very niche programming language (Paradox Interactive games' scripting language). I started it as a VSCode extension (v
by Dayshine 8y ago
So, I've written a language server for a very niche programming language (Paradox Interactive games' scripting language).
I started it as a VSCode extension (via LSP), and am halfway to getting a Sublime Text extension to work, and gave up on intellij. Emacs/Vim shouldn't be hard, but I have no idea how I would release updates.
While I agree LSP is technically making it an "n-plus-m" problem, implementing the plugins that wire things up to the IDE is hard.
My main pain-points have been:
- Initial integration: Each IDE has its own extension framework, and it takes a lot of work to get my LSP server to work at all
- Deploying updates: Once I have it working, I then need to spend days automating updates for each IDE.
- Distributing LSP updates: For VSCode, I bundle the executable, but that means extension updates for every LSP update. I could have system level installation, but I don't want to ask users to take that risk (nor manage installers myself)
- Syntax highlighting: There is no good standard for semantic highlighting (technically textmate, in practice not). LSP doesn't include highlighting.
- Settings management: Each IDE has a different way of managing settings, and gluing that to the LSP isn't easy.
Basically, I have to spend a week or two of my free time to support an extra IDE at all (not well), which is frustrating. Probably a month or two for full support, and that would be for maybe a dozen users.
- sqs 8y agoSourcegraph CEO here. We have a project underway that lets you write one editor extension and use it on multiple editors (and other tools with code views, such as GitHub, GitLab, Sourcegraph, etc.). We intend it to solve your problem. https://github.com/sourcegraph/sourcegraph-extension-api https://github.com/sourcegraph/sourcegraph-extension-api
- sooheon 8y agoAwesome mission. But god I wish JS weren't eating the world like this.