From df8e6092e2c8b49b6dcf3ae967d63562e3d05710 Mon Sep 17 00:00:00 2001 From: Sacha Chua Date: Mon, 1 Jan 2024 19:16:11 -0500 Subject: add unedited captions --- ...s-fun-and-profit--austin-theriault--answers.vtt | 1019 ++++++++++++++++++++ 1 file changed, 1019 insertions(+) create mode 100644 2023/captions/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault--answers.vtt (limited to '2023/captions/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault--answers.vtt') diff --git a/2023/captions/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault--answers.vtt b/2023/captions/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault--answers.vtt new file mode 100644 index 00000000..277f3dd1 --- /dev/null +++ b/2023/captions/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault--answers.vtt @@ -0,0 +1,1019 @@ +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? -- cgit v1.2.3