1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
|
<!-- Automatically generated by emacsconf-publish-after-page -->
<div class="transcript transcript-mainVideo"><a name="completion-mainVideo-transcript"></a><h1>Transcript (unedited)</h1>
[[!template text="""Nice to have you here on this talk.""" start="00:00:00.000" video="mainVideo-completion" id="subtitle"]]
[[!template text="""This is my second talk this year.""" start="00:00:02.320" video="mainVideo-completion" id="subtitle"]]
[[!template text="""First one was on things that I've done to Org Mode.""" start="00:00:04.520" video="mainVideo-completion" id="subtitle"]]
[[!template text="""Just as a side note, this presentation""" start="00:00:09.920" video="mainVideo-completion" id="subtitle"]]
[[!template text="""that I'm going to share with you""" start="00:00:13.800" video="mainVideo-completion" id="subtitle"]]
[[!template text="""about my work on Corfu and Jasnipit.""" start="00:00:16.280" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I've prepared that on Org Mode""" start="00:00:19.880" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and exported that with a work I've been doing""" start="00:00:21.840" video="mainVideo-completion" id="subtitle"]]
[[!template text="""to the latest exporter.""" start="00:00:25.080" video="mainVideo-completion" id="subtitle"]]
[[!template text="""Anyhow, what is my talk going to be about?""" start="00:00:26.840" video="mainVideo-completion" id="subtitle"]]
[[!template text="""It's going to be about Corfu and Yasnippet,""" start="00:00:31.960" video="mainVideo-completion" id="subtitle"]]
[[!template text="""which I thought would be difficult to integrate,""" start="00:00:34.600" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and it was much easier than I thought.""" start="00:00:36.600" video="mainVideo-completion" id="subtitle"]]
[[!template text="""So just a short outline, my motivation,""" start="00:00:42.800" video="mainVideo-completion" id="subtitle"]]
[[!template text="""step-by-step of the things that I've been investigating,""" start="00:00:46.960" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and some takeaways. So my motivation, yeah, snippet is old.""" start="00:00:49.960" video="mainVideo-completion" id="subtitle"]]
[[!template text="""So I've tried another, I've tried Temple""" start="00:00:55.920" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and other template management packages,""" start="00:00:59.600" video="mainVideo-completion" id="subtitle"]]
[[!template text="""but it was really not my cup of tea. So mainly why?""" start="00:01:02.520" video="mainVideo-completion" id="subtitle"]]
[[!template text="""Mainly because I have a nice base of VR snippets""" start="00:01:08.160" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I have generated for my needs.""" start="00:01:10.920" video="mainVideo-completion" id="subtitle"]]
[[!template text="""So it's not that I've been importing snippets""" start="00:01:14.480" video="mainVideo-completion" id="subtitle"]]
[[!template text="""from packages which are out there.""" start="00:01:17.800" video="mainVideo-completion" id="subtitle"]]
[[!template text="""No, they are my snippets. I'm used to them.""" start="00:01:20.360" video="mainVideo-completion" id="subtitle"]]
[[!template text="""And of course, migration counts as a cost.""" start="00:01:23.600" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I've been using Company as my completion point function GUI for years,""" start="00:01:26.560" video="mainVideo-completion" id="subtitle"]]
[[!template text="""but with the time coming in features and so on it""" start="00:01:32.640" video="mainVideo-completion" id="subtitle"]]
[[!template text="""was it's was not as easy to set up as I wanted for my needs""" start="00:01:38.920" video="mainVideo-completion" id="subtitle"]]
[[!template text="""so I had been working I've been playing with Eaglet already some time for a language server protocol""" start="00:01:44.360" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I had read about how easy it was to integrate with Corfu""" start="00:01:53.120" video="mainVideo-completion" id="subtitle"]]
[[!template text="""which was really nice and I had given it a try,""" start="00:01:57.040" video="mainVideo-completion" id="subtitle"]]
[[!template text="""but I'm using both graphical user interface mode in Emacs""" start="00:02:02.840" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and text mode,""" start="00:02:06.440" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and for text mode you need a corporate terminal,""" start="00:02:07.840" video="mainVideo-completion" id="subtitle"]]
[[!template text="""which was yet another package that I don't download.""" start="00:02:10.320" video="mainVideo-completion" id="subtitle"]]
[[!template text="""Well, and I didn't really find a quick way""" start="00:02:16.400" video="mainVideo-completion" id="subtitle"]]
[[!template text="""to get rid of company to get just snippet.""" start="00:02:21.480" video="mainVideo-completion" id="subtitle"]]
[[!template text="""So at the end, when, at the beginning,""" start="00:02:24.480" video="mainVideo-completion" id="subtitle"]]
[[!template text="""when I was using Corfu and Eglot, I also needed to load a company""" start="00:02:26.680" video="mainVideo-completion" id="subtitle"]]
[[!template text="""to have a snippet support,""" start="00:02:33.960" video="mainVideo-completion" id="subtitle"]]
[[!template text="""which was really like sort of weird""" start="00:02:35.760" video="mainVideo-completion" id="subtitle"]]
[[!template text="""because I wanted to get rid of, of your snippet.""" start="00:02:37.640" video="mainVideo-completion" id="subtitle"]]
[[!template text="""Anyhow, while I try now, I'm following the mailing list,""" start="00:02:40.560" video="mainVideo-completion" id="subtitle"]]
[[!template text="""the development mailing list,""" start="00:02:47.200" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and I got interested when I heard something about""" start="00:02:48.560" video="mainVideo-completion" id="subtitle"]]
[[!template text="""TTI charge frames being announced for master.""" start="00:02:51.800" video="mainVideo-completion" id="subtitle"]]
[[!template text="""That would mean less packages to download""" start="00:02:57.120" video="mainVideo-completion" id="subtitle"]]
[[!template text="""because I thought I could get rid of Corfu,""" start="00:02:59.600" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and I wanted to try if I could get rid of Corfu terminal""" start="00:03:04.160" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and run Corfu without that.""" start="00:03:07.360" video="mainVideo-completion" id="subtitle"]]
[[!template text="""So, there were some hints there in that mailing list""" start="00:03:11.200" video="mainVideo-completion" id="subtitle"]]
[[!template text="""that made it interesting for me.""" start="00:03:18.800" video="mainVideo-completion" id="subtitle"]]
[[!template text="""And at the end, I'm also like a why not trying man,""" start="00:03:21.880" video="mainVideo-completion" id="subtitle"]]
[[!template text="""so I said let's give it a try.""" start="00:03:26.640" video="mainVideo-completion" id="subtitle"]]
[[!template text="""My requirements, I'm working always on a new Emacs,""" start="00:03:29.120" video="mainVideo-completion" id="subtitle"]]
[[!template text="""a decently new Emacs, normally from Master Vanilla.""" start="00:03:33.480" video="mainVideo-completion" id="subtitle"]]
[[!template text="""completely Vanilla and I don't have any extras like Doom or things like that.""" start="00:03:36.760" video="mainVideo-completion" id="subtitle"]]
[[!template text="""So I'm only Vanilla. And one of the things""" start="00:03:42.560" video="mainVideo-completion" id="subtitle"]]
[[!template text="""that I don't want is that on this Vanilla recent Emacs,""" start="00:03:45.520" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I don't want a Kung Fu Terminal. I need your snippet.""" start="00:03:50.280" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I'm basically an old man.""" start="00:03:55.720" video="mainVideo-completion" id="subtitle"]]
[[!template text="""Old dog does new tricks and snippets must,""" start="00:03:57.360" video="mainVideo-completion" id="subtitle"]]
[[!template text="""in my way of working, must be easy and quick to configure""" start="00:04:02.480" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and Tempo or others that I've seen are not.""" start="00:04:06.240" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I don't want any reminiscence of a company in my setup.""" start="00:04:10.480" video="mainVideo-completion" id="subtitle"]]
[[!template text="""And of course, don't forget that I've embraced""" start="00:04:13.920" video="mainVideo-completion" id="subtitle"]]
[[!template text="""the language protocol implementations and basically Eglot.""" start="00:04:18.680" video="mainVideo-completion" id="subtitle"]]
[[!template text="""My main focus now is Python and LaTeX,""" start="00:04:24.120" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and I have PyLSB and TechLab.""" start="00:04:28.160" video="mainVideo-completion" id="subtitle"]]
[[!template text="""And I don't want to have to stop using them.""" start="00:04:31.720" video="mainVideo-completion" id="subtitle"]]
[[!template text="""So basic setup for Corfu and Eglot.""" start="00:04:37.600" video="mainVideo-completion" id="subtitle"]]
[[!template text="""You can find it everywhere you look for it.""" start="00:04:40.480" video="mainVideo-completion" id="subtitle"]]
[[!template text="""It's really easy.""" start="00:04:43.440" video="mainVideo-completion" id="subtitle"]]
[[!template text="""And actually, I also do something somehow naughty,""" start="00:04:46.560" video="mainVideo-completion" id="subtitle"]]
[[!template text="""which is to set this variable,""" start="00:04:51.120" video="mainVideo-completion" id="subtitle"]]
[[!template text="""the Corfu auto variable to true,""" start="00:04:53.080" video="mainVideo-completion" id="subtitle"]]
[[!template text="""although I know it's not recommended, blah, blah, blah.""" start="00:04:55.520" video="mainVideo-completion" id="subtitle"]]
[[!template text="""But I use that because I'm a bit lazy in that.""" start="00:04:58.400" video="mainVideo-completion" id="subtitle"]]
[[!template text="""So next step was looking at completion at point functions.""" start="00:05:02.960" video="mainVideo-completion" id="subtitle"]]
[[!template text="""So the information there if you go through the scatter""" start="00:05:07.240" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and sometimes a bit cryptic.""" start="00:05:10.480" video="mainVideo-completion" id="subtitle"]]
[[!template text="""At the end I came up with something like the thing""" start="00:05:14.000" video="mainVideo-completion" id="subtitle"]]
[[!template text="""that you see there on the screen.""" start="00:05:16.600" video="mainVideo-completion" id="subtitle"]]
[[!template text="""So it's a function for just completion point""" start="00:05:18.400" video="mainVideo-completion" id="subtitle"]]
[[!template text="""so I need my list of keywords""" start="00:05:21.880" video="mainVideo-completion" id="subtitle"]]
[[!template text="""so that I'm going to be talking later""" start="00:05:24.640" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and I have my bounds which is normally a word""" start="00:05:30.040" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and from that I get the start and the end""" start="00:05:34.400" video="mainVideo-completion" id="subtitle"]]
[[!template text="""of the of the thing that I want to""" start="00:05:37.120" video="mainVideo-completion" id="subtitle"]]
[[!template text="""that I want to be my seed for looking and bringing up Corfu""" start="00:05:38.920" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and of course I need some completion properties here""" start="00:05:47.320" video="mainVideo-completion" id="subtitle"]]
[[!template text="""This looked like this is what you need to do,""" start="00:05:53.440" video="mainVideo-completion" id="subtitle"]]
[[!template text="""but I had to dig quite deep""" start="00:05:55.720" video="mainVideo-completion" id="subtitle"]]
[[!template text="""to create a JavaScript keyword test""" start="00:05:57.520" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and to understand the completion props.""" start="00:06:01.320" video="mainVideo-completion" id="subtitle"]]
[[!template text="""And as an update of what I've been doing in the last weeks,""" start="00:06:04.760" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I've created a bound of things""" start="00:06:11.760" video="mainVideo-completion" id="subtitle"]]
[[!template text="""that point for me with a different thing""" start="00:06:13.880" video="mainVideo-completion" id="subtitle"]]
[[!template text="""that doesn't skip over non-blank characters,""" start="00:06:18.680" video="mainVideo-completion" id="subtitle"]]
[[!template text="""that only skips over non-blank characters.""" start="00:06:22.040" video="mainVideo-completion" id="subtitle"]]
[[!template text="""Why? Because Word was confusingly tech,""" start="00:06:25.040" video="mainVideo-completion" id="subtitle"]]
[[!template text="""because the backslash,""" start="00:06:29.000" video="mainVideo-completion" id="subtitle"]]
[[!template text="""like in the example for the teletype text,""" start="00:06:30.760" video="mainVideo-completion" id="subtitle"]]
[[!template text="""was not taken into account by Word.""" start="00:06:35.000" video="mainVideo-completion" id="subtitle"]]
[[!template text="""So I had to create my own one,""" start="00:06:36.920" video="mainVideo-completion" id="subtitle"]]
[[!template text="""which was a bunch of thing at point,""" start="00:06:39.960" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and then my thing is non-blanks.""" start="00:06:42.120" video="mainVideo-completion" id="subtitle"]]
[[!template text="""Completion at point properties, what are they?""" start="00:06:44.880" video="mainVideo-completion" id="subtitle"]]
[[!template text="""They allow Emacs to know how to handle the information""" start="00:06:53.240" video="mainVideo-completion" id="subtitle"]]
[[!template text="""for a specific completion time.""" start="00:06:56.040" video="mainVideo-completion" id="subtitle"]]
[[!template text="""So you normally will have an annotation,""" start="00:06:57.880" video="mainVideo-completion" id="subtitle"]]
[[!template text="""which then can disappear if you use NerdIconScoreFull.""" start="00:07:02.320" video="mainVideo-completion" id="subtitle"]]
[[!template text="""which is what I'm doing currently,""" start="00:07:08.520" video="mainVideo-completion" id="subtitle"]]
[[!template text="""but I keep it commented just in case I get tired of Corfu""" start="00:07:11.840" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and I want to have my completion function.""" start="00:07:17.560" video="mainVideo-completion" id="subtitle"]]
[[!template text="""Then the company kind is actually not something""" start="00:07:20.080" video="mainVideo-completion" id="subtitle"]]
[[!template text="""that comes from the company package, but does not require.""" start="00:07:26.760" video="mainVideo-completion" id="subtitle"]]
[[!template text="""And that's going to allow NerdEye Conscorfu to identify""" start="00:07:31.000" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and put the right icon there in the completion list,""" start="00:07:39.440" video="mainVideo-completion" id="subtitle"]]
[[!template text="""as you will see in a couple of minutes.""" start="00:07:44.840" video="mainVideo-completion" id="subtitle"]]
[[!template text="""So it's a snippet key.""" start="00:07:47.160" video="mainVideo-completion" id="subtitle"]]
[[!template text="""So basically what this is telling you""" start="00:07:50.440" video="mainVideo-completion" id="subtitle"]]
[[!template text="""is that this is a snippet keyword.""" start="00:07:52.600" video="mainVideo-completion" id="subtitle"]]
[[!template text="""These two lines, either line,""" start="00:07:54.320" video="mainVideo-completion" id="subtitle"]]
[[!template text="""tell you that this is a snippet keyword.""" start="00:07:56.800" video="mainVideo-completion" id="subtitle"]]
[[!template text="""And that it should be added to the other completions""" start="00:08:00.000" video="mainVideo-completion" id="subtitle"]]
[[!template text="""that you already have in your list.""" start="00:08:05.280" video="mainVideo-completion" id="subtitle"]]
[[!template text="""Problems looking now next step""" start="00:08:08.080" video="mainVideo-completion" id="subtitle"]]
[[!template text="""once I had the completion props""" start="00:08:15.480" video="mainVideo-completion" id="subtitle"]]
[[!template text="""which was relatively easy was to go""" start="00:08:19.080" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and get the keyword list right.""" start="00:08:21.440" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I've been looking at pre-existing solutions""" start="00:08:24.400" video="mainVideo-completion" id="subtitle"]]
[[!template text="""like for example how the menu""" start="00:08:27.200" video="mainVideo-completion" id="subtitle"]]
[[!template text="""is built in by your snippet and it looked a bit like Mission Impossible.""" start="00:08:29.320" video="mainVideo-completion" id="subtitle"]]
[[!template text="""because the approach by all the things""" start="00:08:34.400" video="mainVideo-completion" id="subtitle"]]
[[!template text="""that I have seen and I have examined""" start="00:08:40.440" video="mainVideo-completion" id="subtitle"]]
[[!template text="""is to get the keys and the names""" start="00:08:43.200" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and then further process them.""" start="00:08:45.640" video="mainVideo-completion" id="subtitle"]]
[[!template text="""My take was, do I really need both?""" start="00:08:50.800" video="mainVideo-completion" id="subtitle"]]
[[!template text="""At the end, if I use my own snippets,""" start="00:08:55.280" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I'm going to be using something""" start="00:08:58.160" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I would call meaningful keys for them""" start="00:09:00.440" video="mainVideo-completion" id="subtitle"]]
[[!template text="""or at least meaningful for these keys are meaningful for me""" start="00:09:02.560" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and I try not to repeat them""" start="00:09:06.360" video="mainVideo-completion" id="subtitle"]]
[[!template text="""because it makes little sense to repeat a keyword.""" start="00:09:07.680" video="mainVideo-completion" id="subtitle"]]
[[!template text="""So why not center everything around the keys only""" start="00:09:09.960" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and can that help simplify my code?""" start="00:09:13.920" video="mainVideo-completion" id="subtitle"]]
[[!template text="""So I started to dive into your snippet""" start="00:09:18.880" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and I found a lot of useful semi-hidden functions there.""" start="00:09:23.640" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I discovered that getting the list""" start="00:09:27.320" video="mainVideo-completion" id="subtitle"]]
[[!template text="""the list of keys for a given mode was not that difficult.""" start="00:09:30.680" video="mainVideo-completion" id="subtitle"]]
[[!template text="""And at the end what I started doing""" start="00:09:34.960" video="mainVideo-completion" id="subtitle"]]
[[!template text="""is get all the snipple tables used by a major mode""" start="00:09:40.080" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and get the lists of the keys that you have in each table.""" start="00:09:47.080" video="mainVideo-completion" id="subtitle"]]
[[!template text="""Sometimes the list is empty""" start="00:09:52.400" video="mainVideo-completion" id="subtitle"]]
[[!template text="""so it's going to return a nil and that you have to discard.""" start="00:09:55.840" video="mainVideo-completion" id="subtitle"]]
[[!template text="""When you're using structured snippets""" start="00:10:01.960" video="mainVideo-completion" id="subtitle"]]
[[!template text="""like snippets and submenus and so on""" start="00:10:06.000" video="mainVideo-completion" id="subtitle"]]
[[!template text="""to get a structured menu,""" start="00:10:08.920" video="mainVideo-completion" id="subtitle"]]
[[!template text="""you also get some non-strings that you need to filter out""" start="00:10:12.360" video="mainVideo-completion" id="subtitle"]]
[[!template text="""in order to get a workable keyword list.""" start="00:10:15.000" video="mainVideo-completion" id="subtitle"]]
[[!template text="""At the end of the day, what I had was something like this.""" start="00:10:19.000" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I have, for a mode, I went through all modes.""" start="00:10:24.880" video="mainVideo-completion" id="subtitle"]]
[[!template text="""through all modes associated to that and then I went""" start="00:10:30.960" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I got my results from all the tables that I had""" start="00:10:37.160" video="mainVideo-completion" id="subtitle"]]
[[!template text="""for a for a given time for a given table""" start="00:10:42.520" video="mainVideo-completion" id="subtitle"]]
[[!template text="""so what you do is you get your the tables""" start="00:10:45.280" video="mainVideo-completion" id="subtitle"]]
[[!template text="""that are associated to a mode because surprise surprise""" start="00:10:48.080" video="mainVideo-completion" id="subtitle"]]
[[!template text="""Some modes have more than one table,""" start="00:10:53.120" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and then what you do is you filter out all non strings""" start="00:10:55.959" video="mainVideo-completion" id="subtitle"]]
[[!template text="""from each of the keys list that you have for each table.""" start="00:11:00.918" video="mainVideo-completion" id="subtitle"]]
[[!template text="""So as you see, it's a 1, 2, 3, 4, 5, 6, 7 liner,""" start="00:11:07.720" video="mainVideo-completion" id="subtitle"]]
[[!template text="""which was not too much.""" start="00:11:12.680" video="mainVideo-completion" id="subtitle"]]
[[!template text="""By the way, if someone from Yasnippet is around,""" start="00:11:14.320" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I sent a pull request to include this""" start="00:11:20.040" video="mainVideo-completion" id="subtitle"]]
[[!template text="""as a public function in Yasnipit""" start="00:11:26.960" video="mainVideo-completion" id="subtitle"]]
[[!template text="""because it might be nice to have it in a packet""" start="00:11:29.000" video="mainVideo-completion" id="subtitle"]]
[[!template text="""in order to do this kind of things.""" start="00:11:32.320" video="mainVideo-completion" id="subtitle"]]
[[!template text="""So fine-tuning I just adding a yes completion""" start="00:11:33.840" video="mainVideo-completion" id="subtitle"]]
[[!template text="""to the completion point functions was not enough""" start="00:11:41.240" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I don't really know""" start="00:11:44.720" video="mainVideo-completion" id="subtitle"]]
[[!template text="""but exclusive node didn't seem to work how I wanted""" start="00:11:46.800" video="mainVideo-completion" id="subtitle"]]
[[!template text="""so I needed to escape sorry yeah I was saying I was getting rid of packages""" start="00:11:51.200" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and I had to add one package""" start="00:11:57.400" video="mainVideo-completion" id="subtitle"]]
[[!template text="""in order to get a function which is very very nice""" start="00:12:01.000" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and which is part of the cape function of the cape package""" start="00:12:04.480" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and that's cape cap super.""" start="00:12:08.920" video="mainVideo-completion" id="subtitle"]]
[[!template text="""So at the end using that you define an alias""" start="00:12:12.800" video="mainVideo-completion" id="subtitle"]]
[[!template text="""which for that where you use cape cap super""" start="00:12:16.440" video="mainVideo-completion" id="subtitle"]]
[[!template text="""to have a list of what you want""" start="00:12:23.200" video="mainVideo-completion" id="subtitle"]]
[[!template text="""so in this case for example for the demo""" start="00:12:25.800" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I'm going to make I'm using yes completion""" start="00:12:29.080" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and then the elisp completion point function provided by Emacs.""" start="00:12:32.760" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I combine them using cape cap super""" start="00:12:37.720" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and with that I create a completion point""" start="00:12:44.000" video="mainVideo-completion" id="subtitle"]]
[[!template text="""a new completion point function which I call cape list mode""" start="00:12:47.680" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and then I add this alias to the completion functions list""" start="00:12:53.160" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and with that it is enough snippet expansion""" start="00:12:58.520" video="mainVideo-completion" id="subtitle"]]
[[!template text="""if you want to have your snippets expanded automatically,""" start="00:13:05.720" video="mainVideo-completion" id="subtitle"]]
[[!template text="""you have to add an exit function to the, I'm sorry,""" start="00:13:14.480" video="mainVideo-completion" id="subtitle"]]
[[!template text="""to the completion properties""" start="00:13:28.000" video="mainVideo-completion" id="subtitle"]]
[[!template text="""yet another functionality you have to add""" start="00:13:30.880" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and to avoid this automatic selection to be too eager""" start="00:13:34.120" video="mainVideo-completion" id="subtitle"]]
[[!template text="""you need to add this set corfu""" start="00:13:39.200" video="mainVideo-completion" id="subtitle"]]
[[!template text="""on exact match to nil because otherwise""" start="00:13:43.320" video="mainVideo-completion" id="subtitle"]]
[[!template text="""you will always get the snippet expanded""" start="00:13:48.600" video="mainVideo-completion" id="subtitle"]]
[[!template text="""even if you don't want it Basically why?""" start="00:13:51.840" video="mainVideo-completion" id="subtitle"]]
[[!template text="""Basically because this would be suboptimal""" start="00:13:55.040" video="mainVideo-completion" id="subtitle"]]
[[!template text="""because the key can appear as part of a variable name.""" start="00:13:57.640" video="mainVideo-completion" id="subtitle"]]
[[!template text="""Another nice thing, I'm also creating my own themes.""" start="00:14:05.360" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I'm trying to have very sleek themes""" start="00:14:10.600" video="mainVideo-completion" id="subtitle"]]
[[!template text="""that only cover the modes that I use""" start="00:14:13.760" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and for that I have my own theme creator fork""" start="00:14:16.840" video="mainVideo-completion" id="subtitle"]]
[[!template text="""from the original team creator.""" start="00:14:22.960" video="mainVideo-completion" id="subtitle"]]
[[!template text="""In my personal work that I'm running at home,""" start="00:14:26.960" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I only have the faces for the modes I use.""" start="00:14:31.720" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I don't want to overload the thing""" start="00:14:34.160" video="mainVideo-completion" id="subtitle"]]
[[!template text="""with too much different things.""" start="00:14:38.160" video="mainVideo-completion" id="subtitle"]]
[[!template text="""Looking at this, I really didn't need, as you will see now,""" start="00:14:41.840" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I don't need to add anything to my themes""" start="00:14:46.000" video="mainVideo-completion" id="subtitle"]]
[[!template text="""because the default faces for Corfu""" start="00:14:50.080" video="mainVideo-completion" id="subtitle"]]
[[!template text="""adapt quite well to most of the themes.""" start="00:14:53.280" video="mainVideo-completion" id="subtitle"]]
[[!template text="""So if I go back to my checklist decently remax yes""" start="00:14:58.320" video="mainVideo-completion" id="subtitle"]]
[[!template text="""compiled the one you'll see""" start="00:15:02.840" video="mainVideo-completion" id="subtitle"]]
[[!template text="""for the for in the demo I'm doing is a master""" start="00:15:06.560" video="mainVideo-completion" id="subtitle"]]
[[!template text="""compiled the day before yesterday""" start="00:15:09.240" video="mainVideo-completion" id="subtitle"]]
[[!template text="""so and I don't need Corfu terminal there.""" start="00:15:12.000" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I need your snippet,""" start="00:15:15.200" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and you're going to see that in a second""" start="00:15:16.560" video="mainVideo-completion" id="subtitle"]]
[[!template text="""with a couple of snippets that I can expand here.""" start="00:15:20.160" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I don't want any reminiscence of a company in my setup,""" start="00:15:24.440" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and there's none. Well, actually, company kind is there""" start="00:15:27.480" video="mainVideo-completion" id="subtitle"]]
[[!template text="""you see the company there""" start="00:15:32.120" video="mainVideo-completion" id="subtitle"]]
[[!template text="""but it isn't if I buy companies strictly speaking""" start="00:15:33.720" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and for I don't want I need Eglot integration""" start="00:15:39.560" video="mainVideo-completion" id="subtitle"]]
[[!template text="""which I will also be showing you. Takeaways from all this,""" start="00:15:44.680" video="mainVideo-completion" id="subtitle"]]
[[!template text="""if you accept the extra burden""" start="00:15:50.440" video="mainVideo-completion" id="subtitle"]]
[[!template text="""of Corfu terminal for Emacs 30 or earlier Emacs 30s,""" start="00:15:55.280" video="mainVideo-completion" id="subtitle"]]
[[!template text="""it's not too difficult to get this set up running.""" start="00:16:02.240" video="mainVideo-completion" id="subtitle"]]
[[!template text="""Corfu was easier to integrate and configure than Company,""" start="00:16:07.560" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and it's much lighter in terms""" start="00:16:11.760" video="mainVideo-completion" id="subtitle"]]
[[!template text="""of number of lines, et cetera. I learned a lot.""" start="00:16:13.800" video="mainVideo-completion" id="subtitle"]]
[[!template text="""Well, actually, yes, with the help of Cape,""" start="00:16:20.040" video="mainVideo-completion" id="subtitle"]]
[[!template text="""but it is much lighter and much easier""" start="00:16:25.160" video="mainVideo-completion" id="subtitle"]]
[[!template text="""to integrate and configure.""" start="00:16:27.400" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I've learned a lot about computational functions in the process,""" start="00:16:30.120" video="mainVideo-completion" id="subtitle"]]
[[!template text="""which is, something that is always nice to learn new things""" start="00:16:34.880" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and the Nerd Icons Corfu makes the""" start="00:16:40.440" video="mainVideo-completion" id="subtitle"]]
[[!template text="""at least at this point in time I might get tired of it""" start="00:16:45.040" video="mainVideo-completion" id="subtitle"]]
[[!template text="""but at this point in time it makes""" start="00:16:48.320" video="mainVideo-completion" id="subtitle"]]
[[!template text="""a makes a very nice overall look""" start="00:16:50.400" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and look and feel for for Emacs.""" start="00:16:53.680" video="mainVideo-completion" id="subtitle"]]
[[!template text="""requests to whom it may concern cape has nice features""" start="00:16:58.040" video="mainVideo-completion" id="subtitle"]]
[[!template text="""that maybe could make their way into emacs""" start="00:17:02.040" video="mainVideo-completion" id="subtitle"]]
[[!template text="""i'm thinking basically about this cape super fun""" start="00:17:06.280" video="mainVideo-completion" id="subtitle"]]
[[!template text="""uh super function super cape function functionality""" start="00:17:09.160" video="mainVideo-completion" id="subtitle"]]
[[!template text="""which is very nice and overcomes the problem of linking""" start="00:17:12.400" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and this exclusive and all this kind of things""" start="00:17:18.800" video="mainVideo-completion" id="subtitle"]]
[[!template text="""that we have currently in Corfu""" start="00:17:22.240" video="mainVideo-completion" id="subtitle"]]
[[!template text="""with the computational point functions.""" start="00:17:26.480" video="mainVideo-completion" id="subtitle"]]
[[!template text="""Corfu is also really nice to have and it's not too big""" start="00:17:28.440" video="mainVideo-completion" id="subtitle"]]
[[!template text="""so is there any possibility""" start="00:17:32.960" video="mainVideo-completion" id="subtitle"]]
[[!template text="""that it makes its way into Emacs?""" start="00:17:35.560" video="mainVideo-completion" id="subtitle"]]
[[!template text="""Please keep Yarn Snippet alive.""" start="00:17:40.080" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I'm not saying here that my pull request should be there,""" start="00:17:42.400" video="mainVideo-completion" id="subtitle"]]
[[!template text="""but it would be nice if someone took a look""" start="00:17:48.560" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and made it part of Yarn Snippet.""" start="00:17:51.560" video="mainVideo-completion" id="subtitle"]]
[[!template text="""And PS, currently on master,""" start="00:17:57.400" video="mainVideo-completion" id="subtitle"]]
[[!template text="""there's a lot of semantic highlighting going on,""" start="00:18:01.800" video="mainVideo-completion" id="subtitle"]]
[[!template text="""which is very, very nice. No criticism on that.""" start="00:18:07.800" video="mainVideo-completion" id="subtitle"]]
[[!template text="""but you may need to add to your snippet hook""" start="00:18:13.720" video="mainVideo-completion" id="subtitle"]]
[[!template text="""this simple local value for ElixirFontify semantically""" start="00:18:19.640" video="mainVideo-completion" id="subtitle"]]
[[!template text="""because at least in my case I felt that""" start="00:18:25.040" video="mainVideo-completion" id="subtitle"]]
[[!template text="""the face were a bit too pushy""" start="00:18:30.720" video="mainVideo-completion" id="subtitle"]]
[[!template text="""so I had to make a snippet mode""" start="00:18:32.440" video="mainVideo-completion" id="subtitle"]]
[[!template text="""use the old Emacs Lisp fontification.""" start="00:18:37.334" video="mainVideo-completion" id="subtitle"]]
[[!template text="""That's what we want to talk about.""" start="00:18:41.280" video="mainVideo-completion" id="subtitle"]]
[[!template text="""Any initial reactions to this? There's a question here.""" start="00:18:46.280" video="mainVideo-completion" id="subtitle"]]
[[!template text="""Someone asked, did you try Jasnepet Cup?""" start="00:18:55.000" video="mainVideo-completion" id="subtitle"]]
[[!template text="""If so, what did you miss from this approach? I tried that.""" start="00:18:59.160" video="mainVideo-completion" id="subtitle"]]
[[!template text="""And it's not that I missed anything.""" start="00:19:05.960" video="mainVideo-completion" id="subtitle"]]
[[!template text="""It was more or less that I wanted to do it myself.""" start="00:19:11.240" video="mainVideo-completion" id="subtitle"]]
[[!template text="""So I wanted to see what was behind it. That's my answer.""" start="00:19:16.520" video="mainVideo-completion" id="subtitle"]]
[[!template text="""There are lots of packages there,""" start="00:19:24.160" video="mainVideo-completion" id="subtitle"]]
[[!template text="""but I try to keep learning. So, this was a nice objective""" start="00:19:26.680" video="mainVideo-completion" id="subtitle"]]
[[!template text="""to learn a bit more about Emacs. And now, just a second.""" start="00:19:31.720" video="mainVideo-completion" id="subtitle"]]
[[!template text="""Now, a small demo. This is the interaction.""" start="00:19:40.160" video="mainVideo-completion" id="subtitle"]]
[[!template text="""And as you see, I have the snippet there.""" start="00:19:44.880" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and I have a couple of snippets.""" start="00:19:47.200" video="mainVideo-completion" id="subtitle"]]
[[!template text="""So, for example, if I would like to say""" start="00:19:52.880" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I want to define a function, I can go like this.""" start="00:19:55.840" video="mainVideo-completion" id="subtitle"]]
[[!template text="""And what you see here is that""" start="00:19:58.880" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I have two snippets appearing and then some variables.""" start="00:20:00.520" video="mainVideo-completion" id="subtitle"]]
[[!template text="""So, I could go for def one or if I want a key map, for def key map,""" start="00:20:04.320" video="mainVideo-completion" id="subtitle"]]
[[!template text="""which would be something like this.""" start="00:20:09.880" video="mainVideo-completion" id="subtitle"]]
[[!template text="""And then when I press enter, I get directly into the map""" start="00:20:11.480" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and I could say like, Show off mob.""" start="00:20:18.320" video="mainVideo-completion" id="subtitle"]]
[[!template text="""Then it sets out directly a prefix T,""" start="00:20:26.720" video="mainVideo-completion" id="subtitle"]]
[[!template text="""which is something that I asked for in Emacs master.""" start="00:20:30.080" video="mainVideo-completion" id="subtitle"]]
[[!template text="""So with prefix T, for those who prefix it true,""" start="00:20:35.040" video="mainVideo-completion" id="subtitle"]]
[[!template text="""for those who don't know it,""" start="00:20:39.480" video="mainVideo-completion" id="subtitle"]]
[[!template text="""it makes integrating this into keymaps in use package much easier.""" start="00:20:41.400" video="mainVideo-completion" id="subtitle"]]
[[!template text="""So the next thing would be""" start="00:20:46.800" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I would like to write a description""" start="00:20:51.120" video="mainVideo-completion" id="subtitle"]]
[[!template text="""like for example a cool show off team up""" start="00:20:56.000" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and then my keys are my functions and that would be it""" start="00:21:05.000" video="mainVideo-completion" id="subtitle"]]
[[!template text="""but you also have like but also have like this define function""" start="00:21:08.600" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and of course you can say that's nice but there's no""" start="00:21:15.840" video="mainVideo-completion" id="subtitle"]]
[[!template text="""but you're not showing the integration""" start="00:21:21.680" video="mainVideo-completion" id="subtitle"]]
[[!template text="""with Eglot and you're right.""" start="00:21:23.800" video="mainVideo-completion" id="subtitle"]]
[[!template text="""So I'm going just to open up a small program""" start="00:21:25.440" video="mainVideo-completion" id="subtitle"]]
[[!template text="""that I'm currently developing in Python.""" start="00:21:30.280" video="mainVideo-completion" id="subtitle"]]
[[!template text="""X is a tool to do things in MP3.""" start="00:21:33.320" video="mainVideo-completion" id="subtitle"]]
[[!template text="""And here I would have like all these things.""" start="00:21:38.240" video="mainVideo-completion" id="subtitle"]]
[[!template text="""As you see here in the bottom,""" start="00:21:42.280" video="mainVideo-completion" id="subtitle"]]
[[!template text="""service running, pilot is local, eglot is active.""" start="00:21:45.360" video="mainVideo-completion" id="subtitle"]]
[[!template text="""So I have my eglot stop and then I go down.""" start="00:21:49.080" video="mainVideo-completion" id="subtitle"]]
[[!template text="""And I want to add a new argument here.""" start="00:21:57.920" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I would go like for it. I would go like add flag.""" start="00:22:00.520" video="mainVideo-completion" id="subtitle"]]
[[!template text="""For example, I would add a flag""" start="00:22:08.800" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and I would get a new flag to add here.""" start="00:22:13.760" video="mainVideo-completion" id="subtitle"]]
[[!template text="""Oops. Of course, this is integrated into Eagle Lord.""" start="00:22:21.760" video="mainVideo-completion" id="subtitle"]]
[[!template text="""So I'm getting your information about what I have.""" start="00:22:33.120" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I don't have OS, so I would need to import here,""" start="00:22:42.760" video="mainVideo-completion" id="subtitle"]]
[[!template text="""but I can go up just to see""" start="00:22:52.360" video="mainVideo-completion" id="subtitle"]]
[[!template text="""if I would like to, for example,""" start="00:22:59.280" video="mainVideo-completion" id="subtitle"]]
[[!template text="""create a new a regular expression""" start="00:23:01.760" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I'm getting this information that you see right now on call""" start="00:23:11.880" video="mainVideo-completion" id="subtitle"]]
[[!template text="""for I'm getting that from Eglot""" start="00:23:15.440" video="mainVideo-completion" id="subtitle"]]
[[!template text="""so you see there's the integration""" start="00:23:17.360" video="mainVideo-completion" id="subtitle"]]
[[!template text="""with with Eglot too in Python""" start="00:23:18.920" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I have Eglot and as you've seen""" start="00:23:20.840" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I also have the and all these are snippets fine""" start="00:23:23.560" video="mainVideo-completion" id="subtitle"]]
[[!template text="""more reactions and questions""" start="00:23:30.240" video="mainVideo-completion" id="subtitle"]]
[[!template text="""Because that would be my show off here.""" start="00:23:38.200" video="mainVideo-completion" id="subtitle"]]
[[!template text="""Any questions? Any more questions on the pad?""" start="00:23:54.240" video="mainVideo-completion" id="subtitle"]]
[[!template text="""but anyhow i'm going to try""" start="00:23:56.760" video="mainVideo-completion" id="subtitle"]]
[[!template text="""i'm going to try your snippet too""" start="00:24:11.480" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and i'm going to be answering this question more""" start="00:24:13.240" video="mainVideo-completion" id="subtitle"]]
[[!template text="""yeah time is good okay fine""" start="00:24:16.280" video="mainVideo-completion" id="subtitle"]]
[[!template text="""so I would be done if there's no more reactions""" start="00:24:21.080" video="mainVideo-completion" id="subtitle"]]
[[!template text="""thank you so much You're welcome.""" start="00:24:30.040" video="mainVideo-completion" id="subtitle"]]
[[!template text="""If you have any other questions, folks,""" start="00:24:33.240" video="mainVideo-completion" id="subtitle"]]
[[!template text="""you can always follow up on the pad.""" start="00:24:34.920" video="mainVideo-completion" id="subtitle"]]
[[!template text="""That was a great demonstration, and I'm sure lots of people""" start="00:24:37.080" video="mainVideo-completion" id="subtitle"]]
[[!template text="""are looking forward to trying it out.""" start="00:24:39.640" video="mainVideo-completion" id="subtitle"]]
[[!template text="""Oh, I see some questions coming in now.""" start="00:24:43.520" video="mainVideo-completion" id="subtitle"]]
[[!template text="""You may go ahead if you like.""" start="00:24:45.240" video="mainVideo-completion" id="subtitle"]]
[[!template text="""okay fine uh what uh there's someone asking""" start="00:24:46.200" video="mainVideo-completion" id="subtitle"]]
[[!template text="""what do special characters in your snippets work well too""" start="00:24:51.880" video="mainVideo-completion" id="subtitle"]]
[[!template text="""what kind of i don't use special characters in the key name""" start="00:24:57.080" video="mainVideo-completion" id="subtitle"]]
[[!template text="""so in this case everything works quite nicely""" start="00:25:02.480" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and then i'm passing i'm passing the control to your snippets""" start="00:25:05.200" video="mainVideo-completion" id="subtitle"]]
[[!template text="""so if there's any problem in your snippets""" start="00:25:11.360" video="mainVideo-completion" id="subtitle"]]
[[!template text="""with uh special characters""" start="00:25:13.680" video="mainVideo-completion" id="subtitle"]]
[[!template text="""that i don't know I don't use that as a key.""" start="00:25:15.360" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I'm just using for key names.""" start="00:25:24.400" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I normally use a, I only use letters, but that should work.""" start="00:25:30.520" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I mean, let's, uh, let's give it a trial.""" start="00:25:38.400" video="mainVideo-completion" id="subtitle"]]
[[!template text="""Let's kill here. Yes. I don't want, I don't want to touch this.""" start="00:25:43.960" video="mainVideo-completion" id="subtitle"]]
[[!template text="""Ugh. let's go into this one uh""" start="00:25:58.040" video="mainVideo-completion" id="subtitle"]]
[[!template text="""let's say I'm going to define this for example like this""" start="00:26:01.040" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and I'm going to create a new snippet""" start="00:26:06.959" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I'm going to create a new snippet""" start="00:26:10.920" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and use this is for example when you look at this""" start="00:26:15.360" video="mainVideo-completion" id="subtitle"]]
[[!template text="""if you if you have the the venue uh the new""" start="00:26:18.120" video="mainVideo-completion" id="subtitle"]]
[[!template text="""sorry the new way of the the new emacs uh""" start="00:26:20.600" video="mainVideo-completion" id="subtitle"]]
[[!template text="""semantical highlighting working""" start="00:26:26.160" video="mainVideo-completion" id="subtitle"]]
[[!template text="""this would be quite cramped this is why i'm using""" start="00:26:31.640" video="mainVideo-completion" id="subtitle"]]
[[!template text="""this is why i said uh the snippet the""" start="00:26:39.200" video="mainVideo-completion" id="subtitle"]]
[[!template text="""so is this more or less what you're talking about""" start="00:26:43.040" video="mainVideo-completion" id="subtitle"]]
[[!template text="""This is what you're talking about. Snippet. Save the snippet.""" start="00:26:49.040" video="mainVideo-completion" id="subtitle"]]
[[!template text="""So I'm going to... Snippet, load and put window.""" start="00:27:01.480" video="mainVideo-completion" id="subtitle"]]
[[!template text="""Enable interaction mode. Yes, I'm going to save.""" start="00:27:15.480" video="mainVideo-completion" id="subtitle"]]
[[!template text="""And I'm going to save that as FD test. on the file.""" start="00:27:21.280" video="mainVideo-completion" id="subtitle"]]
[[!template text="""No, I'm going to save this. Load. Load input window.""" start="00:27:24.440" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I'm going to put this in Emacs Lisp mode. I want to save it. No.""" start="00:27:41.480" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I'm going to write that directly into Emacs Lisp mode.""" start="00:27:53.680" video="mainVideo-completion" id="subtitle"]]
[[!template text="""going to go back into scratch buffer""" start="00:28:27.360" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and here I have it and we have it here but anyhow""" start="00:28:30.640" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and I'm just going to try to see if I feel like empty of course""" start="00:28:43.080" video="mainVideo-completion" id="subtitle"]]
[[!template text="""there's only one it will not show in Corfu,""" start="00:28:52.080" video="mainVideo-completion" id="subtitle"]]
[[!template text="""but I mean, I don't have any problems""" start="00:28:58.840" video="mainVideo-completion" id="subtitle"]]
[[!template text="""with that, as you see. Was that what you were meaning?""" start="00:29:01.520" video="mainVideo-completion" id="subtitle"]]
[[!template text="""Yeah, I guess that works. Fine.""" start="00:29:21.000" video="mainVideo-completion" id="subtitle"]]
[[!template text="""All right, shall we wrap up here""" start="00:29:24.840" video="mainVideo-completion" id="subtitle"]]
[[!template text="""so that you can have supper""" start="00:29:29.040" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and have lunch and other things? Okay, fine for me.""" start="00:29:31.280" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I was hoping to see the drop down. Just a second.""" start="00:29:40.920" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I think we can do that too. Two seconds.""" start="00:29:46.320" video="mainVideo-completion" id="subtitle"]]
[[!template text="""How can we do that with a drop down?""" start="00:29:49.960" video="mainVideo-completion" id="subtitle"]]
[[!template text="""Yeah, if I say something like this.""" start="00:29:52.560" video="mainVideo-completion" id="subtitle"]]
[[!template text="""And then I go and save it.""" start="00:29:57.720" video="mainVideo-completion" id="subtitle"]]
[[!template text="""And I'm going to go and write this""" start="00:30:04.920" video="mainVideo-completion" id="subtitle"]]
[[!template text="""into, with a second, fine.""" start="00:30:08.800" video="mainVideo-completion" id="subtitle"]]
[[!template text="""And now I need to quit here, sorry.""" start="00:30:16.720" video="mainVideo-completion" id="subtitle"]]
[[!template text="""And I'm going to come back in a second with another remark.""" start="00:30:19.920" video="mainVideo-completion" id="subtitle"]]
[[!template text="""Well, I'm bringing back and now let's see.""" start="00:30:26.640" video="mainVideo-completion" id="subtitle"]]
[[!template text="""Let's see what we have in your snippets.""" start="00:30:31.560" video="mainVideo-completion" id="subtitle"]]
[[!template text="""It's not there. Why not? Just a second. Let's see if I go.""" start="00:30:34.840" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I don't know if it matters that the name was""" start="00:30:44.160" video="mainVideo-completion" id="subtitle"]]
[[!template text="""that didn't have the characters in the beginning.""" start="00:30:47.840" video="mainVideo-completion" id="subtitle"]]
[[!template text="""Just a second. I think I know what is happening here.""" start="00:30:52.600" video="mainVideo-completion" id="subtitle"]]
[[!template text="""Do I have here? I have them. I'm going to clean.""" start="00:31:03.160" video="mainVideo-completion" id="subtitle"]]
[[!template text="""Oh, you're back in your home directories. Why?""" start="00:31:21.440" video="mainVideo-completion" id="subtitle"]]
[[!template text="""CD dash to get back in. Yeah. That's right.""" start="00:31:28.880" video="mainVideo-completion" id="subtitle"]]
[[!template text="""So you see how the name also has""" start="00:31:35.880" video="mainVideo-completion" id="subtitle"]]
[[!template text="""it doesn't have the same as the keys.""" start="00:31:37.800" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I don't know if that affects what shows up.""" start="00:31:39.320" video="mainVideo-completion" id="subtitle"]]
[[!template text="""Yeah, we we can try that. That's a quick one. This is my.""" start="00:31:41.040" video="mainVideo-completion" id="subtitle"]]
[[!template text="""Fine, now that I have this,""" start="00:31:49.400" video="mainVideo-completion" id="subtitle"]]
[[!template text="""which is going to be quicker, we check again.""" start="00:31:51.280" video="mainVideo-completion" id="subtitle"]]
[[!template text="""They both seem to be the same now""" start="00:31:55.360" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and I don't know if that affects, but anyhow, let's try it.""" start="00:31:57.920" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I go and then I look at the AR snippets, if it's there.""" start="00:32:03.080" video="mainVideo-completion" id="subtitle"]]
[[!template text="""Yes, it is. Yeah, it's there.""" start="00:32:07.680" video="mainVideo-completion" id="subtitle"]]
[[!template text="""And then if I say there, there you are. Oh, look at that.""" start="00:32:11.880" video="mainVideo-completion" id="subtitle"]]
[[!template text="""It doesn't seem to be affecting. Fantastic.""" start="00:32:18.560" video="mainVideo-completion" id="subtitle"]]
[[!template text="""And by the way, it is there.""" start="00:32:24.160" video="mainVideo-completion" id="subtitle"]]
[[!template text="""Yeah, I really should spend time""" start="00:32:32.120" video="mainVideo-completion" id="subtitle"]]
[[!template text="""getting more templates set up with Snippet.""" start="00:32:34.000" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I really love the fact that""" start="00:32:36.600" video="mainVideo-completion" id="subtitle"]]
[[!template text="""you can evaluate Emacs Lisp in it too.""" start="00:32:37.640" video="mainVideo-completion" id="subtitle"]]
[[!template text="""Yeah, I mean, just to make it bigger,""" start="00:32:40.400" video="mainVideo-completion" id="subtitle"]]
[[!template text="""try that because if I go into my, for example,""" start="00:32:43.400" video="mainVideo-completion" id="subtitle"]]
[[!template text="""into my org mode stuff""" start="00:32:51.360" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and in my org mode, I go to the article,""" start="00:32:55.680" video="mainVideo-completion" id="subtitle"]]
[[!template text="""which is one of the big ones.""" start="00:32:59.440" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I have things like, for example,""" start="00:33:03.320" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I defined a couple of functions here to do if it's empty,""" start="00:33:06.200" video="mainVideo-completion" id="subtitle"]]
[[!template text="""if that is empty, just add a white space.""" start="00:33:10.720" video="mainVideo-completion" id="subtitle"]]
[[!template text="""If one is empty, add a white space.""" start="00:33:16.400" video="mainVideo-completion" id="subtitle"]]
[[!template text="""add a white space here so it becomes a comment.""" start="00:33:19.600" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I have functions for to do more things on that""" start="00:33:23.320" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and I also have like menus to see""" start="00:33:27.280" video="mainVideo-completion" id="subtitle"]]
[[!template text="""what language I want to choose for""" start="00:33:29.800" video="mainVideo-completion" id="subtitle"]]
[[!template text="""for my spell checking and so on so""" start="00:33:33.600" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and that's all that's as you see""" start="00:33:37.080" video="mainVideo-completion" id="subtitle"]]
[[!template text="""this is a Lisp being evaluated""" start="00:33:40.320" video="mainVideo-completion" id="subtitle"]]
[[!template text="""so yes do I really encourage you""" start="00:33:41.960" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I've also heard people use it,""" start="00:33:45.120" video="mainVideo-completion" id="subtitle"]]
[[!template text="""like, especially if they're working""" start="00:33:46.520" video="mainVideo-completion" id="subtitle"]]
[[!template text="""in different programming languages,""" start="00:33:47.800" video="mainVideo-completion" id="subtitle"]]
[[!template text="""so they can just have the syntax""" start="00:33:49.920" video="mainVideo-completion" id="subtitle"]]
[[!template text="""for the different languages""" start="00:33:52.400" video="mainVideo-completion" id="subtitle"]]
[[!template text="""be condensed into a consistent abbreviation. Yeah.""" start="00:33:54.360" video="mainVideo-completion" id="subtitle"]]
[[!template text="""And look, this is my article. I have another.""" start="00:33:58.240" video="mainVideo-completion" id="subtitle"]]
[[!template text="""This is when I'm writing articles. I have another one.""" start="00:34:01.320" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I have another one for writing letters""" start="00:34:07.800" video="mainVideo-completion" id="subtitle"]]
[[!template text="""in org mode and so on. So, it's like letter, block,""" start="00:34:10.280" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and you have the complete infrastructure""" start="00:34:14.400" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and you don't have to type it by hand.""" start="00:34:16.560" video="mainVideo-completion" id="subtitle"]]
[[!template text="""So, it's really, really nice.""" start="00:34:20.160" video="mainVideo-completion" id="subtitle"]]
[[!template text="""Hmm, I think it might be nice to have""" start="00:34:22.880" video="mainVideo-completion" id="subtitle"]]
[[!template text="""a future Emacs carnival, you know,""" start="00:34:25.960" video="mainVideo-completion" id="subtitle"]]
[[!template text="""shared blogging theme thing be around""" start="00:34:28.080" video="mainVideo-completion" id="subtitle"]]
[[!template text="""having people share their snippets.""" start="00:34:31.240" video="mainVideo-completion" id="subtitle"]]
[[!template text="""No snippets and other things like for example,""" start="00:34:33.360" video="mainVideo-completion" id="subtitle"]]
[[!template text="""this is something stupid.""" start="00:34:39.360" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I'm switching my themes. All right.""" start="00:34:41.320" video="mainVideo-completion" id="subtitle"]]
[[!template text="""And of course, there you see,""" start="00:34:44.520" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I have also, this is also with,""" start="00:34:48.640" video="mainVideo-completion" id="subtitle"]]
[[!template text="""this is my way of switching buffers,""" start="00:34:51.440" video="mainVideo-completion" id="subtitle"]]
[[!template text="""which is with the shift control and tab,""" start="00:34:54.520" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I can switch different families""" start="00:34:58.160" video="mainVideo-completion" id="subtitle"]]
[[!template text="""and then when I'm in a family,""" start="00:35:00.560" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I can go and switch with control tab between the different,""" start="00:35:02.520" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I'm using tab line by the way. I'm not using the other one.""" start="00:35:07.000" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I'm using the old plain tab line with my themes.""" start="00:35:15.600" video="mainVideo-completion" id="subtitle"]]
[[!template text="""So that's more or less everything.""" start="00:35:20.840" video="mainVideo-completion" id="subtitle"]]
[[!template text="""Thank you for the peek into your workflow.""" start="00:35:23.520" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I will work on getting the recordings for the live talks""" start="00:35:26.520" video="mainVideo-completion" id="subtitle"]]
[[!template text="""sorted out at some point very soon.""" start="00:35:30.760" video="mainVideo-completion" id="subtitle"]]
[[!template text="""I might even be able to get them out next week.""" start="00:35:33.920" video="mainVideo-completion" id="subtitle"]]
[[!template text="""So thanks again. All right. Have a nice supper. Same to you.""" start="00:35:37.840" video="mainVideo-completion" id="subtitle"]]
</div>Questions or comments? Please e-mail [paaguti@gmail.com](mailto:paaguti@gmail.com?subject=Comment%20for%20EmacsConf%202023%20completion%3A%20corfu%2Byasnippet%3A%20Easier%20than%20I%20thought)
<!-- End of emacsconf-publish-after-page -->
|