How should the editing core support external extensions?

Post general chit chat here. Please not post Multi-Edit specific messages or bug reports here!

Moderator: Moderators

How should the editing core support external extensions?

A macro language built into the core as it currently is
12
80%
The editing core should have an API designed that macro languages and other compiled language can use to manipulate the editor.
3
20%
 
Total votes : 15

How should the editing core support external extensions?

Postby DanHughes on Thu Mar 12, 2009 4:57 pm

We are wanting to know if our CMac macro language being tightly integrated into the editor is important or would it be better to create an API around the editing core that permits access to it from other languages than CMac.
Dan Hughes
DanHughes
Registered User
 
Posts: 600
Joined: Mon Jun 30, 2003 4:29 am
Location: Indiana

Postby AndyColson on Fri Mar 13, 2009 9:49 pm

I think one language is fine, and I can see it being simpler on the project than trying to maintain some middle ground API usable from many languages.

As long as the built-in language is usable and sane, I don't see why people cant pick it up and use it. People learned cmac, after all, it wasn't hard to pick up.

Here is where Lua also makes sense. We can say the time you spend learning Lua can be put to use in other programs that use Lua.

Support wise it also makes sense. If someone posts a question about a macro they wrote in Python, I'll never answer it. Wont even read it. I think its better to be a master of one rather than useless in many.

-Andy
User avatar
AndyColson
Registered User
 
Posts: 170
Joined: Sat Jul 26, 2003 1:29 pm
Location: Marion, IA

Postby samej71 on Sun Mar 15, 2009 8:14 am

One of the really nice things about ME is the fact that much of the editor's guts are included in the package in its CMAC source form and a user can edit that code to tweak existing functionality in the editor.

For example, the patch I received to add a "compile files" button to the "file has changed on disk" dialog; or the patch I added to add a few seconds of leeway to using timestamp change detection for network drives.

How will this work in an API model? Will the "source" still be available to modify? Or will this only allow people to essentially program extensions and macros outside of "core" functionality?

I wouldn't want to lose the ability to really get "under the hood" to make changes.

Yes, UltraEdit has a lot of eye-candy and there are days I wish ME had a more modern-looking appearance, flexibility (resizable dialogs, etc), and some of UE's features, but *nobody* has the power and core flexibility to add/change functionality like ME has, and nobody listens and adds features requested by users like ME, either (IMO).

--James
My MEW wishlist (somewhat outdated, but some are still valid wishes)
http://www.planetolsen.com/other/multie ... hlist.html
"There are 10 types of people in the world: those who understand binary, and those who don't." -- Unknown
samej71
Registered User
 
Posts: 118
Joined: Sat Aug 16, 2003 4:18 am
Location: Washington, IL

Postby Clay Martin MWI on Sun Mar 15, 2009 3:14 pm

Ditto to James.

Lots of features are nice, but being able to modify how the editor does this or that is vital to a large diverse user base. Sometimes what you need puts you in the minority of users. The editor's developer can't cater to every minor request. These are best handled by the individual user modifying the code to do what they need.

That said, ME has been built on and built on for years. Major changes to the core will "break" a lot of the existing cmac implemented functionality, and it should. Much old code has be patched and patched to the point that large blocks of legacy code probably are not even executed any more as they relate to other code which is not used or reflects the "old way" of doing something. Also I'm sure that many data handling/event tracking/internal communication methods currently used are not the best choice, but reflect the fact that that was how someone chosen (best choice at the time) to do it originally, and over time there was not the resources to go back and recode a bunch of other functions just to make all conform to a new/better way of doing something.

It's quite likely that with a OO style cmac replacement, that the total lines of code on the "cmac" side of the editor would drop, and disposing of the legacy code and recoding from scratch would not seem so daunting.

Right now adding things like unicode support are held back by the restrictions of using the old core. Don't hold the new core back by imposing the restriction of using the old cmac wrapper. Yes there should be a user modifiable wrapper around the core. But modern hybrid cars are not created by adding solid state electronics to a Model T.
Martin Works Inc
www.martinworks.com
Makers of EZRTools
A MEW Add-on package
for programming in SAS
www.ezrtools.com
User avatar
Clay Martin MWI
Registered User
 
Posts: 409
Joined: Tue Jul 29, 2003 1:02 pm
Location: Susquehanna, PA

Postby samej71 on Sun Mar 15, 2009 9:38 pm

I agree with Clay.

If ME is going to take a big leap forward, and it sounds like that might be what's going to happen, then I'd say it's an excellent time to revamp the macro language. No need to keep backward compatibility with the language if so much else is going to change, any existing macros would need to be fixed up anyway. I'm sure everyone (or most everyone) will be willing to fix-up their personal library of macros for the sake of progress. Time to throw off all the shackles.

I haven't written too many, but I'd gladly change/fix/rewrite the macros/changes I have in a new or updated language.

--James
My MEW wishlist (somewhat outdated, but some are still valid wishes)
http://www.planetolsen.com/other/multie ... hlist.html
"There are 10 types of people in the world: those who understand binary, and those who don't." -- Unknown
samej71
Registered User
 
Posts: 118
Joined: Sat Aug 16, 2003 4:18 am
Location: Washington, IL

Postby Michal Vodicka on Tue Mar 17, 2009 7:22 pm

Having editing core with well defined API is great idea. It would allow almost everything according to everybody's choice. Current CMAC sources are full of Win32 calls. It'd be easier to write such a code natural way in C or C++. CMAC is nice simple language for manipulating with strings but doesn't have sufficient tools to express more complicated data structures. Core API would allow coexistence of simple macros written in CMAC with more complicated extensions written in other languages.

In addition, it wouldn't be a big change. Compiled CMAC macros already use core very similar way so why don't extend it?
Michal Vodicka
Developer
 
Posts: 425
Joined: Fri Jul 25, 2003 8:16 pm
Location: Prague, Czech Republic


Return to General Chat

Who is online

Users browsing this forum: No registered users and 0 guests

cron