Re: creating a new importer for parse-body use
Thanks Edward. It looks like addressing the first of these: > You have to make @language tds work by creating entries for tds in three dictionaries in leoApp.py. Is what I need to look at first. Regards, Jon N On Monday, April 12, 2021 at 1:21:41 AM UTC+1 Edward K. Ream wrote: > On Sun, Apr 11, 2021 at 4:16 PM jkn wrote: > >> Hi (Edward, probably) > > > Yes. I wrote this mess :-) > >> I am interested in writing an importer to allow me to use the parse-body >> command... >> > ... > >> I'm starting with a stripped-down file...leo/plugins/importers/tds.py >> > > Yes, that sounds reasonable. > >> I'm a little unclear as to whether just that file will be enough; >> > > Yes, it should be enough, provided that '@language tds' is supported. > > I intend to select this parser by means of '@language tds', but with just >> 'noddy' contents of the tds importer I am seeing an error like: >> >> {{{ >> >> Traceback (most recent call last): >> >> File "/home/jkn/leo-editor/leo/core/leoKeys.py", line 2466, in >> callAltXFunction >> func(event) >> >> File "/home/jkn/leo-editor/leo/core/leoImport.py", line 2738, in >> parse_body_command >> c.importCommands.parse_body(c.p) >> >> File "/home/jkn/leo-editor/leo/core/leoImport.py", line 1137, in parse_body >> ext = '.' + g.app.language_extension_dict.get(language) >> TypeError: can only concatenate str (not "NoneType") to str >> }}} >> >> I have tried creating a matching file colorizor leo/modes/tds.py, without >> success >> > > Creating modes/tds.py only affects colorizing. It should have no effect on > importers. > > Any thoughts? In any case, that error message might be improved IMO >> > > Hehe. I agree the message leaves a bit to be desired. > > However, the traceback is actually pretty informative. As usual, the last > two lines are the most informative. Clearly, > g.app.language_extension_dict.get( > language) is returning None. > > The "language" var comes from the line: > > language = g.scanForAtLanguage(c, p), so yes, you must support your new > language by creating entries in three language dictionaries. See the node > "app.__init__ (helpers contain language dicts)" in leoApp.py. > > *Summary* > > You have to make @language tds work by creating entries for tds in three > dictionaries in leoApp.py. > You have to create an importer for .tds files. > parse_body shouldn't crash if g.app.language_extension_dict.get( language) > is None. > > Edward > -- You received this message because you are subscribed to the Google Groups "leo-editor" group. To unsubscribe from this group and stop receiving emails from it, send an email to leo-editor+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/leo-editor/4f6bf7ea-b4cf-4df0-ba06-ffa2ac4be073n%40googlegroups.com.
Re: creating a new importer for parse-body use
On Sun, Apr 11, 2021 at 4:16 PM jkn wrote: > Hi (Edward, probably) Yes. I wrote this mess :-) > I am interested in writing an importer to allow me to use the parse-body > command... > ... > I'm starting with a stripped-down file...leo/plugins/importers/tds.py > Yes, that sounds reasonable. > I'm a little unclear as to whether just that file will be enough; > Yes, it should be enough, provided that '@language tds' is supported. I intend to select this parser by means of '@language tds', but with just > 'noddy' contents of the tds importer I am seeing an error like: > > {{{ > > Traceback (most recent call last): > > File "/home/jkn/leo-editor/leo/core/leoKeys.py", line 2466, in > callAltXFunction > func(event) > > File "/home/jkn/leo-editor/leo/core/leoImport.py", line 2738, in > parse_body_command > c.importCommands.parse_body(c.p) > > File "/home/jkn/leo-editor/leo/core/leoImport.py", line 1137, in parse_body > ext = '.' + g.app.language_extension_dict.get(language) > TypeError: can only concatenate str (not "NoneType") to str > }}} > > I have tried creating a matching file colorizor leo/modes/tds.py, without > success > Creating modes/tds.py only affects colorizing. It should have no effect on importers. Any thoughts? In any case, that error message might be improved IMO > Hehe. I agree the message leaves a bit to be desired. However, the traceback is actually pretty informative. As usual, the last two lines are the most informative. Clearly, g.app.language_extension_dict.get( language) is returning None. The "language" var comes from the line: language = g.scanForAtLanguage(c, p), so yes, you must support your new language by creating entries in three language dictionaries. See the node "app.__init__ (helpers contain language dicts)" in leoApp.py. *Summary* You have to make @language tds work by creating entries for tds in three dictionaries in leoApp.py. You have to create an importer for .tds files. parse_body shouldn't crash if g.app.language_extension_dict.get( language) is None. Edward -- You received this message because you are subscribed to the Google Groups "leo-editor" group. To unsubscribe from this group and stop receiving emails from it, send an email to leo-editor+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/leo-editor/CAMF8tS0JJdCvPbEFL9v5E9%2B7W9443m_Avg7o5_tkqdiY9LL%3DMQ%40mail.gmail.com.
creating a new importer for parse-body use
Hi (Edward, probably) I am interested in writing an importer to allow me to use the parse-body command on a simple format I use for making notes (it's similar to the format used by the old Origami editor used for Transputer occam files in the TDS; Transputer development system) I'm starting with a stripped-down file leo/plugins/importers/tds.py based on others in that directory. I'm a little unclear as to whether just that file will be enough; I intend to select this parser by means of '@language tds', but with just 'noddy' contents of the tds importer I am seeing an error like: {{{ Traceback (most recent call last): File "/home/jkn/leo-editor/leo/core/leoKeys.py", line 2466, in callAltXFunction func(event) File "/home/jkn/leo-editor/leo/core/leoImport.py", line 2738, in parse_body_command c.importCommands.parse_body(c.p) File "/home/jkn/leo-editor/leo/core/leoImport.py", line 1137, in parse_body ext = '.' + g.app.language_extension_dict.get(language) TypeError: can only concatenate str (not "NoneType") to str }}} I have tried creating a matching file colorizor leo/modes/tds.py, without success Any thoughts? In any case, that error message might be improved IMO Thanks, Jon N -- You received this message because you are subscribed to the Google Groups "leo-editor" group. To unsubscribe from this group and stop receiving emails from it, send an email to leo-editor+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/leo-editor/d264f6a9-0288-464c-9646-9be33fb0fd9dn%40googlegroups.com.