MEdit

MEdit is a "programmable text editor driven by Tcl scripts", written by Maciej Sobczak.

The idea is to have a text editor that allows to define your own commands in the form of Tcl scripts that are executed in the editor's context. The functionality of the editor depends only on your ability to write in Tcl. There is a set of already written commands, to get you started.

It's particularly interesting for Tcl'ers because they can customize it quite easily. It runs on any platform with Tcl/Tk and is a ridiculous awful lot smaller than Emacs. Well, too many things are a ridiculous awful lot smaller than Emacs.

The home page of the project is http://www.msobczak.com/prog/medit/


Joe Mistachkin - 07/Sep/2003 - I am totally unable to get this application to work properly. Based on my analysis, it locks up Tcl/Tk due to some bad interaction between loadProfile, readBlockOfText, and the "profile" files. It seems that readBlockOfText is assuming that the first line read from the passed in file handle will result in the number of lines to subsequently read in. Currently, it seems to be getting some kind of non-numeric data that causes the for loop to be infinite.

davidw - looks like it could also use a dose of Creating Good GUIs - there is no menubar, for instance.

Joe Mistachkin - 07/Sep/2003 - I get the following error on startup:

 invalid command name ""
     while executing
 "$medit::t configure -font $mainwindowfont"
     invoked from within
 "if {$mainwindowfont != ""} {
         $medit::t configure -font $mainwindowfont
 }"
     ("uplevel" body line 43)
     invoked from within
 "uplevel #0 $commanddefinitions($name)"
     (procedure "medit::invokeCommand" line 23)
     invoked from within
 "medit::invokeCommand "editor appearance""
     (procedure "setUpFeatures" line 4)
     invoked from within
 "setUpFeatures $medit::t"
     (procedure "openFileFromPath" line 7)
     invoked from within
 "openFileFromPath [file normalize $f]"
     ("foreach" body line 2)
     invoked from within
 "foreach f $listoffilestoopen {
                 openFileFromPath [file normalize $f]
         }"
     (in namespace eval "::medit" script line 28)
     invoked from within
 "namespace eval medit {

 set listoffilestoopen {}

 for {set i 0} {$i < [llength $argv]} {incr i} {
         set a [lindex $argv $i]
         if {$a == "-profile"} {
                 ..."
     (file "G:/TEMP/bug/medit.tcl" line 297)
     invoked from within
 "source "[file dirname [file normalize [info script]]]/medit.tcl""
     (file "G:/TEMP/bug/medit_wrap.tcl" line 44)
     invoked from within
 "source G:/TEMP/bug/medit_wrap.tcl"