I’ve been thinking about this for awhile and since a related subject has come up again, I’m going to post my thoughts.
Eventually, I’d like to move specific language support to AddOn packages or what I’ll call "language packs". This would contain all of the language specific macros, templates, language and extension setups as well as compiler and error processing settings in a self contained "pack" which can be installed separately. This way upon installation of Multi-Edit, a user can select which languages they want support for and only install support for the selected languages. Also we could setup an area on our website to allow user written "language packs" to be uploaded so other users could get support for languages that we currently don’t have or have limited support for now and be easily installed.
One thing that I’d like to happen before we do this is to generalize the TipWin code the same way the Language.s and MeTags.s macros are done so that all language specific features are located in the C.s, Pascal.s, Modula_2.s etc macro files. We would expand the Language setup data to include support for enabling TipWin support as well as any other similar features. Thus the TipWin.s macro would contain the routines that are common to all languages and the language specific code be moved to the language macro files. Then when we wanted to add TipWin support to a langauge that doesn’t have support already, we just update the language record and/or the NewLanguage.s macros.
Additionally, I would like to add support for external language parsers so that we can use them instead of having to write simple ones in macros. These parsers could be used for tagging, syntax highlighting, tipwin, template expansion etc.
Anyone have additional thoughts on the above?