Kerri,

LSP isn't at all like Kite. It's a project primarily promoted by Microsoft 
but it is all open source and others are supporting it too. The problem is 
that all the different editors and IDE's out there use sometimes primitive 
means to analyze code and provide hints, suggest completions, correlate 
definitions, show usage, etc. Solutions like ctags work but don't run real 
time. The basic idea is to have each language implement a server that can 
answer those questions via a defined protocol in real time. The benefit is 
that an implementor of an editor just has to integrate the same protocol 
for all languages while the language implementor provides the server that 
can answer that for any editor or IDE.

The way it runs is not over the network. It could but that's not the 
intent. Instead, you run a local language server, typically as a process 
controlled by your editor. The editor makes JSON RPC calls to the language 
server usually over stdio or web sockets. It can do TCP but most seem to 
just do stdio. So it is all local and there is no sending of your 
keystrokes elsewhere.

Ideally, the language SDKs will eventually ship the language server. Go for 
example is beginning to add it to their standard library so if you install 
a future version of Go, you would get the language server as part of the 
sdk and your editor can run it. Since it is being implemented by the 
language authors, it will hopefully be very good at the tasks. However, 
it's fine to have it completely implemented outside the language sdk (which 
is how most are done now).

Microsoft is using this heavily for Visual Code.

Here are some sites that have details:
https://langserver.org
https://microsoft.github.io/language-server-protocol/

OK - so what does this have to do with BBEdit? I really love BBEdit but 
would like a few more IDE type features - one being the kinds of things 
that LSP would solve. I've started to experiment with writing some 
integration scripts between BBEdit and language servers. It's really early 
but I have some code that can talk to the Go language server (that's my 
primary language). I expect that it will be hard to truly integrate without 
some fundamental changes to BBEdit but hopefully Bare Bones will take a 
look at this (and I'm more than happy to share what I've learned with them).

There is a lot of momentum around this. I think it will become pretty much 
required for code editors to support it or they are going to really fall 
behind. It looks well thought out and VS Code has shown it working well. 
The Swift team/Apple are going to support it in Xcode and provide a server 
for Swift. Think of it as taking the Microsoft "intellisense" and making 
that available broadly in whatever editor you wanted to use.

Andrew


On Wednesday, June 28, 2017 at 10:23:45 AM UTC-7, Kerri Hicks wrote:
>
> Correct me if I'm wrong, but doesn't LSP require that you are, 
> essentially, sharing your code with the remote server, as you type it/edit 
> it? That is, the remote server knows what keystrokes you're hitting when 
> (so that it can provide you service and advice), and those are transmitted 
> over the network?
>
> I remember, when Kite support was added last year, that was a concern of 
> many of us. (Kite is not an LSP, of course, but the functionality seems 
> similar.)
>
> Adjusting my tinfoil hat,
> --Kerri
>
> On Wed, Jun 28, 2017 at 10:26 AM, Rob Lewis <[email protected] 
> <javascript:>> wrote:
>
>> Been reading about LSP, Language Server Protocol, a new technology that 
>> lets a program like an editor communicate with a "language server" to 
>> simplify the handling of programming language-specific features. 
>>
>> Wondering what Bare Bones' stance on this is. 
>>
>> -- 
>> This is the BBEdit Talk public discussion group. If you have a 
>> feature request or would like to report a problem, please email
>> "[email protected] <javascript:>" rather than posting to the group.
>> Follow @bbedit on Twitter: <http://www.twitter.com/bbedit>
>> --- 
>> You received this message because you are subscribed to the Google Groups 
>> "BBEdit Talk" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected] <javascript:>.
>> To post to this group, send email to [email protected] 
>> <javascript:>.
>> Visit this group at https://groups.google.com/group/bbedit.
>>
>
>

-- 
This is the BBEdit Talk public discussion group. If you have a 
feature request or need technical support, please email
"[email protected]" rather than posting to the group.
Follow @bbedit on Twitter: <https://www.twitter.com/bbedit>
--- 
You received this message because you are subscribed to the Google Groups 
"BBEdit Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/bbedit.

Reply via email to