0:00:00.960,0:00:05.600 uh okay so the first question is is uh 0:00:03.679,0:00:08.000 do you think that this package can be 0:00:05.600,0:00:11.760 included into Emacs or 0:00:08.000,0:00:11.760 uh empire uh 0:00:12.320,0:00:18.560 I think uh it most definitely can is 0:00:15.360,0:00:21.760 just a matter of paperwork but 0:00:18.560,0:00:24.480 the reason I initially wanted to make it 0:00:21.760,0:00:25.039 like a central package is that so that I 0:00:24.480,0:00:28.720 can 0:00:25.039,0:00:31.920 experiment with it more 0:00:28.720,0:00:34.320 like have more freedom to experiment but 0:00:31.920,0:00:35.680 eventually I think is a good candidate 0:00:34.320,0:00:37.920 for inclusion into 0:00:35.680,0:00:37.920 core 0:00:38.800,0:00:42.640 and because because currently not in 0:00:41.200,0:00:44.480 corey mass there are a couple of 0:00:42.640,0:00:47.840 problems with it 0:00:44.480,0:00:50.960 mostly in terms of performance 0:00:47.840,0:00:53.280 for example like anytime we want to 0:00:50.960,0:00:54.160 access the text in a buffer we need to 0:00:53.280,0:00:57.360 make 0:00:54.160,0:01:00.480 a copy of the text into a string 0:00:57.360,0:01:03.520 and then right after reading from that 0:01:00.480,0:01:05.280 text we need to free it right away and 0:01:03.520,0:01:09.040 that results in a lot of garbage 0:01:05.280,0:01:11.920 collection so it would be better 0:01:09.040,0:01:12.240 either the treasure could be included in 0:01:11.920,0:01:15.680 core 0:01:12.240,0:01:16.799 imax or dynamic dynamic model support 0:01:15.680,0:01:19.439 can be 0:01:16.799,0:01:21.920 augmented with direct text access 0:01:19.439,0:01:21.920 somehow 0:01:24.080,0:01:27.200 so the second question is will release 0:01:26.400,0:01:30.320 performance 0:01:27.200,0:01:33.040 be more competitive with cce max 0:01:30.320,0:01:35.520 enough so electricity in english is more 0:01:33.040,0:01:35.520 attractive 0:01:35.670,0:01:43.439 [Music] 0:01:38.240,0:01:45.840 I think it's possible but uh yeah 0:01:43.439,0:01:46.799 not sure about the amount of effort it 0:01:45.840,0:01:52.000 can be 0:01:46.799,0:01:52.000 multi-years effort and one thing that 0:01:52.960,0:02:00.640 even though gce max can make uh 0:01:56.479,0:02:00.640 it is fast enough there's 0:02:00.719,0:02:05.280 there's one thing that it uh cannot have 0:02:03.119,0:02:09.679 which is that because it's the lisp 0:02:05.280,0:02:12.480 it needs the garage collector so 0:02:09.679,0:02:14.000 we may experiment experience some kind 0:02:12.480,0:02:17.360 of 0:02:14.000,0:02:19.920 gcc post if we use live whereas the 0:02:17.360,0:02:24.720 currently transistor is written in c 0:02:19.920,0:02:24.720 so there's no such latency 0:02:28.400,0:02:32.400 the next question is do you think three 0:02:31.040,0:02:36.080 sister would be useful 0:02:32.400,0:02:38.319 for all buffers I can imagine it being 0:02:36.080,0:02:39.599 used to keep a post ast about an arc 0:02:38.319,0:02:42.560 buffer 0:02:39.599,0:02:43.920 light off element and update it in real 0:02:42.560,0:02:46.239 time 0:02:43.920,0:02:47.760 yeah actually this is a very interesting 0:02:46.239,0:02:50.800 idea 0:02:47.760,0:02:53.760 I saw someone started 0:02:50.800,0:02:55.120 resistor grammar for all already I don't 0:02:53.760,0:02:58.159 have a link right now but 0:02:55.120,0:03:01.040 I can look for it 0:02:58.159,0:03:01.680 I'll try looking for it and put the link 0:03:01.040,0:03:05.840 in 0:03:01.680,0:03:05.840 here later 0:03:09.599,0:03:15.519 yeah yes someone has written here the uh 0:03:13.280,0:03:17.040 and the biggest problem with uh right 0:03:15.519,0:03:20.560 now is that it doesn't have 0:03:17.040,0:03:20.560 formal grammar so 0:03:21.360,0:03:24.400 so the effort 0:03:22.380,0:03:27.120 [Applause] 0:03:24.400,0:03:28.799 be quite big I think but but once we 0:03:27.120,0:03:31.519 have that because the 0:03:28.799,0:03:33.840 tree sitter can be run on the web as 0:03:31.519,0:03:33.840 well 0:03:34.239,0:03:38.080 we can on the web and in many other 0:03:37.440,0:03:40.720 places 0:03:38.080,0:03:41.840 if we have a grammar for a traditional 0:03:40.720,0:03:45.680 grammar for all 0:03:41.840,0:03:49.680 we can bring off more 0:03:45.680,0:03:52.000 like everywhere that's a very cool 0:03:49.680,0:03:52.000 thought 0:03:56.000,0:04:00.480 next one is could this be used with 0:03:58.080,0:04:03.200 packages like smart parents that aim to 0:04:00.480,0:04:07.120 bring structural editing to 0:04:03.200,0:04:11.360 non-s expression based languages 0:04:07.120,0:04:14.720 yes that is actually one of the 0:04:11.360,0:04:17.280 intended use cases initially 0:04:14.720,0:04:18.880 it's definitely possible but it's just 0:04:17.280,0:04:29.840 that no one has 0:04:18.880,0:04:29.840 only started writing the integration yet 0:04:37.199,0:04:41.919 and next one 0:04:40.639,0:04:45.040 could you show the source that was 0:04:41.919,0:04:48.479 matched by the parser in the debug view 0:04:45.040,0:04:53.440 in addition to the grammar part matched 0:04:48.479,0:04:53.440 uh yeah that's actually um 0:04:54.960,0:04:59.280 on my to-do list but I haven't had time 0:04:57.759,0:05:02.560 for it yet 0:04:59.280,0:05:06.560 so uh if you go to the treesita 0:05:02.560,0:05:08.800 website it also has an 0:05:06.560,0:05:11.840 online playground where you can input 0:05:08.800,0:05:11.840 the code and see the 0:05:12.000,0:05:16.000 parse tree in real time and it's 0:05:14.400,0:05:19.360 actually 0:05:16.000,0:05:22.840 a lot more fancy than what we have in 0:05:19.360,0:05:25.919 imax currently so 0:05:22.840,0:05:27.120 yeah I just don't have time for it yes 0:05:25.919,0:05:30.240 so 0:05:27.120,0:05:30.240 some help here would be 0:05:30.320,0:05:41.730 very appreciated 0:05:38.700,0:05:41.730 [Music] 0:05:49.919,0:05:54.240 the next question is will it ever be 0:05:52.000,0:05:55.280 possible to write resetter grammars in a 0:05:54.240,0:05:59.520 lisp 0:05:55.280,0:05:59.520 or will javascript be required 0:06:00.560,0:06:05.280 yeah that is already answered in the 0:06:02.800,0:06:07.600 part so the 0:06:05.280,0:06:08.639 the transcript is actually just used as 0:06:07.600,0:06:12.160 a sort of 0:06:08.639,0:06:14.639 preprocessor so the 0:06:12.160,0:06:15.680 python generator actually works on the 0:06:14.639,0:06:19.280 on a json 0:06:15.680,0:06:20.240 structure so uh it's definitely possible 0:06:19.280,0:06:24.240 to replace 0:06:20.240,0:06:24.240 javascript with lists for this 0:06:29.039,0:06:32.160 how extensive will the compatibility 0:06:31.280,0:06:35.360 between 0:06:32.160,0:06:35.840 highlighting grammars for e-max and 0:06:35.360,0:06:41.039 those 0:06:35.840,0:06:41.039 for veeam nail view 0:06:44.560,0:06:51.680 so so right now the 0:06:48.720,0:06:52.000 nail vim and Emacs used a different set 0:06:51.680,0:06:55.440 of 0:06:52.000,0:06:59.520 the highlighting queries and 0:06:55.440,0:07:03.039 item probably uses another set of 0:06:59.520,0:07:04.960 patterns as well I think it makes sense 0:07:03.039,0:07:07.680 because 0:07:04.960,0:07:08.479 each editor has its own like existing 0:07:07.680,0:07:11.919 conventions 0:07:08.479,0:07:15.599 for syntax highlighting so 0:07:11.919,0:07:18.560 at least in the beginning I don't expect 0:07:15.599,0:07:21.520 there is any compatibility between 0:07:18.560,0:07:21.520 different editors 0:07:21.599,0:07:26.639 but I think in the long run it will be 0:07:27.280,0:07:31.360 would it better if there's some kind of 0:07:29.520,0:07:34.880 effort to 0:07:31.360,0:07:37.440 unify the at least provide the 0:07:34.880,0:07:39.759 most common patterns that should work 0:07:37.440,0:07:39.759 across 0:07:42.840,0:07:45.840 editors 0:07:51.759,0:07:55.280 next one is could there be a 0:07:53.520,0:07:57.919 standardized approach 0:07:55.280,0:08:00.319 to coding automatic refactoring in the 0:07:57.919,0:08:00.319 future 0:08:01.039,0:08:04.160 so that whichever language mode you're 0:08:02.639,0:08:12.960 using you could see many 0:08:04.160,0:08:16.400 available refactoring operations 0:08:12.960,0:08:18.639 I'm not sure about this because the 0:08:16.400,0:08:18.639 like 0:08:19.919,0:08:23.840 most of uh refactoring operations are 0:08:22.240,0:08:26.960 actually very 0:08:23.840,0:08:28.720 like highly specific to a language or at 0:08:26.960,0:08:32.800 least to class of 0:08:28.720,0:08:32.800 class of languages so 0:08:33.599,0:08:40.719 so so maybe it's not like uh one single 0:08:37.839,0:08:41.519 approach for all the languages but maybe 0:08:40.719,0:08:43.760 uh 0:08:41.519,0:08:44.959 one for object-oriented oriented 0:08:43.760,0:08:49.920 languages 0:08:44.959,0:08:49.920 one for lisp like language for example 0:08:50.160,0:08:55.839 maybe one for javascript and typestream 0:09:02.959,0:09:07.519 next question is uh I'm completely new 0:09:05.360,0:09:10.160 to trisita how do I use it 0:09:07.519,0:09:11.519 as an end user is there any easy example 0:09:10.160,0:09:14.000 config out there 0:09:11.519,0:09:15.440 the organizer otherwise that shows 0:09:14.000,0:09:18.959 standard usage 0:09:15.440,0:09:18.959 with whatever programming language 0:09:18.960,0:09:23.920 [Music] 0:09:20.480,0:09:23.920 yeah there's no um 0:09:27.600,0:09:32.000 uh actually that uh so the project has 0:09:30.880,0:09:36.399 the documentation 0:09:32.000,0:09:40.720 site but it's not very expensive yet 0:09:36.399,0:09:44.000 I think we need to add more examples 0:09:40.720,0:09:44.000 to the documentation 0:09:48.720,0:09:53.519 can language major mode authors start 0:09:51.200,0:09:56.240 taking advantage of this now 0:09:53.519,0:09:57.279 or is it intended to be used as a minor 0:09:56.240,0:10:00.399 mode 0:09:57.279,0:10:01.600 uh actually it's both so it's intended 0:10:00.399,0:10:04.480 to be used 0:10:01.600,0:10:05.920 as a minor mode but it's also intended 0:10:04.480,0:10:09.839 to 0:10:05.920,0:10:13.519 be depended on by the major mode 0:10:09.839,0:10:13.920 so basically it it wants to be a minor 0:10:13.519,0:10:17.200 mode 0:10:13.920,0:10:19.839 that is dependent on by the other 0:10:17.200,0:10:19.839 major modes 0:10:21.839,0:10:29.279 and by it here I mean the the base 0:10:25.680,0:10:29.279 minor mode tree system mode 0:10:30.839,0:10:37.120 so uh question 0:10:34.079,0:10:40.160 11 is it possible to use this 0:10:37.120,0:10:43.360 for refactoring tool 0:10:40.160,0:10:46.720 uh yeah but 0:10:43.360,0:10:47.680 um like for the kind of refactoring 0:10:46.720,0:10:52.079 inside uh 0:10:47.680,0:10:52.079 buffer it is uh 0:10:52.640,0:10:57.040 it's very doable right now but you need 0:10:55.040,0:11:01.120 to write some glue code 0:10:57.040,0:11:04.000 but for for the kind of more 0:11:01.120,0:11:04.399 extensive refactoring where you want to 0:11:04.000,0:11:09.120 touch 0:11:04.399,0:11:09.120 uh like all files in a project 0:11:09.279,0:11:12.839 there needs there needs to be some kind 0:11:11.440,0:11:15.920 of the project 0:11:12.839,0:11:18.399 and another project and uh 0:11:15.920,0:11:19.200 understanding of the language uh model 0:11:18.399,0:11:21.120 system 0:11:19.200,0:11:22.560 like how they are laid out in the file 0:11:21.120,0:11:24.480 system as well 0:11:22.560,0:11:26.240 and with that understanding that there 0:11:24.480,0:11:29.920 should be passing of 0:11:26.240,0:11:30.480 the files even files on the file system 0:11:29.920,0:11:34.000 that 0:11:30.480,0:11:37.760 are not yet loaded into Emacs 0:11:34.000,0:11:40.320 so that sounds like something more 0:11:37.760,0:11:40.320 a lot more 0:11:41.040,0:11:44.560 a lot more extensive 0:11:46.320,0:11:50.000 and it probably probably sounds like 0:11:49.519,0:11:52.160 something 0:11:50.000,0:11:54.560 something like an id in uh inside your 0:11:52.160,0:11:57.839 max already like a replacement for 0:11:54.560,0:11:57.839 for lsp 0:12:07.360,0:12:11.440 so next question is the that pop-up mx 0:12:10.480,0:12:14.480 window 0:12:11.440,0:12:14.480 how do you get that 0:12:15.200,0:12:20.320 is the custom hem code I wrote a long 0:12:18.720,0:12:24.800 time ago 0:12:20.320,0:12:26.480 but but right now the best way to 0:12:24.800,0:12:29.440 to have something like that is probably 0:12:26.480,0:12:33.200 the what is written here like uh 0:12:29.440,0:12:39.839 ham boss frame or iv spring 0:12:33.200,0:12:43.680 is a lot easier now 0:12:39.839,0:12:46.320 is there a folding mode for tree sitter 0:12:43.680,0:12:48.079 nowadays there's no folding mode for 0:12:46.320,0:12:52.000 three sitters yet 0:12:48.079,0:12:54.880 but uh 0:12:52.000,0:12:58.720 uh but I think it would better be better 0:12:54.880,0:12:58.720 if it's integrated with the 0:12:59.440,0:13:03.120 like current currently there are 0:13:02.079,0:13:04.880 multiple 0:13:03.120,0:13:07.200 I'm not sure they're moving forward 0:13:04.880,0:13:10.240 there are like code folding frameworks 0:13:07.200,0:13:12.800 inside imax already or some the 0:13:10.240,0:13:13.920 code showing packages like third party 0:13:12.800,0:13:15.680 packaging 0:13:13.920,0:13:17.680 and I think it's better to integrate 0:13:15.680,0:13:20.000 with these mods 0:13:17.680,0:13:22.560 rather than writing something new 0:13:20.000,0:13:22.560 entirely 0:13:32.399,0:13:36.639 are there any language major modes that 0:13:34.800,0:13:40.079 have integrated already 0:13:36.639,0:13:42.800 uh not yet 0:13:40.079,0:13:43.440 so the there was a proposed web assembly 0:13:42.800,0:13:46.839 mode 0:13:43.440,0:13:50.000 but it's a new major mode in terms of 0:13:46.839,0:13:52.880 existing major mode there is the 0:13:50.000,0:13:52.880 typescript mode 0:13:53.279,0:13:57.519 but they're only discussing about 0:13:55.600,0:14:02.079 integration 0:13:57.519,0:14:04.639 they're not integrated yet 0:14:02.079,0:14:05.360 I think I can try writing the 0:14:04.639,0:14:09.199 integration 0:14:05.360,0:14:11.839 sometimes next month 0:14:09.199,0:14:12.720 uh basically what they want right now is 0:14:11.839,0:14:16.160 the 0:14:12.720,0:14:19.199 syntax highlighting and handling 0:14:16.160,0:14:22.959 synthetic highlighting and 0:14:19.199,0:14:27.760 code indentation for tsx 0:14:22.959,0:14:31.839 which is the embedded react 0:14:27.760,0:14:31.839 syntax inside typescript 0:14:32.160,0:14:40.000 so it turns out passing these tests 0:14:36.399,0:14:40.000 is very troublesome so 0:14:40.639,0:14:47.040 so trees that would be a crystal would 0:14:43.920,0:14:47.040 be a lot of help there 0:14:49.920,0:14:59.839 is there any link to the slides yes 0:14:53.279,0:14:59.839 I'll post it in irc later 0:14:59.920,0:15:04.240 regarding imax integration we will 0:15:01.920,0:15:05.440 always need to be a foreign library or 0:15:04.240,0:15:09.920 can it be included 0:15:05.440,0:15:09.920 linked directly in compilation 0:15:10.839,0:15:17.600 uh if if this is about the 0:15:14.480,0:15:21.839 core library itself 0:15:17.600,0:15:23.440 then I think it's uh answered it in the 0:15:21.839,0:15:27.440 first question 0:15:23.440,0:15:29.920 right now is a right now it's a 0:15:27.440,0:15:30.959 dynamic model but in the long run it 0:15:29.920,0:15:34.000 will better if 0:15:30.959,0:15:39.839 it's included in core Emacs 0:15:34.000,0:15:41.360 for the language definitions themselves 0:15:39.839,0:15:43.279 it should be better if they are 0:15:41.360,0:15:46.639 distributed uh 0:15:43.279,0:15:49.199 separately like that right now so each 0:15:46.639,0:15:49.680 uh for each language there will be a 0:15:49.199,0:15:52.639 shared 0:15:49.680,0:15:55.839 library that will be loaded by the core 0:15:52.639,0:15:55.839 library at runtime 0:16:00.480,0:16:04.240 so the last question is the python mode 0:16:02.480,0:16:06.160 example is pretty good 0:16:04.240,0:16:07.600 is that something that one can use 0:16:06.160,0:16:11.759 already 0:16:07.600,0:16:11.759 yes I'm using it at work right now 0:16:12.320,0:16:17.360 I think that's all for that's all the 0:16:14.639,0:16:17.360 questions right 0:16:19.199,0:16:27.839 you are now unmuted yeah I think that's 0:16:23.440,0:16:30.399 all the questions on the pads so far um 0:16:27.839,0:16:32.399 so thank you but um there may be more 0:16:30.399,0:16:36.639 questions coming on irc 0:16:32.399,0:16:39.680 um I'll try to have a look 0:16:36.639,0:16:40.560 and we still have about 10 or 15 more 0:16:39.680,0:16:43.600 minutes so 0:16:40.560,0:16:46.880 um there's no rush to wrap up in case um 0:16:43.600,0:16:46.880 anyone has any more questions 0:16:48.160,0:16:51.360 uh yeah I just realized that uh I mixed 0:16:50.880,0:16:54.959 up the 0:16:51.360,0:16:56.000 video editing and I uh lost an entire 0:16:54.959,0:17:00.880 session on the 0:16:56.000,0:17:00.880 introduction to treesita oh 0:17:01.120,0:17:05.839 no worries 0:17:06.640,0:17:20.079 you are now muted 0:17:18.079,0:17:21.679 sounds like a perfect opportunity for 0:17:20.079,0:17:24.000 you to redo the introduction if you'd 0:17:21.679,0:17:24.000 like to 0:17:24.640,0:17:30.000 uh actually uh forgot a lot of that 0:17:30.799,0:17:35.760 and I'm with uh tired now so no I don't 0:17:33.760,0:17:39.200 think I can do it 0:17:35.760,0:17:43.520 it's uh 30 minutes until my bedtime 0:17:39.200,0:17:46.640 oh yeah yeah okay you are now unmuted 0:17:43.520,0:17:50.480 so in that case maybe we should 0:17:46.640,0:17:54.240 um we should let tona 0:17:50.480,0:17:56.960 get started going to bed and um and 0:17:54.240,0:17:57.840 I mean then I will figure out what to do 0:17:56.960,0:17:59.360 with the time 0:17:57.840,0:18:02.160 should we start the next talk early 0:17:59.360,0:18:05.360 since it's pre-recorded 0:18:02.160,0:18:07.919 um yeah we can do we can do that um 0:18:05.360,0:18:09.919 but um yeah tonight it you know right 0:18:07.919,0:18:10.480 now it's pretty late there um no worries 0:18:09.919,0:18:12.720 but 0:18:10.480,0:18:13.520 yeah if you know over the next few days 0:18:12.720,0:18:16.559 or weeks 0:18:13.520,0:18:20.240 if you would like to um you know 0:18:16.559,0:18:22.080 do a quick pre-recording or recording 0:18:20.240,0:18:24.320 to add the introduction and then stitch 0:18:22.080,0:18:26.559 it in with what you had already sent me 0:18:24.320,0:18:30.160 um by all means please do that and I 0:18:26.559,0:18:33.760 will upload the edited version 0:18:30.160,0:18:33.760 uh yeah yeah I'll try to do that 0:18:34.880,0:18:39.760 thank you yep thank you so much bye