Hacker News new | past | comments | ask | show | jobs | submit login

LSP is a game changer simultaneously raising our expectations for a code editor and lowering the bar for editors to get there.



LSP 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.


> 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.


Cool 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.


Interesting! 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.


A 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-pr...

The original project was at https://github.com/nosami/Omnisharp (see 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

EDIT: Oh, just found https://github.com/microsoft/language-server-protocol/wiki/P... . This cites OmniSharp and also the TypeScript language server.


That'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.


Standard 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.


Standard in the sense that most languages and most editors have adopted it: https://microsoft.github.io/language-server-protocol/impleme...


In 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.


Does that work in BBEdit?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: