summaryrefslogtreecommitdiffstats
path: root/2023/info/lspocaml-after.md
diff options
context:
space:
mode:
Diffstat (limited to '2023/info/lspocaml-after.md')
-rw-r--r--2023/info/lspocaml-after.md36
1 files changed, 18 insertions, 18 deletions
diff --git a/2023/info/lspocaml-after.md b/2023/info/lspocaml-after.md
index 6dc5b303..1623326e 100644
--- a/2023/info/lspocaml-after.md
+++ b/2023/info/lspocaml-after.md
@@ -5,7 +5,7 @@
# Transcript
-Introduction
+[[!template text="""Introduction""" video="00:00:00.000" id="subtitle"mainVideo-lspocaml]]
[[!template new="1" text="""Hi, I'm Austin Theriault,""" start="00:00:00.000" video="mainVideo-lspocaml" id="subtitle"]]
[[!template text="""and this is writing a language server in OCaml""" start="00:00:01.840" video="mainVideo-lspocaml" id="subtitle"]]
@@ -16,7 +16,7 @@ Introduction
[[!template text="""and I love working on programming languages, editors,""" start="00:00:13.240" video="mainVideo-lspocaml" id="subtitle"]]
[[!template text="""and cryptography.""" start="00:00:15.360" video="mainVideo-lspocaml" id="subtitle"]]
-What is Semgrep?
+[[!template text="""What is Semgrep?""" video="00:00:16.540" id="subtitle"mainVideo-lspocaml]]
[[!template new="1" text="""What is Semgrep?""" start="00:00:16.540" video="mainVideo-lspocaml" id="subtitle"]]
[[!template text="""We're a small cybersecurity startup""" start="00:00:17.800" video="mainVideo-lspocaml" id="subtitle"]]
@@ -30,7 +30,7 @@ What is Semgrep?
[[!template text="""and we have lots of customers all using different IDEs.""" start="00:00:36.960" video="mainVideo-lspocaml" id="subtitle"]]
[[!template text="""Why does that matter?""" start="00:00:39.320" video="mainVideo-lspocaml" id="subtitle"]]
-How do we show security bugs early?
+[[!template text="""How do we show security bugs early?""" video="00:00:40.720" id="subtitle"mainVideo-lspocaml]]
[[!template new="1" text="""Well, our goal is to show security bugs""" start="00:00:40.720" video="mainVideo-lspocaml" id="subtitle"]]
[[!template text="""as early as possible in the development cycle.""" start="00:00:42.780" video="mainVideo-lspocaml" id="subtitle"]]
@@ -55,7 +55,7 @@ How do we show security bugs early?
[[!template text="""and then plug it into all of them.""" start="00:01:33.880" video="mainVideo-lspocaml" id="subtitle"]]
[[!template text="""So how can we do that, though?""" start="00:01:35.800" video="mainVideo-lspocaml" id="subtitle"]]
-What is the Language Server Protocol?
+[[!template text="""What is the Language Server Protocol?""" video="00:01:37.880" id="subtitle"mainVideo-lspocaml]]
[[!template new="1" text="""Well, in the process of working on this stuff,""" start="00:01:37.880" video="mainVideo-lspocaml" id="subtitle"]]
[[!template text="""I found out about""" start="00:01:40.680" video="mainVideo-lspocaml" id="subtitle"]]
@@ -76,7 +76,7 @@ What is the Language Server Protocol?
[[!template text="""and you can hook it up to a bunch of language clients""" start="00:02:25.440" video="mainVideo-lspocaml" id="subtitle"]]
[[!template text="""and it'll just work.""" start="00:02:27.440" video="mainVideo-lspocaml" id="subtitle"]]
-Case study: Rust Analyzer
+[[!template text="""Case study: Rust Analyzer""" video="00:02:29.040" id="subtitle"mainVideo-lspocaml]]
[[!template new="1" text="""So let's do a quick case study on language servers in LSP,""" start="00:02:29.040" video="mainVideo-lspocaml" id="subtitle"]]
[[!template text="""just so you get an idea of why this is super cool.""" start="00:02:34.040" video="mainVideo-lspocaml" id="subtitle"]]
@@ -105,7 +105,7 @@ Case study: Rust Analyzer
[[!template text="""So you can develop Rust in a way that's relatively efficient""" start="00:03:35.240" video="mainVideo-lspocaml" id="subtitle"]]
[[!template text="""without having to give up your favorite editor.""" start="00:03:39.080" video="mainVideo-lspocaml" id="subtitle"]]
-Rust Analyzer in action
+[[!template text="""Rust Analyzer in action""" video="00:03:42.760" id="subtitle"mainVideo-lspocaml]]
[[!template new="1" text="""So here's a quick little demo""" start="00:03:42.760" video="mainVideo-lspocaml" id="subtitle"]]
[[!template text="""of all the cool things it can do.""" start="00:03:44.400" video="mainVideo-lspocaml" id="subtitle"]]
@@ -122,7 +122,7 @@ Rust Analyzer in action
[[!template text="""I didn't have to go and type any commands or anything.""" start="00:04:05.440" video="mainVideo-lspocaml" id="subtitle"]]
[[!template text="""It just worked.""" start="00:04:07.840" video="mainVideo-lspocaml" id="subtitle"]]
-Why is this useful?
+[[!template text="""Why is this useful?""" video="00:04:09.960" id="subtitle"mainVideo-lspocaml]]
[[!template new="1" text="""So why is this just useful in general for a user?""" start="00:04:09.960" video="mainVideo-lspocaml" id="subtitle"]]
[[!template text="""Well, you get the same experience across editors.""" start="00:04:13.400" video="mainVideo-lspocaml" id="subtitle"]]
@@ -160,7 +160,7 @@ Why is this useful?
[[!template text="""It's great to have just one set of tests""" start="00:05:31.960" video="mainVideo-lspocaml" id="subtitle"]]
[[!template text="""that you have to pass.""" start="00:05:33.840" video="mainVideo-lspocaml" id="subtitle"]]
-So what about Emacs?
+[[!template text="""So what about Emacs?""" video="00:05:36.220" id="subtitle"mainVideo-lspocaml]]
[[!template new="1" text="""So why does a language server protocol matter with Emacs?""" start="00:05:36.220" video="mainVideo-lspocaml" id="subtitle"]]
[[!template text="""Well, like I was saying before,""" start="00:05:40.160" video="mainVideo-lspocaml" id="subtitle"]]
@@ -188,7 +188,7 @@ So what about Emacs?
[[!template text="""but I would imagine a lot of this stuff is very similar.""" start="00:06:33.300" video="mainVideo-lspocaml" id="subtitle"]]
[[!template text="""Here's a list of some supported languages.""" start="00:06:37.780" video="mainVideo-lspocaml" id="subtitle"]]
-Technical part - Brief communication overview
+[[!template text="""Technical part - Brief communication overview""" video="00:06:40.700" id="subtitle"mainVideo-lspocaml]]
[[!template new="1" text="""Now let's get into the technical part.""" start="00:06:40.700" video="mainVideo-lspocaml" id="subtitle"]]
[[!template text="""How does LSP actually work?""" start="00:06:42.640" video="mainVideo-lspocaml" id="subtitle"]]
@@ -226,12 +226,12 @@ Technical part - Brief communication overview
[[!template text="""and the communication is relatively simple,""" start="00:07:55.400" video="mainVideo-lspocaml" id="subtitle"]]
[[!template text="""which is great.""" start="00:07:57.720" video="mainVideo-lspocaml" id="subtitle"]]
-Example request
+[[!template text="""Example request""" video="00:07:58.760" id="subtitle"mainVideo-lspocaml]]
[[!template new="1" text="""This is what it looks like, what a request looks like.""" start="00:07:58.760" video="mainVideo-lspocaml" id="subtitle"]]
[[!template text="""Notifications look somewhat similar.""" start="00:08:01.240" video="mainVideo-lspocaml" id="subtitle"]]
-LSP capabilities
+[[!template text="""LSP capabilities""" video="00:08:03.380" id="subtitle"mainVideo-lspocaml]]
[[!template new="1" text="""So now we know how LSP communication works,""" start="00:08:03.380" video="mainVideo-lspocaml" id="subtitle"]]
[[!template text="""but how does the actual protocol work?""" start="00:08:05.880" video="mainVideo-lspocaml" id="subtitle"]]
@@ -267,7 +267,7 @@ LSP capabilities
[[!template text="""And that's a little bit more work,""" start="00:09:18.700" video="mainVideo-lspocaml" id="subtitle"]]
[[!template text="""but it's better than where we were without LSP.""" start="00:09:20.400" video="mainVideo-lspocaml" id="subtitle"]]
-Tips on writing a LS
+[[!template text="""Tips on writing a LS""" video="00:09:23.380" id="subtitle"mainVideo-lspocaml]]
[[!template new="1" text="""So some quick tips on writing a language server.""" start="00:09:23.380" video="mainVideo-lspocaml" id="subtitle"]]
[[!template text="""I'm not going to get too into this""" start="00:09:25.440" video="mainVideo-lspocaml" id="subtitle"]]
@@ -312,7 +312,7 @@ Tips on writing a LS
[[!template text="""this stuff is really easy.""" start="00:11:00.320" video="mainVideo-lspocaml" id="subtitle"]]
[[!template text="""You're basically just wiring stuff up.""" start="00:11:01.680" video="mainVideo-lspocaml" id="subtitle"]]
-Supporting a LS through LSP mode in Emacs
+[[!template text="""Supporting a LS through LSP mode in Emacs""" video="00:11:03.480" id="subtitle"mainVideo-lspocaml]]
[[!template new="1" text="""But, yeah. So, now we know all about""" start="00:11:03.480" video="mainVideo-lspocaml" id="subtitle"]]
[[!template text="""LSP and language servers.""" start="00:11:08.360" video="mainVideo-lspocaml" id="subtitle"]]
@@ -337,7 +337,7 @@ Supporting a LS through LSP mode in Emacs
[[!template text="""to the list of clients, and then do some documentation,""" start="00:12:01.320" video="mainVideo-lspocaml" id="subtitle"]]
[[!template text="""because documentation's great.""" start="00:12:03.720" video="mainVideo-lspocaml" id="subtitle"]]
-Create a client
+[[!template text="""Create a client""" video="00:12:06.000" id="subtitle"mainVideo-lspocaml]]
[[!template new="1" text="""First, creating a client.""" start="00:12:06.000" video="mainVideo-lspocaml" id="subtitle"]]
[[!template text="""In the `clients/` folder in `lsp-mode/`,""" start="00:12:07.640" video="mainVideo-lspocaml" id="subtitle"]]
@@ -363,7 +363,7 @@ Create a client
[[!template text="""but just know that these aren't your only options,""" start="00:13:01.200" video="mainVideo-lspocaml" id="subtitle"]]
[[!template text="""and then finally provide your client.""" start="00:13:03.800" video="mainVideo-lspocaml" id="subtitle"]]
-Add to list of client packages
+[[!template text="""Add to list of client packages""" video="00:13:07.300" id="subtitle"mainVideo-lspocaml]]
[[!template new="1" text="""Next, you just have to add your client""" start="00:13:07.300" video="mainVideo-lspocaml" id="subtitle"]]
[[!template text="""to the list of clients that `lsp-mode` supports,""" start="00:13:09.800" video="mainVideo-lspocaml" id="subtitle"]]
@@ -392,12 +392,12 @@ Add to list of client packages
[[!template text="""and it's similar to LSP but for debuggers,""" start="00:14:07.320" video="mainVideo-lspocaml" id="subtitle"]]
[[!template text="""which is very cool,""" start="00:14:09.680" video="mainVideo-lspocaml" id="subtitle"]]
-Add documentation!
+[[!template text="""Add documentation!""" video="00:14:11.680" id="subtitle"mainVideo-lspocaml]]
[[!template new="1" text="""and then finally link to your documentation.""" start="00:14:11.680" video="mainVideo-lspocaml" id="subtitle"]]
[[!template text="""Please, please document your stuff.""" start="00:14:14.600" video="mainVideo-lspocaml" id="subtitle"]]
-Adding commands and custom capabilities
+[[!template text="""Adding commands and custom capabilities""" video="00:14:17.880" id="subtitle"mainVideo-lspocaml]]
[[!template new="1" text="""If you want to add, like, a custom Emacs function""" start="00:14:17.880" video="mainVideo-lspocaml" id="subtitle"]]
[[!template text="""or custom capabilities, it's super easy.""" start="00:14:20.480" video="mainVideo-lspocaml" id="subtitle"]]
@@ -414,7 +414,7 @@ Adding commands and custom capabilities
[[!template text="""and do something with the result,""" start="00:14:56.080" video="mainVideo-lspocaml" id="subtitle"]]
[[!template text="""and so that's adding custom capabilities.""" start="00:14:58.460" video="mainVideo-lspocaml" id="subtitle"]]
-Thanks for listening
+[[!template text="""Thanks for listening""" video="00:15:01.360" id="subtitle"mainVideo-lspocaml]]
[[!template new="1" text="""That's pretty much it. Thank you for listening.""" start="00:15:01.360" video="mainVideo-lspocaml" id="subtitle"]]
[[!template text="""Some resources here.""" start="00:15:04.320" video="mainVideo-lspocaml" id="subtitle"]]