WEBVTT 00:00:00.000 --> 00:00:33.560 Introduction 00:00:33.560 --> 00:02:02.500 Overlays and what they can do 00:02:02.500 --> 00:02:35.700 Simple overlay example - creating an overlay 00:02:35.700 --> 00:03:10.940 Adding properties 00:03:10.940 --> 00:03:24.660 Deleting an overlay 00:03:24.660 --> 00:03:59.340 Setting fonts the right way 00:03:59.540 --> 00:04:12.580 More properties 00:04:12.580 --> 00:04:49.780 Visibility 00:04:49.780 --> 00:05:27.820 Adding text 00:05:27.820 --> 00:05:45.380 Custom properties 00:05:45.380 --> 00:06:36.100 Notes on properties 00:06:36.100 --> 00:08:17.680 Improving C++ compiler output 00:08:17.680 --> 00:08:30.240 The problem with C++ error messages 00:08:30.240 --> 00:08:47.520 Many standard class templates have default arguments 00:08:47.520 --> 00:09:20.960 Some types are aliases for longer things, too 00:09:20.960 --> 00:10:18.240 Reporting type information accurately means long lines 00:10:18.240 --> 00:11:49.320 Emacs can help - Treat C++ type names as just another kind of balanced expression 00:11:49.320 --> 00:12:22.400 Add overlays to improve readability 00:12:22.400 --> 00:12:59.500 Create a minor mode that runs during compilation 00:12:59.500 --> 00:14:16.100 Parsing types as balanced expressions 00:14:16.100 --> 00:14:52.260 Indent and fill with overlays - Use ancient "pretty printing" algorithms" 00:14:52.260 --> 00:15:14.520 Overlays can mimic line breaks and indentation 00:15:14.520 --> 00:17:12.660 Hiding details - Marking depths with overlays 00:17:12.660 --> 00:18:04.900 Hiding to a target depth 00:18:04.900 --> 00:20:10.220 Demo 00:20:10.220 --> 00:20:51.220 Conclusion