Your next text editor is... MetaNote!
Example: two toolbar buttons titled 'Lower' and 'Upper'.
|
Right click the toolbar to edit a button (or add a new one)
|
The button hosts a python macro that does whatever you want. (The current document's main textbox is exposed as txt.)
|
Add more buttons, edit the menus... everything's extenisble... everything.
|
I've open-sourced a side project of mine, MetaNote.
Here's the gist of it...
MetaNote is a text editor. Ultimately, MetaNote intends to be the most versatile editor imaginable.
See that button in the toolbar? Right click on it, and edit the code behind it.
Don't like the way 'Find' works? -- right click on it, and edit the code.
Need a new button in the toolbar? So add it already, with a single click.
Share packs of extensions and macros with other users.
Everything in MetaNote is under your control, effortlessly, at runtime.
It's easier to show than to describe -- maybe the pictures on the right give you the idea.
The source code is available to browse or download. This is very much pre-alpha. It is explorative and non-commercial.
binaries are also available to download.
The project is written in C#, and I need your help getting it done.
I've got many of the basics done, but I'm only at the tip of what's needed.
I'm looking for clever kids like you, willing to help out.
What do you think? Can you take a look at the code, and lend your fellow programmer a few minutes of your time?
I'm not doing it for any commercial gain, i just want a text editor that I can bend to the whims of whatever writing task I come across.
There's a great many features still in need of implementing, and already there are wrong turns to be corrected.
Down the track I really want to find some way to embed the WPF-based Text Editor Control from VS2010. It's the same one used in intellipad (part of Oslo) and in Powershell 2.0's (awesome) Integrated Scripting Environment -- I didn't have any success bringing it to life just yet. So, for now the text is plain text, and features like syntax highlighting and intellisense will have to wait.
One of my mentors tells me the smart approach would be to bring in MEF for giving a really powerful plugin model, where plugins can have plugins and so on.
The intermediate goal though, is just to make the tool sweet enough that I'd use it for my own day to day text editing needs.
And one day, hopefully one day soon, this thing won't suck at all.
'Don2' on Sun, 19 Apr 2009 11:39:31 GMT, sez: "He who has never written a text editor in his youth, has no heart."
"He who writes a text editor in his adulthood, has no brain."
;-)
Interesting approach though.
But a lot of 'ToDos' left in that code! And where are the tests??
'onur biyik' on Sun, 19 Apr 2009 12:15:41 GMT, sez: Can I also change the name of the project :P What about WikiNote?
'anonymous donor' on Sun, 19 Apr 2009 12:20:30 GMT, sez: So, it's basically emacs for c#? Except without all the code emacs has accumulated over the years. And on the bright side -- without all the cruft :).
'Casey Barton' on Sun, 19 Apr 2009 13:55:10 GMT, sez: "Don't like the way 'Find' works? -- right click on it, and edit the code."
Um, this doesn't work. "(it's not a user macro)"
If you can't change the core functionality, then isn't this just plain old macros?
'Herold van der Vegt' on Sun, 19 Apr 2009 16:34:47 GMT, sez: In the past, late nineties, I've have used Multi edit.A basic text editor that included a macro interpreter.
All functionality in the editor was written in the macro language, source code included.
It was highly customisable and therefore very, very cool.
I always liked the concept, so I'll check this one out as well.
'dysfunctor' on Sun, 19 Apr 2009 16:43:51 GMT, sez: Hey, love the Lord Kitchener branding!
I speak Python, but I've never used C# or .NET before. Is there much I can do yet? Where's the Python API exposed by Metanote? Is there a way to launch an interactive Python console?
'lb' on Sun, 19 Apr 2009 18:37:09 GMT, sez: @Casey re:
>"Don't like the way 'Find' works? -- right
>click on it, and edit the code."
>
>Um, this doesn't work. "(it's not a user macro)"
>
>If you can't change the core functionality, then isn't this just plain old macros?
The intention is that you'll be able to modify *everything*. But this is very early alpha like i said though, and we're not there yet. ;-)
=====
@Herold
'Multi edit' looks interesting.
=====
@dysfunctor:
>I speak Python, but I've never used C# or .NET before.
I have the opposite problem. This is the first time I've used Python at all. It's the perfect language to use here though.
'Jaq' on Sun, 19 Apr 2009 18:49:41 GMT, sez: It's never too late for a fresh round of hostilities to erupt as a new entrant joins the long running editor wars.
http://en.wikipedia.org/wiki/Editor_wars
:j
'Rik Hemsley' on Mon, 20 Apr 2009 08:15:11 GMT, sez: I remember being able to do this with TkDesk. It's sort of useful, though I don't really use buttons in my text editors of choice (Vim and VS.NET with ViEmu), so I'm not sure how useful this is.
'dysfunctor' on Mon, 20 Apr 2009 09:49:15 GMT, sez: Yes, IronPython is the best tool for the job. (Let the holy wars commence....) Resolver had a similar idea with Resolver One, their IronPython based spreadsheet.
'lb' on Mon, 20 Apr 2009 11:10:38 GMT, sez: @Rik
>It's sort of useful, though I don't
>really use buttons
very good point. Part of the master-plan is that macros would also be hooked up to keystrokes.
'Dan F' on Mon, 20 Apr 2009 11:40:04 GMT, sez: You know, this could use some WSCG built in :-)
'Evgeniy Dolzhenko' on Mon, 20 Apr 2009 12:26:17 GMT, sez: the MEF sounds so enterprisey that it sucks all the fun out of poor small editor
'Scott Hanselman' on Mon, 20 Apr 2009 15:04:50 GMT, sez: Great idea. Not to deflate you at all, but Intellipad, the editor for "Oslo" uses the WPF Editor from VS2010 *and* it uses IronPython for all its commands. It can do everything you are trying to do here. You might check it out.
'lb' on Mon, 20 Apr 2009 19:01:17 GMT, sez: @Scott
Yeh I've done a little M-grammar mungeing with intellipad in my time.
It's very nice to be sure, but has more of an emacs feel and less of a Lord Kitchener feel.
'darko' on Mon, 20 Apr 2009 19:33:05 GMT, sez: couple things.
i think you write off intellipad (and Emac IMHO) a little too quickly. Hanselman has a good point)
the right click menu on a toolbar item is not intuitive and hard to discover.
my 2c.
'lb' on Mon, 20 Apr 2009 19:41:52 GMT, sez: @darko
ah, don't misunderestimate me ;-) I'm tinkering with intellipad right now.
'Emac' not so much.
>the right click menu on a toolbar item is not intuitive and hard to discover.
Windows 7 finally brings in the right-click menu on toolbar. I think their UX budget surpasses both yours and mine.
'dysfunctor' on Mon, 20 Apr 2009 20:42:45 GMT, sez: > Part of the master-plan is that macros
> would also be hooked up to keystrokes.
You totally need to do this!
At the moment, Metanote presents itself as a minimal text editor with support for scripted plug-ins. That's fine as far as it goes, but it's not enough to excite me.
What would excite me is if you took all your little snippets of C# functionality and gift-wrapped them in a Python API. Make Python the glue for assembling these pieces. In other words, I want a Python API that makes it easy for *me* to build a text editor; a Pythonic DSL for talking about text editors.
I know it's a lot to ask, but the payoff could be huge. You would hear hackers saying, "Look at this cool new text-editor-like thingummy I wrote in Metanote. I am so awesome!" When your users think they're awesome, you win.
'XYZ' on Wed, 22 Apr 2009 12:16:15 GMT, sez: Emacs all again :(
'Samir' on Wed, 22 Apr 2009 12:22:34 GMT, sez: All editor programmers are deemed to re-create emacs again, unless they're writing emacs
'Steven Nagy' on Sun, 26 Apr 2009 10:40:59 GMT, sez: Hi Leon,
No thanks, VI has everything I need in a text editor.
Snagy
'Elementalist' on Thu, 07 May 2009 04:02:18 GMT, sez: Hmm, this looks interesting, I'll look into it when I get time tomorrow.
'karthikeyan' on Mon, 08 Jun 2009 20:15:46 GMT, sez: real programmers use this... :D
http://xkcd.com/378/
direct link: http://imgs.xkcd.com/comics/real_programmers.png
<img src="http://imgs.xkcd.com/comics/real_programmers.png">
'Nick' on Wed, 05 Aug 2009 13:08:49 GMT, sez: Nice concept, but I'm not interested unless it's cross platform. What about Qt/Gtk with Python?
'minnie' on Mon, 14 Feb 2011 05:41:32 GMT, sez: <a href="http://www.google.com/">google</a>
'minnie' on Mon, 14 Feb 2011 05:42:14 GMT, sez: [url=http://www.google.com]google[/url]
'minnie' on Mon, 14 Feb 2011 05:43:06 GMT, sez: [link=http://www.google.com]google[/link]
|