4 ms·
LSP is a game changer simultaneously raising our expectations for a code editor and lowering the bar for editors to get there.
by macrael 5y ago
LSP is a game changer simultaneously raising our expectations for a code editor and lowering the bar for editors to get there.
- ziml77 5y agoLSP was such an awesome idea. It's amazing to me that this wasn't a thing before Microsoft introduced it in VS Code. It's incredibly useful for every editor.
- munificent 5y ago> It's amazing to me that this wasn't a thing before Microsoft introduced it in VS Code. For what it's worth, the static analysis infrastructure we built for Dart was designed this way and, I think, existed slightly before LSP. We used it to provide a nice Dart IDE experience in the Dart Editor (a custom build of Eclipse), IntelliJ, Emacs, Vim, etc. without having to reimplement everything multiple times.
- sandyarmstrong 5y agoCool stuff. I think there were a few similar efforts going on. For example, LSP was based on the protocol developed for OmniSharp, which was an open source .NET-specific implementation started in like 2013 by a Vim fanatic.
- rjzzleep 5y agoInteresting! Is there a source for that? I remember OmniSharp. It was a blessing when I could start to use vim when I had to use .NET a few years ago. I had no idea that's what LSP grew out of.
- sandyarmstrong 5y agoA source for LSP growing out of OmniSharp? Interestingly I'm not finding much. This isn't a totally accurate history but it's close enough: https://blog.logrocket.com/how-to-use-the-language-server-protocol-to-extending-a-client-764da0e7863c/ https://blog.logrocket.com/how-to-use-the-language-server-pr... The original project was at https://github.com/nosami/Omnisharp https://github.com/nosami/Omnisharp (see https://news.ycombinator.com/item?id=6006954 https://news.ycombinator.com/item?id=6006954). But over time it was split into several repos. The history article above says that OmniSharp started out on Roslyn, but actually it originally used NRefactory. The old server is here: https://github.com/OmniSharp/omnisharp-server https://github.com/OmniSharp/omnisharp-server EDIT: Oh, just found https://github.com/microsoft/language-server-protocol/wiki/Protocol-History https://github.com/microsoft/language-server-protocol/wiki/P... . This cites OmniSharp and also the TypeScript language server.
- ziml77 5y agoThat's worth something, but having a standard protocol is worth so much more. If your architecture had become the de-facto standard for this stuff, I can assure you that I'd be praising it instead.
- jhgb 5y agoStandard in what sense? Surely Dart has its specific requirements like any other language. I'm not convinced it's possible to standardize such functionality without limiting yourself to a subset of what you might want to have implemented.
- macrael 5y agoStandard in the sense that most languages and most editors have adopted it: https://microsoft.github.io/language-server-protocol/implementors/servers/ https://microsoft.github.io/language-server-protocol/impleme...
- jhgb 5y agoIn that case I'm not sure that it's "worth so much more". As I said, you end up with lowest common denominators, not with increased developer comfort. For example, in case of Common Lisp, I very strongly doubt that LSP supports such things as interactive resumable conditions, CLOS/MOP object model for cross-referencing, or image state and session handling. At least it didn't a few years ago when I looked at it. But sure, if you're not very demanding, something like LSP might be enough for you.
- macrael 5y agoDoes that work in BBEdit?
- deleted 5y ago[deleted]