LSP Explained (in 5 Minutes)

  Рет қаралды 53,196

TJ DeVries

TJ DeVries

Күн бұрын

Language Server Protocol Five W Questions answered (in 5 minutes)
Presentation tool: github.com/d0c-s4vage/lookatme
To become a sponsor: github.com/sponsors/tjdevries
My Stream: / teej_dv
00:00 - Who?
00:15 - When?
00:40 - What?
01:01 - Where?
03:21 - Why?
04:41 - How?
#neovim #lsp #programming #software #vscode #microsoft

Пікірлер: 187
@Sibearian_
@Sibearian_ 5 ай бұрын
Always wondered how lsp was doing. Finally got an answer
@encephala
@encephala 5 ай бұрын
The `M x N` -> `M + N` explanation is so good
@Kane0123
@Kane0123 5 ай бұрын
Smashed it out of the park with this one Teej. A classic “I know vaguely what [insert thing here] does” topic.
@JeremyChone
@JeremyChone 20 күн бұрын
Very nice quick overview, thanks.
@jasonfevang9670
@jasonfevang9670 5 ай бұрын
This was really well done, thanks for the explanation. The format is great
@teej_dv
@teej_dv 5 ай бұрын
Thanks! I'm going to try and do a few more videos like this. Thanks for the feedback
@earthling_parth
@earthling_parth 5 ай бұрын
This was amazing, please do more videos about core components of neovim and editors in general Teej. Subscribed instantly.
@Golipillas
@Golipillas Ай бұрын
Incredibly succint explanation, thank you!
@zsmain
@zsmain 5 ай бұрын
That was very informative and the style of the video is great, Thank you Teej.
@ParanoidxProd
@ParanoidxProd 5 ай бұрын
Videos like this are so valuable for the community as a whole, thanks for the content!
@missingcharacter
@missingcharacter 5 ай бұрын
Thank you, I love these "straight to the point" explanations
@destinlee
@destinlee 5 ай бұрын
TJ thank you for this. Very informative. I have been on an LSP mission since the Kickstart updates. Just finished watching your and Bashes LSP video which was also very informative.
@rad6626
@rad6626 5 ай бұрын
Just subbed, why couldn't any of the other videos I watched explain this so easily!? THANK YOU TJ
@teej_dv
@teej_dv 5 ай бұрын
@NDValle
@NDValle 5 ай бұрын
Great video! I really appreciate the concise and incredibly useful format!
@teej_dv
@teej_dv 5 ай бұрын
Thanks! exactly what I was shooting for!
@ginger-viking
@ginger-viking 8 күн бұрын
Thank you, great video
@vitorbertulucci
@vitorbertulucci 5 ай бұрын
LOVE IT!
@jong.4864
@jong.4864 5 ай бұрын
I always wondered! Thanks for the vid TJ!
@calvinmakokha6990
@calvinmakokha6990 5 ай бұрын
Thanks for this video. A great overview of the LSP.
@pif5023
@pif5023 3 ай бұрын
Nice! Amazing intro, ty teej
@ancxanas
@ancxanas 5 ай бұрын
A detailed version of this would be litm
@user-xl2om2up2x
@user-xl2om2up2x 5 ай бұрын
Didn't even know I wanted this video, thanks a ton for the info!
@pmerikan
@pmerikan 5 ай бұрын
As always great content. 👍
@fredbcruz
@fredbcruz 5 ай бұрын
Whoa. Straight to the point, entertaining, amazing
@willbradfair
@willbradfair 5 ай бұрын
Awesome video explaining how the communication works with my LSP. Would be also great to see a video on debugging issues with different LSP issues.
@TheHermitProcess
@TheHermitProcess 4 ай бұрын
You are a freaking wizard at explaining things. Just enough for me to go on and figure things out.
@douglasfrb
@douglasfrb 5 ай бұрын
The clearest explanation of LSP I've seen. Just thanks. :)
@fricze
@fricze 5 ай бұрын
it was really cool. cheers
@askholia
@askholia 5 ай бұрын
I really like these!
@bsquidwrd
@bsquidwrd 5 ай бұрын
This was awesome, thank you for the overview!
@teej_dv
@teej_dv 5 ай бұрын
So glad you liked it!
@petrpechkurov3095
@petrpechkurov3095 5 ай бұрын
Thanks a lot, TJ! I like your videos!
@dezzare
@dezzare 5 ай бұрын
I already know most of this, but not all. This video is good in many ways: with a lot of concepts/information using clear/easy language, making it easy to understand/assimilate, and all that in a short video, directly to the point. Thank you for the content.
@teej_dv
@teej_dv 5 ай бұрын
Thanks for the comment and compliments!
@adibhanna
@adibhanna 5 ай бұрын
great video as usual!
@tikeswarnaik-pd5ho
@tikeswarnaik-pd5ho 5 ай бұрын
This is very informative. Thank you for making these amazing videos.
@teej_dv
@teej_dv 5 ай бұрын
Thank you! Hoping to make more like this!!
@zim...
@zim... 5 ай бұрын
awesome saucesome. this is a really cool protocol
@tomshieff
@tomshieff 5 ай бұрын
I like this format, great work!
@teej_dv
@teej_dv 5 ай бұрын
Thanks! Hoping to do more of them!
@kal.leroux
@kal.leroux 5 ай бұрын
This was cool thanks !
@yuxiang4218
@yuxiang4218 5 ай бұрын
clear and helpful!
@ericlindell3777
@ericlindell3777 5 ай бұрын
Yes! More of this please!
@peterdenham
@peterdenham 4 ай бұрын
That was really interesting!
@headlights-go-up
@headlights-go-up 5 ай бұрын
loved this!
@Jakoliath
@Jakoliath 5 ай бұрын
sick explanation, I knew what LSPs were in a broad sense but didn't understand the problem they were trying to solve
@silviogames
@silviogames 5 ай бұрын
Nice format to explain something
@cyAbhishek
@cyAbhishek 5 ай бұрын
Damn, quality content. Way to go teej!
@teej_dv
@teej_dv 5 ай бұрын
Thanks!!
@wesleyhamilton6262
@wesleyhamilton6262 5 ай бұрын
nice introduction to lsp i would love to see some more stuff about how lsp formatters linters work
@koby9340
@koby9340 5 ай бұрын
Great content
@juangiordana
@juangiordana 5 ай бұрын
Beautiful! Next targets: linters, formatters :)
@redhawk3385
@redhawk3385 4 ай бұрын
im writting a IDE and this is so helpful
@coffeeowl86
@coffeeowl86 5 ай бұрын
Awesome content~!
@teej_dv
@teej_dv 5 ай бұрын
Thanks!!
@gunstorm05
@gunstorm05 5 ай бұрын
This is a super nice overview, thanks! What do you use for the actual presentation shown behind you? I'd imagine it's Neovim, but using what plugins and how?
@lastink444
@lastink444 5 ай бұрын
thanks for this
@Blaisem
@Blaisem 5 ай бұрын
Thanks for telling me how it works.
@Zaf9670
@Zaf9670 5 ай бұрын
That raw take with the cough included. But I enjoyed the summary.
@teej_dv
@teej_dv 5 ай бұрын
hahaha i know, i could have edited out but I liked having it be one take!
@ancxanas
@ancxanas 5 ай бұрын
This is gold.
@vojtastruhar8950
@vojtastruhar8950 5 ай бұрын
The in-terminal slides are so cool
@user-cm4dw5rg3v
@user-cm4dw5rg3v 5 ай бұрын
More nuggets like this plz
@bhaveshverma8629
@bhaveshverma8629 5 ай бұрын
Awesome 👍
@scutum_
@scutum_ 5 ай бұрын
Thanks for the clear explanation. I finally have a clue about what LSP is for. Now I am more curious about what Treesitter is doing.
@arsenbabaev1022
@arsenbabaev1022 5 ай бұрын
Great vid, was just making the lsp for my toy language.
@roryhendrickson
@roryhendrickson 5 ай бұрын
TIL, love it
@oglothenerd
@oglothenerd 4 ай бұрын
I am making a programming language, so implementing an LSP is important.
@heller166
@heller166 5 ай бұрын
Cool video!
@spageen
@spageen 5 ай бұрын
finally an LSP explanation that doesn't assume you know what a language server is!
@HasanSIM14
@HasanSIM14 4 ай бұрын
"From now on we're going to call your editor the client". Proceeds to still call it editor for the rest of the video GIGACHAD Excellent video :)
@SalvaToroTorus
@SalvaToroTorus 5 ай бұрын
Fantastic
@iconoclastsc2
@iconoclastsc2 5 ай бұрын
This was really good. Next time explain null-ls/none-ls. Also linters and formatters later.
@bitcode_
@bitcode_ 5 ай бұрын
One of the most fun and challenging parts of using neovim is figuring out how LSPs work under the hood and how to properly configure it, which i'm still doing, this video gave me a troubleshooting aha moment of something that was very obvious regarding the client / server operations
@herrpez
@herrpez 5 ай бұрын
Configuring LSPs is such a headache generator. Especially when you have to factor in a particular editor's config format... and possibly that particular editor's distribution's config format...! I'm glad way more patient people than I have released sufficiently to-my-taste configs that I can just download and use.
@bitcode_
@bitcode_ 5 ай бұрын
@@herrpez haha! Fair, i'm a masochist
@herrpez
@herrpez 5 ай бұрын
@@bitcode_ And I'm glad for it. 😂
@lancemarchetti8673
@lancemarchetti8673 4 ай бұрын
Brilliant
@Strawberry_Htet
@Strawberry_Htet 5 ай бұрын
Debuggers teej❤
@Kane0123
@Kane0123 5 ай бұрын
Yes
@mewhenthemewhenstheme
@mewhenthemewhenstheme 5 ай бұрын
Yes
@jsonkody
@jsonkody 5 ай бұрын
At last I know what is Lisp. Thx 🥳🙃
@guitaripod
@guitaripod 5 ай бұрын
More videos like this. Thanks
@teej_dv
@teej_dv 5 ай бұрын
Will do!!
@tangxian3575
@tangxian3575 5 ай бұрын
🎉
@karolgutkowski4678
@karolgutkowski4678 5 ай бұрын
The benefit of LSP seems similiar to what I've recently learned in compilers class where language could have its frontend translate to some intermediate representation and then there can be a backend that translates that IR to platform specific instructions.
@maniac5411
@maniac5411 5 ай бұрын
@teej_dv awesome video. Thanks 🙏 Video idea: Neovim LSP core usage. Insights into LSP API and stuff like that. Might even be a series of videos
@teej_dv
@teej_dv 5 ай бұрын
I'm not sure what you mean - core usage in what way?
@maniac5411
@maniac5411 4 ай бұрын
@@teej_dv As a beginner, we all get to use LSP features of Neovim via plugins, or some pre-defined setup. All this obviously only works because of the native LSP support that you programmed in Neovim, as in LSP is a core part of Neovim. My point about video idea is going one step ahead and maybe talking about what more can one do with LSP apart from just using plugins? Maybe even talk about some LSP API that is made use of inside these plugins? The whole point here teej is to learn more about LSP and perhaps make use of it. And it's ok if my idea doesn't resonate with your ideology of the videos you want to put out, not everyone's looking for this. All in all, awesome videos man. Keep up the good work :)
@trench6118
@trench6118 5 ай бұрын
Nice video. what software did you use for the slides? Edit - just saw it in the description thanks
@Schadowofmorning
@Schadowofmorning 5 ай бұрын
LSP's are really a great addition to development. Now we only have to get task running, building etc. standardized so every other major editor integration can be abstracted away. I have to work in both neovim and Visual Studio 2022 everyday and having stuff like task running defined once and usable accross both would be amazing.
@sunofabeach9424
@sunofabeach9424 5 ай бұрын
VS 2022 💀
@Yoshidzo
@Yoshidzo 5 ай бұрын
Makefile?
@Schadowofmorning
@Schadowofmorning 5 ай бұрын
You have to smoke a special kinda crack to think Makefiles could do that to any degree of reproducabiility and system independent reliability. And that's not even touching on the arcane syntax, the refusal to produce any modern, readable, understandable documentation and examples, and their general incompability with NT operating systems.@@Yoshidzo
@QmVuamFtaW4
@QmVuamFtaW4 5 ай бұрын
VS 2022 💀
@asg8813
@asg8813 5 ай бұрын
How did you make these slides?
@oubracode
@oubracode 5 ай бұрын
Does anyone know what program he's using for the presentation?
@dgleitaocontratos
@dgleitaocontratos 5 ай бұрын
Good good!
@mash808
@mash808 4 ай бұрын
Thanks for caring enough to ask how's LSP 🥰
@teej_dv
@teej_dv 4 ай бұрын
Always important to check in and make sure LSP is feeling good
@JordanShurmer
@JordanShurmer 5 ай бұрын
Thank well done. I think your slides need some Berkeley Mono font btw.. :)
@mafanu2
@mafanu2 5 ай бұрын
KZbin LSP = Like, Subscribe, Post. Interesting topic.
@radustoleru9109
@radustoleru9109 4 ай бұрын
Everything was really cool
@amzabdrahim3350
@amzabdrahim3350 4 ай бұрын
i like the slides. how did you achieve that ?
@ricardonunosr
@ricardonunosr 5 ай бұрын
Awesome video, a question: The Editor communicates to the server via json? that seems inefficient...
@VasiliSyrakis
@VasiliSyrakis 5 ай бұрын
Hello algorithm gods I have smashed the like button and left a comment, please allocate more views to this video and give TJ a bigger cut of the monetization, Amen 🙏
@teej_dv
@teej_dv 5 ай бұрын
ty ty for commenting
@pagundu
@pagundu 5 ай бұрын
Thanks, the presentation was really cool.
@user-bi3du7or6e
@user-bi3du7or6e 5 ай бұрын
Can someone tell me the font name in the video seems like it can match the glory of the legend ( comic shanns )
@hendrykhoza4782
@hendrykhoza4782 5 ай бұрын
What program is he using to present
@BitMonkeyJed
@BitMonkeyJed 5 ай бұрын
This is super cool! I would be interested in seeing how to make these requests and see the different responses and requests that are possible. Where would I look at this?
@frydac
@frydac 5 ай бұрын
Read the nvim docs of e.g. vim.lsp.buf_request_all (lua funtion) and probably you want to read most the document this is in, with this video as background introduction, it should make (more) sense. Sometimes it's not trivial to find out how to provide the input data if required, like text range, this depends on the specific request. At some point I implemented my own handler for a non-standard lsp request of a specific server, and eventually I looked at the nvim source (lua) code, and the standard requests there, to figure out how exactly to do this.
@m4rt_
@m4rt_ 5 ай бұрын
what did you use for this presentation? a normal slideshow thing, or something a bit more fancy? Edit: nevermind, I see it linked in the description.
@theena
@theena 5 ай бұрын
Thank you. Always wondered, never could get my head around it. Now please, a similar treatment to Treesitter? I can't tell where LSP ends and TS begins.
@Guergeiro
@Guergeiro 5 ай бұрын
An example of the problem that LSPs solve is in the Kotlin language. Basically it was released by Jetbrains and what does Jetbrains "sell"? You got it, editors! That means their integration is awesome. But what happens if you want to use VSCode (not even talking about Vim) to code Kotlin? You can't because the language features are deeply coupled with the editor. That's what LSPs solve, they decouple the language from the editor. Thank god for the case of Kotlin there are good community alternatives and now you can install them, but hopefully they release an official one.
@rochakgupta6116
@rochakgupta6116 5 ай бұрын
That's the only thing holding me back from learning Kotlin. Why on earth would I wanna learn a language so tightly coupled with an IDE? Not worth my time.
@pokefreak2112
@pokefreak2112 5 ай бұрын
I'd argue the reason kotlin does not have official support outside of jetbrains IDE's is that they have no incentive to add it. Let's be honest, no one is completely rewriting their language plugin when porting it to a different editor. We had cross-editor plugins like resharper before LSP. The only thing LSP does is maybe get rid of some glue code.
@Guergeiro
@Guergeiro 5 ай бұрын
@@pokefreak2112 I think the point here is that any language to be massively adopted today, needs to have a good lsp that is not tied into an editor. Kotlin thrives for 2 reasons: android development and the natural evolution from Java (and the latter is just for some people, others just use new versions of Java). If it didn't have this driving force, people would not lock into an editor for the sake of the language.
@joaomachado9105
@joaomachado9105 5 ай бұрын
cool content
@luxxa
@luxxa 5 ай бұрын
I guess it's late, but would have inverted where and why, and show the examples as last. Nice job.
@asg8813
@asg8813 5 ай бұрын
Can someone tell me how to make such slides, and which presenter software he is using?
@musdevfrog
@musdevfrog 5 ай бұрын
banger
@jamieroyer8796
@jamieroyer8796 4 ай бұрын
Could LSP be used to generate call sequence diagrams? I work with large C++ projects and it would be really helpful to understand where objects get created. Do you think it is possible?
@user-xd5gd4pc9h
@user-xd5gd4pc9h 5 ай бұрын
I like the video and I want know your idea about nix & nixos!
@richardgeddes630
@richardgeddes630 5 ай бұрын
The concept of LSP is clear. It's a JSON-RPC communication protocol. What's a little confusing to me is who's responsibility is it to download the server? I see a long list of LSP's, which I assume are just protocols (not servers) to communicate with a server. Does the plugin download the server (that would be nice) or do I have to install it separately out in the shell?
@iwota
@iwota 5 ай бұрын
how do you make these
@zacharymiller7573
@zacharymiller7573 5 ай бұрын
W Oregon shirt
tree-sitter explained
15:00
TJ DeVries
Рет қаралды 78 М.
The Only Video You Need to Get Started with Neovim
34:00
TJ DeVries
Рет қаралды 306 М.
Опасность фирменной зарядки Apple
00:57
SuperCrastan
Рет қаралды 11 МЛН
DAD LEFT HIS OLD SOCKS ON THE COUCH…😱😂
00:24
JULI_PROETO
Рет қаралды 16 МЛН
ВОДА В СОЛО
00:20
⚡️КАН АНДРЕЙ⚡️
Рет қаралды 31 МЛН
لقد سرقت حلوى القطن بشكل خفي لأصنع مصاصة🤫😎
00:33
Cool Tool SHORTS Arabic
Рет қаралды 15 МЛН
Tmux will SKYROCKET your productivity - here’s how
10:02
typecraft
Рет қаралды 83 М.
Effective Neovim: Instant IDE
16:16
TJ DeVries
Рет қаралды 791 М.
nvim-dbee: Interactive Database Client Within Neovim
7:27
CheesedUp
Рет қаралды 2,4 М.
7 Amazing CLI Tools You Need To Try
18:10
Josean Martinez
Рет қаралды 282 М.
Automatically Execute *Anything* in Nvim
11:03
TJ DeVries
Рет қаралды 69 М.
Why Neovim nerds are so obsessed with the terminal
6:44
Joshua Morony
Рет қаралды 82 М.
LSP: Building a Language Server From Scratch
1:09:08
Jeffrey Chupp
Рет қаралды 41 М.
Rust Setup For Neovim (ft BashBunni) #bash2basics
20:02
TJ DeVries
Рет қаралды 82 М.
zoxide has forever improved the way I navigate in the terminal.
9:53
Dreams of Autonomy
Рет қаралды 441 М.
Vim Dadbod - My Favorite SQL Plugin
6:01
TJ DeVries
Рет қаралды 28 М.
Хакер взломал компьютер с USB кабеля. Кевин Митник.
0:58
Последний Оплот Безопасности
Рет қаралды 1,9 МЛН
iPhone 15 Pro Max vs IPhone Xs Max  troll face speed test
0:33
#samsung #retrophone #nostalgia #x100
0:14
mobijunk
Рет қаралды 13 МЛН