WEBVTT
00:00:03.540 --> 00:00:03.939
[Speaker 0]: I would invite all on the,
00:00:04.600 --> 00:00:04.960
who are currently watching,
00:00:06.819 --> 00:00:07.200
who have questions, put them into the pad
00:00:08.940 --> 00:00:09.440
that I can ask them. I'm kind of monitoring
00:00:16.320 --> 00:00:16.720
the IRC concurrently. So the first question
00:00:18.640 --> 00:00:18.800
that we have on the pad is concerning why you
00:00:19.600 --> 00:00:20.100
have switched from OCaml.
00:00:22.420 --> 00:00:22.800
Maybe the person has missed it in the talk,
00:00:23.480 --> 00:00:23.980
if you've mentioned it.
00:00:25.080 --> 00:00:25.320
Why have you switched from OCaml to,
00:00:25.920 --> 00:00:26.180
in this case, I guess,
00:00:26.180 --> 00:00:26.680
Rust?
00:00:30.960 --> 00:00:31.080
[Speaker 1]: Yeah, I mentioned like with writing a
00:00:34.280 --> 00:00:34.440
language server that I wrote mine for my
00:00:36.900 --> 00:00:37.120
company in OCaml But I wouldn't recommend it
00:00:38.960 --> 00:00:39.220
just in general unless like you're doing
00:00:41.720 --> 00:00:42.040
something specific with OCaml And the reason
00:00:44.180 --> 00:00:44.340
for that and I recommended Rust or like
00:00:45.780 --> 00:00:46.100
TypeScript is like OCaml is great.
00:00:49.080 --> 00:00:49.360
It's very performant but it's cross
00:00:50.739 --> 00:00:51.100
compilation story is not great.
00:00:54.100 --> 00:00:54.340
It's like really hard to cross compile like
00:00:55.840 --> 00:00:56.320
from 1 platform to another.
00:00:58.120 --> 00:00:58.540
And then like the ecosystem and its standard
00:01:00.380 --> 00:01:00.880
library is also not great.
00:01:03.460 --> 00:01:03.640
And like Rust, its cross compilation is
00:01:05.820 --> 00:01:06.320
great. Its ecosystem is great.
00:01:08.720 --> 00:01:09.060
OCaml is great if you need to use it,
00:01:10.880 --> 00:01:11.380
but it's just it's not ideal.
00:01:14.220 --> 00:01:14.340
And there's just also no good examples of a
00:01:15.240 --> 00:01:15.740
language server in OCaml.
00:01:19.119 --> 00:01:19.619
There's the official like OCaml language
00:01:22.920 --> 00:01:23.420
server, But they use a ton of super advanced
00:01:27.380 --> 00:01:27.540
language features, like module functors and a
00:01:28.440 --> 00:01:28.700
bunch of other random stuff.
00:01:29.479 --> 00:01:29.979
So it's not really readable.
00:01:31.860 --> 00:01:32.300
But Rust, there's Rust analyzer,
00:01:33.340 --> 00:01:33.780
which is readable. In TypeScript,
00:01:34.860 --> 00:01:35.360
there's like a million different ones.
00:01:39.340 --> 00:01:39.660
So it's less of a, not OCaml is like,
00:01:40.920 --> 00:01:41.280
it's not that OCaml isn't great.
00:01:43.320 --> 00:01:43.440
It's more of a, these other languages would
00:01:44.160 --> 00:01:44.660
probably just be easier.
00:01:45.280 --> 00:01:45.780
So.
00:01:48.619 --> 00:01:48.920
[Speaker 0]: I guess since the integration to,
00:01:50.820 --> 00:01:51.000
for example, like NeoVim or some other
00:01:53.320 --> 00:01:53.460
editors are just revenue fine because of the
00:01:56.920 --> 00:01:57.420
[Speaker 1]: Sorry, can you say that again?
00:01:58.580 --> 00:01:59.080
[Speaker 0]: LSP, I guess. The LSP,
00:02:01.979 --> 00:02:02.100
so it's a standard LSP specification that
00:02:03.080 --> 00:02:03.400
you're using. So you can also,
00:02:04.920 --> 00:02:05.340
for instance, use it and other editors,
00:02:06.660 --> 00:02:07.160
like for instance, new them or so.
00:02:08.680 --> 00:02:08.940
[Speaker 1]: Yeah. Yeah. You can use it.
00:02:11.680 --> 00:02:11.920
It's most, most editors nowadays support it.
00:02:13.280 --> 00:02:13.780
Like obviously Emacs, NeoVim,
00:02:16.420 --> 00:02:16.840
Sublime, VS code, Intel,
00:02:17.700 --> 00:02:18.200
all the IntelliJ ones.
00:02:21.560 --> 00:02:21.960
So yeah, that's, that's the fun part.
00:02:23.440 --> 00:02:23.760
You don't have to write 10 different
00:02:26.500 --> 00:02:27.000
languages to get a bunch of editor support.
00:02:30.200 --> 00:02:30.300
[Speaker 0]: Also experience writing it.
00:02:33.820 --> 00:02:34.040
So I didn't have really time to hear into
00:02:36.300 --> 00:02:36.560
your talk. So I'm sorry if I ask you
00:02:38.100 --> 00:02:38.600
questions that you have already said.
00:02:41.400 --> 00:02:41.900
How was the experience of writing an LSP?
00:02:44.340 --> 00:02:44.480
So have you any knowledge beforehand or do
00:02:45.600 --> 00:02:46.100
you just read it all on yourself?
00:02:49.200 --> 00:02:49.700
[Speaker 1]: Yeah, there's not a ton of documentation,
00:02:53.440 --> 00:02:53.940
which is what motivated me to do this talk.
00:02:56.380 --> 00:02:56.580
Basically, I just looked at the
00:02:58.820 --> 00:02:58.980
specification, and I knew Rust Analyzer was
00:03:00.240 --> 00:03:00.740
cool. And so I looked at Rust Analyzer,
00:03:01.600 --> 00:03:02.100
and I looked at PyRite.
00:03:04.200 --> 00:03:04.700
And I just went from there.
00:03:07.920 --> 00:03:08.420
I found out about all this because I already
00:03:10.240 --> 00:03:10.440
using Emacs, I already knew about it.
00:03:12.160 --> 00:03:12.660
I was like, this is going to be easier than
00:03:15.020 --> 00:03:15.480
something else. So yeah,
00:03:17.720 --> 00:03:18.220
there's the experience is fine.
00:03:21.060 --> 00:03:21.300
It's just a lot of wiring stuff up.
00:03:24.100 --> 00:03:24.320
It's not a lot of like hard thinking until
00:03:26.200 --> 00:03:26.700
you get to like performance heavy stuff.
00:03:27.740 --> 00:03:28.080
Like, so for some graph,
00:03:30.760 --> 00:03:31.260
like we're doing a ton of like code parsing
00:03:32.980 --> 00:03:33.480
and like analyzing. And so that's,
00:03:35.760 --> 00:03:36.260
it takes up like a ton of processing power.
00:03:37.280 --> 00:03:37.600
So like for stuff like that,
00:03:39.620 --> 00:03:39.840
like now you have to think about caching and
00:03:43.980 --> 00:03:44.380
like ordering things. So that part's hard,
00:03:47.180 --> 00:03:47.420
but that's more of a, like very much
00:03:48.640 --> 00:03:49.140
application specific thing.
00:03:58.320 --> 00:03:58.620
[Speaker 0]: Right. Anything in the IRC chat.
00:04:01.840 --> 00:04:02.340
I think not. It's nothing I can see.
00:04:13.380 --> 00:04:13.520
No questions, that's kind of odd to be
00:04:17.440 --> 00:04:17.860
honest. I cannot really ask questions
00:04:18.680 --> 00:04:19.180
concerning LSP specific.
00:04:22.400 --> 00:04:22.900
[Speaker 1]: Yeah, no worries.
00:04:31.460 --> 00:04:31.960
[Speaker 0]: Good question, what could be asked?
00:04:35.740 --> 00:04:36.140
Let's call, let's ask something very
00:04:38.260 --> 00:04:38.680
unspecific concerning the Emacs usage.
00:04:39.340 --> 00:04:39.760
And when have you started?
00:04:41.580 --> 00:04:41.780
How did you came through it and stuff like
00:04:41.780 --> 00:04:42.280
this?
00:04:46.560 --> 00:04:46.960
[Speaker 1]: Yeah. I like and when I was in high school,
00:04:48.480 --> 00:04:48.980
me and my friends just were like,
00:04:51.820 --> 00:04:52.320
got obsessed with Linux for whatever reason.
00:04:53.940 --> 00:04:54.140
And then like we traveled down like the,
00:04:55.560 --> 00:04:56.060
like the free software,
00:04:57.700 --> 00:04:57.940
like we just thought that was like very
00:05:00.040 --> 00:05:00.160
entertaining and like interesting to read
00:05:01.200 --> 00:05:01.700
about all the free software stuff.
00:05:03.120 --> 00:05:03.480
They were like, yeah, that's cool.
00:05:04.540 --> 00:05:05.040
And so we all started using Linux.
00:05:06.960 --> 00:05:07.200
And I'm like, well, if I'm using free
00:05:08.300 --> 00:05:08.740
software, I'm going to use Emacs.
00:05:12.280 --> 00:05:12.440
And so I started using Emacs just to try it
00:05:13.940 --> 00:05:14.440
out. And then I kind of got,
00:05:16.880 --> 00:05:17.380
I feel like, Stockholm syndrome into it.
00:05:18.720 --> 00:05:19.220
And now I've realized like,
00:05:21.860 --> 00:05:22.360
I don't know, now that I've done the like
00:05:23.880 --> 00:05:24.340
actual work to get into Emacs,
00:05:26.280 --> 00:05:26.480
it's just, there's so much more I can do with
00:05:30.300 --> 00:05:30.800
it. But yeah, it was somewhat unintentional.
00:05:36.100 --> 00:05:36.420
[Speaker 0]: I probably have the same course I've started
00:05:37.780 --> 00:05:38.280
like 2 years ago using Emacs.
00:05:42.720 --> 00:05:42.940
And also just, oh, there's at first some cool
00:05:45.020 --> 00:05:45.340
people on YouTube, so systems crafters and
00:05:46.300 --> 00:05:46.800
people like this. And also,
00:05:49.440 --> 00:05:49.740
ah, VS Code, I used a lot of VS Code
00:05:53.560 --> 00:05:53.860
beforehand and then VS Codium because open
00:05:55.640 --> 00:05:55.860
source and then oh are there any other
00:05:58.020 --> 00:05:58.180
alternatives and I came to like Neovim and
00:06:01.160 --> 00:06:01.440
Emacs and often switching around but I stick
00:06:03.220 --> 00:06:03.720
to Emacs at some point to be honest.
00:06:07.180 --> 00:06:07.540
[Speaker 1]: Yeah, I think Emacs also just looks really
00:06:08.500 --> 00:06:09.000
cool. I will say that.
00:06:14.240 --> 00:06:14.640
And also just like I like Vim.
00:06:16.960 --> 00:06:17.240
Vim is cool but like being able to like write
00:06:19.240 --> 00:06:19.540
lists and like modify your editor on the fly
00:06:20.920 --> 00:06:21.420
is just like very appealing to me.
00:06:23.860 --> 00:06:24.140
I don't know, Emacs was tough at first
00:06:25.520 --> 00:06:25.680
because like all the like default key
00:06:28.380 --> 00:06:28.440
bindings are just kind of like and then and
00:06:29.860 --> 00:06:30.040
then I read somewhere someone was like yeah
00:06:33.220 --> 00:06:33.460
well Richard Stallman uses evil mode so it's
00:06:36.220 --> 00:06:36.460
okay. I was like alright I can that's like
00:06:38.000 --> 00:06:38.200
blessing enough for me Like I'm just gonna
00:06:39.520 --> 00:06:39.720
switch to evil mode. And I was like,
00:06:42.160 --> 00:06:42.360
this is way, way better as far as key
00:06:42.920 --> 00:06:43.420
bindings go.
00:06:46.720 --> 00:06:47.020
[Speaker 0]: Kind of relates. So I switched for,
00:06:49.900 --> 00:06:50.040
I think, half a year to the default key
00:06:51.300 --> 00:06:51.800
bindings from Vim beforehand.
00:06:54.960 --> 00:06:55.240
I switched back to Evil and now I'm losing
00:06:56.100 --> 00:06:56.600
some kind of hybrid styles.
00:07:01.000 --> 00:07:01.120
It's kind of weird. But we have a question on
00:07:03.260 --> 00:07:03.700
the pad. So what are the corner cases,
00:07:05.380 --> 00:07:05.880
limitations, and other issues you encountered
00:07:08.860 --> 00:07:09.020
in implementing an LSP server with client in
00:07:09.940 --> 00:07:10.440
Emacs that were surprising?
00:07:13.680 --> 00:07:13.860
[Speaker 1]: Yeah, I would say the corner cases and
00:07:15.280 --> 00:07:15.780
limitations are definitely like,
00:07:16.960 --> 00:07:17.220
once again, they're going to be very
00:07:18.960 --> 00:07:19.160
application specific, but it's usually just
00:07:22.420 --> 00:07:22.680
the performance part. So like I was saying
00:07:24.680 --> 00:07:24.900
before, right, in general if you're doing
00:07:26.120 --> 00:07:26.620
language tooling, you're gonna be doing
00:07:29.760 --> 00:07:30.080
either parsing or interpreting or something
00:07:31.560 --> 00:07:31.880
like that, which is very just like
00:07:34.740 --> 00:07:35.080
computationally heavy and so if you're trying
00:07:36.900 --> 00:07:37.060
to like do that stuff while someone is
00:07:38.520 --> 00:07:39.000
editing a file right like every keystrokes
00:07:42.660 --> 00:07:42.840
every like 1 to 2 seconds if they have a fast
00:07:44.240 --> 00:07:44.540
computer that's great but a lot of people
00:07:46.400 --> 00:07:46.560
don't have like that fast of a computer that
00:07:49.480 --> 00:07:49.740
they can go and like do compilation every
00:07:51.680 --> 00:07:52.180
single keystroke. So like,
00:07:54.080 --> 00:07:54.580
I would say, I would say the like limitation
00:07:56.920 --> 00:07:57.080
is just how fast your computer is and how
00:07:59.140 --> 00:07:59.340
good you are at like implementing caching for
00:08:01.020 --> 00:08:01.520
like whatever you're doing.
00:08:04.080 --> 00:08:04.280
That's also just the main issues I've run
00:08:08.080 --> 00:08:08.580
into is just it's a constant uphill battle.
00:08:12.120 --> 00:08:12.560
People will somehow find larger and larger
00:08:14.580 --> 00:08:15.080
files. You'll end up with files that are like
00:08:17.320 --> 00:08:17.680
thousands, like tens of thousands of lines
00:08:18.700 --> 00:08:18.940
long and you think yeah,
00:08:21.340 --> 00:08:21.840
surely no 1 would expect like instantaneous
00:08:25.440 --> 00:08:25.640
response for like like editing a file that
00:08:26.820 --> 00:08:27.040
has like tens of thousands of lines,
00:08:30.000 --> 00:08:30.180
but then they do. As far as corner cases go,
00:08:31.960 --> 00:08:32.459
I would say the corner case is like,
00:08:37.760 --> 00:08:37.919
just in general is actually distributing the
00:08:41.039 --> 00:08:41.200
language server. Cause like writing the
00:08:42.340 --> 00:08:42.840
language server is fine.
00:08:44.540 --> 00:08:44.900
Like wiring everything up is fine.
00:08:47.180 --> 00:08:47.300
But then like, once you actually have to go
00:08:47.960 --> 00:08:48.120
and distribute it, well,
00:08:49.200 --> 00:08:49.700
now you're distributing in a binary.
00:08:51.660 --> 00:08:52.160
Like I was saying before with OCaml,
00:08:53.940 --> 00:08:54.440
doesn't have great cross compilation.
00:08:58.840 --> 00:08:59.340
So for some graph for our language server,
00:09:01.560 --> 00:09:02.060
we target Linux and Mac OS,
00:09:03.840 --> 00:09:04.340
and we have a ton of people who use Windows,
00:09:06.960 --> 00:09:07.440
but compiling OCaml for Windows is basically
00:09:10.080 --> 00:09:10.440
impossible. So our corner case there,
00:09:11.980 --> 00:09:12.480
the way we solved it was now we're
00:09:14.160 --> 00:09:14.660
transpiling OCaml to JavaScript,
00:09:17.080 --> 00:09:17.560
which is a huge can of worms.
00:09:18.840 --> 00:09:19.040
Like it's a lot of fun.
00:09:19.400 --> 00:09:19.900
It's very interesting,
00:09:22.860 --> 00:09:23.360
but like it's not ideal.
00:09:24.340 --> 00:09:24.720
And so that's what I was saying before.
00:09:26.360 --> 00:09:26.580
I recommend like Rust or TypeScript because
00:09:29.580 --> 00:09:29.820
those are way more portable and a lot easier
00:09:31.280 --> 00:09:31.780
to install. And you don't have to worry about
00:09:33.600 --> 00:09:34.100
any of that weird packaging stuff.
00:09:37.600 --> 00:09:38.080
So yeah, I would say that's like the main
00:09:40.260 --> 00:09:40.760
corner case and the main limitation is just
00:09:41.720 --> 00:09:42.220
speed and caching.
00:09:47.160 --> 00:09:47.640
[Speaker 0]: You mentioned this obscure large file so
00:09:49.000 --> 00:09:49.160
someone doesn't want to refactor or
00:09:51.760 --> 00:09:52.200
something. How did you start?
00:09:54.480 --> 00:09:54.620
So did you have any way to still be
00:09:56.320 --> 00:09:56.580
relatively performant when they have big
00:09:58.020 --> 00:09:58.520
files or is it just not supported?
00:09:58.920 --> 00:09:59.420
I don't care.
00:10:03.140 --> 00:10:03.640
[Speaker 1]: Yeah, no, we, so we support larger files now
00:10:05.460 --> 00:10:05.960
And the way we ended up doing that,
00:10:11.480 --> 00:10:11.980
so SemGrep is like you write this generic
00:10:14.540 --> 00:10:14.900
pattern. You kind of write the language,
00:10:17.160 --> 00:10:17.320
but then there's these other symbols and
00:10:18.760 --> 00:10:19.160
stuff that are included in that,
00:10:19.760 --> 00:10:20.260
this like meta language.
00:10:22.420 --> 00:10:22.580
And so what happens is,
00:10:23.600 --> 00:10:24.100
is most languages get,
00:10:27.720 --> 00:10:27.900
they get parsed and then into a syntax tree,
00:10:29.180 --> 00:10:29.600
right? Like whatever the language is syntax
00:10:30.620 --> 00:10:31.120
tree is, and then they get,
00:10:33.800 --> 00:10:34.000
the syntax tree gets converted into this,
00:10:35.860 --> 00:10:36.360
like, we call it like an abstract syntax
00:10:38.080 --> 00:10:38.300
tree, which is like abstract from like any,
00:10:39.860 --> 00:10:40.360
like languages specific syntax tree.
00:10:41.940 --> 00:10:42.380
And so then we can cache that,
00:10:44.480 --> 00:10:44.760
which is really good because like if someone
00:10:47.700 --> 00:10:47.920
types something like we don't have to go
00:10:50.280 --> 00:10:50.440
through and do like the full parsing and like
00:10:51.560 --> 00:10:51.760
converting, we only have to do it
00:10:54.960 --> 00:10:55.200
incrementally. And so that's,
00:10:56.100 --> 00:10:56.420
that's how we dealt with that.
00:10:58.140 --> 00:10:58.640
Or the other option is that we just,
00:11:00.720 --> 00:11:01.180
we just cache whatever the previous results
00:11:03.460 --> 00:11:03.960
are, and then run it asynchronously,
00:11:04.960 --> 00:11:05.460
and they might get it delayed.
00:11:08.200 --> 00:11:08.700
But we've ended up doing more AST caching,
00:11:09.880 --> 00:11:10.380
which is fun and cool.
00:11:15.600 --> 00:11:15.900
[Speaker 0]: Sounds good. So we have here a question from
00:11:18.240 --> 00:11:18.540
Blaine. If Eaglet is a subset of LSP mode,
00:11:21.680 --> 00:11:21.840
can EGLOT conflict with LSP mode if both are
00:11:23.400 --> 00:11:23.900
present in your initial .el
00:11:24.280 --> 00:11:24.780
file?
00:11:27.740 --> 00:11:28.240
[Speaker 1]: Yeah, so I haven't played around with EGLOT
00:11:30.580 --> 00:11:30.960
mode a ton, so I'm not 100% sure.
00:11:33.920 --> 00:11:34.420
I think all of the key bindings and commands,
00:11:36.320 --> 00:11:36.820
if you just install it out of the box,
00:11:39.020 --> 00:11:39.520
I Think they're different.
00:11:41.440 --> 00:11:41.840
So I don't think there's like any like
00:11:44.760 --> 00:11:45.040
overlap as far as that stuff goes but you
00:11:47.520 --> 00:11:47.900
will have the overlap of like you entered,
00:11:49.780 --> 00:11:49.960
like you started a major mode for like some
00:11:51.500 --> 00:11:51.720
language, like they'll both probably start
00:11:53.040 --> 00:11:53.540
the language server and provide diagnostics
00:11:55.320 --> 00:11:55.580
and everything. And so then now you're
00:11:58.180 --> 00:11:58.320
getting like, you're just like doubling the
00:11:59.340 --> 00:11:59.680
work your computer is doing.
00:12:00.480 --> 00:12:00.980
So there's that conflict.
00:12:04.160 --> 00:12:04.360
But if you prefer EGLOT mode or LSP mode for
00:12:05.200 --> 00:12:05.700
like 1 language or framework,
00:12:09.060 --> 00:12:09.440
like 1 major mode and LSP mode for the other,
00:12:10.600 --> 00:12:11.100
I think you should be fine.
00:12:14.680 --> 00:12:14.860
[Speaker 0]: All right. Just to let you know,
00:12:20.460 --> 00:12:20.640
we have like 1 minute on the stream and then
00:12:22.540 --> 00:12:23.040
we'll switch back and to the pre-recorded
00:12:24.000 --> 00:12:24.500
stuff I guess.
00:12:27.440 --> 00:12:27.740
[Speaker 2]: Yeah yeah yeah let's hi sorry for the rude
00:12:29.440 --> 00:12:29.620
interruption but I'm just doing a little bit
00:12:31.700 --> 00:12:32.060
of time keeping so thank you so much Austin
00:12:34.340 --> 00:12:34.540
sadly I wasn't able to follow the Q&A because
00:12:36.280 --> 00:12:36.780
I was in the other track answering questions.
00:12:39.960 --> 00:12:40.360
If, Austin, you want to stay and answer some
00:12:41.580 --> 00:12:42.080
more questions, feel free to do so.
00:12:45.920 --> 00:12:46.220
People tend to start talking as soon as we go
00:12:48.400 --> 00:12:48.740
off air, And I wouldn't be surprised with LSP
00:12:49.540 --> 00:12:50.040
that people would do the same.
00:12:52.800 --> 00:12:53.040
We're gonna move on for this track.
00:12:54.840 --> 00:12:55.040
We're gonna move on in 20 seconds to the next
00:12:56.920 --> 00:12:57.420
1. So Floey, thank you for hosting.
00:12:58.680 --> 00:12:59.180
Austin, thank you for all your answers.
00:13:01.460 --> 00:13:01.960
And We'll see you in a bit.
00:13:04.740 --> 00:13:05.140
[Speaker 1]: Cool. Thanks. See you.
00:13:06.700 --> 00:13:07.200
[Speaker 0]: Thanks for the Q&A.
00:13:10.120 --> 00:13:10.440
[Speaker 2]: All right. All right. You are now off air.
00:13:11.400 --> 00:13:11.720
Thank you so much, Austin.
00:13:13.100 --> 00:13:13.200
I'm going to go back running in the
00:13:13.940 --> 00:13:14.100
background. And thank you,
00:13:14.700 --> 00:13:15.200
Flowey, for everything.
00:13:20.900 --> 00:13:21.400
[Speaker 0]: And thanks. Yeah. Have a nice,
00:13:23.160 --> 00:13:23.660
probably a nice day at your work.
00:13:24.140 --> 00:13:24.240
[Speaker 1]: Yeah, no worries. Yeah.
00:13:26.380 --> 00:13:26.680
Yeah, it's still it's like lunchtime for me.
00:13:28.100 --> 00:13:28.600
[Speaker 0]: So okay, here, it's like,
00:13:34.380 --> 00:13:34.700
09:00. 9pm. Thanks for the talk.
00:13:36.300 --> 00:13:36.600
Sorry for the inconvenience was not having
00:13:37.540 --> 00:13:38.040
any, any questions, really.
00:13:39.000 --> 00:13:39.380
[Speaker 1]: So yeah. Oh yeah, no worries.
00:13:41.100 --> 00:13:41.280
It's like, there's like no documentation on
00:13:42.940 --> 00:13:43.380
any of this stuff. So I didn't really expect
00:13:43.380 --> 00:13:43.880
any.
00:13:47.220 --> 00:13:47.560
[Speaker 0]: Yeah, I was kind of interested when I jumped
00:13:51.000 --> 00:13:51.140
into NeoVim. I write it 1 or 2 things on my
00:13:53.140 --> 00:13:53.320
own, but never really got really deep into
00:13:54.520 --> 00:13:54.960
it. And you're gonna see with like compiler
00:13:55.920 --> 00:13:56.140
design and stuff like this,
00:13:57.400 --> 00:13:57.900
but not really specific.
00:13:58.320 --> 00:13:58.820
So I was
00:14:00.860 --> 00:14:01.240
[Speaker 1]: kind of- Yeah, that's the hard part.
00:14:02.440 --> 00:14:02.880
It's like, it's, LSP is cool,
00:14:05.020 --> 00:14:05.200
but then you have to like deal with all the
00:14:06.760 --> 00:14:07.200
like compiler stuff and programming language
00:14:07.200 --> 00:14:07.700
theory.
00:14:10.600 --> 00:14:10.800
[Speaker 0]: So yeah. So it's, it shouldn't be too
00:14:13.280 --> 00:14:13.660
complicated. I had not really a question,
00:14:14.700 --> 00:14:15.140
so, but it worked out fine.
00:14:16.500 --> 00:14:17.000
Thanks for the Q and A.
00:14:18.560 --> 00:14:19.060
And if I have any questions to Oak Hamill,
00:14:20.640 --> 00:14:21.140
Elderspeak will get an email from you.
00:14:21.560 --> 00:14:22.060
[Speaker 1]: Oh yeah, definitely.
00:14:23.500 --> 00:14:24.000
[Speaker 0]: Dan?